From 7277dc1600d0820d26df83cfd71d47e927e948b5 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Thu, 15 May 2014 14:49:41 +1200 Subject: [PATCH 01/14] BUG Fix sorting on main ReportAdmin grid ref: CWPBUG-133 --- code/controllers/ReportAdmin.php | 11 ++++++++--- code/reports/Report.php | 9 +++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/code/controllers/ReportAdmin.php b/code/controllers/ReportAdmin.php index ec157688..1683dafa 100644 --- a/code/controllers/ReportAdmin.php +++ b/code/controllers/ReportAdmin.php @@ -37,7 +37,9 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider { parent::init(); //set the report we are currently viewing from the URL - $this->reportClass = (isset($this->urlParams['ReportClass'])) ? $this->urlParams['ReportClass'] : null; + $this->reportClass = (isset($this->urlParams['ReportClass']) && $this->urlParams['ReportClass'] !== 'index') + ? $this->urlParams['ReportClass'] + : null; $allReports = SS_Report::get_reports(); $this->reportObject = (isset($allReports[$this->reportClass])) ? $allReports[$this->reportClass] : null; @@ -132,8 +134,11 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider { * @return String */ public function Link($action = null) { - $link = parent::Link($action); - if ($this->reportObject) $link = $this->reportObject->getLink($action); + if ($this->reportObject) { + $link = $this->reportObject->getLink($action); + } else { + $link = self::join_links(parent::Link('index'), $action); + } return $link; } diff --git a/code/reports/Report.php b/code/reports/Report.php index bb965481..9e14f348 100644 --- a/code/reports/Report.php +++ b/code/reports/Report.php @@ -82,6 +82,15 @@ class SS_Report extends ViewableData { return $this->title; } + /** + * Allows access to title as a property + * + * @return string + */ + public function getTitle() { + return $this->title(); + } + /** * Return the description of this report. * From 1e194854e033f33db625c81146899a296b9b95fd Mon Sep 17 00:00:00 2001 From: Rodney Way Date: Tue, 10 Jun 2014 14:26:08 +1000 Subject: [PATCH 02/14] BUG: Ensure that all child pages are deleted (regardless of ShowInMenu status) under enforce_strict_hierarchy. Also updated SiteTree YML test data to match. --- code/model/SiteTree.php | 2 +- tests/model/SiteTreeTest.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index c61194c4..02c4f0c2 100644 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -1562,7 +1562,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid parent::onBeforeDelete(); // If deleting this page, delete all its children. - if(SiteTree::config()->enforce_strict_hierarchy && $children = $this->Children()) { + if(SiteTree::config()->enforce_strict_hierarchy && $children = $this->AllChildren()) { foreach($children as $child) { $child->delete(); } diff --git a/tests/model/SiteTreeTest.yml b/tests/model/SiteTreeTest.yml index 2f0cf282..e032d3ec 100644 --- a/tests/model/SiteTreeTest.yml +++ b/tests/model/SiteTreeTest.yml @@ -56,6 +56,7 @@ Page: Title: Staff URLSegment: my-staff Parent: =>Page.about + ShowInMenus: 0 products: Title: Products CanEditType: OnlyTheseUsers From a777266e43a829435f383df2396f93e2b0fb8064 Mon Sep 17 00:00:00 2001 From: Will Rossiter Date: Tue, 1 Jul 2014 14:18:53 +1200 Subject: [PATCH 03/14] FIX ensure controller stack is updated when execution halted by an exception. See: https://github.com/silverstripe/silverstripe-framework/issues/2467 popCurrent would be incorrectly not pop a controller from the controller stack if an exception was throw from inside the handleRequest() method. This change captures the exception, ensures the controller is popped from the stack and passes the exception along. --- code/controllers/ContentController.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/controllers/ContentController.php b/code/controllers/ContentController.php index ce0bb148..0c7b4513 100644 --- a/code/controllers/ContentController.php +++ b/code/controllers/ContentController.php @@ -193,8 +193,18 @@ class ContentController extends Controller { } Director::set_current_page($this->data()); - $response = parent::handleRequest($request, $model); - Director::set_current_page(null); + + try { + $response = parent::handleRequest($request, $model); + + Director::set_current_page(null); + } catch(SS_HTTPResponse_Exception $e) { + $this->popCurrent(); + + Director::set_current_page(null); + + throw $e; + } } return $response; From 3eefd65f7ce213a7facf443671fce504632c578c Mon Sep 17 00:00:00 2001 From: Stig Lindqvist Date: Thu, 24 Jul 2014 14:34:06 +1200 Subject: [PATCH 04/14] BUG: Narrowing site tree search to one date shows no pages It turns out that the search doesn't work if you put the same date into both start and end date. Adding time to the query seems to fix this issue. --- code/controllers/CMSSiteTreeFilter.php | 4 ++-- tests/controller/CMSSiteTreeFilterTest.php | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index bac1a858..16944856 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -153,12 +153,12 @@ abstract class CMSSiteTreeFilter extends Object { case 'LastEditedFrom': $fromDate = new DateField(null, null, $val); - $query = $query->filter("LastEdited:GreaterThanOrEqual", $fromDate->dataValue()); + $query = $query->filter("LastEdited:GreaterThanOrEqual", $fromDate->dataValue().' 00:00:00'); break; case 'LastEditedTo': $toDate = new DateField(null, null, $val); - $query = $query->filter("LastEdited:LessThanOrEqual", $toDate->dataValue()); + $query = $query->filter("LastEdited:LessThanOrEqual", $toDate->dataValue().' 23:59:59'); break; case 'ClassName': diff --git a/tests/controller/CMSSiteTreeFilterTest.php b/tests/controller/CMSSiteTreeFilterTest.php index e364fcd3..fce3ca38 100644 --- a/tests/controller/CMSSiteTreeFilterTest.php +++ b/tests/controller/CMSSiteTreeFilterTest.php @@ -114,7 +114,19 @@ class CMSSiteTreeFilterTest extends SapphireTest { $f = new CMSSiteTreeFilter_StatusDraftPages(); $draftPage->delete(); $this->assertEmpty($f->isPageIncluded($draftPage)); - } + } + + public function testDateFromToLastSameDate() { + $draftPage = $this->objFromFixture('Page', 'page4'); + // Grab the date + $date = substr($draftPage->LastEdited, 0, 10); + // Filter with that date + $filter = New CMSSiteTreeFilter_Search(array( + 'LastEditedFrom' => $date, + 'LastEditedTo' => $date + )); + $this->assertTrue($filter->isPageIncluded($draftPage), 'Using the same date for from and to should show find that page'); + } public function testStatusRemovedFromDraftFilter() { $removedDraftPage = $this->objFromFixture('Page', 'page6'); From 45046f08e8c5710e86cb0aa41e59395c8a692ad6 Mon Sep 17 00:00:00 2001 From: Stig Lindqvist Date: Sun, 20 Jul 2014 11:46:15 +1200 Subject: [PATCH 05/14] Bug: CMS tree filters doesn't count the correct number of children for deleted pages This is a bug that combines Hierarchy, Versioned and LeftAndMain admins and CMSSiteTreeFilters. This bug can be reproduced by having a large site tree with enough deleted pages in it so it doesn't pre load all the children pages when initially opening an admin. Filter by either 'All pages including deleted' or 'Deleted pages'. For CMS users it will look like deleted pages are gone. The solution involves a couple of smaller fixes in both CMS and framework modules. 1) Ensure that 'numHistoricalChildren' are used instead of 'numChildren' when dealing with deleted pages 2) LeftAndMain::currentPage() deletes all the 'marking' cache previously built up by Hierarchy::markPartialTree() 3) Use Versioned::get_included_deleted() instead of raw DB queries against the DataObject tables when calculating parents in CMSSiteTreeFilter --- code/controllers/CMSSiteTreeFilter.php | 60 ++++++++++++++++++-------- code/model/SiteTree.php | 7 +-- code/model/VirtualPage.php | 8 +++- 3 files changed, 53 insertions(+), 22 deletions(-) diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index 16944856..54423f3b 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -35,7 +35,12 @@ abstract class CMSSiteTreeFilter extends Object { * @var String */ protected $childrenMethod = null; - + + /** + * @var string + */ + protected $numChildrenMethod = 'numChildren'; + /** * Returns a sorted array of all implementators of CMSSiteTreeFilter, suitable for use in a dropdown. * @@ -71,13 +76,21 @@ abstract class CMSSiteTreeFilter extends Object { } /** - * @return String Method on {@link Hierarchy} objects - * which is used to traverse into children relationships. + * Method on {@link Hierarchy} objects which is used to traverse into children relationships. + * + * @return String */ public function getChildrenMethod() { return $this->childrenMethod; } - + + /** + * Method on {@link Hierarchy} objects which is used find the number of children for a parent page + */ + public function getNumChildrenMethod() { + return $this->numChildrenMethod; + } + /** * @return Array Map of Page IDs to their respective ParentID values. */ @@ -101,17 +114,13 @@ abstract class CMSSiteTreeFilter extends Object { } while(!empty($parents)) { - $q = new SQLQuery(); - $q->setSelect(array('"ID"','"ParentID"')) - ->setFrom('"SiteTree"') - ->setWhere('"ID" in ('.implode(',',array_keys($parents)).')'); - + $q = Versioned::get_including_deleted('SiteTree', '"RecordID" in ('.implode(',',array_keys($parents)).')'); + $list = $q->map('ID', 'ParentID'); $parents = array(); - - foreach($q->execute() as $row) { - if ($row['ParentID']) $parents[$row['ParentID']] = true; - $this->_cache_ids[$row['ID']] = true; - $this->_cache_expanded[$row['ID']] = true; + foreach($list as $id => $parentID) { + if ($parentID) $parents[$parentID] = true; + $this->_cache_ids[$id] = true; + $this->_cache_expanded[$id] = true; } } } @@ -202,8 +211,16 @@ abstract class CMSSiteTreeFilter extends Object { * @subpackage content */ class CMSSiteTreeFilter_DeletedPages extends CMSSiteTreeFilter { - + + /** + * @var string + */ protected $childrenMethod = "AllHistoricalChildren"; + + /** + * @var string + */ + protected $numChildrenMethod = 'numHistoricalChildren'; static public function title() { return _t('CMSSiteTreeFilter_DeletedPages.Title', "All pages, including deleted"); @@ -302,8 +319,16 @@ class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter { * @subpackage content */ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter { - - protected $childrenMethod = "AllHistoricalChildren"; + + /** + * @var string + */ + protected $childrenMethod = "AllHistoricalChildren"; + + /** + * @var string + */ + protected $numChildrenMethod = 'numHistoricalChildren'; static public function title() { return _t('CMSSiteTreeFilter_StatusDeletedPages.Title', 'Deleted pages'); @@ -318,6 +343,7 @@ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter { public function pagesIncluded() { $pages = Versioned::get_including_deleted('SiteTree'); $pages = $this->applyDefaultFilters($pages); + $pages = $pages->filterByCallback(function($page) { // Doesn't exist on either stage or live return $page->IsDeletedFromStage && !$page->ExistsOnLive; diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index 02c4f0c2..45eabc12 100644 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -2732,13 +2732,14 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid return isset($stack[$level-1]) ? $stack[$level-1] : null; } - + /** * Return the CSS classes to apply to this node in the CMS tree * + * @param string $numChildrenMethod * @return string */ - public function CMSTreeClasses() { + public function CMSTreeClasses($numChildrenMethod="numChildren") { $classes = sprintf('class-%s', $this->class); if($this->HasBrokenFile || $this->HasBrokenLink) { $classes .= " BrokenLink"; @@ -2765,7 +2766,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid if($this->hasExtension('Translatable') && $controller->Locale != Translatable::default_locale() && !$this->isTranslation()) $classes .= " untranslated "; */ - $classes .= $this->markingClasses(); + $classes .= $this->markingClasses($numChildrenMethod); return $classes; } diff --git a/code/model/VirtualPage.php b/code/model/VirtualPage.php index e71627b7..460e66f9 100644 --- a/code/model/VirtualPage.php +++ b/code/model/VirtualPage.php @@ -387,8 +387,12 @@ class VirtualPage extends Page { $this->ImageTracking()->setByIdList($this->CopyContentFrom()->ImageTracking()->column('ID')); } - public function CMSTreeClasses() { - return parent::CMSTreeClasses() . ' VirtualPage-' . $this->CopyContentFrom()->ClassName; + /** + * @param string $numChildrenMethod + * @return string + */ + public function CMSTreeClasses($numChildrenMethod="numChildren") { + return parent::CMSTreeClasses($numChildrenMethod) . ' VirtualPage-' . $this->CopyContentFrom()->ClassName; } /** From 482c23f18e2cd33766ff762ae5bcb4f3d4e6f074 Mon Sep 17 00:00:00 2001 From: Stig Lindqvist Date: Mon, 28 Jul 2014 18:57:09 +1200 Subject: [PATCH 06/14] NEW Adding CMS sitetree filter to see the current 'live' site This adds a new filter that will show a content editor what the current published site-tree looks like for a visitor. This helps when there is a lot of drafted content that get included in the default filter 'All Pages' --- code/controllers/CMSSiteTreeFilter.php | 41 +++++++++++++++++++ .../behat/features/search-for-a-page.feature | 15 +++++++ 2 files changed, 56 insertions(+) diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index 54423f3b..1c13947f 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -202,6 +202,47 @@ abstract class CMSSiteTreeFilter extends Object { } } +/** + * This filter will display the SiteTree as a site visitor might see the site, i.e only the + * pages that is currently published. + * + * Note that this does not check canView permissions that might hide pages from certain visitors + */ +class CMSSIteTreeFilter_PublishedPages extends CMSSiteTreeFilter { + + /** + * @return string + */ + static public function title() { + return _t('CMSSIteTreeFilter_PublishedPages.Title', "Published pages"); + } + + /** + * @var string + */ + protected $childrenMethod = "AllHistoricalChildren"; + + /** + * @var string + */ + protected $numChildrenMethod = 'numHistoricalChildren'; + + /** + * Filters out all pages who's status who's status that doesn't exist on live + * + * @see {@link SiteTree::getStatusFlags()} + * @return array + */ + public function pagesIncluded() { + $pages = Versioned::get_including_deleted('SiteTree'); + $pages = $this->applyDefaultFilters($pages); + $pages = $pages->filterByCallback(function($page) { + return $page->ExistsOnLive; + }); + return $this->mapIDs($pages); + } +} + /** * Works a bit different than the other filters: * Shows all pages *including* those deleted from stage and live. diff --git a/tests/behat/features/search-for-a-page.feature b/tests/behat/features/search-for-a-page.feature index e48c2967..5d799160 100644 --- a/tests/behat/features/search-for-a-page.feature +++ b/tests/behat/features/search-for-a-page.feature @@ -96,3 +96,18 @@ Feature: Search for a page And I press the "Apply Filter" button Then I should see "Live Page" in the tree And I should not see "About Us" in the tree + + Scenario: I can include only live pages in my search + Given a "page" "Live Page" + And the "page" "Live Page" is published + And a "page" "Draft Page" + And a "page" "Draft Page" is unpublished + And a "page" "Deleted Page" + And the "page" "Deleted Page" is unpublished + And the "page" "Deleted Page" is deleted + + When I select "Published pages" from "Pages" + And I press the "Apply Filter" button + Then I should not see "Draft Page" in the tree + And I should not see "Deleted Page" in the tree + But I should see "Live Page" in the tree \ No newline at end of file From 20df063f431da53da18a96766e78dd17740b191f Mon Sep 17 00:00:00 2001 From: "Jakx.nz" Date: Fri, 1 Aug 2014 10:37:11 +1200 Subject: [PATCH 07/14] #1067 No updateEditForm hook on CMSFieldAddController::getEditForm() --- code/controllers/CMSFileAddController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/CMSFileAddController.php b/code/controllers/CMSFileAddController.php index 67c629d2..d692b44a 100644 --- a/code/controllers/CMSFileAddController.php +++ b/code/controllers/CMSFileAddController.php @@ -108,6 +108,8 @@ class CMSFileAddController extends LeftAndMain { ); $form->loadDataFrom($folder); + $this->extend('updateEditForm', $form); + return $form; } From 42755ebf5b386fa4f2ff4644bcf487a41ba0ab4f Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Fri, 1 Aug 2014 12:03:07 +1200 Subject: [PATCH 08/14] Tests for https://github.com/silverstripe/silverstripe-framework/pull/3347 --- tests/behat/features/insert-a-link.feature | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/tests/behat/features/insert-a-link.feature b/tests/behat/features/insert-a-link.feature index be57ac3c..055be288 100644 --- a/tests/behat/features/insert-a-link.feature +++ b/tests/behat/features/insert-a-link.feature @@ -7,6 +7,7 @@ So that I can link to a external website or a page on my site Background: Given a "page" "Home" And a "page" "About Us" has the "Content" "My awesome content" + And a "page" "Details" has the "Content" "My sub-par content" And a "file" "assets/file1.jpg" And I am logged in with "ADMIN" permissions And I go to "/admin/pages" @@ -24,6 +25,18 @@ So that I can link to a external website or a page on my site # Required to avoid "unsaved changes" browser dialog Then I press the "Save draft" button + Scenario: I can link to an anchor in an internal page + Given I select "awesome" in the "Content" HTML field + And I press the "Insert Link" button + And I select the "Page on the site" radio button + And I fill in the "Page" dropdown with "Details" + And I wait for 1 second + And I select "youranchor" from "Form_EditorToolbarLinkForm_AnchorSelector" + And I press the "Insert link" button + Then the "Content" HTML field should contain "awesome" + # Required to avoid "unsaved changes" browser dialog + Then I press the "Save draft" button + Scenario: I can link to an external URL Given I select "awesome" in the "Content" HTML field And I press the "Insert Link" button @@ -46,18 +59,18 @@ So that I can link to a external website or a page on my site Then I press the "Save draft" button Scenario: I can link to an anchor - Given I fill in the "Content" HTML field with "

My awesome content

" + Given I fill in the "Content" HTML field with "

My awesome content

" And I select "awesome" in the "Content" HTML field When I press the "Insert Link" button When I select the "Anchor on this page" radio button - And I fill in "myanchor" for "Anchor" + And I select "myanchor" from "Form_EditorToolbarLinkForm_AnchorSelector" And I press the "Insert link" button Then the "Content" HTML field should contain "awesome" # Required to avoid "unsaved changes" browser dialog Then I press the "Save draft" button Scenario: I can edit a link - Given I fill in the "Content" HTML field with "

My awesome content" + Given I fill in the "Content" HTML field with "

My awesome content" And I select "awesome" in the "Content" HTML field When I press the "Insert Link" button # We need to hard-code the id attribute, if you say 'Then the URL field', it picks up URLSegment instead. @@ -70,10 +83,10 @@ So that I can link to a external website or a page on my site Then I press the "Save draft" button Scenario: I can remove a link - Given I fill in the "Content" HTML field with "My awesome content" + Given I fill in the "Content" HTML field with "My awesome content" And I select "awesome" in the "Content" HTML field When I press the "Unlink" button Then the "Content" HTML field should contain "My awesome content" And the "Content" HTML field should not contain "http://silverstripe.org" # Required to avoid "unsaved changes" browser dialog - Then I press the "Save draft" button \ No newline at end of file + Then I press the "Save draft" button From 407033b07617ddb3cb9126da2e2506c5dd58f2b8 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Tue, 5 Aug 2014 15:01:52 +1200 Subject: [PATCH 09/14] Update translations --- javascript/lang/el.js | 45 +++++++ javascript/lang/eo.js | 45 +++++++ javascript/lang/is.js | 45 +++++++ javascript/lang/nl.js | 40 +++--- javascript/lang/sl.js | 45 +++++++ javascript/lang/src/el.js | 39 ++++++ javascript/lang/src/eo.js | 39 ++++++ javascript/lang/src/is.js | 39 ++++++ javascript/lang/src/nb.js | 39 ++++++ javascript/lang/src/nl.js | 40 +++--- javascript/lang/src/sl.js | 39 ++++++ lang/af.yml | 40 ++++++ lang/cs.yml | 2 + lang/el.yml | 248 ++++++++++++++++++++++++++++++++++++++ lang/eo.yml | 26 ++++ lang/es.yml | 2 + lang/fi.yml | 2 + lang/nl.yml | 227 +++++++++++++++++----------------- lang/pl.yml | 13 +- lang/ru.yml | 9 ++ lang/sk.yml | 2 + 21 files changed, 874 insertions(+), 152 deletions(-) create mode 100644 javascript/lang/el.js create mode 100644 javascript/lang/eo.js create mode 100644 javascript/lang/is.js create mode 100644 javascript/lang/sl.js create mode 100644 javascript/lang/src/el.js create mode 100644 javascript/lang/src/eo.js create mode 100644 javascript/lang/src/is.js create mode 100644 javascript/lang/src/nb.js create mode 100644 javascript/lang/src/sl.js diff --git a/javascript/lang/el.js b/javascript/lang/el.js new file mode 100644 index 00000000..e027f427 --- /dev/null +++ b/javascript/lang/el.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/el.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('el', { + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "You have to save a page before adding children underneath it", + "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node", + "CMSMAIN.ERRORADDINGPAGE": "Error adding page", + "CMSMAIN.FILTEREDTREE": "Filtered tree to only show changed pages", + "CMSMAIN.ERRORFILTERPAGES": "Could not filter tree to only show changed pages
%s", + "CMSMAIN.ERRORUNFILTER": "Unfiltered tree", + "CMSMAIN.PUBLISHINGPAGES": "Publishing pages...", + "CMSMAIN.SELECTONEPAGE": "Please select at least 1 page.", + "CMSMAIN.ERRORPUBLISHING": "Error publishing pages", + "CMSMAIN.REALLYDELETEPAGES": "Do you really want to delete the %s marked pages?", + "CMSMAIN.DELETINGPAGES": "Deleting pages...", + "CMSMAIN.ERRORDELETINGPAGES": "Error deleting pages", + "CMSMAIN.PUBLISHING": "Publishing...", + "CMSMAIN.RESTORING": "Restoring...", + "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.SAVING": "saving...", + "CMSMAIN.SELECTMOREPAGES": "You have %s pages selected.\n\nDo you really want to perform this action?", + "CMSMAIN.ALERTCLASSNAME": "The page type will be updated after the page is saved", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Do you really want to delete %s folders?", + "AssetTableField.REALLYDELETE": "Do you really want to delete the marked files?", + "AssetTableField.MOVING": "Moving %s file(s)", + "CMSMAIN.AddSearchCriteria": "Add Criteria", + "WidgetAreaEditor.TOOMANY": "Sorry, you have reached the maximum number of widgets in this area", + "AssetAdmin.ConfirmDelete": "Do you really want to delete this folder and all contained files?", + "Folder.Name": "Folder name", + "Tree.AddSubPage": "Προσθήκη νέας σελίδας εδώ", + "Tree.Duplicate": "Duplicate", + "Tree.EditPage": "Edit", + "Tree.ThisPageOnly": "Μόνο αυτή η σελίδα", + "Tree.ThisPageAndSubpages": "This page and subpages", + "Tree.ShowAsList": "Show children as list", + "CMSMain.ConfirmRestoreFromLive": "Do you really want to copy the published content to the draft site?", + "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "URLSEGMENT.Edit": "Επεξεργασία", + "URLSEGMENT.OK": "OK", + "URLSEGMENT.Cancel": "Άκυρο" +}); +} \ No newline at end of file diff --git a/javascript/lang/eo.js b/javascript/lang/eo.js new file mode 100644 index 00000000..bbaf85a8 --- /dev/null +++ b/javascript/lang/eo.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/eo.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('eo', { + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Necesas konservi paĝon antaŭ ol enmeti idojn sub ĝi", + "CMSMAIN.CANTADDCHILDREN": "Vi ne povas aldoni idojn al la elektita nodo", + "CMSMAIN.ERRORADDINGPAGE": "Eraro okazis enmetante paĝon", + "CMSMAIN.FILTEREDTREE": "Filtrita arbo vidigu nur ŝanĝitajn paĝojn", + "CMSMAIN.ERRORFILTERPAGES": "Ne eblis filtri la arbon por vidigi nur ŝanĝitajn paĝojn
%s", + "CMSMAIN.ERRORUNFILTER": "Nefiltrita arbo", + "CMSMAIN.PUBLISHINGPAGES": "Publikigas paĝojn...", + "CMSMAIN.SELECTONEPAGE": "Bonvole elektu almenaŭ 1 paĝon.", + "CMSMAIN.ERRORPUBLISHING": "Eraro okazis publikigante paĝojn", + "CMSMAIN.REALLYDELETEPAGES": "Ĉu vi vere volas forigi la %s markitajn paĝojn?", + "CMSMAIN.DELETINGPAGES": "Forigas paĝojn...", + "CMSMAIN.ERRORDELETINGPAGES": "Eraro okazis forigante paĝojn", + "CMSMAIN.PUBLISHING": "Publikigas...", + "CMSMAIN.RESTORING": "Restaŭras...", + "CMSMAIN.ERRORREVERTING": "Okazis eraro anstataŭigante per publika enhavo", + "CMSMAIN.SAVING": "konservas...", + "CMSMAIN.SELECTMOREPAGES": "Vi elektis %s paĝojn.\n\nĈu vi vere volas fari tiun agon?", + "CMSMAIN.ALERTCLASSNAME": "La paĝotipo aktualiĝos kiam la paĝo estas konservita", + "CMSMAIN.URLSEGMENTVALIDATION": "URL konsistu el literoj, ciferoj kaj streketoj.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Ĉi vi vere volas forigi %s dosierujojn?", + "AssetTableField.REALLYDELETE": "Ĉu vi vere volas forigi la markitajn dosierojn?", + "AssetTableField.MOVING": "Movas %s dosiero(j)n", + "CMSMAIN.AddSearchCriteria": "Aldoni kriteriojn", + "WidgetAreaEditor.TOOMANY": "Bedaŭrinde vi atingis la maksimuman nombron da fenestraĵoj por la zono", + "AssetAdmin.ConfirmDelete": "Ĉu vi vere volas forigi ĉi tiun dosierujon kaj ĉiujn dosierojn en ĝi?", + "Folder.Name": "Nomo de dosierujo", + "Tree.AddSubPage": "Aldoni novan paĝon ĉi tie", + "Tree.Duplicate": "Duobligi", + "Tree.EditPage": "Redakti", + "Tree.ThisPageOnly": "Nur ĉi tiu paĝo", + "Tree.ThisPageAndSubpages": "Ĉi tiu paĝo kaj subpaĝoj", + "Tree.ShowAsList": "Vidigi idojn kiel liston", + "CMSMain.ConfirmRestoreFromLive": "Ĉu vi vere volas kopii la publikigitan enhavon al la malneta retejo?", + "CMSMain.RollbackToVersion": "Cu vi vere volas malfare restaŭri al versio #%s de ĉi tiu paĝo?", + "URLSEGMENT.Edit": "Redakti", + "URLSEGMENT.OK": "Akcepti", + "URLSEGMENT.Cancel": "Rezigni" +}); +} \ No newline at end of file diff --git a/javascript/lang/is.js b/javascript/lang/is.js new file mode 100644 index 00000000..ff772937 --- /dev/null +++ b/javascript/lang/is.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/is.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('is', { + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Þú verður að vista síðuna áður bætt er við einhverju undir hana", + "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node", + "CMSMAIN.ERRORADDINGPAGE": "Vandamál kom upp við að bæta við síðu", + "CMSMAIN.FILTEREDTREE": "Filterað tré til að sýna aðeins breyttar síður", + "CMSMAIN.ERRORFILTERPAGES": "Gat ekki flokkað tréið til að sýna aðeins breyttar síður
%s° ", + "CMSMAIN.ERRORUNFILTER": "Óflokkað tré", + "CMSMAIN.PUBLISHINGPAGES": "Birti síður...", + "CMSMAIN.SELECTONEPAGE": "Please select at least 1 page.", + "CMSMAIN.ERRORPUBLISHING": "Villa kom við birtingu síðu", + "CMSMAIN.REALLYDELETEPAGES": "Ertu viss um að þú viljir eyða %s merktum síðum?", + "CMSMAIN.DELETINGPAGES": "Eyði síðum...", + "CMSMAIN.ERRORDELETINGPAGES": "Vandamál kom upp við eyðingu síðna", + "CMSMAIN.PUBLISHING": "Birti...", + "CMSMAIN.RESTORING": "Endurvek...", + "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.SAVING": "vista...", + "CMSMAIN.SELECTMOREPAGES": "Þú hefur valið %s síður.\n\nErtu viss um að þú viljir halda áfram?", + "CMSMAIN.ALERTCLASSNAME": "Tegund siðu verður uppfært eftir vistun síðu", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Ertu viss um að þú viljir eyða %s möppunni?", + "AssetTableField.REALLYDELETE": "Ertu viss um að þú viljir eyða merktum skrám?", + "AssetTableField.MOVING": "Færi %s skrá(r)", + "CMSMAIN.AddSearchCriteria": "Add Criteria", + "WidgetAreaEditor.TOOMANY": "Sorry, you have reached the maximum number of widgets in this area", + "AssetAdmin.ConfirmDelete": "Ertu viss um að þú viljir eyða þessari möppu og skrám sem tilheyra henni", + "Folder.Name": "Nafn möppu", + "Tree.AddSubPage": "Bæta við nýrri síðu hér", + "Tree.Duplicate": "Fjölfalda", + "Tree.EditPage": "Breyta", + "Tree.ThisPageOnly": "Aðeins þessi síða", + "Tree.ThisPageAndSubpages": "Þessi síða og undirsíður", + "Tree.ShowAsList": "Show children as list", + "CMSMain.ConfirmRestoreFromLive": "Ertu viss um að þú viljir afrita birt efni yfir á drög?", + "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "URLSEGMENT.Edit": "Breyta", + "URLSEGMENT.OK": "Allt í lagi", + "URLSEGMENT.Cancel": "Hætta við" +}); +} \ No newline at end of file diff --git a/javascript/lang/nl.js b/javascript/lang/nl.js index 4e763c50..20f0ad2b 100644 --- a/javascript/lang/nl.js +++ b/javascript/lang/nl.js @@ -4,40 +4,40 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); } else { ss.i18n.addDictionary('nl', { - "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "U moet de pagina opslaan voordat u kinderen kan toevoegen", - "CMSMAIN.CANTADDCHILDREN": "Je kunt geen kinderen toevoegen aan de geselecteerde knoop", - "CMSMAIN.ERRORADDINGPAGE": "Fout toevoegen pagina", - "CMSMAIN.FILTEREDTREE": "Gefilterd om alleen aangepaste paginas te tonen", - "CMSMAIN.ERRORFILTERPAGES": "Kon niet filteren om alleen paginas
%s te tonen.", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "U moet de pagina opslaan voordat u onderliggende pagina's kan toevoegen", + "CMSMAIN.CANTADDCHILDREN": "U kan geen kinderen toevoegen aan de geselecteerde knoop", + "CMSMAIN.ERRORADDINGPAGE": "Fout bij toevoegen van de pagina", + "CMSMAIN.FILTEREDTREE": "Gefilterd om alleen aangepaste pagina's te tonen", + "CMSMAIN.ERRORFILTERPAGES": "Kon de paginastructuur niet filteren om alleen aangepaste pagina's te tonen.
%s", "CMSMAIN.ERRORUNFILTER": "Ongefilterde structuur", - "CMSMAIN.PUBLISHINGPAGES": "Paginas aan het publiceren...", + "CMSMAIN.PUBLISHINGPAGES": "Pagina's aan het publiceren...", "CMSMAIN.SELECTONEPAGE": "Selecteer minstens 1 pagina.", - "CMSMAIN.ERRORPUBLISHING": "Verwijder gepubliceerde paginas", - "CMSMAIN.REALLYDELETEPAGES": "Wil je echt de geselecteerde %s pagina's verwijderen?", - "CMSMAIN.DELETINGPAGES": "Paginas verwijderen...", - "CMSMAIN.ERRORDELETINGPAGES": "Fout bij verwijderen paginas", + "CMSMAIN.ERRORPUBLISHING": "Fout bij het publiceren van de pagina's", + "CMSMAIN.REALLYDELETEPAGES": "Wilt u echt de %s geselecteerde pagina's verwijderen?", + "CMSMAIN.DELETINGPAGES": "Pagina's verwijderen...", + "CMSMAIN.ERRORDELETINGPAGES": "Fout bij verwijderen van de pagina's", "CMSMAIN.PUBLISHING": "Publiceren...", "CMSMAIN.RESTORING": "Herstellen...", - "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.ERRORREVERTING": "Fout bij het terugdraaien naar de gepubliceerde pagina", "CMSMAIN.SAVING": "opslaan...", - "CMSMAIN.SELECTMOREPAGES": "Je hebt pagina(s) %s geselecteerd. \n\nWil je deze actie uitvoeren?", - "CMSMAIN.ALERTCLASSNAME": "Het paginatype wordt aangepast na opslaan van de pagina", + "CMSMAIN.SELECTMOREPAGES": "U hebt pagina(s) %s geselecteerd. \n\nWilt u deze actie uitvoeren?", + "CMSMAIN.ALERTCLASSNAME": "Het paginatype wordt aangepast na het opslaan van de pagina", "CMSMAIN.URLSEGMENTVALIDATION": "URLs kunnen alleen bestaan uit letters, cijfers en koppeltekens.", - "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Wil je deze mappen %s verwijderen?", - "AssetTableField.REALLYDELETE": "Wil je de geselecteerde bestanden verwijderen?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Wil je echt %s mappen verwijderen?", + "AssetTableField.REALLYDELETE": "Wilt u de geselecteerde bestanden verwijderen?", "AssetTableField.MOVING": "Verplaats %s bestand(en)", "CMSMAIN.AddSearchCriteria": "Voeg criteria toe", - "WidgetAreaEditor.TOOMANY": "Sorry, je hebt de maximaal aantal widgets bereikt", - "AssetAdmin.ConfirmDelete": "Wil je deze map verwijderen en alle bestanden??", + "WidgetAreaEditor.TOOMANY": "Sorry, u hebt de maximaal aantal widgets bereikt in dit gebied", + "AssetAdmin.ConfirmDelete": "Wilt u deze map verwijderen, en alle bestanden er in?", "Folder.Name": "Mapnaam", "Tree.AddSubPage": "Voeg nieuwe pagina toe", "Tree.Duplicate": "Dupliceren", "Tree.EditPage": "Aanpassen", "Tree.ThisPageOnly": "Enkel deze pagina", "Tree.ThisPageAndSubpages": "Deze pagina en subpagina's", - "Tree.ShowAsList": "Toon kinderen als lijst", - "CMSMain.ConfirmRestoreFromLive": "Do you really want to copy the published content to the draft site?", - "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "Tree.ShowAsList": "Toon onderliggende pagina's als lijst", + "CMSMain.ConfirmRestoreFromLive": "Wil je echt de gepubliceerde inhoud kopiëren naar de concept site?", + "CMSMain.RollbackToVersion": "Wil je echt terugdraaien naar versie #%s van deze pagina?", "URLSEGMENT.Edit": "Aanpassen", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Annuleren" diff --git a/javascript/lang/sl.js b/javascript/lang/sl.js new file mode 100644 index 00000000..eb5927be --- /dev/null +++ b/javascript/lang/sl.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/sl.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('sl', { + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Stran je potrebno shraniti pred dodajanjem otrok", + "CMSMAIN.CANTADDCHILDREN": "Vozlišču ne morete dodati otrok", + "CMSMAIN.ERRORADDINGPAGE": "Napaka pri dodajanju strani", + "CMSMAIN.FILTEREDTREE": "Pokaži samo spremenjene strani", + "CMSMAIN.ERRORFILTERPAGES": "Neuspešno filtriranje zgolj spremenljenih strani
%s", + "CMSMAIN.ERRORUNFILTER": "Nefiltrirano drevo", + "CMSMAIN.PUBLISHINGPAGES": "Objavljanje strani ...", + "CMSMAIN.SELECTONEPAGE": "Izberite vsaj 1 stran", + "CMSMAIN.ERRORPUBLISHING": "Napaka pri objavljanju strani", + "CMSMAIN.REALLYDELETEPAGES": "Izbriši %s označenih strani?", + "CMSMAIN.DELETINGPAGES": "Brisanje strani ...", + "CMSMAIN.ERRORDELETINGPAGES": "Napaka pri brisanju strani", + "CMSMAIN.PUBLISHING": "Objavljanje ...", + "CMSMAIN.RESTORING": "Obnavljanje ...", + "CMSMAIN.ERRORREVERTING": "Napaka pri povrnitvi na živo vsebino", + "CMSMAIN.SAVING": "shranjevanje ...", + "CMSMAIN.SELECTMOREPAGES": "Izbranih je %s strani.\n\nIzvedem izbrano akcijo?", + "CMSMAIN.ALERTCLASSNAME": "Tipska stran bo posodobljena po shranjevanju strani", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-ji lahko vsebujejo le alfanumerične znake in pomišljaje.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Izbrišem %s map?", + "AssetTableField.REALLYDELETE": "Izbrišem označene datoteke?", + "AssetTableField.MOVING": "Premikam %s stran(i)", + "CMSMAIN.AddSearchCriteria": "Dodaj kriterij", + "WidgetAreaEditor.TOOMANY": "Ups, dosegli ste največje možno število gradnikov na tem področju", + "AssetAdmin.ConfirmDelete": "Izbrišem mapo in vsebovane datoteke?", + "Folder.Name": "Ime mape", + "Tree.AddSubPage": "Dodaj novo stran tukaj", + "Tree.Duplicate": "Podvoji", + "Tree.EditPage": "Uredi", + "Tree.ThisPageOnly": "Samo to stran", + "Tree.ThisPageAndSubpages": "To stran in podstrani", + "Tree.ShowAsList": "Prikaži otroke kot seznam", + "CMSMain.ConfirmRestoreFromLive": "Kopiram objavljeno vsebino na osnutek strani?", + "CMSMain.RollbackToVersion": "Obnovim na verzijo #%s te strani?", + "URLSEGMENT.Edit": "Uredi", + "URLSEGMENT.OK": "OK", + "URLSEGMENT.Cancel": "Prekliči" +}); +} \ No newline at end of file diff --git a/javascript/lang/src/el.js b/javascript/lang/src/el.js new file mode 100644 index 00000000..3facc175 --- /dev/null +++ b/javascript/lang/src/el.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "You have to save a page before adding children underneath it", + "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node", + "CMSMAIN.ERRORADDINGPAGE": "Error adding page", + "CMSMAIN.FILTEREDTREE": "Filtered tree to only show changed pages", + "CMSMAIN.ERRORFILTERPAGES": "Could not filter tree to only show changed pages
%s", + "CMSMAIN.ERRORUNFILTER": "Unfiltered tree", + "CMSMAIN.PUBLISHINGPAGES": "Publishing pages...", + "CMSMAIN.SELECTONEPAGE": "Please select at least 1 page.", + "CMSMAIN.ERRORPUBLISHING": "Error publishing pages", + "CMSMAIN.REALLYDELETEPAGES": "Do you really want to delete the %s marked pages?", + "CMSMAIN.DELETINGPAGES": "Deleting pages...", + "CMSMAIN.ERRORDELETINGPAGES": "Error deleting pages", + "CMSMAIN.PUBLISHING": "Publishing...", + "CMSMAIN.RESTORING": "Restoring...", + "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.SAVING": "saving...", + "CMSMAIN.SELECTMOREPAGES": "You have %s pages selected.\n\nDo you really want to perform this action?", + "CMSMAIN.ALERTCLASSNAME": "The page type will be updated after the page is saved", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Do you really want to delete %s folders?", + "AssetTableField.REALLYDELETE": "Do you really want to delete the marked files?", + "AssetTableField.MOVING": "Moving %s file(s)", + "CMSMAIN.AddSearchCriteria": "Add Criteria", + "WidgetAreaEditor.TOOMANY": "Sorry, you have reached the maximum number of widgets in this area", + "AssetAdmin.ConfirmDelete": "Do you really want to delete this folder and all contained files?", + "Folder.Name": "Folder name", + "Tree.AddSubPage": "Προσθήκη νέας σελίδας εδώ", + "Tree.Duplicate": "Duplicate", + "Tree.EditPage": "Edit", + "Tree.ThisPageOnly": "Μόνο αυτή η σελίδα", + "Tree.ThisPageAndSubpages": "This page and subpages", + "Tree.ShowAsList": "Show children as list", + "CMSMain.ConfirmRestoreFromLive": "Do you really want to copy the published content to the draft site?", + "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "URLSEGMENT.Edit": "Επεξεργασία", + "URLSEGMENT.OK": "OK", + "URLSEGMENT.Cancel": "Άκυρο" +} \ No newline at end of file diff --git a/javascript/lang/src/eo.js b/javascript/lang/src/eo.js new file mode 100644 index 00000000..3aec6f4e --- /dev/null +++ b/javascript/lang/src/eo.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Necesas konservi paĝon antaŭ ol enmeti idojn sub ĝi", + "CMSMAIN.CANTADDCHILDREN": "Vi ne povas aldoni idojn al la elektita nodo", + "CMSMAIN.ERRORADDINGPAGE": "Eraro okazis enmetante paĝon", + "CMSMAIN.FILTEREDTREE": "Filtrita arbo vidigu nur ŝanĝitajn paĝojn", + "CMSMAIN.ERRORFILTERPAGES": "Ne eblis filtri la arbon por vidigi nur ŝanĝitajn paĝojn
%s", + "CMSMAIN.ERRORUNFILTER": "Nefiltrita arbo", + "CMSMAIN.PUBLISHINGPAGES": "Publikigas paĝojn...", + "CMSMAIN.SELECTONEPAGE": "Bonvole elektu almenaŭ 1 paĝon.", + "CMSMAIN.ERRORPUBLISHING": "Eraro okazis publikigante paĝojn", + "CMSMAIN.REALLYDELETEPAGES": "Ĉu vi vere volas forigi la %s markitajn paĝojn?", + "CMSMAIN.DELETINGPAGES": "Forigas paĝojn...", + "CMSMAIN.ERRORDELETINGPAGES": "Eraro okazis forigante paĝojn", + "CMSMAIN.PUBLISHING": "Publikigas...", + "CMSMAIN.RESTORING": "Restaŭras...", + "CMSMAIN.ERRORREVERTING": "Okazis eraro anstataŭigante per publika enhavo", + "CMSMAIN.SAVING": "konservas...", + "CMSMAIN.SELECTMOREPAGES": "Vi elektis %s paĝojn.\n\nĈu vi vere volas fari tiun agon?", + "CMSMAIN.ALERTCLASSNAME": "La paĝotipo aktualiĝos kiam la paĝo estas konservita", + "CMSMAIN.URLSEGMENTVALIDATION": "URL konsistu el literoj, ciferoj kaj streketoj.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Ĉi vi vere volas forigi %s dosierujojn?", + "AssetTableField.REALLYDELETE": "Ĉu vi vere volas forigi la markitajn dosierojn?", + "AssetTableField.MOVING": "Movas %s dosiero(j)n", + "CMSMAIN.AddSearchCriteria": "Aldoni kriteriojn", + "WidgetAreaEditor.TOOMANY": "Bedaŭrinde vi atingis la maksimuman nombron da fenestraĵoj por la zono", + "AssetAdmin.ConfirmDelete": "Ĉu vi vere volas forigi ĉi tiun dosierujon kaj ĉiujn dosierojn en ĝi?", + "Folder.Name": "Nomo de dosierujo", + "Tree.AddSubPage": "Aldoni novan paĝon ĉi tie", + "Tree.Duplicate": "Duobligi", + "Tree.EditPage": "Redakti", + "Tree.ThisPageOnly": "Nur ĉi tiu paĝo", + "Tree.ThisPageAndSubpages": "Ĉi tiu paĝo kaj subpaĝoj", + "Tree.ShowAsList": "Vidigi idojn kiel liston", + "CMSMain.ConfirmRestoreFromLive": "Ĉu vi vere volas kopii la publikigitan enhavon al la malneta retejo?", + "CMSMain.RollbackToVersion": "Cu vi vere volas malfare restaŭri al versio #%s de ĉi tiu paĝo?", + "URLSEGMENT.Edit": "Redakti", + "URLSEGMENT.OK": "Akcepti", + "URLSEGMENT.Cancel": "Rezigni" +} \ No newline at end of file diff --git a/javascript/lang/src/is.js b/javascript/lang/src/is.js new file mode 100644 index 00000000..ffd57996 --- /dev/null +++ b/javascript/lang/src/is.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Þú verður að vista síðuna áður bætt er við einhverju undir hana", + "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node", + "CMSMAIN.ERRORADDINGPAGE": "Vandamál kom upp við að bæta við síðu", + "CMSMAIN.FILTEREDTREE": "Filterað tré til að sýna aðeins breyttar síður", + "CMSMAIN.ERRORFILTERPAGES": "Gat ekki flokkað tréið til að sýna aðeins breyttar síður
%s° ", + "CMSMAIN.ERRORUNFILTER": "Óflokkað tré", + "CMSMAIN.PUBLISHINGPAGES": "Birti síður...", + "CMSMAIN.SELECTONEPAGE": "Please select at least 1 page.", + "CMSMAIN.ERRORPUBLISHING": "Villa kom við birtingu síðu", + "CMSMAIN.REALLYDELETEPAGES": "Ertu viss um að þú viljir eyða %s merktum síðum?", + "CMSMAIN.DELETINGPAGES": "Eyði síðum...", + "CMSMAIN.ERRORDELETINGPAGES": "Vandamál kom upp við eyðingu síðna", + "CMSMAIN.PUBLISHING": "Birti...", + "CMSMAIN.RESTORING": "Endurvek...", + "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.SAVING": "vista...", + "CMSMAIN.SELECTMOREPAGES": "Þú hefur valið %s síður.\n\nErtu viss um að þú viljir halda áfram?", + "CMSMAIN.ALERTCLASSNAME": "Tegund siðu verður uppfært eftir vistun síðu", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Ertu viss um að þú viljir eyða %s möppunni?", + "AssetTableField.REALLYDELETE": "Ertu viss um að þú viljir eyða merktum skrám?", + "AssetTableField.MOVING": "Færi %s skrá(r)", + "CMSMAIN.AddSearchCriteria": "Add Criteria", + "WidgetAreaEditor.TOOMANY": "Sorry, you have reached the maximum number of widgets in this area", + "AssetAdmin.ConfirmDelete": "Ertu viss um að þú viljir eyða þessari möppu og skrám sem tilheyra henni", + "Folder.Name": "Nafn möppu", + "Tree.AddSubPage": "Bæta við nýrri síðu hér", + "Tree.Duplicate": "Fjölfalda", + "Tree.EditPage": "Breyta", + "Tree.ThisPageOnly": "Aðeins þessi síða", + "Tree.ThisPageAndSubpages": "Þessi síða og undirsíður", + "Tree.ShowAsList": "Show children as list", + "CMSMain.ConfirmRestoreFromLive": "Ertu viss um að þú viljir afrita birt efni yfir á drög?", + "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "URLSEGMENT.Edit": "Breyta", + "URLSEGMENT.OK": "Allt í lagi", + "URLSEGMENT.Cancel": "Hætta við" +} \ No newline at end of file diff --git a/javascript/lang/src/nb.js b/javascript/lang/src/nb.js new file mode 100644 index 00000000..3a2b54e9 --- /dev/null +++ b/javascript/lang/src/nb.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Du må lagre siden før du kan legge til undersider.", + "CMSMAIN.CANTADDCHILDREN": "You can't add children to the selected node", + "CMSMAIN.ERRORADDINGPAGE": "Feil ved opprettelse av side", + "CMSMAIN.FILTEREDTREE": "Filtered tree to only show changed pages", + "CMSMAIN.ERRORFILTERPAGES": "Could not filter tree to only show changed pages
%s", + "CMSMAIN.ERRORUNFILTER": "Unfiltered tree", + "CMSMAIN.PUBLISHINGPAGES": "Publiserer sider ...", + "CMSMAIN.SELECTONEPAGE": "Vennligst velg minst én side.", + "CMSMAIN.ERRORPUBLISHING": "Feil ved publisering av sider", + "CMSMAIN.REALLYDELETEPAGES": "Vil du virkelig slette de %s merkede sidene?", + "CMSMAIN.DELETINGPAGES": "Sletter sider ...", + "CMSMAIN.ERRORDELETINGPAGES": "Feil ved sletting av sider", + "CMSMAIN.PUBLISHING": "Publiserer ...", + "CMSMAIN.RESTORING": "Gjenoppretter ...", + "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.SAVING": "lagrer ...", + "CMSMAIN.SELECTMOREPAGES": "Du har valgt %s sider.\n\nVil du virkelig utføre denne handlingen?", + "CMSMAIN.ALERTCLASSNAME": "Sidetypen vil bare bli oppdatert når siden blir lagret", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs can only be made up of letters, digits and hyphens.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Vil du virkelig slette %s mapper?", + "AssetTableField.REALLYDELETE": "Vil du virkelig slette de merkede filene?", + "AssetTableField.MOVING": "Flytter %s file(r)", + "CMSMAIN.AddSearchCriteria": "Legg til kriterie", + "WidgetAreaEditor.TOOMANY": "Beklager, du har for mange \"widgets\" i dette området", + "AssetAdmin.ConfirmDelete": "Vil du virkelig slette denne mappen og alle filer som ligger i den?", + "Folder.Name": "Mappenavn", + "Tree.AddSubPage": "Legg til ny side her", + "Tree.Duplicate": "Dupliser", + "Tree.EditPage": "Rediger", + "Tree.ThisPageOnly": "Bare denne siden", + "Tree.ThisPageAndSubpages": "Denne siden og undersider", + "Tree.ShowAsList": "Vis undersider som en liste", + "CMSMain.ConfirmRestoreFromLive": "Vil du virkelig kopiere den publiserte siden til utkastsiden?", + "CMSMain.RollbackToVersion": "Vil du virkelig rulle tilbake til versjon #%s av denne siden?", + "URLSEGMENT.Edit": "Rediger", + "URLSEGMENT.OK": "OK", + "URLSEGMENT.Cancel": "Avbryt" +} \ No newline at end of file diff --git a/javascript/lang/src/nl.js b/javascript/lang/src/nl.js index 99ca390c..8fc34e07 100644 --- a/javascript/lang/src/nl.js +++ b/javascript/lang/src/nl.js @@ -1,38 +1,38 @@ { - "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "U moet de pagina opslaan voordat u kinderen kan toevoegen", - "CMSMAIN.CANTADDCHILDREN": "Je kunt geen kinderen toevoegen aan de geselecteerde knoop", - "CMSMAIN.ERRORADDINGPAGE": "Fout toevoegen pagina", - "CMSMAIN.FILTEREDTREE": "Gefilterd om alleen aangepaste paginas te tonen", - "CMSMAIN.ERRORFILTERPAGES": "Kon niet filteren om alleen paginas
%s te tonen.", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "U moet de pagina opslaan voordat u onderliggende pagina's kan toevoegen", + "CMSMAIN.CANTADDCHILDREN": "U kan geen kinderen toevoegen aan de geselecteerde knoop", + "CMSMAIN.ERRORADDINGPAGE": "Fout bij toevoegen van de pagina", + "CMSMAIN.FILTEREDTREE": "Gefilterd om alleen aangepaste pagina's te tonen", + "CMSMAIN.ERRORFILTERPAGES": "Kon de paginastructuur niet filteren om alleen aangepaste pagina's te tonen.
%s", "CMSMAIN.ERRORUNFILTER": "Ongefilterde structuur", - "CMSMAIN.PUBLISHINGPAGES": "Paginas aan het publiceren...", + "CMSMAIN.PUBLISHINGPAGES": "Pagina's aan het publiceren...", "CMSMAIN.SELECTONEPAGE": "Selecteer minstens 1 pagina.", - "CMSMAIN.ERRORPUBLISHING": "Verwijder gepubliceerde paginas", - "CMSMAIN.REALLYDELETEPAGES": "Wil je echt de geselecteerde %s pagina's verwijderen?", - "CMSMAIN.DELETINGPAGES": "Paginas verwijderen...", - "CMSMAIN.ERRORDELETINGPAGES": "Fout bij verwijderen paginas", + "CMSMAIN.ERRORPUBLISHING": "Fout bij het publiceren van de pagina's", + "CMSMAIN.REALLYDELETEPAGES": "Wilt u echt de %s geselecteerde pagina's verwijderen?", + "CMSMAIN.DELETINGPAGES": "Pagina's verwijderen...", + "CMSMAIN.ERRORDELETINGPAGES": "Fout bij verwijderen van de pagina's", "CMSMAIN.PUBLISHING": "Publiceren...", "CMSMAIN.RESTORING": "Herstellen...", - "CMSMAIN.ERRORREVERTING": "Error reverting to live content", + "CMSMAIN.ERRORREVERTING": "Fout bij het terugdraaien naar de gepubliceerde pagina", "CMSMAIN.SAVING": "opslaan...", - "CMSMAIN.SELECTMOREPAGES": "Je hebt pagina(s) %s geselecteerd. \n\nWil je deze actie uitvoeren?", - "CMSMAIN.ALERTCLASSNAME": "Het paginatype wordt aangepast na opslaan van de pagina", + "CMSMAIN.SELECTMOREPAGES": "U hebt pagina(s) %s geselecteerd. \n\nWilt u deze actie uitvoeren?", + "CMSMAIN.ALERTCLASSNAME": "Het paginatype wordt aangepast na het opslaan van de pagina", "CMSMAIN.URLSEGMENTVALIDATION": "URLs kunnen alleen bestaan uit letters, cijfers en koppeltekens.", - "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Wil je deze mappen %s verwijderen?", - "AssetTableField.REALLYDELETE": "Wil je de geselecteerde bestanden verwijderen?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Wil je echt %s mappen verwijderen?", + "AssetTableField.REALLYDELETE": "Wilt u de geselecteerde bestanden verwijderen?", "AssetTableField.MOVING": "Verplaats %s bestand(en)", "CMSMAIN.AddSearchCriteria": "Voeg criteria toe", - "WidgetAreaEditor.TOOMANY": "Sorry, je hebt de maximaal aantal widgets bereikt", - "AssetAdmin.ConfirmDelete": "Wil je deze map verwijderen en alle bestanden??", + "WidgetAreaEditor.TOOMANY": "Sorry, u hebt de maximaal aantal widgets bereikt in dit gebied", + "AssetAdmin.ConfirmDelete": "Wilt u deze map verwijderen, en alle bestanden er in?", "Folder.Name": "Mapnaam", "Tree.AddSubPage": "Voeg nieuwe pagina toe", "Tree.Duplicate": "Dupliceren", "Tree.EditPage": "Aanpassen", "Tree.ThisPageOnly": "Enkel deze pagina", "Tree.ThisPageAndSubpages": "Deze pagina en subpagina's", - "Tree.ShowAsList": "Toon kinderen als lijst", - "CMSMain.ConfirmRestoreFromLive": "Do you really want to copy the published content to the draft site?", - "CMSMain.RollbackToVersion": "Do you really want to roll back to version #%s of this page?", + "Tree.ShowAsList": "Toon onderliggende pagina's als lijst", + "CMSMain.ConfirmRestoreFromLive": "Wil je echt de gepubliceerde inhoud kopiëren naar de concept site?", + "CMSMain.RollbackToVersion": "Wil je echt terugdraaien naar versie #%s van deze pagina?", "URLSEGMENT.Edit": "Aanpassen", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Annuleren" diff --git a/javascript/lang/src/sl.js b/javascript/lang/src/sl.js new file mode 100644 index 00000000..f6eab129 --- /dev/null +++ b/javascript/lang/src/sl.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Stran je potrebno shraniti pred dodajanjem otrok", + "CMSMAIN.CANTADDCHILDREN": "Vozlišču ne morete dodati otrok", + "CMSMAIN.ERRORADDINGPAGE": "Napaka pri dodajanju strani", + "CMSMAIN.FILTEREDTREE": "Pokaži samo spremenjene strani", + "CMSMAIN.ERRORFILTERPAGES": "Neuspešno filtriranje zgolj spremenljenih strani
%s", + "CMSMAIN.ERRORUNFILTER": "Nefiltrirano drevo", + "CMSMAIN.PUBLISHINGPAGES": "Objavljanje strani ...", + "CMSMAIN.SELECTONEPAGE": "Izberite vsaj 1 stran", + "CMSMAIN.ERRORPUBLISHING": "Napaka pri objavljanju strani", + "CMSMAIN.REALLYDELETEPAGES": "Izbriši %s označenih strani?", + "CMSMAIN.DELETINGPAGES": "Brisanje strani ...", + "CMSMAIN.ERRORDELETINGPAGES": "Napaka pri brisanju strani", + "CMSMAIN.PUBLISHING": "Objavljanje ...", + "CMSMAIN.RESTORING": "Obnavljanje ...", + "CMSMAIN.ERRORREVERTING": "Napaka pri povrnitvi na živo vsebino", + "CMSMAIN.SAVING": "shranjevanje ...", + "CMSMAIN.SELECTMOREPAGES": "Izbranih je %s strani.\n\nIzvedem izbrano akcijo?", + "CMSMAIN.ALERTCLASSNAME": "Tipska stran bo posodobljena po shranjevanju strani", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-ji lahko vsebujejo le alfanumerične znake in pomišljaje.", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Izbrišem %s map?", + "AssetTableField.REALLYDELETE": "Izbrišem označene datoteke?", + "AssetTableField.MOVING": "Premikam %s stran(i)", + "CMSMAIN.AddSearchCriteria": "Dodaj kriterij", + "WidgetAreaEditor.TOOMANY": "Ups, dosegli ste največje možno število gradnikov na tem področju", + "AssetAdmin.ConfirmDelete": "Izbrišem mapo in vsebovane datoteke?", + "Folder.Name": "Ime mape", + "Tree.AddSubPage": "Dodaj novo stran tukaj", + "Tree.Duplicate": "Podvoji", + "Tree.EditPage": "Uredi", + "Tree.ThisPageOnly": "Samo to stran", + "Tree.ThisPageAndSubpages": "To stran in podstrani", + "Tree.ShowAsList": "Prikaži otroke kot seznam", + "CMSMain.ConfirmRestoreFromLive": "Kopiram objavljeno vsebino na osnutek strani?", + "CMSMain.RollbackToVersion": "Obnovim na verzijo #%s te strani?", + "URLSEGMENT.Edit": "Uredi", + "URLSEGMENT.OK": "OK", + "URLSEGMENT.Cancel": "Prekliči" +} \ No newline at end of file diff --git a/lang/af.yml b/lang/af.yml index 1302ff82..35eaf17c 100644 --- a/lang/af.yml +++ b/lang/af.yml @@ -1,4 +1,44 @@ af: + AssetAdmin: + ADDFILES: 'Voeg lêers by' + ActionAdd: 'Voeg dossier by' + AppCategoryArchive: Stoor in argiewe + AppCategoryAudio: Klank + AppCategoryDocument: Dokument + AppCategoryFlash: Flash + AppCategoryImage: Prentjie + AppCategoryVideo: Video + BackToFolder: 'Terug na dossier' + CREATED: Datum + CurrentFolderOnly: 'Beperrk tot die huidige dossier' + DetailsView: Besonderhede + FILES: Lêers + FILESYSTEMSYNC: 'Sinchroniseer lêers' + FILESYSTEMSYNCTITLE: 'Bring die CMS op datum met die nuutse lêers wat in die lêersisteem lê. Dit is voordelig om te doen wanneer lêers buite die CMS opgelaai was bv deur midel van FTP' + FROMTHEINTERNET: 'Van die indernet af' + FROMYOURCOMPUTER: 'Van jou rekenaar af' + Filetype: 'Lêer tipe' + ListView: 'Lys aansig' + NEWFOLDER: Nuwe Dossier + SIZE: Groote + THUMBSDELETED: '{count} ongebruikte duimnaelsketse was verwyder' + TreeView: 'Boom aansig' + Upload: Laai op + MENUTITLE: Lêers + AssetAdmin_DeleteBatchAction: + TITLE: 'Verwyder dossiere' + AssetAdmin_Tools: + FILTER: Filtreer + AssetAdmin_left_ss: + GO: Gaan voort + AssetTableField: + BACKLINKCOUNT: 'Gebruik op:' + PAGES: bladsy(e) + BackLink_Button_ss: + Back: Terug + BrokenLinksReport: + Any: Enige + BROKENLINKS: 'Gebreekte skakels verslag' CMSMain: EMAIL: Epos PAGENOTEXISTS: 'Hierdie bladsy bestaan nie' diff --git a/lang/cs.yml b/lang/cs.yml index f4704257..92ae80b6 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -200,6 +200,8 @@ cs: 415: '415 - Nepodporovaný typ média' 416: '416 - Vyžádaný rozsah není dostatečný' 417: '417 - Očekávání se nezdařilo' + 422: '422 - Nezpracovatelná entita' + 429: '429 - Příliš mnoho požadavků' 500: '500 - Interní chyba serveru' 501: '501 - Není implementováno' 502: '502 - Špatná Gateway' diff --git a/lang/el.yml b/lang/el.yml index cc3f35b3..fc6834ab 100644 --- a/lang/el.yml +++ b/lang/el.yml @@ -1,5 +1,253 @@ el: + AssetAdmin: + ADDFILES: 'Προσθήκη Αρχείων' + ActionAdd: 'Προσθήκη φακέλου' + AppCategoryArchive: Αρχείο + AppCategoryAudio: Ήχος + AppCategoryDocument: Έγγραφο + AppCategoryImage: Εικόνα + AppCategoryVideo: Βίντεο + BackToFolder: 'Πίσω στο φάκελο' + CREATED: Ημερομηνία + CurrentFolderOnly: 'Μόνο στον τρέχοντα φάκελο;' + DetailsView: Λεπτομέρειες + FILES: Αρχεία + FILESYSTEMSYNC: 'Συγχρονισμός αρχείων' + FILESYSTEMSYNCTITLE: 'Ενημέρωση των καταχωρήσεων της βάσης δεδομένων του CMS για αρχεία τα οποία υπάρχουν στο σύστημα. Χρήσιμο όταν οι νέα αρχεία έχουν φορτωθεί εκτός CMS, π.χ. μέσω FTP.' + FROMTHEINTERNET: 'Από το Internet' + FROMYOURCOMPUTER: 'Από τον υπολογιστή σας' + Filetype: 'Τύπος αρχείου' + ListView: 'Προβολή Λίστας' + NEWFOLDER: ΝέοςΦάκελος + SIZE: Μέγεθος + THUMBSDELETED: '{count} αχρησιμοποίητα εικονίδια έχουν διαγραφεί' + TreeView: 'Προβολή Δέντρου' + Upload: Μεταφόρτωση + MENUTITLE: Αρχεία + AssetAdmin_DeleteBatchAction: + TITLE: 'Διαγραφή φακέλων' + AssetAdmin_Tools: + FILTER: Φίλτρο + AssetAdmin_left_ss: + GO: Μετάβαση + AssetTableField: + BACKLINKCOUNT: 'Χρησιμοποιείται σε:' + PAGES: σελίδες + BackLink_Button_ss: + Back: Πίσω + BrokenLinksReport: + Any: Οποιοδήποτε + BROKENLINKS: 'Αναφορά ανενεργών συνδέσμων' + CheckSite: 'Έλεγχος ιστοτόπου' + CheckSiteDropdownPublished: 'Δημοσιευμένος Ιστότοπος' + ColumnDateLastModified: 'Ημερομηνία τελευταίας τροποποίησης' + ColumnDateLastPublished: 'Ημερομηνία τελευταίας δημοσιεύσης' + ColumnProblemType: 'Τύπος προβλήματος' + ColumnURL: URL + HasBrokenFile: 'έχει ανενεργό αρχείο' + HasBrokenLink: 'έχει ανενεργό σύνδεσμο ' + HasBrokenLinkAndFile: 'έχει ανενεργό σύνδεσμο και αρχείο' + HoverTitleEditPage: 'Επεξεργασία σελίδας' + PageName: 'Σελίδα' + ReasonDropdown: 'Πρόβλημα για έλεγχο' + ReasonDropdownBROKENFILE: 'Ανενεργό αρχείο ' + ReasonDropdownBROKENLINK: 'Ανενεργός σύνδεσμος ' + ReasonDropdownRPBROKENLINK: 'Η σελίδα ανακατεύθυνσης αντιστοιχεί σε ανύπαρκτη σελίδα' + ReasonDropdownVPBROKENLINK: 'Η εικονική σελίδα αντιστοιχεί σε ανύπαρκτη σελίδα' + RedirectorNonExistent: 'η σελίδα ανακατεύθυνσης αντιστοιχεί σε ανύπαρκτη σελίδα' + VirtualPageNonExistent: 'η εικονική σελίδα αντιστοιχεί σε ανύπαρκτη σελίδα' + CMSAddPageController: + Title: 'Προσθήκη σελίδας' + CMSBatchActions: + DELETED_PAGES: 'Διαγράφηκαν %d σελίδες απο τις δημοσιευμένες, με %d αποτυχίες' + PUBLISH_PAGES: Δημοσίευση CMSMain: + AddNew: 'Προσθήκη σελίδας' + AddNewButton: 'Προσθήκη' + Cancel: Άκυρο + ChoosePageType: 'Επιλέξτε τύπο σελίδας' + Create: Δημιουργία + DELETEFP: Διαγραφή + EMAIL: Email + EditTree: 'Επεξεργασία Δένδρου' + NEWPAGE: 'Νέο {pagetype}' + PAGENOTEXISTS: 'Αυτή η σελίδα δεν υπάρχει' + PAGES: Σελίδες + PAGETYPEANYOPT: Οποιοδήποτε + PAGETYPEOPT: 'Τύπος Σελίδας' + PUBALLFUN: 'Λειτουργία "Δημοσίευση Όλων"' + PUBPAGES: 'Ολοκληρώθηκε: Δημοσίευση {count} σελίδων' + PageAdded: 'Η σελίδα δημιουργήθηκε με επιτυχία' + RESTORE: Επαναφορά SAVE: Αποθήκευση + TabContent: Περιεχόμενο + TabHistory: Ιστορικό + TabSettings: Ρυθμίσεις + TreeFilteredClear: 'Καθαρισμός φίλτρου' + MENUTITLE: 'Επεξεργασία Σελίδας' + CMSMain_left_ss: + APPLY_FILTER: 'Εφαρμογή Φίλτρου' + RESET: Επαναφορά + CMSPageAddController: + ParentMode_child: 'Κάτω από άλλη σελίδα' + ParentMode_top: 'Επίπεδο κορυφής' + MENUTITLE: 'Προσθήκη σελίδας' + CMSPageHistoryController: + COMPAREVERSIONS: 'Σύγκριση Εκδόσεων' + COMPARINGVERSION: 'Σύγκριση Εκδόσεων {version1} και {version2}.' + REVERTTOTHISVERSION: 'Επαναφορά σε αυτήν την έκδοση' + SHOWVERSION: 'Προβολή Έκδοσης' + VIEW: προβολή + MENUTITLE: Ιστορικό + CMSPageHistoryController_versions_ss: + AUTHOR: Συγγραφέας + NOTPUBLISHED: 'δεν έχει δημοσιευθεί' + PUBLISHER: Εκδότης + UNKNOWN: Άγνωστο + WHEN: Όταν + CMSPagesController: + ListView: 'Προβολή Λίστας' + MENUTITLE: Σελίδες + TreeView: 'Προβολή Δέντρου' + CMSPagesController_Tools_ss: + FILTER: Φίλτρο + CMSSearch: + FILTERDATEFROM: Από + FILTERDATEHEADING: Ημερομηνία + FILTERDATETO: Έως + FILTERLABELTEXT: Περιεχόμενο + CMSSiteTreeFilter_ChangedPages: + Title: 'Τροποποιημένες σελίδες' + CMSSiteTreeFilter_DeletedPages: + Title: 'Όλες οι σελίδες, συμπεριλαμβανομένων των διαγραμμένων' + CMSSiteTreeFilter_Search: + Title: 'Όλες οι σελίδες' + ContentController: + ARCHIVEDSITE: 'Προεπισκόπιση' + Email: Email + INSTALL_SUCCESS: 'Η Εγκατάσταση ήταν επιτυχής!' + LOGGEDINAS: 'Συνδεδεμένος ως' + LOGIN: Σύνδεση + LOGOUT: 'Αποσύνδεση' + NOTLOGGEDIN: 'Δεν έχετε συνδεθεί' + PUBLISHED: Δημοσιευμένο + Password: Κωδικός + VIEWPAGEIN: 'Προβολή Σελίδας σε:' + Folder: + UNUSEDTHUMBNAILSTITLE: 'Αχρησιμοποίητα εικονίδια' + UploadFilesButton: Μεταφόρτωση + LeftAndMain: + DELETED: Έγινε Διαγραφή. + PreviewButton: Προεπισκόπιση + SAVEDUP: Έγινε Αποθήκευση. + SearchResults: 'Αναζήτηση Αποτελεσμάτων' + Permission: + CMS_ACCESS_CATEGORY: 'Πρόσβαση στο CMS' + Permissions: + CONTENT_CATEGORY: 'Δικαιώματα περιεχόμενου' + PERMISSIONS_CATEGORY: 'Ρόλοι και δικαιώματα' + RedirectorPage: + DESCRIPTION: 'Κάνει ανακατεύθυνση σε μια διαφορετική εσωτερική σελίδα' + HEADER: 'Αυτή η σελίδα θα ανακατευθύνει τους χρήστες σε μια άλλη σελίδα' + ReportAdmin: + ReportTitle: Τίτλος + SearchForm: + GO: Μετάβαση + SEARCH: Αναζήτηση + SearchResults: 'Αποτελέσματα Αναζήτησης' + SideReport: + BrokenLinksGroupTitle: 'Αναφορές ανενεργών συνδέσμων' + ContentGroupTitle: 'Αναφορές περιεχομένου' + EMPTYPAGES: 'Σελίδες χωρίς περιεχόμενο' + OtherGroupTitle: Άλλο + SilverStripeNavigator: + ARCHIVED: Αρχειοθετημένο + SilverStripeNavigatorLinkl: + CloseLink: Κλείσιμο + SiteConfig: + PLURALNAME: 'Ρύθμισεις Ιστότοπου' + SINGULARNAME: 'Ρύθμιση Ιστότοπου' + SITENAMEDEFAULT: 'Όνομα Ιστότοπου' + SITETITLE: 'Τίτλος ιστοτόπου' + TABACCESS: Πρόσβαση + TABMAIN: Βασικό + THEME: Θεματική παραλλαγή + TOPLEVELCREATE: 'Ποιος μπορεί να δημιουργεί σελίδες στην ρίζα του ιστοτόπου;' + VIEWHEADER: 'Ποιος μπορεί να βλέπει σελίδες σε αυτόν τον ιστότοπο;' + SiteTree: + ACCESSANYONE: Οποιοσδήποτε + ACCESSHEADER: 'Ποιος μπορεί να δεί αυτή τη σελίδα;' + ACCESSLOGGEDIN: 'Συνδεδεμένοι χρήστες' + ADDEDTODRAFTHELP: 'Η σελίδα δεν έχει δημοσιευθεί ακόμη' + ALLOWCOMMENTS: 'Να επιτρέπονται σχόλια σε αυτή τη σελίδα;' + BUTTONPUBLISHED: Δημοσιευμένο + BUTTONSAVED: Αποθηκεύτηκε + BUTTONSAVEPUBLISH: 'Αποθήκευση & δημοσίευση' + BUTTONUNPUBLISHDESC: 'Αφαίρεση αυτής της σελίδας απο τις δημοσιευμένες' + Comments: Σχόλια + Content: Περιεχόμενο + DEFAULTABOUTTITLE: 'Ποιοί είμαστε' + DEFAULTCONTACTTITLE: 'Επικοινωνία' + DEFAULTHOMETITLE: Αρχική + DELETEDPAGEHELP: 'Η σελίδα δεν είναι πλέον δημοσιευμένη' + DELETEDPAGESHORT: Έγινε Διαγραφή + DESCRIPTION: 'Σελίδα γενικού περιεχομένου' + DependtPageColumnLinkType: 'Τύπος συνδέσμου' + DependtPageColumnURL: Διεύθυνση URL + EDITHEADER: 'Ποιος μπορεί να επεξεργαστεί αυτή τη σελίδα;' + EDITONLYTHESE: 'Μόνο αυτοί οι χρήστες (επιλέξτε από τη λίστα)' + EDITORGROUPS: 'Ομάδες Συντακτών' + Editors: 'Ομάδες Συντακτών' + GroupPlaceholder: 'Κάντε κλικ για επιλογή ομάδας' + HASBROKENLINKS: 'Αυτή η σελίδα έχει ανενεργούς συνδέσμους ' + HTMLEDITORTITLE: Περιεχόμενο + LASTPUBLISHED: 'Τελευταία δημοσίευση' + LASTSAVED: 'Τελευταία αποθήκευση' + LASTUPDATED: 'Τελευταία Ενημέρωση' + MENUTITLE: 'Επίπεδο πλοίγησης' + METADESC: 'Μετα-Περιγραφή' + MODIFIEDONDRAFTHELP: 'Η σελίδα έχει μη δημοσιευμένες αλλαγές' + MetadataToggle: Μετα-δεδομένα + MoreOptions: 'Περισσότερες επιλογές' + NOTPUBLISHED: 'Δεν έχει δημοσιευθεί' + PAGELOCATION: 'Θέση σελίδας' + PAGETITLE: 'Όνομα σελίδας' + PAGETYPE: 'Τύπος σελίδας' + PARENTTYPE: 'Θέση σελίδας' + PLURALNAME: Σελίδες + REORGANISE_DESCRIPTION: 'Αλλαγή δομής του ιστοτόπου ' + SHOWINMENUS: 'Να φαίνεται στα μενού;' + SHOWINSEARCH: 'Να φαίνεται στην αναζήτηση' + SINGULARNAME: Σελίδα + TABBEHAVIOUR: Συμπεριφορά + TABCONTENT: 'Κυρίως Περιεχόμενο' + TABDEPENDENT: 'Εξαρτώμενες σελίδες ' + URLSegment: 'Τμήμα διεύθυνσης URL' + VIEW_ALL_DESCRIPTION: 'Δείτε κάθε σελίδα' + Visibility: Ορατότητα + has_one_Parent: 'Γονική Σελίδα' + SiteTreeURLSegmentField: + EMPTY: 'Παρακαλώ εισάγεται ένα τμήμα διεύθυνσης URL ή πατήστε άκυρο' + URLSegmentField: + Cancel: Άκυρο + Edit: Επεξεργασία + OK: ΟΚ ViewArchivedEmail_ss: + CANACCESS: 'Μπορείτε να δείτε τον αρχειοθετημένο ιστότοπο εδώ:' HAVEASKED: 'Επιθυμείται να εμφανιστεί το περιεχόμενο του ιστοχώρου σας την ' + VirtualPage: + CHOOSE: 'Συνδεδεμένη σελίδα' + DESCRIPTION: 'Εμφανίζει το περιεχόμενο μιας άλλης σελίδας' + EditLink: επεξεργασία + HEADER: 'Αυτή είναι μια εικονική σελίδα' + SINGULARNAME: 'Εικονική Σελίδα' + CMSFileAddController: + MENUTITLE: Αρχεία + CMSPageEditController: + MENUTITLE: 'Επεξεργασία Σελίδας' + CMSPageSettingsController: + MENUTITLE: 'Επεξεργασία Σελίδας' + CMSSettingsController: + MENUTITLE: Ρυθμίσεις + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Διεγραμμένες σελίδες' diff --git a/lang/eo.yml b/lang/eo.yml index f9d73846..00b5ffb4 100644 --- a/lang/eo.yml +++ b/lang/eo.yml @@ -5,7 +5,9 @@ eo: AppCategoryArchive: Arkivo AppCategoryAudio: Sono AppCategoryDocument: Dokumento + AppCategoryFlash: Flash AppCategoryImage: Bildo + AppCategoryVideo: Video BackToFolder: 'Retroe al dosierujo' CREATED: Dato CurrentFolderOnly: 'Limigo de aktuala dosierujo' @@ -17,6 +19,7 @@ eo: FROMYOURCOMPUTER: 'El via komputilo' Filetype: 'Tipo de dosiero' ListView: 'Lista vido' + NEWFOLDER: Nova dosierujo SIZE: Grando THUMBSDELETED: '{count} neuzitaj miniaturoj estas forigitaj' TreeView: 'Arba vido' @@ -42,6 +45,7 @@ eo: ColumnDateLastModified: 'Dato de lasta modifo' ColumnDateLastPublished: 'Dato de lasta publikigo' ColumnProblemType: 'Problemtipo' + ColumnURL: URL HasBrokenFile: 'havas rompitan dosieron' HasBrokenLink: 'havas rompitan ligilon' HasBrokenLinkAndFile: 'havas rompitan ligilon kaj dosieron' @@ -71,6 +75,7 @@ eo: AddNew: 'Aldoni novan paĝon' AddNewButton: 'Aldoni novan' AddPageRestriction: 'Noto: iuj tipoj de paĝoj ne estas permesataj por ĉi tiu elektaĵo.' + Cancel: Rezigni ChoosePageParentMode: 'Elekti kie krei ĉi tiun paĝon' ChoosePageType: 'Elekti tipon de paĝo' Create: Krei @@ -134,11 +139,18 @@ eo: WHEN: Kiam CMSPagesController: GalleryView: 'Galeria vido' + ListView: 'Lista vido' MENUTITLE: Paĝoj + TreeView: 'Arba vido' CMSPagesController_ContentToolbar_ss: MULTISELECT: Plurelekto CMSPagesController_Tools_ss: FILTER: Filtri + CMSSearch: + FILTERDATEFROM: De + FILTERDATEHEADING: Dato + FILTERDATETO: Al + FILTERLABELTEXT: Enhavo CMSSiteTreeFilter_ChangedPages: Title: 'Ŝanĝitaj paĝoj' CMSSiteTreeFilter_DeletedPages: @@ -150,6 +162,7 @@ eo: ContentController: ARCHIVEDSITE: 'Antaŭvida versio' ARCHIVEDSITEFROM: 'Enarkivigita retejo el' + CMS: CMS DRAFT: Malneta DRAFTSITE: 'Malneta retejo' DRAFT_SITE_ACCESS_RESTRICTION: 'Vi devas ensaluti per via CMS-pasvorto por vidi la projektan aŭ enarkivigitan enhavon. Alklaku ĉi tie por reiri al la publika retejo.' @@ -187,6 +200,8 @@ eo: 415: '415 - Nesubtenata spekta tipo' 416: '416 - Peta amplekso ne plenumebla' 417: '417 - Atendo malsukcesis' + 422: '422 - Netrakebla ento' + 429: '429 - tro da petoj' 500: '500 - Eraro de interna servilo' 501: '501 - Ne realigita' 502: '502 - Malbona kluzo' @@ -210,7 +225,9 @@ eo: UploadFilesButton: Alŝuti LeftAndMain: DELETED: Forigita. + PreviewButton: Aspekto SAVEDUP: Konservita. + SearchResults: 'Serĉaj rezultoj' Permission: CMS_ACCESS_CATEGORY: 'CMS-aliro' Permissions: @@ -239,6 +256,7 @@ eo: SearchForm: GO: Ek SEARCH: Serĉi + SearchResults: 'Serĉaj rezultoj' SideReport: BROKENFILES: 'Paĝoj kun rompitaj dosieroj' BROKENLINKS: 'Paĝoj kun rompitaj ligiloj' @@ -254,6 +272,7 @@ eo: SilverStripeNavigator: ARCHIVED: Enarkivigita SilverStripeNavigatorLink: + ShareInstructions: 'Por komunigi ĉi tiun paĝon, kopiu kaj algluu la suban ligilon.' ShareLink: 'Komunigi ligilon' SilverStripeNavigatorLinkl: CloseLink: Fermi @@ -302,6 +321,7 @@ eo: DEPENDENT_NOTE: 'La sekvaj paĝoj dependas de ĉi tiu paĝo. Tio inkluzivas virtualajn paĝojn, alidirektajn paĝojn, kaj paĝojn kun enhavaj ligiloj.' DESCRIPTION: 'Ĝenerala paĝo por enhavo' DependtPageColumnLinkType: 'Ligila tipo' + DependtPageColumnURL: URL EDITANYONE: 'Tiu, kiu povas ensaluti en la CMS' EDITHEADER: 'Kiuj povas redakti ĉi tiun paĝon?' EDITONLYTHESE: 'Nur ĉi tiuj homoj (elektu de listo)' @@ -392,3 +412,9 @@ eo: MENUTITLE: 'Redakti paĝon' CMSSettingsController: MENUTITLE: Agordoj + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Forigitaj paĝoj' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Malnetaj nepublikigitaj paĝoj' + CMSSiteTreeFilter_StatusRemovedFromDraftPages: + Title: 'Publikaj sed forigitaj el malnetaj' diff --git a/lang/es.yml b/lang/es.yml index ad4a502b..7f71125f 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -200,6 +200,8 @@ es: 415: '415- No hay cobertura para este tipo de soporte.' 416: '416- El rango requerido no puede cumplirse' 417: '417- Expectación fallida' + 422: '422 - No es posible procesar la Entidad ' + 429: '429 - Muchas Peticiones al servidor' 500: '500 - Error interno en el servidor' 501: '501- No implementado' 502: '502- Pasarela de comunicación equivocada' diff --git a/lang/fi.yml b/lang/fi.yml index e48af7d9..c5e94f9d 100644 --- a/lang/fi.yml +++ b/lang/fi.yml @@ -200,6 +200,8 @@ fi: 415: '415 - Tukematon mediatyyppi' 416: '416 - Pyydetty alue ei kelpaa' 417: '417 - Oletus epäonnistui' + 422: '422 - Käsittely ei onnistu: semanttinen virhe?' + 429: '429 - Liian monta pyyntöä' 500: '500 - Sisäinen Palvelin Virhe' 501: '501 - Ei toteutettu' 502: '502 - Virheellinen Yhdyskäytävä' diff --git a/lang/nl.yml b/lang/nl.yml index 184483a9..0ddeb5a1 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -1,8 +1,8 @@ nl: AssetAdmin: - ADDFILES: 'Bestanden' + ADDFILES: 'Bestanden toevoegen' ActionAdd: 'Map toevoegen' - AppCategoryArchive: Archiveer + AppCategoryArchive: Archiveren AppCategoryAudio: Audio AppCategoryDocument: Document AppCategoryFlash: Flash @@ -19,9 +19,9 @@ nl: FROMYOURCOMPUTER: 'Vanaf computer' Filetype: 'Bestandstype' ListView: 'Lijstweergave' - NEWFOLDER: Nieuwe Map + NEWFOLDER: Nieuwe map SIZE: Omvang - THUMBSDELETED: '{count} ongebruikte miniatuur afbeeldingen zijn verwijderd' + THUMBSDELETED: '{count} ongebruikte miniatuurafbeeldingen zijn verwijderd' TreeView: 'Boomstructuur' Upload: Uploaden MENUTITLE: Bestanden @@ -38,13 +38,13 @@ nl: Back: Terug BrokenLinksReport: Any: Alles - BROKENLINKS: 'Verbroken verwijzingen rapportage' + BROKENLINKS: 'Rapport van verbroken links' CheckSite: 'Controleer site' - CheckSiteDropdownDraft: 'Concept-site' - CheckSiteDropdownPublished: 'Gepubliceerde Site' + CheckSiteDropdownDraft: 'Concept site' + CheckSiteDropdownPublished: 'Gepubliceerde site' ColumnDateLastModified: 'Laatste wijzigingsdatum' ColumnDateLastPublished: 'Laatste publicatiedatum' - ColumnProblemType: 'Probleem type' + ColumnProblemType: 'Probleemtype' ColumnURL: URL HasBrokenFile: 'heeft verbroken bestand' HasBrokenLink: 'heeft verbroken link' @@ -71,61 +71,62 @@ nl: UNPUBLISH_PAGES: Publicatie intrekken CMSMain: ACCESS: 'Toegang tot het ''{title}'' gedeelte' - ACCESS_HELP: 'Bevoegdheid voor bekijken van pagina tak en inhoudssecties. Bekijk- en bewerkingstoestemmingen kunnen worden toegekend door pagina specifieke menu''s en het aparte "Inhoudsmachtigingen".' + ACCESS_HELP: 'Bevoegdheid om paginastructuur en inhoud te bekijken. Bekijk- en bewerkingstoestemmingen kunnen worden toegekend met pagina-specifieke menu''s en het aparte "Inhoudsmachtigingen".' AddNew: 'Voeg nieuwe pagina toe' AddNewButton: 'Nieuw' - AddPageRestriction: 'Opmerking: Sommige pagina types zijn niet toegestaan ​​voor deze selectie' - ChoosePageParentMode: 'Kies waar u deze pagina wilt creëren' + AddPageRestriction: 'Opmerking: Sommige paginatypes zijn niet toegestaan ​​voor deze selectie' + Cancel: Annuleren + ChoosePageParentMode: 'Kies waar u deze pagina wilt aanmaken' ChoosePageType: 'Kies een pagina type' - Create: Creëer - DELETE: 'Verwijder van de ontwerp webpagina' - DELETEFP: Verwijder van de gepubliceerde webpagina + Create: Aanmaken + DELETE: 'Verwijder concept' + DELETEFP: Verwijder DESCREMOVED: 'en {count} onderliggende' - DUPLICATED: '''{title}'' succesvol gedupliceerd' - DUPLICATEDWITHCHILDREN: '''{title}'' en onderliggende items succesvol gedupliceerd' - EMAIL: Email - EditTree: 'Menu indelen' - ListFiltered: 'Gefilterde lijst' + DUPLICATED: '''{title}'' met succes gedupliceerd' + DUPLICATEDWITHCHILDREN: '''{title}'' en onderliggende items met succes gedupliceerd' + EMAIL: E-mail + EditTree: 'Paginastructuur aanpassen' + ListFiltered: 'Gefilterde lijst.' NEWPAGE: 'Nieuwe {pagetype}' PAGENOTEXISTS: 'Deze pagina bestaat niet' PAGES: Pagina 's PAGETYPEANYOPT: Elke - PAGETYPEOPT: 'Pagina type' - PUBALLCONFIRM: 'Publiceer elke pagina van de site waarbij de inhoud van de concept site gekopieerd wordt naar de live site.' - PUBALLFUN: '"Publiceer Alles" functionaliteit' - PUBALLFUN2: "Op deze knop klikken heeft hetzelfde resultaat als alle pagina's apart publiceren. Hij is bedoeld om een groot aantal wijzigingen in een keer te publiceren." + PAGETYPEOPT: 'Paginatype' + PUBALLCONFIRM: 'Publiceer elke pagina van de site: dit kopieert de inhoud van de concept site naar de live site' + PUBALLFUN: '"Publiceer alles" functionaliteit' + PUBALLFUN2: "Op deze knop klikken heeft hetzelfde resultaat als bij elke pagina's op \"Publiceer\" te klikken. Het is bedoeld om te gebruiken wanneer er erg grote inhoudsaanpassingen gebeurd zijn, bijvoorbeeld wanneer een nieuwe site voor het eerst gebouwd wordt." PUBPAGES: 'Gereed: {count} pagina''s gepubliceerd' - PageAdded: 'Pagina succesvol gecreëerd' + PageAdded: 'Pagina met succes aangemaakt' REMOVED: '''{title}''{description} verwijderd van de live site' REMOVEDPAGE: '''{title}'' is van de gepubliceerde site verwijderd' - REMOVEDPAGEFROMDRAFT: '''%s'' is verwijderd uit de concept-site' + REMOVEDPAGEFROMDRAFT: '''%s'' is verwijderd uit de concept site' RESTORE: Herstel - RESTORED: '''{title}'' is succesvol hersteld' - ROLLBACK: 'Terugzetten naar deze versie' - ROLLEDBACKPUBv2: 'Teruggezet naar gepubliceerde versie.' - ROLLEDBACKVERSIONv2: 'Teruggezet naar versie #%d.' + RESTORED: '''{title}'' is met succes hersteld' + ROLLBACK: 'Terugdraaien naar deze versie' + ROLLEDBACKPUBv2: 'Teruggedraaid naar gepubliceerde versie.' + ROLLEDBACKVERSIONv2: 'Teruggedraaid naar versie #%d.' SAVE: Opslaan SAVEDRAFT: 'Concept opslaan' TabContent: Inhoud TabHistory: Geschiedenis TabSettings: Instellingen TreeFiltered: 'Gefilterde boomstructuur.' - TreeFilteredClear: 'Herstel filter' + TreeFilteredClear: 'Filter leegmaken' MENUTITLE: 'Wijzig pagina' CMSMain_left_ss: APPLY_FILTER: 'Filter toepassen' - RESET: Herstel + RESET: Reset CMSPageAddController: ParentMode_child: 'Onder een andere pagina' ParentMode_top: 'Hoogste niveau' MENUTITLE: 'Pagina toevoegen' CMSPageHistoryController: COMPAREMODE: 'Vergelijken (selecteer 2)' - COMPAREVERSIONS: 'Vergelijk Versies' + COMPAREVERSIONS: 'Vergelijk versies' COMPARINGVERSION: 'U vergelijkt versie {version1} en {version2}.' REVERTTOTHISVERSION: 'Deze versie terugzetten' SHOWUNPUBLISHED: 'Toon nog niet gepubliceerde versies' - SHOWVERSION: 'Toon Versie' + SHOWVERSION: 'Toon versie' VIEW: toon VIEWINGLATEST: 'U bekijkt nu de laatste versie.' VIEWINGVERSION: 'U bekijkt nu versie {version}.' @@ -133,7 +134,7 @@ nl: CMSPageHistoryController_versions_ss: AUTHOR: Auteur NOTPUBLISHED: 'Niet gepubliceerd' - PUBLISHER: Uitgever + PUBLISHER: Publiceerder UNKNOWN: Onbekend WHEN: Wanneer CMSPagesController: @@ -157,19 +158,19 @@ nl: CMSSiteTreeFilter_Search: Title: 'Alle pagina''s' ContentControl: - NOTEWONTBESHOWN: 'Aantekening: dit bericht is niet zichtbaar voor bezoekers' + NOTEWONTBESHOWN: 'Merk op: dit bericht is niet zichtbaar voor uw bezoekers' ContentController: - ARCHIVEDSITE: 'Voorbeeld versie' + ARCHIVEDSITE: 'Voorbeeld van versie bekijken' ARCHIVEDSITEFROM: 'Gearchiveerde site van' CMS: CMS DRAFT: Concept - DRAFTSITE: 'Concept-site' - DRAFT_SITE_ACCESS_RESTRICTION: 'U moet inloggen met Uw CMS wachtwoord om die inhoud te kunnen zien. Klik hier om terug te keren naar de gepubliceerde site.' + DRAFTSITE: 'Concept site' + DRAFT_SITE_ACCESS_RESTRICTION: 'U moet inloggen met uw CMS wachtwoord om die inhoud te kunnen zien. Klik hier om terug te keren naar de gepubliceerde site.' Email: E-mail INSTALL_SUCCESS: 'Installatie voltooid!' - InstallFilesDeleted: 'De installatiebestanden zijn succesvol verwijderd.' - InstallSecurityWarning: 'Om veiligheidsredenen dient u de installatiebestanden nu te verwijderen, tenzij u van plan bent om later opnieuw te installeren (dit vereist toegang als administrator, zie boven). De webserver heeft vanaf nu alleen nog schrijftoegang nodig tot de "assets" map, u kunt de schrijftoegang van alle andere mappen verwijderen. Klik hier om de installatiebestanden te verwijderen. ' - InstallSuccessCongratulations: 'SilverStripe is geÏnstalleerd!' + InstallFilesDeleted: 'De installatiebestanden zijn met succes verwijderd.' + InstallSecurityWarning: 'Om veiligheidsredenen dient u de installatiebestanden nu te verwijderen, tenzij u van plan bent om later opnieuw te installeren (dit vereist toegang als administrator, zie hierboven). De webserver heeft vanaf nu alleen nog schrijftoegang nodig tot de "assets" map, u kunt de schrijftoegang van alle andere mappen verwijderen. Klik hier om de installatiebestanden te verwijderen. ' + InstallSuccessCongratulations: 'SilverStripe is geïnstalleerd!' LOGGEDINAS: 'Ingelogd als' LOGIN: Inloggen LOGOUT: 'Uitloggen' @@ -177,62 +178,64 @@ nl: PUBLISHED: Gepubliceerd PUBLISHEDSITE: 'Gepubliceerde site' Password: Wachtwoord - PostInstallTutorialIntro: 'Deze website is een eenvoudige versie van een SilverStripe 3 website. Voor uitbreidingen kunt je hier een kijkje nemen: {link}.' - StartEditing: 'Je kunt de inhoud aanpassen via het CMS.' + PostInstallTutorialIntro: 'Deze website is een eenvoudige versie van een SilverStripe 3 website. Voor uitbreidingen kan u hier een kijkje nemen: {link}.' + StartEditing: 'U kunt de inhoud aanpassen via het CMS.' UnableDeleteInstall: 'De installatiebestanden konden niet verwijderd worden. Verwijder onderstaande bestanden alstublieft handmatig.' VIEWPAGEIN: 'Bekijk pagina in:' ErrorPage: - 400: '400 - Foute Vraag' - 401: '401 - Geen toestemming' - 403: '403 - Geen toegang' + 400: '400 - Foute aanvraag' + 401: '401 - Niet geautorizeerd' + 403: '403 - Toegang verboden' 404: '404 - Niet gevonden' - 405: '405- Methode niet toegestaan' - 406: '406 - Niet toegankelijk' - 407: '407 - Proxy Auhenticatie Vereist' - 408: '408 - Vraag verlopen' + 405: '405 - Methode niet toegestaan' + 406: '406 - Niet aanvaardbaar' + 407: '407 - Proxy auhenticatie vereist' + 408: '408 - Aanvraag verlopen' 409: '409 - Conflict' 410: '410 - Verdwenen' 411: '411 - Lengte vereist' - 412: '412 - Voorwaarde gefaald' - 413: '413 - Vraag eenheid te groot' - 414: '414 - Aanvraag-URI Te Lang' - 415: '415 - Niet ondersteund Media Type' - 416: '416 - Aanvraag Bereik Niet Toereikend' - 417: '417 - Verwachting Mislukt' - 500: '500 - Interne Server Fout' + 412: '412 - Niet voldaan aan vooraf gestelde voorwaarde' + 413: '413 - Aanvraag te groot' + 414: '414 - Aanvraag URI te lang' + 415: '415 - Media-type niet ondersteund' + 416: '416 - Aangevraagd gedeelte niet opvraagbaar' + 417: '417 - Niet voldaan aan verwachting' + 422: '422 - Aanvraag kan niet verwerkt worden' + 429: '429 - Te veel aanvragen' + 500: '500 - Interne serverfout' 501: '501 - Niet geïmplementeerd' 502: '502 - Slechte Gateway' 503: '503 - Service niet beschikbaar' 504: '504 - Gateway Timeout' - 505: '505 - HTTP Versie Niet Ondersteund' + 505: '505 - HTTP versie niet ondersteund' CODE: 'Foutcode' DEFAULTERRORPAGECONTENT: '

Helaas, de pagina die u zocht lijkt niet (meer) te bestaan.

Controleer of de juiste URL is gebruikt en probeer het opnieuw.

' DEFAULTERRORPAGETITLE: 'Pagina niet gevonden' DEFAULTSERVERERRORPAGECONTENT: '

Helaas, er was een probleem bij het verwerken van je verzoek.

' DEFAULTSERVERERRORPAGETITLE: 'Probleem met de server' - DESCRIPTION: 'Aangepaste tekst voor verschillende foutmeldingen (bijv: "Pagina niet gevonden")' + DESCRIPTION: 'Aangepaste tekst voor verschillende foutmeldingen (bv. "Pagina niet gevonden")' ERRORFILEPROBLEM: 'Fout: "{filename}" kan niet geopend worden om te schrijven. Controleer alstublieft de bestandspermissies.' - PLURALNAME: 'Fout Pagina''s' - SINGULARNAME: 'Fout Pagina' + PLURALNAME: 'Foutpagina''s' + SINGULARNAME: 'Foutpagina' Folder: AddFolderButton: 'Map toevoegen' - DELETEUNUSEDTHUMBNAILS: 'Verwijder ongebruikte thumbnails' + DELETEUNUSEDTHUMBNAILS: 'Verwijder ongebruikte miniatuurafbeeldingen' UNUSEDFILESTITLE: 'Ongebruikte bestanden' - UNUSEDTHUMBNAILSTITLE: 'Ongebruikte miniatuur afbeeldingen' + UNUSEDTHUMBNAILSTITLE: 'Ongebruikte miniatuurafbeeldingen' UploadFilesButton: Uploaden LeftAndMain: DELETED: Verwijderd. - PreviewButton: Voorbeeld + PreviewButton: Voorbeeld bekijken SAVEDUP: Opgeslagen. SearchResults: 'Zoekresultaten' Permission: - CMS_ACCESS_CATEGORY: 'CMS Toegang' + CMS_ACCESS_CATEGORY: 'CMS toegang' Permissions: CONTENT_CATEGORY: 'Inhoudsrechten' PERMISSIONS_CATEGORY: 'Rollen en toegangsrechten' RedirectorPage: DESCRIPTION: 'Verwijst naar een andere pagina op deze site' - HASBEENSETUP: 'Er is een verwijs pagina opgezet zonder ergens naar door te verwijzen.' + HASBEENSETUP: 'Er is een verwijspagina opgezet zonder ergens naar te verwijzen.' HEADER: 'Deze pagina zal gebruikers naar een andere pagina doorsturen (redirect)' OTHERURL: 'Andere website URL' PLURALNAME: 'Verwijzingspagina''s' @@ -249,21 +252,21 @@ nl: SITETREE: VIRTUALPAGEDRAFTWARNING: 'U dient eerst de gekoppelde pagina te publiceren voordat u de virtuele pagina publiceert.' VIRTUALPAGEWARNING: 'U dient eerst een gekoppelde pagina te selecteren en op te slaan voordat u deze pagina kunt publiceren.' - VIRTUALPAGEWARNINGSETTINGS: 'U dient een gekoppelde pagina te selecteren in de inhoud velden voor dat u kunt publiceren.' + VIRTUALPAGEWARNINGSETTINGS: 'U dient een gekoppelde pagina te selecteren op het hoofdscherm voordat u kunt publiceren.' SearchForm: GO: Zoeken SEARCH: Zoeken SearchResults: 'Zoekresultaten' SideReport: BROKENFILES: 'Pagina''s met verbroken bestanden' - BROKENLINKS: 'Pagina''s met verbroken verwijzingen' - BROKENREDIRECTORPAGES: 'RedirectorPages die naar verwijderde pagina''s verwijzen' - BROKENVIRTUALPAGES: 'VirtuelePagina''s die naar verwijderde pagina''s verwijzen' - BrokenLinksGroupTitle: 'Verbroken verwijzingen raportage' - ContentGroupTitle: 'Inhoudsrapportages' + BROKENLINKS: 'Pagina''s met verbroken links' + BROKENREDIRECTORPAGES: 'Verwijzingspagina''s die naar verwijderde pagina''s verwijzen' + BROKENVIRTUALPAGES: 'Virtuele pagina''s die naar verwijderde pagina''s verwijzen' + BrokenLinksGroupTitle: 'Rapport van verbroken links' + ContentGroupTitle: 'Inhoudsrapporten' EMPTYPAGES: 'Lege pagina''s' LAST2WEEKS: 'Pagina''s gewijzigd in de laatste twee weken' - OtherGroupTitle: Anders + OtherGroupTitle: Andere ParameterLiveCheckbox: 'Controleer gepubliceerde site' REPEMPTY: 'Het {title} rapport is leeg.' SilverStripeNavigator: @@ -276,19 +279,19 @@ nl: SiteConfig: DEFAULTTHEME: '(Gebruik standaard thema)' EDITHEADER: 'Wie kan pagina''s op de site wijzigen?' - EDIT_PERMISSION: 'Aanpassen site configuratie' + EDIT_PERMISSION: 'Site configuratie beheren' EDIT_PERMISSION_HELP: 'Bevoegdheid om globale toegangsinstellingen/hoogste niveau pagina rechten te bewerken.' PLURALNAME: 'Website instellingen' SINGULARNAME: 'Website instellingen' SITENAMEDEFAULT: 'Jouw Site Naam' - SITETAGLINE: 'Site Slogan/Motto' + SITETAGLINE: 'Site Slagzin/Slogan' SITETITLE: 'Site Titel' TABACCESS: Toegang TABMAIN: Hoofd - TAGLINEDEFAULT: 'jouw motto hier' + TAGLINEDEFAULT: 'jouw slagzin hier' THEME: Thema - TOPLEVELCREATE: 'Wie kunnen pagina''s in op het hoogste niveau van de site aanmaken?' - VIEWHEADER: 'Wie kunnen pagina''s op de site bekijken?' + TOPLEVELCREATE: 'Wie kan pagina''s op het hoogste niveau van de site aanmaken?' + VIEWHEADER: 'Wie kan pagina''s op de site bekijken?' SiteTree: ACCESSANYONE: Iedereen ACCESSHEADER: 'Wie kan deze pagina bekijken?' @@ -299,7 +302,7 @@ nl: ALLOWCOMMENTS: 'Commentaar toestaan op deze pagina?' APPEARSVIRTUALPAGES: 'Deze inhoud verschijnt ook op de virtuele pagina''s in de {title} gedeeltes.' BUTTONCANCELDRAFT: 'Annuleer veranderingen op dit concept' - BUTTONCANCELDRAFTDESC: 'Verwijder het concept en zet de gepubliceerde pagina''s naar deze concept pagina' + BUTTONCANCELDRAFTDESC: 'Verwijder het concept en zet de gepubliceerde pagina terug' BUTTONPUBLISHED: Gepubliceerd BUTTONSAVED: Opgeslagen BUTTONSAVEPUBLISH: 'Opslaan & publiceren' @@ -311,33 +314,33 @@ nl: DEFAULTABOUTTITLE: 'Over Ons' DEFAULTCONTACTCONTENT: '

Je kan deze pagina vullen met je eigen inhoud, of ze verwijderen en je eigen pagina''s aanmaken.

' DEFAULTCONTACTTITLE: 'Contact' - DEFAULTHOMECONTENT: '

Welkom bij Silverstripe! Dit is de standaard homepagina. Je kan deze pagina wijzigen door het CMS te openen. Je kan nu de documentatie voor ontwikkelaars bekijken, of aan de tutorials beginnen.' + DEFAULTHOMECONTENT: '

Welkom bij Silverstripe! Dit is de standaard homepagina. Je kan deze pagina wijzigen door het CMS te openen. Je kan nu de documentatie voor ontwikkelaars bekijken, of aan de tutorials beginnen.' DEFAULTHOMETITLE: Home DELETEDPAGEHELP: 'Deze pagina is niet langer gepubliceerd' DELETEDPAGESHORT: Verwijderd - DEPENDENT_NOTE: 'De volgende pagina''s zijn afhankelijk van deze pagina. Hieronder vallen virtuelepagina''s, verwijsingspagina''s en pagina''s met links in de inhoud.' - DESCRIPTION: 'Algemene tekst pagina' + DEPENDENT_NOTE: 'De volgende pagina''s zijn afhankelijk van deze pagina. Hieronder vallen virtuele pagina''s, verwijzingspagina''s en pagina''s met links in hun inhoud.' + DESCRIPTION: 'Algemene inhoud pagina' DependtPageColumnLinkType: 'Linktype' DependtPageColumnURL: URL EDITANYONE: 'Iedereen die kan inloggen in het CMS' EDITHEADER: 'Wie kan deze pagina wijzigen?' EDITONLYTHESE: 'Alleen deze gebruikers (kies uit de lijst)' - EDITORGROUPS: 'Wijziginggroepen' - EDIT_ALL_DESCRIPTION: 'Kan iedere pagina wijzigen, ongeacht de specifieke pagina beveiliging' + EDITORGROUPS: 'Redacteursgroepen' + EDIT_ALL_DESCRIPTION: 'Kan elke pagina wijzigen' EDIT_ALL_HELP: 'Bevoegdheid om alle pagina''s op de site te wijzigen, onafhankelijk van de instellingen in het ''Toegang'' tabblad. Vereist "Toegang tot site inhoud" rechten' Editors: 'Redacteursgroepen' GroupPlaceholder: 'Klik om de groep te selecteren' - HASBROKENLINKS: 'Deze pagina heeft gebroken links.' + HASBROKENLINKS: 'Deze pagina heeft verbroken links.' HTMLEDITORTITLE: Inhoud INHERIT: 'Overnemen van de bovenliggende pagina' LASTPUBLISHED: 'Laatste publicatiedatum' LASTSAVED: 'Laatste keer opgeslagen' LASTUPDATED: 'Laatst bijgewerkt' - LINKCHANGENOTE: 'Het veranderen van de link van deze pagina beïnvloed de links van alle onderliggende pagina''s. ' + LINKCHANGENOTE: 'Het veranderen van de link van deze pagina beïnvloedt de links van alle onderliggende pagina''s. ' MENUTITLE: 'Navigatie label' - METADESC: 'Omschrijving' + METADESC: 'Meta omschrijving' METADESCHELP: 'Zoekmachines gebruiken deze inhoud voor het weergeven van zoekresultaten (hoewel het hun ranking niet zal beïnvloeden).' - METAEXTRA: 'Aangepaste Meta Labels' + METAEXTRA: 'Andere meta tags' METAEXTRAHELP: 'HTML-tags voor extra meta-informatie. Bijvoorbeeld <meta name = "customName" content="uw aangepaste inhoud"/>' MODIFIEDONDRAFTHELP: 'Pagina heeft wijzigingen die nog niet gepubliceerd zijn' MODIFIEDONDRAFTSHORT: Aangepast @@ -349,41 +352,41 @@ nl: PAGETITLE: 'Pagina titel' PAGETYPE: 'Pagina type' PARENTID: 'Bovenliggende pagina' - PARENTTYPE: 'Pagina lokatie' - PARENTTYPE_ROOT: 'Top-level pagina' - PARENTTYPE_SUBPAGE: 'Subpagina onder bovenliggende pagina (kies hieronder)' - PERMISSION_GRANTACCESS_DESCRIPTION: 'Instellen welke groepen toegang hebben tot bepaalde pagina''s of deze kunnen bewerken' + PARENTTYPE: 'Pagina locatie' + PARENTTYPE_ROOT: 'Top-niveau pagina' + PARENTTYPE_SUBPAGE: 'Subpagina onder een bovenliggende pagina' + PERMISSION_GRANTACCESS_DESCRIPTION: 'Beheer toegangsrechten voor inhoud' PERMISSION_GRANTACCESS_HELP: 'Bevoegdheid om pagina specifieke toegangsrechten in de "Pagina''s" sectie te wijzigen.' - PLURALNAME: Pagina’s + PLURALNAME: Pagina's PageTypNotAllowedOnRoot: 'Paginatype "{type}" is niet toegestaan op het hoogste niveau' PageTypeNotAllowed: 'Pagina type "{type}" mag niet ondergeschikt zijn aan deze bovenliggende pagina' - REMOVEDFROMDRAFTHELP: 'Deze pagina is gepubliceerd, maar verwijderd uit de conceptsite' - REMOVEDFROMDRAFTSHORT: 'Verwijderd van de concept-site' + REMOVEDFROMDRAFTHELP: 'Deze pagina is gepubliceerd, maar verwijderd uit de concept site' + REMOVEDFROMDRAFTSHORT: 'Verwijderd van de concept site' REMOVE_INSTALL_WARNING: 'Let op: Het is veiliger om het bestand install.php uit deze SilverStripe installatie te verwijderen' - REORGANISE_DESCRIPTION: 'Mag de site structuur wijzigen' - REORGANISE_HELP: 'Pas pagina volgorde aan in de site structuur met behulp van verslepen.' + REORGANISE_DESCRIPTION: 'Site structuur wijzigen' + REORGANISE_HELP: 'Pas de volgorde van de pagina''s aan door te verslepen.' SHOWINMENUS: 'Weergeven in menu''s?' SHOWINSEARCH: 'Weergeven in zoeken?' SINGULARNAME: Pagina TABBEHAVIOUR: Gedrag - TABCONTENT: 'Inhoud' + TABCONTENT: 'Hoofdinhoud' TABDEPENDENT: 'Afhankelijke pagina''s' - TOPLEVEL: 'Site Inhoud (Top Niveau)' + TOPLEVEL: 'Site inhoud (hoogste niveau)' TOPLEVELCREATORGROUPS: 'Hoogste niveau auteurs' - URLSegment: 'URL Segment' - VIEWERGROUPS: 'Toegangsgroepen' + URLSegment: 'URL segment' + VIEWERGROUPS: 'Bekijkersgroepen' VIEW_ALL_DESCRIPTION: 'Kan iedere pagina op de website bekijken, ongeacht de specifieke pagina instelling' VIEW_ALL_HELP: 'Bevoegdheid om alle pagina''s op de site te wijzigen, onafhankelijk van de instellingen in het ''Toegang'' tabblad. Vereist "Toegang tot site inhoud" rechten' VIEW_DRAFT_CONTENT: 'Bekijk concept inhoud' VIEW_DRAFT_CONTENT_HELP: 'Bevoegdheid om pagina''s buiten het CMS in concept mode te bekijken. Nuttig voor externe medewerkers zonder CMS toegang.' - Viewers: 'Gebruikersgroepen' + Viewers: 'Bekijkersgroepen' Visibility: Zichtbaarheid has_one_Parent: 'Bovenliggende pagina' - many_many_BackLinkTracking: 'Wederlink Volgen' - many_many_ImageTracking: 'Afbeelding Volgen' - many_many_LinkTracking: 'Link Volgen' + many_many_BackLinkTracking: 'Backlinks traceren' + many_many_ImageTracking: 'Afbeeldingen traceren' + many_many_LinkTracking: 'Links traceren' SiteTreeURLSegmentField: - EMPTY: 'Vul een URL Segment in of selecteer annuleren' + EMPTY: 'Vul een URL segment in of klik op annuleren' HelpChars: 'Speciale tekens worden automatische omgezet of verwijderd.' URLSegmentField: Cancel: Annuleer @@ -391,7 +394,7 @@ nl: OK: OK ViewArchivedEmail_ss: CANACCESS: 'U kunt de gearchiveerde site bekijken via deze link:' - HAVEASKED: 'U heeft de inhoud van onze site opgevraagd op' + HAVEASKED: 'U heeft gevraagd de inhoud van onze site te bekijken op' VirtualPage: CHOOSE: 'Gekoppelde pagina' DESCRIPTION: 'Geeft de inhoud van een andere pagina weer' @@ -400,12 +403,18 @@ nl: HEADERWITHLINK: 'Dit is een virtuele pagina met de inhoud van "{title}" ({link})' PLURALNAME: 'Virtuele pagina''s' PageTypNotAllowedOnRoot: 'Voor deze virtuele pagina is het originele paginatype "{type}" niet toegestaan op het hoogste niveau.' - SINGULARNAME: 'Virtuele Pagina' + SINGULARNAME: 'Virtuele pagina' CMSFileAddController: MENUTITLE: Bestanden CMSPageEditController: - MENUTITLE: 'Wijzig Pagina' + MENUTITLE: 'Wijzig pagina' CMSPageSettingsController: MENUTITLE: 'Wijzig pagina' CMSSettingsController: MENUTITLE: Instellingen + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Verwijderde pagina''s' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Niet gepubliceerde concept pagina''s' + CMSSiteTreeFilter_StatusRemovedFromDraftPages: + Title: 'Gepubliceerd maar verwijderd uit concept' diff --git a/lang/pl.yml b/lang/pl.yml index 9ea60e4f..78ae5657 100644 --- a/lang/pl.yml +++ b/lang/pl.yml @@ -19,7 +19,7 @@ pl: FROMYOURCOMPUTER: 'Z komputera' Filetype: 'Typ pliku' ListView: 'Widok listy' - NEWFOLDER: NowyKatalog + NEWFOLDER: Nowy katalog SIZE: Rozmiar THUMBSDELETED: '{count} nieuzywane miniatury zostały usunięte' TreeView: 'Widok drzewa' @@ -73,8 +73,9 @@ pl: ACCESS: 'Dostęp do sekcji ''{title}''' ACCESS_HELP: 'Zezwala na oglądanie sekcji zawierających drzewo stron oraz treść. Prawo Przeglądaj i edytuj może być obsługiwane przez pola wyboru dostępne na stronach oraz poprzez zakładkę uprawnień.' AddNew: 'Dodaj nową stronę' - AddNewButton: 'Dodaj nowy' + AddNewButton: 'Dodaj nową' AddPageRestriction: 'Uwaga: Niektóre typy stron nie są dozwolone dla tego wyboru' + Cancel: Anuluj ChoosePageParentMode: 'Wybierz gdzie chcesz utworzyć tę stronę' ChoosePageType: 'Wybierz rodzaj strony' Create: Utwórz @@ -285,7 +286,7 @@ pl: SITETITLE: 'Tytuł serwisu' TABACCESS: Dostęp TABMAIN: Główny - TAGLINEDEFAULT: 'napisz swój slogan tutaj' + TAGLINEDEFAULT: 'wpisz swój slogan' THEME: Szablon TOPLEVELCREATE: 'Kto może tworzyć strony w korzeniu serwisu?' VIEWHEADER: 'Kto może oglądać strony serwisu?' @@ -409,3 +410,9 @@ pl: MENUTITLE: 'Edytuj stronę' CMSSettingsController: MENUTITLE: Ustawienia + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Usunięte strony' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Szkic nieopublikowanych stron' + CMSSiteTreeFilter_StatusRemovedFromDraftPages: + Title: 'Opublikowana ale usunięta ze szkicu strony' diff --git a/lang/ru.yml b/lang/ru.yml index fb87a053..698d400b 100644 --- a/lang/ru.yml +++ b/lang/ru.yml @@ -75,6 +75,7 @@ ru: AddNew: 'Добавить новую страницу' AddNewButton: 'Добавить' AddPageRestriction: 'Внимание: некоторые типы страниц в этом случае недоступны для выбора' + Cancel: Отмена ChoosePageParentMode: 'Выберите, где создать страницу' ChoosePageType: 'Выберите тип страницы' Create: Создать @@ -199,6 +200,8 @@ ru: 415: '415 - Неподдерживаемый тип данных' 416: '416 - Запрашиваемый диапазон не достижим' 417: '417 - Ожидаемое ошибочно' + 422: '422 - Необрабатываемый экземпляр' + 429: '429 - Слишком много запросов' 500: '500 - Внутренняя ошибка сервера' 501: '501 - Невыполнимо' 502: '502 - Плохой шлюз' @@ -409,3 +412,9 @@ ru: MENUTITLE: 'Править страницу' CMSSettingsController: MENUTITLE: Настройки + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Удаленные страницы' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Неопубликованные черновые страницы' + CMSSiteTreeFilter_StatusRemovedFromDraftPages: + Title: 'Опубликовано, но удалено из черновика' diff --git a/lang/sk.yml b/lang/sk.yml index 3c6ab935..53fd1b6f 100644 --- a/lang/sk.yml +++ b/lang/sk.yml @@ -200,6 +200,8 @@ sk: 415: '415 - Nepodporovaný typ média' 416: '416 - Rozsah požiadavky nie je dostačujúci' 417: '417 - Zlyhanie očakávania' + 422: '422 - Nespracovateľná entita' + 429: '429 - Príliš veľa požiadavkov' 500: '500 - Interná chyba serveru' 501: '501 - Nie je implementované' 502: '502 - Nesprávna brána' From 1c48cb6aaef874a0b7a6f5b02ab39572513b0e30 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 6 Aug 2014 13:26:23 +1200 Subject: [PATCH 10/14] BUG Fix search range for asset filter --- code/controllers/AssetAdmin.php | 9 ++- tests/controller/AssetAdminTest.php | 114 ++++++++++++++++++++++++++++ tests/controller/AssetAdminTest.yml | 12 +++ 3 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 tests/controller/AssetAdminTest.php create mode 100644 tests/controller/AssetAdminTest.yml diff --git a/code/controllers/AssetAdmin.php b/code/controllers/AssetAdmin.php index 3335ff99..5bedd465 100644 --- a/code/controllers/AssetAdmin.php +++ b/code/controllers/AssetAdmin.php @@ -142,11 +142,11 @@ JS // Date filter if(!empty($params['CreatedFrom'])) { $fromDate = new DateField(null, null, $params['CreatedFrom']); - $list = $list->filter("Created:GreaterThanOrEqual", $fromDate->dataValue()); + $list = $list->filter("Created:GreaterThanOrEqual", $fromDate->dataValue().' 00:00:00'); } if(!empty($params['CreatedTo'])) { $toDate = new DateField(null, null, $params['CreatedTo']); - $list = $list->filter("Created:LessThanOrEqual", $toDate->dataValue()); + $list = $list->filter("Created:LessThanOrEqual", $toDate->dataValue().' 23:59:59'); } return $list; @@ -347,6 +347,11 @@ JS return $this->redirect(Controller::join_links($this->Link('show'), $parentID ? $parentID : 0)); } + /** + * Get the search context + * + * @return SearchContext + */ public function getSearchContext() { $context = singleton('File')->getDefaultSearchContext(); diff --git a/tests/controller/AssetAdminTest.php b/tests/controller/AssetAdminTest.php new file mode 100644 index 00000000..27344365 --- /dev/null +++ b/tests/controller/AssetAdminTest.php @@ -0,0 +1,114 @@ +allFixtureIDs('Folder'); + foreach($folderIDs as $folderID) { + $folder = DataObject::get_by_id('Folder', $folderID); + if(!file_exists(BASE_PATH."/$folder->Filename")) mkdir(BASE_PATH."/$folder->Filename"); + } + + // Create a test files for each of the fixture references + $fileIDs = $this->allFixtureIDs('File'); + foreach($fileIDs as $fileID) { + $file = DataObject::get_by_id('File', $fileID); + $fh = fopen(BASE_PATH."/$file->Filename", "w"); + fwrite($fh, str_repeat('x',1000000)); + fclose($fh); + } + } + + public function tearDown() { + parent::tearDown(); + + // Remove the test files that we've created + $fileIDs = $this->allFixtureIDs('File'); + foreach($fileIDs as $fileID) { + $file = DataObject::get_by_id('File', $fileID); + if($file && file_exists(BASE_PATH."/$file->Filename")) unlink(BASE_PATH."/$file->Filename"); + } + + // Remove the test folders that we've crated + $folderIDs = $this->allFixtureIDs('Folder'); + foreach($folderIDs as $folderID) { + $folder = DataObject::get_by_id('Folder', $folderID); + if($folder && file_exists(BASE_PATH."/$folder->Filename")) { + Filesystem::removeFolder(BASE_PATH."/$folder->Filename"); + } + } + + // Remove left over folders and any files that may exist + if(file_exists(ASSETS_PATH.'/AssetAdminTest')) { + Filesystem::removeFolder(ASSETS_PATH.'/AssetAdminTest'); + } + } + + /** + * Mock a file search using AssetAdmin + * + * @param string $name + * @param string $from Created from date + * @param string $to Createi to date + * @param string $category + * @return SS_List + */ + protected function getResultsForSearch($name = '', $from = '', $to = '', $category = '') { + $request = new SS_HTTPRequest(null, 'admin/assets/show', array( + 'q' => array( + 'Name' => $name, + 'CreatedFrom' => $from, + 'CreatedTo' => $to, + 'AppCategory' => $category + ), + 'action_doSearch' => 'Apply Filter' + )); + $admin = new AssetAdmin(); + $admin->setRequest($request); + return $admin->getList(); + } + + /** + * Tests filtering between date ranges + */ + public function testDateFromToLastSameDate() { + $file1 = $this->objFromFixture('File', 'file1'); + $file2 = $this->objFromFixture('File', 'file2'); + + // Force creation times + $file1->Created = '2014-01-05 23:11:39'; + $file1->write(); + $file2->Created = '2014-01-06 12:00:00'; + $file2->write(); + + // Mock searches for 4th Jan + $results = $this->getResultsForSearch(null, '2014-01-04', '2014-01-04'); + $this->assertEmpty($results->column('Title')); + + // Mock searches for 5th Jan + $results = $this->getResultsForSearch(null, '2014-01-05', '2014-01-05'); + $this->assertEquals(array('File1'), $results->column('Title')); + + // Mock searches for 5th-6th Jan + $results = $this->getResultsForSearch(null, '2014-01-05', '2014-01-06'); + $this->assertEquals(array('File1', 'File2'), $results->sort('Title')->column('Title')); + + // Mock searches for 6th Jan + $results = $this->getResultsForSearch(null, '2014-01-06', '2014-01-06'); + $this->assertEquals(array('File2'), $results->column('Title')); + + // Mock searches for 7th Jan + $results = $this->getResultsForSearch(null, '2014-01-07', '2014-01-07'); + $this->assertEmpty($results->column('Title')); + } +} diff --git a/tests/controller/AssetAdminTest.yml b/tests/controller/AssetAdminTest.yml new file mode 100644 index 00000000..dd3172aa --- /dev/null +++ b/tests/controller/AssetAdminTest.yml @@ -0,0 +1,12 @@ +Folder: + folder1: + Name: AssetAdminTest +File: + file1: + Title: File1 + Filename: assets/AssetAdminTest/file1.txt + ParentID: =>Folder.folder1 + file2: + Title: File2 + Filename: assets/AssetAdminTest/file2.txt + ParentID: =>Folder.folder1 From 53dbbb7982429dfd75c5d7ae265087fc54dcc04b Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 6 Aug 2014 15:00:48 +1200 Subject: [PATCH 11/14] BUG Fix CMSMain::getList to correctly respect filter result Fixes #1064 CMSSiteTreeFilter refactored to allow SS_List of filtered pages to be returned --- code/controllers/CMSMain.php | 45 ++++++++------ code/controllers/CMSSiteTreeFilter.php | 54 +++++++++------- tests/controller/CMSMainTest.php | 86 ++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 43 deletions(-) diff --git a/code/controllers/CMSMain.php b/code/controllers/CMSMain.php index 340529ad..ebb326cd 100644 --- a/code/controllers/CMSMain.php +++ b/code/controllers/CMSMain.php @@ -697,35 +697,40 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr return $this->renderWith($this->getTemplatesWithSuffix('_ListView')); } + /** + * Safely reconstruct a selected filter from a given set of query parameters + * + * @param array $params Query parameters to use + * @return CMSSiteTreeFilter The filter class, or null if none present + * @throws InvalidArgumentException if invalid filter class is passed. + */ + protected function getQueryFilter($params) { + if(empty($params['FilterClass'])) return null; + $filterClass = $params['FilterClass']; + if(!is_subclass_of($filterClass, 'CMSSiteTreeFilter')) { + throw new InvalidArgumentException("Invalid filter class passed: {$filterClass}"); + } + return $filterClass::create($params); + } + /** * Returns the pages meet a certain criteria as {@see CMSSiteTreeFilter} or the subpages of a parent page * defaulting to no filter and show all pages in first level. * Doubles as search results, if any search parameters are set through {@link SearchForm()}. * - * @param Array $params Search filter criteria - * @param Int $parentID Optional parent node to filter on (can't be combined with other search criteria) + * @param array $params Search filter criteria + * @param int $parentID Optional parent node to filter on (can't be combined with other search criteria) * @return SS_List - * @throws Exception if invalid filter class is passed. + * @throws InvalidArgumentException if invalid filter class is passed. */ - public function getList($params, $parentID = 0) { - $list = new DataList($this->stat('tree_class')); - $filter = null; - $ids = array(); - if(isset($params['FilterClass']) && $filterClass = $params['FilterClass']){ - if(!is_subclass_of($filterClass, 'CMSSiteTreeFilter')) { - throw new Exception(sprintf('Invalid filter class passed: %s', $filterClass)); - } - $filter = new $filterClass($params); - $filterOn = true; - foreach($pages=$filter->pagesIncluded() as $pageMap){ - $ids[] = $pageMap['ID']; - } - if(count($ids)) $list = $list->where('"'.$this->stat('tree_class').'"."ID" IN ('.implode(",", $ids).')'); + public function getList($params = array(), $parentID = 0) { + if($filter = $this->getQueryFilter($params)) { + return $filter->getFilteredPages(); } else { - $list = $list->filter("ParentID", is_numeric($parentID) ? $parentID : 0); + $list = DataList::create($this->stat('tree_class')); + $parentID = is_numeric($parentID) ? $parentID : 0; + return $list->filter("ParentID", $parentID); } - - return $list; } public function ListViewForm() { diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index 1c13947f..f6e2384b 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -92,9 +92,19 @@ abstract class CMSSiteTreeFilter extends Object { } /** - * @return Array Map of Page IDs to their respective ParentID values. + * Gets the list of filtered pages + * + * @see {@link SiteTree::getStatusFlags()} + * @return SS_List */ - public function pagesIncluded() {} + abstract public function getFilteredPages(); + + /** + * @return array Map of Page IDs to their respective ParentID values. + */ + public function pagesIncluded() { + return $this->mapIDs($this->getFilteredPages()); + } /** * Populate the IDs of the pages returned by pagesIncluded(), also including @@ -231,15 +241,15 @@ class CMSSIteTreeFilter_PublishedPages extends CMSSiteTreeFilter { * Filters out all pages who's status who's status that doesn't exist on live * * @see {@link SiteTree::getStatusFlags()} - * @return array + * @return SS_List */ - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_including_deleted('SiteTree'); $pages = $this->applyDefaultFilters($pages); $pages = $pages->filterByCallback(function($page) { return $page->ExistsOnLive; }); - return $this->mapIDs($pages); + return $pages; } } @@ -267,10 +277,10 @@ class CMSSiteTreeFilter_DeletedPages extends CMSSiteTreeFilter { return _t('CMSSiteTreeFilter_DeletedPages.Title', "All pages, including deleted"); } - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_including_deleted('SiteTree'); $pages = $this->applyDefaultFilters($pages); - return $this->mapIDs($pages); + return $pages; } } @@ -286,12 +296,12 @@ class CMSSiteTreeFilter_ChangedPages extends CMSSiteTreeFilter { return _t('CMSSiteTreeFilter_ChangedPages.Title', "Changed pages"); } - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_by_stage('SiteTree', 'Stage'); $pages = $this->applyDefaultFilters($pages) ->leftJoin('SiteTree_Live', '"SiteTree_Live"."ID" = "SiteTree"."ID"') ->where('"SiteTree"."Version" > "SiteTree_Live"."Version"'); - return $this->mapIDs($pages); + return $pages; } } @@ -310,17 +320,16 @@ class CMSSiteTreeFilter_StatusRemovedFromDraftPages extends CMSSiteTreeFilter { /** * Filters out all pages who's status is set to "Removed from draft". * - * @see {@link SiteTree::getStatusFlags()} - * @return array + * @return SS_List */ - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_including_deleted('SiteTree'); $pages = $this->applyDefaultFilters($pages); $pages = $pages->filterByCallback(function($page) { // If page is removed from stage but not live return $page->IsDeletedFromStage && $page->ExistsOnLive; }); - return $this->mapIDs($pages); + return $pages; } } @@ -340,16 +349,16 @@ class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter { * Filters out all pages who's status is set to "Draft". * * @see {@link SiteTree::getStatusFlags()} - * @return array + * @return SS_List */ - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_by_stage('SiteTree', 'Stage'); $pages = $this->applyDefaultFilters($pages); $pages = $pages->filterByCallback(function($page) { // If page exists on stage but not on live return (!$page->IsDeletedFromStage && $page->IsAddedToStage); }); - return $this->mapIDs($pages); + return $pages; } } @@ -379,9 +388,9 @@ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter { * Filters out all pages who's status is set to "Deleted". * * @see {@link SiteTree::getStatusFlags()} - * @return array + * @return SS_List */ - public function pagesIncluded() { + public function getFilteredPages() { $pages = Versioned::get_including_deleted('SiteTree'); $pages = $this->applyDefaultFilters($pages); @@ -389,7 +398,7 @@ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter { // Doesn't exist on either stage or live return $page->IsDeletedFromStage && !$page->ExistsOnLive; }); - return $this->mapIDs($pages); + return $pages; } } @@ -407,13 +416,12 @@ class CMSSiteTreeFilter_Search extends CMSSiteTreeFilter { * Retun an array of maps containing the keys, 'ID' and 'ParentID' for each page to be displayed * in the search. * - * @return Array + * @return SS_List */ - public function pagesIncluded() { - + public function getFilteredPages() { // Filter default records $pages = Versioned::get_by_stage('SiteTree', 'Stage'); $pages = $this->applyDefaultFilters($pages); - return $this->mapIDs($pages); + return $pages; } } diff --git a/tests/controller/CMSMainTest.php b/tests/controller/CMSMainTest.php index 644cc858..5bcf119a 100644 --- a/tests/controller/CMSMainTest.php +++ b/tests/controller/CMSMainTest.php @@ -349,6 +349,92 @@ class CMSMainTest extends FunctionalTest { $this->assertEquals($controller->getResponse()->getStatusCode(), 302); } } + + /** + * Tests filtering in {@see CMSMain::getList()} + */ + public function testGetList() { + $controller = new CMSMain(); + + // Test all pages (stage) + $pages = $controller->getList()->sort('Title'); + $this->assertEquals(28, $pages->count()); + $this->assertEquals( + array('Home', 'Page 1', 'Page 10', 'Page 11', 'Page 12'), + $pages->Limit(5)->column('Title') + ); + + // Change state of tree + $page1 = $this->objFromFixture('Page', 'page1'); + $page3 = $this->objFromFixture('Page', 'page3'); + $page11 = $this->objFromFixture('Page', 'page11'); + $page12 = $this->objFromFixture('Page', 'page12'); + // Deleted + $page1->doUnpublish(); + $page1->delete(); + // Live and draft + $page11->publish('Stage', 'Live'); + // Live only + $page12->publish('Stage', 'Live'); + $page12->delete(); + + // Re-test all pages (stage) + $pages = $controller->getList()->sort('Title'); + $this->assertEquals(26, $pages->count()); + $this->assertEquals( + array('Home', 'Page 10', 'Page 11', 'Page 13', 'Page 14'), + $pages->Limit(5)->column('Title') + ); + + // Test deleted page filter + $params = array( + 'FilterClass' => 'CMSSiteTreeFilter_StatusDeletedPages' + ); + $pages = $controller->getList($params); + $this->assertEquals(1, $pages->count()); + $this->assertEquals( + array('Page 1'), + $pages->column('Title') + ); + + // Test live, but not on draft filter + $params = array( + 'FilterClass' => 'CMSSiteTreeFilter_StatusRemovedFromDraftPages' + ); + $pages = $controller->getList($params); + $this->assertEquals(1, $pages->count()); + $this->assertEquals( + array('Page 12'), + $pages->column('Title') + ); + + // Test live pages filter + $params = array( + 'FilterClass' => 'CMSSIteTreeFilter_PublishedPages' + ); + $pages = $controller->getList($params); + $this->assertEquals(2, $pages->count()); + $this->assertEquals( + array('Page 11', 'Page 12'), + $pages->column('Title') + ); + + // Test that parentID is ignored when filtering + $pages = $controller->getList($params, $page3->ID); + $this->assertEquals(2, $pages->count()); + $this->assertEquals( + array('Page 11', 'Page 12'), + $pages->column('Title') + ); + + // Test that parentID is respected when not filtering + $pages = $controller->getList(array(), $page3->ID); + $this->assertEquals(2, $pages->count()); + $this->assertEquals( + array('Page 3.1', 'Page 3.2'), + $pages->column('Title') + ); + } } class CMSMainTest_ClassA extends Page implements TestOnly { From 4e5b1966d36c26c4ec0c5db3987786aafd6f76ae Mon Sep 17 00:00:00 2001 From: madmatt Date: Thu, 7 Aug 2014 15:49:09 +1200 Subject: [PATCH 12/14] Fix changed pages filter to match SiteTree's 'MODIFIED' label --- code/controllers/CMSSiteTreeFilter.php | 2 +- tests/controller/CMSSiteTreeFilterTest.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index f6e2384b..583e6730 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -300,7 +300,7 @@ class CMSSiteTreeFilter_ChangedPages extends CMSSiteTreeFilter { $pages = Versioned::get_by_stage('SiteTree', 'Stage'); $pages = $this->applyDefaultFilters($pages) ->leftJoin('SiteTree_Live', '"SiteTree_Live"."ID" = "SiteTree"."ID"') - ->where('"SiteTree"."Version" > "SiteTree_Live"."Version"'); + ->where('"SiteTree"."Version" <> "SiteTree_Live"."Version"'); return $pages; } } diff --git a/tests/controller/CMSSiteTreeFilterTest.php b/tests/controller/CMSSiteTreeFilterTest.php index fce3ca38..50be152a 100644 --- a/tests/controller/CMSSiteTreeFilterTest.php +++ b/tests/controller/CMSSiteTreeFilterTest.php @@ -72,6 +72,17 @@ class CMSSiteTreeFilterTest extends SapphireTest { $f = new CMSSiteTreeFilter_ChangedPages(array('Term' => 'No Matches')); $results = $f->pagesIncluded(); $this->assertEquals(0, count($results)); + + // If we roll back to an earlier version than what's on the published site, we should still show the changed + $changedPage->Title = 'Changed 2'; + $changedPage->publish('Stage', 'Live'); + $changedPage->doRollbackTo(1); + + $f = new CMSSiteTreeFilter_ChangedPages(array('Term' => 'Changed')); + $results = $f->pagesIncluded(); + + $this->assertEquals(1, count($results)); + $this->assertEquals(array('ID' => $changedPage->ID, 'ParentID' => 0), $results[0]); } public function testDeletedPagesFilter() { From 7eeb59a52f60da46ca5efc0db6a4f0f586c6ada7 Mon Sep 17 00:00:00 2001 From: Nicolaas Date: Thu, 7 Aug 2014 20:33:19 +1200 Subject: [PATCH 13/14] fix spelling of pages from pags to pages fix spelling of pages from pags to pages --- lang/en.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/en.yml b/lang/en.yml index 0bc207c9..218858e6 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -215,7 +215,7 @@ en: DEFAULTSERVERERRORPAGETITLE: 'Server error' DESCRIPTION: 'Custom content for different error cases (e.g. "Page not found")' ERRORFILEPROBLEM: 'Error opening file "{filename}" for writing. Please check file permissions.' - PLURALNAME: 'Error Pags' + PLURALNAME: 'Error Pages' SINGULARNAME: 'Error Page' Folder: AddFolderButton: 'Add folder' @@ -238,7 +238,7 @@ en: HASBEENSETUP: 'A redirector page has been set up without anywhere to redirect to.' HEADER: 'This page will redirect users to another page' OTHERURL: 'Other website URL' - PLURALNAME: 'Redirector Pags' + PLURALNAME: 'Redirector Pages' REDIRECTTO: 'Redirect to' REDIRECTTOEXTERNAL: 'Another website' REDIRECTTOPAGE: 'A page on your website' @@ -401,7 +401,7 @@ en: EditLink: edit HEADER: 'This is a virtual page' HEADERWITHLINK: 'This is a virtual page copying content from "{title}" ({link})' - PLURALNAME: 'Virtual Pags' + PLURALNAME: 'Virtual Pages' PageTypNotAllowedOnRoot: 'Original page type "{type}" is not allowed on the root level for this virtual page' SINGULARNAME: 'Virtual Page' CMSFileAddController: From fc6f0fecc58a011cbfd39851ec544c780651cbb9 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Mon, 11 Aug 2014 18:26:15 +1200 Subject: [PATCH 14/14] Set minimum firefox version for travis support --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8c217804..5dec5007 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ language: php php: - 5.3 +addons: + firefox: "31.0" + env: global: - "ARTIFACTS_AWS_REGION=us-east-1"