Merge remote-tracking branch 'origin/3.1'

This commit is contained in:
Ingo Schommer 2013-06-19 11:17:33 +02:00
commit 94b4237372
152 changed files with 5897 additions and 3392 deletions

40
admin/code/CMSForm.php Normal file
View File

@ -0,0 +1,40 @@
<?php
/**
* Deals with special form handling in CMS, mainly around {@link PjaxResponseNegotiator}
*/
class CMSForm extends Form {
/**
* Route validation error responses through response negotiator,
* so they return the correct markup as expected by the requesting client.
*/
protected function getValidationErrorResponse() {
$request = $this->getRequest();
$negotiator = $this->getResponseNegotiator();
if($request->isAjax() && $negotiator) {
$negotiator->setResponse(new SS_HTTPResponse($this));
return $negotiator->respond($request);
} else {
return parent::getValidationErrorResponse();
}
}
/**
* Sets the response negotiator
* @param ResponseNegotiator $negotiator The response negotiator to use
* @return Form The current form
*/
public function setResponseNegotiator($negotiator) {
$this->responseNegotiator = $negotiator;
return $this;
}
/**
* Gets the current response negotiator
* @return ResponseNegotiator|null
*/
public function getResponseNegotiator() {
return $this->responseNegotiator;
}
}

View File

@ -23,6 +23,7 @@ class CMSProfileController extends LeftAndMain {
$form = parent::getEditForm($id, $fields);
if($form instanceof SS_HTTPResponse) return $form;
$form->Fields()->removeByName('LastVisited');
$form->Fields()->push(new HiddenField('ID', null, Member::currentUserID()));
$form->Actions()->push(
FormAction::create('save',_t('CMSMain.SAVE', 'Save'))

View File

@ -378,29 +378,58 @@ class LeftAndMain extends Controller implements PermissionProvider {
$ie = isset($_SERVER['HTTP_USER_AGENT']) ? strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') : false;
if($ie) {
$version = substr($_SERVER['HTTP_USER_AGENT'], $ie + 5, 3);
if($version == 7) Requirements::css(FRAMEWORK_ADMIN_DIR . '/css/ie7.css');
else if($version == 8) Requirements::css(FRAMEWORK_ADMIN_DIR . '/css/ie8.css');
if($version == 7) {
Requirements::css(FRAMEWORK_ADMIN_DIR . '/css/ie7.css');
} else if($version == 8) {
Requirements::css(FRAMEWORK_ADMIN_DIR . '/css/ie8.css');
}
}
// Custom requirements
$extraJs = $this->stat('extra_requirements_javascript');
if($extraJs) foreach($extraJs as $file => $config) {
Requirements::javascript($file);
if($extraJs) {
foreach($extraJs as $file => $config) {
if(is_numeric($file)) {
$file = $config;
}
Requirements::javascript($file);
}
}
$extraCss = $this->stat('extra_requirements_css');
if($extraCss) foreach($extraCss as $file => $config) {
Requirements::css($file, isset($config['media']) ? $config['media'] : null);
if($extraCss) {
foreach($extraCss as $file => $config) {
if(is_numeric($file)) {
$file = $config;
$config = array();
}
Requirements::css($file, isset($config['media']) ? $config['media'] : null);
}
}
$extraThemedCss = $this->stat('extra_requirements_themedCss');
if($extraThemedCss) foreach ($extraThemedCss as $file => $config) {
Requirements::themedCSS($file, isset($config['media']) ? $config['media'] : null);
if($extraThemedCss) {
foreach ($extraThemedCss as $file => $config) {
if(is_numeric($file)) {
$file = $config;
$config = array();
}
Requirements::themedCSS($file, isset($config['media']) ? $config['media'] : null);
}
}
$dummy = null;
$this->extend('init', $dummy);
// The user's theme shouldn't affect the CMS, if, for example, they have replaced TableListField.ss or Form.ss.
// The user's theme shouldn't affect the CMS, if, for example, they have
// replaced TableListField.ss or Form.ss.
Config::inst()->update('SSViewer', 'theme_enabled', false);
}
@ -1182,7 +1211,10 @@ class LeftAndMain extends Controller implements PermissionProvider {
$actionsFlattened = $actions->dataFields();
if($actionsFlattened) foreach($actionsFlattened as $action) $action->setUseButtonTag(true);
$form = new Form($this, "EditForm", $fields, $actions);
$form = CMSForm::create(
$this, "EditForm", $fields, $actions
)->setHTMLID('Form_EditForm');
$form->setResponseNegotiator($this->getResponseNegotiator());
$form->addExtraClass('cms-edit-form');
$form->loadDataFrom($record);
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
@ -1235,7 +1267,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
* @return Form
*/
public function EmptyForm() {
$form = new Form(
$form = CMSForm::create(
$this,
"EditForm",
new FieldList(
@ -1253,7 +1285,8 @@ class LeftAndMain extends Controller implements PermissionProvider {
// )
),
new FieldList()
);
)->setHTMLID('Form_EditForm');
$form->setResponseNegotiator($this->getResponseNegotiator());
$form->unsetValidator();
$form->addExtraClass('cms-edit-form');
$form->addExtraClass('root-form');

View File

@ -138,12 +138,13 @@ abstract class ModelAdmin extends LeftAndMain {
$listField->getConfig()->getComponentByType('GridFieldDetailForm')->setValidator($detailValidator);
}
$form = new Form(
$form = CMSForm::create(
$this,
'EditForm',
new FieldList($listField),
new FieldList()
);
)->setHTMLID('Form_EditForm');
$form->setResponseNegotiator($this->getResponseNegotiator());
$form->addExtraClass('cms-edit-form cms-panel-padded center');
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
$editFormAction = Controller::join_links($this->Link($this->sanitiseClassName($this->modelClass)), 'EditForm');

View File

@ -154,12 +154,13 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$actions = new FieldList();
$form = new Form(
$form = CMSForm::create(
$this,
'EditForm',
$fields,
$actions
);
)->setHTMLID('Form_EditForm');
$form->setResponseNegotiator($this->getResponseNegotiator());
$form->addExtraClass('cms-edit-form');
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
// Tab nav in CMS is rendered through separate template

View File

@ -149,8 +149,8 @@ form.nostyle label.left { float: none; display: inherit; width: auto; padding: 0
form.nostyle .middleColumn { margin-left: 0; }
form.nostyle input.text, form.nostyle textarea, form.nostyle select, form.nostyle .TreeDropdownField { width: auto; max-width: auto; }
.field { display: block; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); -moz-box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); padding: 0 0 7px 0; margin: 0 0 8px 0; *zoom: 1; }
.field:last-child { border-bottom: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; }
.field { display: block; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); -moz-box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); box-shadow: 0 1px 0 rgba(245, 245, 245, 0.8); padding: 0 0 7px 0; margin: 8px 0; *zoom: 1; }
.field.noborder, .field:last-child { padding-bottom: 0; border-bottom: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; }
.field:after { content: "\0020"; display: block; height: 0; clear: both; overflow: hidden; visibility: hidden; }
.field.nolabel .middleColumn { margin-left: 0; }
.field.nolabel .description { margin-left: 0; }
@ -160,7 +160,7 @@ form.nostyle input.text, form.nostyle textarea, form.nostyle select, form.nostyl
.field .middleColumn { margin-left: 184px; }
.field span.readonly { padding-top: 8px; line-height: 16px; display: block; }
.field .fieldgroup .fieldgroup-field.last { /* This is used on page/settings/visibility */ padding-bottom: 8px; /* replicates li item spacing */ }
.field .description { clear: both; color: #777777; display: block; font-style: italic; margin: 4px 0 0 184px; }
.field .description { clear: both; color: #777777; display: block; font-style: italic; line-height: 16px; margin: 4px 0 0 184px; }
.field.checkbox .description, .field.ss-gridfield .description { margin-left: 0; }
.field input.text, .field textarea, .field select, .field .TreeDropdownField { margin-left: 10px; width: 100%; max-width: 512px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
.field input.text.description, .field textarea.description, .field select.description, .field .TreeDropdownField.description { margin: 0; }
@ -188,7 +188,7 @@ form.small .field input.text, form.small .field textarea, form.small .field sele
.field .chzn-container .chzn-results li { font-size: 11px; line-height: 16px; padding: 4px 4px; }
.field .chzn-container-active .chzn-single { border: 1px solid #9a9a9a; }
.field .chzn-container-single .chzn-single { height: 26px; line-height: 26px; /* not relative, as then we'd had to redo most of chzn */ font-size: 12px; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VmZWZlZiIvPjxzdG9wIG9mZnNldD0iMTAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIi8+PHN0b3Agb2Zmc2V0PSI5MCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlZmVmZWYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #efefef), color-stop(10%, #ffffff), color-stop(90%, #ffffff), color-stop(100%, #efefef)); background-image: -webkit-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -moz-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -o-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); }
.field .chzn-container-single .chzn-single:hover, .field .chzn-container-single .chzn-single:focus, .field .chzn-container-single .chzn-single:active { text-decoration: none; outline: none; }
.field .chzn-container-single .chzn-single:hover, .field .chzn-container-single .chzn-single:focus, .field .chzn-container-single .chzn-single:active { text-decoration: none; }
.field .chzn-container-single .chzn-single div { width: 24px; }
.field .chzn-container-single .chzn-single div b { background-position: 4px 0px; }
.field .chzn-choices { -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; }
@ -361,12 +361,13 @@ body.cms { overflow: hidden; }
.cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-fields, .cms-edit-form, .cms-preview, .cms-preview iframe, .cms-preview-controls { display: -moz-inline-stack; display: inline-block; vertical-align: middle; *vertical-align: auto; zoom: 1; *display: inline; }
.cms-content-header { padding-left: 16px; z-index: 60; min-height: 40px; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; background-position: left bottom; }
.cms-content-header .cms-content-header-info *, .cms-content-header .cms-content-header-tabs * { display: -moz-inline-stack; display: inline-block; vertical-align: middle; *vertical-align: auto; zoom: 1; *display: inline; }
.cms-content-header { padding-left: 16px; z-index: 60; min-height: 40px; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; background-position: left bottom; background-color: #d4d6d8; }
.cms-content-header a { color: #0073c1; }
.cms-content-header .backlink span.btn-icon-back { height: 16px; }
.cms-content-header h2 { font-size: 14px; font-weight: bold; margin: 0; }
.cms-content-header h2 { font-size: 14px; font-weight: bold; margin: 0; margin-bottom: 8px; }
.cms-content-header h2 * { vertical-align: middle; }
.cms-content-header .cms-content-header-info { float: left; padding-top: 6px; }
.cms-content-header .cms-content-header-info > * { display: inline-block; }
.cms-content-header .ss-ui-button { line-height: 24px; }
.cms-content-header .ss-ui-button .ui-button-text { line-height: 1.4; }
@ -435,7 +436,7 @@ body.cms { overflow: hidden; }
.cms-content-actions, .cms-preview-controls { margin: 0; padding: 12px 12px; z-index: 0; border-top: 1px solid #cacacc; -webkit-box-shadow: 1px 0 0 #eceff1, rgba(248, 248, 248, 0.9) 0 1px 0px inset, rgba(201, 205, 206, 0.8) 0 0 1px; -moz-box-shadow: 1px 0 0 #eceff1, rgba(248, 248, 248, 0.9) 0 1px 0px inset, rgba(201, 205, 206, 0.8) 0 0 1px; box-shadow: 1px 0 0 #eceff1, rgba(248, 248, 248, 0.9) 0 1px 0px inset, rgba(201, 205, 206, 0.8) 0 0 1px; height: 28px; background-color: #eceff1; }
/** -------------------------------------------- Messages -------------------------------------------- */
.message { display: block; clear: both; margin: 8px 0; padding: 10px 12px; font-weight: normal; border: 1px #ccc solid; background: #fff; background: rgba(255, 255, 255, 0.5); text-shadow: none; -webkit-border-radius: 3px 3px 3px 3px; -moz-border-radius: 3px 3px 3px 3px; -ms-border-radius: 3px 3px 3px 3px; -o-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; }
.message { display: block; clear: both; margin: 0 0 8px; padding: 10px 12px; font-weight: normal; border: 1px #ccc solid; background: #fff; background: rgba(255, 255, 255, 0.5); text-shadow: none; -webkit-border-radius: 3px 3px 3px 3px; -moz-border-radius: 3px 3px 3px 3px; -ms-border-radius: 3px 3px 3px 3px; -o-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; }
.message.notice { background-color: #f0f8fc; border-color: #93cde8; }
.message.warning { background-color: #fefbde; border-color: #e9d104; }
.message.error, .message.bad, .message.required, .message.validation { background-color: #fae8e9; border-color: #e68288; }
@ -476,7 +477,7 @@ body.cms { overflow: hidden; }
#Form_AddForm_PageType_Holder ul li .description { font-style: italic; display: inline; clear: none; margin: 0; }
/** -------------------------------------------- Content toolbar -------------------------------------------- */
.cms-content-toolbar { min-height: 29px; display: block; margin: 0 0 8px 0; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -moz-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -o-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); *zoom: 1; /* smaller treedropdown */ }
.cms-content-toolbar { min-height: 29px; display: block; margin: 0 0 12px 0; padding-bottom: 0; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -moz-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -o-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); *zoom: 1; /* smaller treedropdown */ }
.cms-content-toolbar:after { content: "\0020"; display: block; height: 0; clear: both; overflow: hidden; visibility: hidden; }
.cms-content-toolbar .cms-tree-view-modes { float: right; padding-top: 5px; }
.cms-content-toolbar .cms-tree-view-modes * { display: inline-block; }
@ -485,14 +486,14 @@ body.cms { overflow: hidden; }
.cms-content-toolbar .chzn-container-single .chzn-single:hover { -webkit-box-shadow: 0 0 5px #b3b3b3; -moz-box-shadow: 0 0 5px #b3b3b3; box-shadow: 0 0 5px #b3b3b3; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJlYiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2QyZDJkMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ebebeb), color-stop(100%, #d2d2d2)); background-image: -webkit-linear-gradient(#ebebeb, #d2d2d2); background-image: -moz-linear-gradient(#ebebeb, #d2d2d2); background-image: -o-linear-gradient(#ebebeb, #d2d2d2); background-image: linear-gradient(#ebebeb, #d2d2d2); }
.cms-content-toolbar .chzn-container-single .chzn-single:active { -webkit-box-shadow: inset 0 1px 3px #4d4d4d; -moz-box-shadow: inset 0 1px 3px #4d4d4d; box-shadow: inset 0 1px 3px #4d4d4d; }
.cms-content-toolbar .chzn-container-single .chzn-single span { padding-top: 1px; }
.cms-content-toolbar .chzn-container-single .chzn-single div { background: url(../images/btn-icon/settings.png) 5px 4px no-repeat; border-left: none; width: 100%; }
.cms-content-toolbar .chzn-container-single .chzn-single div { border-left: none; width: 100%; }
.cms-content-toolbar .chzn-container-single .chzn-single div b { background: url(../images/sprites-32x32/menu-arrow-deselected-down.png) no-repeat 9px 11px; float: right; width: 24px; }
.cms-content-toolbar .ss-ui-button { margin-bottom: 8px; }
/* -------------------------------------------------------- Content Tools is the sidebar on the left of the main content panel */
.cms-content-tools { background: #eceff1; width: 200px; overflow-y: auto; overflow-x: hidden; z-index: 70; border-right: 1px solid #c0c0c2; -webkit-box-shadow: rgba(248, 248, 248, 0.9) -1px 0 0 inset, 0 0 1px rgba(201, 205, 206, 0.8); -moz-box-shadow: rgba(248, 248, 248, 0.9) -1px 0 0 inset, 0 0 1px rgba(201, 205, 206, 0.8); box-shadow: rgba(248, 248, 248, 0.9) -1px 0 0 inset, 0 0 1px rgba(201, 205, 206, 0.8); float: left; position: relative; }
.cms-content-tools.filter { padding: 0 !important; }
.cms-content-tools .cms-panel-header { clear: both; margin: 0 0 7px; line-height: 24px; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -moz-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -o-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); }
.cms-content-tools .cms-panel-header { clear: both; margin: 10px 0 7px; padding-bottom: 2px; line-height: 24px; border-bottom: 1px solid #d0d3d5; -webkit-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -moz-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); -o-box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); box-shadow: 0 1px 0 rgba(248, 248, 248, 0.9); }
.cms-content-tools .cms-panel-content { width: 184px; padding: 8.8px 8px 0; overflow: auto; height: 100%; }
.cms-content-tools .cms-panel-content .Actions .ss-ui-action-constructive { margin-right: 5px; }
.cms-content-tools .cms-content-header { background-color: #748d9d; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzc0OGQ5ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #748d9d)); background-image: -webkit-linear-gradient(#b0bec7, #748d9d); background-image: -moz-linear-gradient(#b0bec7, #748d9d); background-image: -o-linear-gradient(#b0bec7, #748d9d); background-image: linear-gradient(#b0bec7, #748d9d); }
@ -517,20 +518,28 @@ body.cms { overflow: hidden; }
.cms-content-tools table td { padding: 4px; line-height: 16px; vertical-align: top; }
.cms-content-tools td { border-bottom: 1px solid #ced7dc; padding: 7px 2px; font-size: 11px; }
/** ------------------------------------------------------------------
* CMS notice, used for filter messages, but generic enough to use elsewhere
* ----------------------------------------------------------------- */
.cms-notice { display: block; margin: 0 0 8px; padding: 10px 12px; font-weight: normal; border: 1px #d0d3d5 solid; background: #fff; background: rgba(255, 255, 255, 0.5); text-shadow: none; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; }
/** CMS Batch actions */
.cms-content-batchactions { float: left; position: relative; display: block; }
.cms-content-batchactions .view-mode-batchactions-wrapper { height: 18px; float: left; padding: 4px 6px; border: 1px solid #aaa; margin-bottom: 8px; background-color: #D9D9D9; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Q5ZDlkOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background-image: -webkit-linear-gradient(top, #ffffff, #d9d9d9); background-image: -moz-linear-gradient(top, #ffffff, #d9d9d9); background-image: -o-linear-gradient(top, #ffffff, #d9d9d9); background-image: linear-gradient(top, #ffffff, #d9d9d9); border-top-left-radius: 4px; border-bottom-left-radius: 4px; }
.cms-content-batchactions .view-mode-batchactions-wrapper { height: 18px; float: left; padding: 4px 6px; border: 1px solid #aaa; margin-bottom: 8px; margin-right: -1px; background-color: #D9D9D9; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Q5ZDlkOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background-image: -webkit-linear-gradient(top, #ffffff, #d9d9d9); background-image: -moz-linear-gradient(top, #ffffff, #d9d9d9); background-image: -o-linear-gradient(top, #ffffff, #d9d9d9); background-image: linear-gradient(top, #ffffff, #d9d9d9); border-top-left-radius: 4px; border-bottom-left-radius: 4px; }
.cms-content-batchactions .view-mode-batchactions-wrapper input { vertical-align: middle; }
.cms-content-batchactions .view-mode-batchactions-wrapper label { vertical-align: middle; display: none; }
.cms-content-batchactions .view-mode-batchactions-wrapper fieldset, .cms-content-batchactions .view-mode-batchactions-wrapper .Actions { display: inline-block; }
.cms-content-batchactions .view-mode-batchactions-wrapper #view-mode-batchactions { margin-top: 2px; }
.cms-content-batchactions.inactive .view-mode-batchactions-wrapper { border-radius: 4px; }
.cms-content-batchactions.inactive .view-mode-batchactions-wrapper label { display: inline; }
.cms-content-batchactions form > * { display: block; float: left; }
.cms-content-batchactions form.cms-batch-actions { float: left; }
.cms-content-batchactions.inactive form { display: none; }
.cms-content-batchactions .chzn-container-single { display: block; }
.cms-content-batchactions .chzn-container-single .chzn-single { margin-left: -1px; border-radius: 0; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Q5ZDlkOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background-image: -webkit-linear-gradient(top, #ffffff, #d9d9d9); background-image: -moz-linear-gradient(top, #ffffff, #d9d9d9); background-image: -o-linear-gradient(top, #ffffff, #d9d9d9); background-image: linear-gradient(top, #ffffff, #d9d9d9); }
.cms-content-batchactions .chzn-container-single .chzn-single { border-radius: 0; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Q5ZDlkOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #d9d9d9)); background-image: -webkit-linear-gradient(top, #ffffff, #d9d9d9); background-image: -moz-linear-gradient(top, #ffffff, #d9d9d9); background-image: -o-linear-gradient(top, #ffffff, #d9d9d9); background-image: linear-gradient(top, #ffffff, #d9d9d9); }
.cms-content-batchactions .chzn-container-single .chzn-single span { padding-top: 0; }
.cms-content-batchactions .cms-batch-actions .dropdown { margin: 0; }
.cms-content-batchactions .cms-batch-actions .dropdown .chzn-single { padding-left: 8px; /* use default size without icon */ }
.cms-content-batchactions .cms-batch-actions .Actions .ss-ui-button { padding-top: 4px; padding-bottom: 4px; height: 28px; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cms-content-batchactions .cms-batch-actions .Actions .ss-ui-button.ui-state-disabled { opacity: 1; color: #ccc; }
@ -608,13 +617,13 @@ form.member-profile-form #Permissions .optionset li { float: none; width: auto;
.cms .ui-widget-overlay { background-color: #000; background-image: none; }
.cms .ui-dialog { min-width: 570px; }
.cms .ui-dialog .htmleditorfield-dialog { min-width: 570px; }
.cms .ui-dialog .ss-ui-dialog.ui-dialog-content { padding-top: 0px; }
.ui-dialog { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; border: 3px solid #000 !important; border-radius: 8px; overflow: visible; padding: 0; }
.ui-dialog .ui-dialog-titlebar.ui-widget-header { font-size: 14px; padding: 0; border: none; background-color: transparent; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; -moz-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; }
.ui-dialog .ui-dialog-titlebar.ui-widget-header .ui-dialog-title { position: absolute; }
.ui-dialog .ui-dialog-content { overflow: auto; }
.ui-dialog .ui-dialog-content.loading { background-image: url(../images/spinner.gif); background-position: 50% 50%; background-repeat: no-repeat; }
.ui-dialog .cms-dialog-content { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; padding-bottom: 8px; padding-top: 0px; }
.ui-dialog .cms-dialog-content .Actions { overflow: auto; margin: 8px 0; padding-bottom: 8px; float: right; }
.ui-dialog .cms-dialog-content .ui-tabs { position: static; }
@ -627,21 +636,22 @@ body.cms-dialog { overflow: auto; background: url("../images/textures/bg_cms_mai
/** -------------------------------------------- "Insert X" forms -------------------------------------------- */
.htmleditorfield-dialog.ui-dialog-content { padding: 0; position: relative; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb .CompositeField { overflow: hidden; *zoom: 1; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb #RemoteURL { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; width: 55%; max-width: 512px; float: left; position: relative; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb #RemoteURL label { position: absolute; left: 8px; top: 13px; font-weight: normal; color: #888; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb #RemoteURL .middleColumn { margin-left: 0; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb #RemoteURL input.remoteurl { padding-left: 40px; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url { margin-top: 5px; padding-top: 15px; overflow: hidden; *zoom: 1; border: none; background: none; opacity: 0.8; cursor: hand; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url .btn-icon-addMedia { width: 20px; height: 20px; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url .ui-button-text { margin-left: 10px; margin-top: -5px; line-height: 20px; float: left; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url:hover, .htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url:active { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; opacity: 1; }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url.ui-state-disabled, .htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url.ui-state-disabled:hover, .htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb button.add-url.ui-state-disabled:active { opacity: 0.35; filter: Alpha(Opacity=35); }
.htmleditorfield-dialog #MediaFormInsertMediaTabs_FromWeb .loading button.add-url .ui-icon { background-image: url(../images/throbber.gif); background-position: 50% 50%; background-repeat: no-repeat; }
.htmleditorfield-dialog .htmleditorfield-from-web .CompositeField { overflow: hidden; *zoom: 1; }
.htmleditorfield-dialog .htmleditorfield-from-web #RemoteURL { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; width: 55%; max-width: 512px; float: left; position: relative; }
.htmleditorfield-dialog .htmleditorfield-from-web #RemoteURL label { position: absolute; left: 8px; top: 13px; font-weight: normal; color: #888; }
.htmleditorfield-dialog .htmleditorfield-from-web #RemoteURL .middleColumn { margin-left: 0; }
.htmleditorfield-dialog .htmleditorfield-from-web #RemoteURL input.remoteurl { padding-left: 40px; }
.htmleditorfield-dialog .htmleditorfield-from-web button.add-url { margin-top: 5px; padding-top: 15px; overflow: hidden; *zoom: 1; border: none; background: none; opacity: 0.8; cursor: hand; }
.htmleditorfield-dialog .htmleditorfield-from-web button.add-url .btn-icon-addMedia { width: 20px; height: 20px; }
.htmleditorfield-dialog .htmleditorfield-from-web button.add-url .ui-button-text { margin-left: 10px; margin-top: -5px; line-height: 20px; float: left; }
.htmleditorfield-dialog .htmleditorfield-from-web button.add-url:hover, .htmleditorfield-dialog .htmleditorfield-from-web button.add-url:active { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; opacity: 1; }
.htmleditorfield-dialog .htmleditorfield-from-web button.add-url.ui-state-disabled, .htmleditorfield-dialog .htmleditorfield-from-web button.add-url.ui-state-disabled:hover, .htmleditorfield-dialog .htmleditorfield-from-web button.add-url.ui-state-disabled:active { opacity: 0.35; filter: Alpha(Opacity=35); }
.htmleditorfield-dialog .htmleditorfield-from-web .loading button.add-url .ui-icon { background-image: url(../images/throbber.gif); background-position: 50% 50%; background-repeat: no-repeat; }
.htmleditorfield-dialog .cms-content-header { padding: 0; width: 100%; height: 40px; }
.htmleditorfield-dialog .cms-content-header h3 { padding: 0 8px; margin: 10px; }
.htmleditorfield-dialog .ss-insert-media, .htmleditorfield-dialog .Actions, .htmleditorfield-dialog .ss-insert-link { padding: 8px 16px; }
.htmleditorfield-dialog .details .file-url { display: block; width: 450px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; }
.htmleditorfield-dialog .ss-insert-media .ui-tabs-panel, .htmleditorfield-dialog .Actions .ui-tabs-panel, .htmleditorfield-dialog .ss-insert-link .ui-tabs-panel { padding: 0; }
.htmleditorfield-dialog .details .file-url { display: block; width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -o-text-overflow: ellipsis; }
.htmleditorfield-dialog .details .cms-file-info .field { border: none; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); }
.htmleditorfield-dialog .details .field { border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); }
.htmleditorfield-dialog .details .field.last { border-bottom: none; -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0); -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0); box-shadow: 0 0 0 rgba(0, 0, 0, 0); margin-bottom: 0; }
@ -649,13 +659,14 @@ body.cms-dialog { overflow: auto; background: url("../images/textures/bg_cms_mai
.htmleditorfield-linkform .step2 { margin-bottom: 16px; }
.htmleditorfield-mediaform .ss-gridfield tbody td:first-child img { max-height: 30px; }
.htmleditorfield-mediaform .ss-uploadfield.from-web, .htmleditorfield-mediaform .ss-uploadfield.from-CMS { margin-bottom: 48px; }
.htmleditorfield-mediaform .ss-uploadfield.from-web .middleColumn, .htmleditorfield-mediaform .ss-uploadfield.from-CMS .middleColumn { width: auto; background: none; border: none; margin-top: 13px; }
.htmleditorfield-mediaform .ss-uploadfield.from-CMS { margin-top: 33px; }
.htmleditorfield-mediaform .ss-uploadfield.from-CMS h4 { margin-top: 3px; }
.htmleditorfield-mediaform .ss-uploadfield.from-CMS .middleColumn { margin-top: 0; }
.htmleditorfield-mediaform .ss-uploadfield.from-CMS .middleColumn .TreeDropdownField { margin-top: 23px; }
.htmleditorfield-mediaform .ss-gridfield .gridfield-button-delete { display: none; }
.htmleditorfield-mediaform .ss-gridfield table.ss-gridfield-table tbody td:first-child { padding: 0; text-align: center; }
.htmleditorfield-mediaform .ss-gridfield table.ss-gridfield-table tbody td:first-child img { max-height: 30px; }
.htmleditorfield-mediaform .ss-gridfield table.ss-gridfield-table tr td { padding: 4px; }
.htmleditorfield-mediaform .htmleditorfield-from-web .ss-uploadfield .middleColumn, .htmleditorfield-mediaform .htmleditorfield-from-cms .ss-uploadfield .middleColumn { width: auto; background: none; border: none; margin-top: 13px; }
.htmleditorfield-mediaform .htmleditorfield-from-cms .ss-uploadfield h4 { float: left; margin-top: 4px; margin-bottom: 0; }
.htmleditorfield-mediaform .htmleditorfield-from-cms .ss-uploadfield .middleColumn { margin-top: 16px; margin-left: 184px; }
.htmleditorfield-mediaform .htmleditorfield-from-cms .ss-uploadfield .field.treedropdown { border-bottom: 0; padding: 0; }
.htmleditorfield-mediaform .ss-uploadfield-editandorganize { display: none; }
/** -------------------------------------------- Search forms (used in AssetAdmin, ModelAdmin, etc) -------------------------------------------- */
@ -672,9 +683,11 @@ body.cms-dialog { overflow: auto; background: url("../images/textures/bg_cms_mai
/** -------------------------------------------- Item Edit Form -------------------------------------------- */
.cms-file-info { overflow: auto; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); margin-bottom: 8px; }
.cms-file-info .cms-file-info-preview { float: left; width: 176px; margin-right: 8px; }
.cms-file-info .cms-file-info-preview img { max-width: 176px; }
.cms-file-info .cms-file-info-preview img { max-width: 176px; max-height: 128px; }
.cms-file-info .cms-file-info-data { float: left; }
.cms-file-info .cms-file-info-data .field { margin-bottom: 0; padding-bottom: 8px; border: none; box-shadow: none; }
.cms-file-info .cms-file-info-data .field { margin: 0; padding-bottom: 8px; border: none; box-shadow: none; }
.cms-file-info .cms-file-info-data .field label.left { width: 96px; }
.cms-file-info .cms-file-info-data .field .middleColumn { margin-left: 104px; }
.cms-file-info .cms-file-info-data .field label, .cms-file-info .cms-file-info-data .field span { padding: 0; }
form.small .cms-file-info-preview { width: 112px; }
@ -707,7 +720,6 @@ form.import-form label.left { width: 250px; }
.cms-container .CMSMain.CMSPageSettingsController .tab#Root_Settings .optionset li { white-space: nowrap; }
.cms-container .CMSMain.CMSPageSettingsController .tab#Root_Settings .optionset li label { padding-left: 2px; }
.cms-container .CMSMain.CMSPageSettingsController .tab#Root_Settings .fieldgroup .fieldgroup-field { width: 216px; padding-left: 0; }
.cms-container .CMSMain.CMSPageSettingsController .tab#Root_Settings .TreeDropdownField .treedropdownfield-toggle-panel-link { border-left: none; background: none; background-image: none; }
/** -------------------------------------------- Buttons for FileUpload -------------------------------------------- */
.ss-uploadfield-item-edit-all .ui-button-text { padding-right: 0; }
@ -727,10 +739,11 @@ form.import-form label.left { width: 250px; }
.cms .jstree li.jstree-open > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-open > ul { display: block; }
.cms .jstree li.jstree-closed > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-closed > ul { display: none; }
.cms .jstree li.disabled > a, .TreeDropdownField .treedropdownfield-panel .jstree li.disabled > a { color: #aaaaaa; }
.cms .jstree li.edit-disabled > a, .TreeDropdownField .treedropdownfield-panel .jstree li.edit-disabled > a { color: #aaaaaa; }
.cms .jstree li > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree li > .jstree-icon { cursor: pointer; }
.cms .jstree ins, .TreeDropdownField .treedropdownfield-panel .jstree ins { display: inline-block; text-decoration: none; width: 18px; height: 18px; margin: 0 0 0 0; padding: 0; float: left; }
.cms .jstree a, .TreeDropdownField .treedropdownfield-panel .jstree a { display: inline-block; line-height: 16px; height: 16px; color: black; white-space: nowrap; text-decoration: none; padding: 1px 2px; margin: 0; border: 1px solid #fff; }
.cms .jstree a:focus, .cms .jstree a:active, .cms .jstree a:hover, .TreeDropdownField .treedropdownfield-panel .jstree a:focus, .TreeDropdownField .treedropdownfield-panel .jstree a:active, .TreeDropdownField .treedropdownfield-panel .jstree a:hover { outline: none; text-decoration: none; cursor: pointer; text-shadow: none; }
.cms .jstree a:focus, .cms .jstree a:active, .cms .jstree a:hover, .TreeDropdownField .treedropdownfield-panel .jstree a:focus, .TreeDropdownField .treedropdownfield-panel .jstree a:active, .TreeDropdownField .treedropdownfield-panel .jstree a:hover { text-decoration: none; cursor: pointer; text-shadow: none; }
.cms .jstree a > ins, .TreeDropdownField .treedropdownfield-panel .jstree a > ins { height: 16px; width: 16px; }
.cms .jstree a > ins.jstree-checkbox, .TreeDropdownField .treedropdownfield-panel .jstree a > ins.jstree-checkbox { height: 19px; }
.cms .jstree a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree a > .jstree-icon { margin-right: 3px; }
@ -934,7 +947,7 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; }
.cms-preview .preview-note span { background: url('../images/sprites-64x64-s88957ee578.png') 0 0 no-repeat; display: block; height: 41px; margin: 0 auto 20px; width: 50px; }
.cms-preview .preview-scroll { height: 100%; overflow: auto; position: relative; width: 100%; }
.cms-preview .preview-scroll .preview-device-outer { height: 100%; width: 100%; }
.cms-preview .preview-scroll .preview-device-outer .preview-device-inner { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 100%; }
.cms-preview .preview-scroll .preview-device-outer .preview-device-inner { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 100%; background-color: #FFF; }
.cms-preview .preview-scroll .preview-device-outer .preview-device-inner iframe { height: 100%; overflow-y: auto; width: 100%; }
.cms-preview.mobile .preview-scroll, .cms-preview.mobileLandscape .preview-scroll, .cms-preview.tablet .preview-scroll, .cms-preview.tabletLandscape .preview-scroll, .cms-preview.desktop .preview-scroll { background-color: #eceff1; /* cover website preview icon */ }
.cms-preview.mobile .preview-scroll .preview-device-outer, .cms-preview.mobileLandscape .preview-scroll .preview-device-outer, .cms-preview.tablet .preview-scroll .preview-device-outer, .cms-preview.tabletLandscape .preview-scroll .preview-device-outer, .cms-preview.desktop .preview-scroll .preview-device-outer { -webkit-border-radius: 7px; -moz-border-radius: 7px; -ms-border-radius: 7px; -o-border-radius: 7px; border-radius: 7px; background: #d5dde2; border: 1px solid transparent; border-left: 1px solid #cfd9de; padding: 0 16px 16px; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 977 B

After

Width:  |  Height:  |  Size: 110 B

View File

@ -106,10 +106,11 @@
} else if (modeName == 'content') {
container.entwine('.ss').contentViewMode();
this.setIsPreviewEnabled(false);
this._loadCurrentState();
// Do not load content as the preview is not visible.
} else if (modeName == 'preview') {
container.entwine('.ss').previewMode();
this.setIsPreviewEnabled(true);
this._loadCurrentState();
} else {
throw 'Invalid mode: ' + modeName;
}

View File

@ -125,10 +125,10 @@ jQuery.noConflict();
var self = this;
// Browser detection
if($.browser.msie && parseInt($.browser.version, 10) < 7) {
if($.browser.msie && parseInt($.browser.version, 10) < 8) {
$('.ss-loading-screen').append(
'<p class="ss-loading-incompat-warning"><span class="notice">' +
'Your browser is not compatible with the CMS interface. Please use Internet Explorer 7+, Google Chrome 10+ or Mozilla Firefox 3.5+.' +
'Your browser is not compatible with the CMS interface. Please use Internet Explorer 8+, Google Chrome or Mozilla Firefox.' +
'</span></p>'
).css('z-index', $('.ss-loading-screen').css('z-index')+1);
$('.loading-animation').remove();
@ -461,7 +461,8 @@ jQuery.noConflict();
// Support a full reload
if(xhr.getResponseHeader('X-Reload') && xhr.getResponseHeader('X-ControllerURL')) {
document.location.href = xhr.getResponseHeader('X-ControllerURL');
document.location.href = $('base').attr('href').replace(/\/*$/, '')
+ '/' + xhr.getResponseHeader('X-ControllerURL');
return;
}
@ -469,12 +470,6 @@ jQuery.noConflict();
// case we'll ignore the response
if(!data) return;
// Support a full reload
if(xhr.getResponseHeader('X-Reload') && xhr.getResponseHeader('X-ControllerURL')) {
document.location.href = xhr.getResponseHeader('X-ControllerURL');
return;
}
// Update title
var title = xhr.getResponseHeader('X-Title');
if(title) document.title = decodeURIComponent(title.replace(/\+/g, ' '));
@ -674,7 +669,9 @@ jQuery.noConflict();
if(url) {
s.removeItem('tabs-' + url);
} else {
for(var i=0;i<s.length;i++) s.removeItem(s.key(i));
for(var i=0;i<s.length;i++) {
if(s.key(i).match(/^tabs-/)) s.removeItem(s.key(i));
}
}
},
@ -974,13 +971,14 @@ jQuery.noConflict();
/**
* Reset button handler. IE8 does not bubble reset events to
*/
$(".cms-search-form button[type=reset]").entwine({
$(".cms-search-form button[type=reset], .cms-search-form input[type=reset]").entwine({
onclick: function(e) {
e.preventDefault();
var form = $(this).parents('form');
form.clearForm();
form.find(".dropdown select").prop('selectedIndex', 0).trigger("liszt:updated"); // Reset chosen.js
form.submit();
}
})
@ -1064,6 +1062,12 @@ jQuery.noConflict();
return false;
},
activate: function(e, ui) {
// Accessibility: Simulate click to trigger panel load when tab is focused
// by a keyboard navigation event rather than a click
if(ui.newTab) {
ui.newTab.find('.cms-panel-link').click();
}
// Usability: Hide actions for "readonly" tabs (which don't contain any editable fields)
var actions = $(this).closest('form').find('.Actions');
if($(ui.newTab).closest('li').hasClass('readonly')) {

View File

@ -115,6 +115,13 @@
/**
* Extends jQueryUI dialog with iframe abilities (and related resizing logic),
* and sets some CMS-wide defaults.
*
* Additional settings:
* - 'autoPosition': Automatically reposition window on resize based on 'position' option
* - 'widthRatio': Sets width based on percentage of window (value between 0 and 1)
* - 'heightRatio': Sets width based on percentage of window (value between 0 and 1)
* - 'reloadOnOpen': Reloads the iframe whenever the dialog is reopened
* - 'iframeUrl': Create an iframe element and load this URL when the dialog is created
*/
$.widget("ssui.ssdialog", $.ui.dialog, {
options: {
@ -124,12 +131,17 @@
dialogExtraClass: '',
// Defaults
width: '80%',
height: 500,
position: 'center',
modal: true,
bgiframe: true,
autoOpen: false
autoOpen: false,
autoPosition: true,
minWidth: 500,
maxWidth: 700,
minHeight: 300,
maxHeight: 600,
widthRatio: 0.8,
heightRatio: 0.8,
resizable: false
},
_create: function() {
$.ui.dialog.prototype._create.call(this);
@ -150,7 +162,7 @@
this.element.append(iframe);
// Let the iframe handle its scrolling
this.element.css('overflow', 'hidden');
if(this.options.iframeUrl) this.element.css('overflow', 'hidden');
},
open: function() {
$.ui.dialog.prototype.open.call(this);
@ -165,7 +177,6 @@
}
// Resize events
this.uiDialog.bind('resize.ssdialog', function() {self._resizeIframe();});
$(window).bind('resize.ssdialog', function() {self._resizeIframe();});
},
close: function() {
@ -175,18 +186,33 @@
$(window).unbind('resize.ssdialog');
},
_resizeIframe: function() {
var el = this.element, iframe = el.children('iframe');
iframe.attr('width',
el.innerWidth()
- parseFloat(el.css('paddingLeft'))
- parseFloat(el.css('paddingRight'))
);
iframe.attr('height',
el.innerHeight()
- parseFloat(el.css('paddingTop'))
- parseFloat(el.css('paddingBottom'))
);
var opts = {}, newWidth, newHeight;
if(this.options.widthRatio) {
newWidth = $(window).width() * this.options.widthRatio;
if(this.options.minWidth && newWidth < this.options.minWidth) {
opts.width = this.options.minWidth
} else if(this.options.maxWidth && newWidth > this.options.maxWidth) {
opts.width = this.options.maxWidth;
} else {
opts.width = newWidth;
}
}
if(this.options.heightRatio) {
newHeight = $(window).height() * this.options.heightRatio;
if(this.options.minHeight && newHeight < this.options.minHeight) {
opts.height = this.options.minHeight
} else if(this.options.maxHeight && newHeight > this.options.maxHeight) {
opts.height = this.options.maxHeight;
} else {
opts.height = newHeight;
}
}
if(this.options.autoPosition) {
opts.position = this.options.position;
}
if(!jQuery.isEmptyObject(opts)) {
this._setOptions(opts);
}
}
});

View File

@ -23,12 +23,12 @@ form.nostyle {
//overflow: hidden;
// bottom padding accounts for the border and we have a negative
// margin with a postive padding to ensure the bottom border extends
// over the edges
// margin with a postive padding to ensure the bottom border extends over the edges
padding: 0 0 $grid-y - 1 0;
margin: 0 0 $grid-y 0;
margin: $grid-y 0;
&:last-child {
&.noborder, &:last-child {
padding-bottom: 0;
border-bottom: none;
@include box-shadow(none);
}
@ -37,7 +37,7 @@ form.nostyle {
// need to use relative positioning and overflow hidden will not expand
// the containing boxes
@include legacy-pie-clearfix();
&.nolabel {
.middleColumn {
margin-left: 0;
@ -95,6 +95,7 @@ form.nostyle {
color: lighten($color-text, 20%);
display: block;
font-style: italic;
line-height: $grid-y * 2;
margin: $grid-y/2 0 0 $grid-x*23; // left align with .middleColumn
}
@ -235,7 +236,6 @@ form.small .field, .field.small {
&:hover, &:focus, &:active {
text-decoration: none;
outline: none;
}
div {

View File

@ -237,12 +237,12 @@
background: sprite($sprites64, preview) no-repeat;
display: block;
height: 41px;
margin: 0 auto 20px;
margin: 0 auto 20px;
width: 50px;
}
}
.preview-scroll {
height: 100%;
height: 100%;
overflow: auto;
position: relative;
width: 100%;
@ -250,13 +250,14 @@
height: 100%;
width: 100%;
.preview-device-inner {
@include box-sizing('border-box');
@include box-sizing('border-box');
width: 100%;
height:100%;
height:100%;
background-color: #FFF;
iframe {
height: 100%;
overflow-y: auto;
width: 100%;
width: 100%;
}
}
}

View File

@ -97,11 +97,7 @@ body.cms {
image: url(../images/textures/cms_content_header.png);
repeat: repeat;
position: left bottom;
}
.cms-content-header-info *,
.cms-content-header-tabs * {
@include inline-block;
color: $color-darker-bg;
}
a {
@ -118,11 +114,20 @@ body.cms {
font-size: $font-base-size + 2;
font-weight: bold;
margin: 0;
margin-bottom: $grid-x;
* {
vertical-align: middle;
}
}
.cms-content-header-info {
float:left;
padding-top: 6px;
& > * {
display: inline-block; // align back button and breadcrumbs
}
}
// Reset to default styles
@ -431,7 +436,7 @@ body.cms {
.message { // White
display: block;
clear: both;
margin: $grid-y 0;
margin: 0 0 $grid-y;
padding: $grid-y + $grid-x/4 $grid-x + $grid-x/2;
font-weight: normal;
border: 1px #ccc solid;
@ -604,7 +609,8 @@ body.cms {
.cms-content-toolbar {
min-height: 29px;
display: block;
margin: 0 0 $grid-y 0;
margin: 0 0 $grid-y*1.5 0;
padding-bottom: 0;
@include doubleborder(bottom, $color-light-separator, $box-shadow-shine);
@include legacy-pie-clearfix();
@ -651,7 +657,6 @@ body.cms {
}
div {
background:url(../images/btn-icon/settings.png) 5px 4px no-repeat;
border-left:none;
width:100%;
}
@ -690,7 +695,8 @@ body.cms {
.cms-panel-header {
clear: both;
margin: 0 0 $grid-y - 1;
margin: 10px 0 $grid-y - 1;
padding-bottom: 2px;
line-height: $grid-y * 3;
@include doubleborder(bottom, $color-light-separator, $box-shadow-shine);
@ -823,6 +829,22 @@ body.cms {
}
}
/** ------------------------------------------------------------------
* CMS notice, used for filter messages, but generic enough to use elsewhere
* ----------------------------------------------------------------- */
.cms-notice {
display: block;
margin: 0 0 8px;
padding: 10px 12px;
font-weight: normal;
border: 1px $color-light-separator solid;
background: #fff; // for browsers that don't understand rgba
background: rgba(#fff,0.5);
text-shadow: none;
@include border-radius(3px);
}
/**
* CMS Batch actions
*/
@ -838,6 +860,7 @@ body.cms {
padding: 4px 6px;
border: 1px solid #aaa;
margin-bottom: 8px;
margin-right:-1px;
background-color: #D9D9D9;
@include background-image(linear-gradient(top, #fff, #D9D9D9));
border-top-left-radius: 4px;
@ -855,6 +878,9 @@ body.cms {
fieldset, .Actions {
display: inline-block;
}
#view-mode-batchactions {
margin-top: 2px;
}
}
&.inactive .view-mode-batchactions-wrapper {
@ -882,7 +908,6 @@ body.cms {
display: block;
.chzn-single {
margin-left: -1px;
border-radius: 0;
@include background-image(linear-gradient(top, #fff, #D9D9D9));
@ -892,17 +917,26 @@ body.cms {
}
}
.cms-batch-actions .Actions .ss-ui-button {
padding-top: 4px;
padding-bottom: 4px;
height: 28px;
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
.cms-batch-actions {
.dropdown {
margin: 0;
.chzn-single {
padding-left: 8px; /* use default size without icon */
}
}
.Actions .ss-ui-button {
padding-top: 4px;
padding-bottom: 4px;
height: 28px;
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
&.ui-state-disabled {
opacity: 1;
color: #ccc;
&.ui-state-disabled {
opacity: 1;
color: #ccc;
}
}
}
}
@ -1233,10 +1267,6 @@ form.member-profile-form {
}
.cms .ui-dialog{
min-width:570px;
.htmleditorfield-dialog{
min-width:570px;
}
.ss-ui-dialog.ui-dialog-content {
padding-top: 0px; //removes padding so that tabs are flush with header
}
@ -1267,6 +1297,16 @@ form.member-profile-form {
}
}
.ui-dialog-content {
overflow: auto; // TODO Replace with proper $.layout grid
&.loading {
background-image: url(../images/spinner.gif);
background-position: 50% 50%;
background-repeat: no-repeat;
}
}
.cms-dialog-content {
background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
padding-bottom: $grid-y;
@ -1326,7 +1366,7 @@ body.cms-dialog {
position:relative;
}
#MediaFormInsertMediaTabs_FromWeb{
.htmleditorfield-from-web {
.CompositeField{
@include clearfix;
}
@ -1402,11 +1442,14 @@ body.cms-dialog {
.ss-insert-media, .Actions, .ss-insert-link{
padding:$grid-y $grid-x*2 ;
.ui-tabs-panel {
padding: 0;
}
}
.details{
.file-url{
display:block;
width:450px;
width:300px;
@include hide-text-overflow;
}
.cms-file-info{
@ -1443,15 +1486,26 @@ body.cms-dialog {
.htmleditorfield-mediaform {
.ss-gridfield {
// Set thumbnail size
tbody td:first-child img {
max-height: 30px;
.gridfield-button-delete {
// TODO Remove from PHP instead of hiding
display: none; // delete action shouldn't be allowed here
}
table.ss-gridfield-table {
tbody td:first-child {
padding: 0;
text-align: center;
img {
max-height: 30px; // same thumbnail size as uploadfield rows
}
}
tr td {
padding: $grid-x/2; // more compressed space
}
}
}
.ss-uploadfield{
&.from-web, &.from-CMS{
margin-bottom:48px;
.htmleditorfield-from-web, .htmleditorfield-from-cms {
.ss-uploadfield {
.middleColumn {
width:auto;
background:none;
@ -1459,20 +1513,24 @@ body.cms-dialog {
margin-top:13px;
}
}
}
&.from-CMS{
margin-top:33px;
h4{
margin-top:3px;
.htmleditorfield-from-cms {
.ss-uploadfield {
h4 {
float: left; // headline and dropdown on same line
margin-top: $grid-y/2; // bring to same baseline as dropdown
margin-bottom: 0;
}
.middleColumn {
margin-top:0;
.TreeDropdownField{
margin-top:23px;
}
margin-top: $grid-y*2; // same as left-floated h4
margin-left: $grid-x*23; // make room for headline
}
.field.treedropdown {
border-bottom: 0; // don't show border, dropdown and gridfield visually belong together
padding: 0;
}
}
}
.ss-uploadfield-editandorganize {
@ -1550,6 +1608,7 @@ body.cms-dialog {
img {
max-width: $grid-x * 22; // Same as ".field label"
max-height: $grid-x * 16; // Fitting typical info displayed (~5 rows)
}
}
.cms-file-info-data {
@ -1557,10 +1616,16 @@ body.cms-dialog {
.field {
// Unsetting styles from .field, make it more compact visually
margin-bottom: 0;
margin: 0;
padding-bottom: $grid-x;
border: none;
box-shadow: none;
label.left {
width: $grid-x*12;
}
.middleColumn {
margin-left: $grid-x*13;
}
label, span {
padding: 0;
}
@ -1662,11 +1727,6 @@ form.import-form {
width:$grid-x*27;
padding-left:0;
}
.TreeDropdownField .treedropdownfield-toggle-panel-link {
border-left:none;
background:none;
background-image:none;
}
}
}

View File

@ -33,6 +33,9 @@
&.disabled > a {
color: #aaaaaa;
}
&.edit-disabled > a {
color: #aaaaaa;
}
// Expand/collapse arrows
& > .jstree-icon {
cursor: pointer;
@ -60,7 +63,6 @@
&:focus,
&:active,
&:hover {
outline: none;
text-decoration: none;
cursor: pointer;
text-shadow: none;

View File

@ -11,6 +11,7 @@ $color-base: #b0bec7 !default;
$color-widget-bg: lighten($color-base, 20%) !default;
/* Keep as solid colours transparent borders wont work in ie */
$color-darker-bg: #D4D6D8 !default;
$color-dark-bg: #142136 !default;
$color-dark-separator: #19435c !default;
$color-medium-separator: #808080 !default;

View File

@ -1,6 +1,7 @@
<?php
/**
* @package cms
* @package framework
* @subpackage tests
*/
class LeftAndMainTest extends FunctionalTest {
@ -9,14 +10,49 @@ class LeftAndMainTest extends FunctionalTest {
protected $extraDataObjects = array('LeftAndMainTest_Object');
protected $backupCss, $backupJs, $backupCombined;
public function setUp() {
parent::setUp();
// @todo fix controller stack problems and re-activate
//$this->autoFollowRedirection = false;
CMSMenu::populate_menu();
$this->backupCss = Config::inst()->get('LeftAndMain', 'extra_requirements_css');
$this->backupJs = Config::inst()->get('LeftAndMain', 'extra_requirements_javascript');
$this->backupCombined = Requirements::get_combined_files_enabled();
Config::inst()->update('LeftAndMain', 'extra_requirements_css', array(
FRAMEWORK_DIR . '/tests/assets/LeftAndMainTest.css'
));
Config::inst()->update('LeftAndMain', 'extra_requirements_javascript', array(
FRAMEWORK_DIR . '/tests/assets/LeftAndMainTest.js'
));
Requirements::set_combined_files_enabled(false);
}
public function tearDown() {
parent::tearDown();
Config::inst()->update('LeftAndMain', 'extra_requirements_css', $this->backupCss);
Config::inst()->update('LeftAndMain', 'extra_requirements_javascript', $this->backupJs);
Requirements::set_combined_files_enabled($this->backupCombined);
}
public function testExtraCssAndJavascript() {
$admin = $this->objFromFixture('Member', 'admin');
$this->session()->inst_set('loggedInAs', $admin->ID);
$response = $this->get('LeftAndMainTest_Controller');
$this->assertRegExp('/tests\/assets\/LeftAndMainTest.css/i', $response->getBody(), "body should contain custom css");
$this->assertRegExp('/tests\/assets\/LeftAndMainTest.js/i', $response->getBody(), "body should contain custom js");
}
/**
* Note: This test would typically rely on SiteTree and CMSMain, but is mocked by
* LeftAndMain_Controller and LeftAndMain_Object here to remove this dependency.
@ -158,15 +194,22 @@ class LeftAndMainTest extends FunctionalTest {
$this->session()->inst_set('loggedInAs', null);
}
}
/**
* @package framework
* @subpackage tests
*/
class LeftAndMainTest_Controller extends LeftAndMain implements TestOnly {
protected $template = 'BlankPage';
private static $tree_class = 'LeftAndMainTest_Object';
}
/**
* @package framework
* @subpackage tests
*/
class LeftAndMainTest_Object extends DataObject implements TestOnly {
private static $db = array(

2
cache/Cache.php vendored
View File

@ -86,7 +86,7 @@
*
* // No need for special backend for aggregate - TwoLevels with a File slow
* // backend supports tags
* SS_Cache::pick_backend('two-level', 'any', 10);
* SS_Cache::pick_backend('two-level', 'Two-Levels', 10);
* </code>
*
* <h2>Invalidate an element</h2>

View File

@ -29,7 +29,7 @@ chdir(dirname($_SERVER['SCRIPT_FILENAME']));
* For example,
* sake my/url somearg otherarg key=val --otherkey=val third=val&fourth=val
*
* Will result int he following get data:
* Will result in the following get data:
* args => array('somearg', 'otherarg'),
* key => val
* otherkey => val

View File

@ -265,10 +265,12 @@ class Controller extends RequestHandler implements TemplateGlobalProvider {
*/
public function getViewer($action) {
// Hard-coded templates
if($this->templates[$action]) {
if(isset($this->templates[$action]) && $this->templates[$action]) {
$templates = $this->templates[$action];
} else if($this->templates['index']) {
} else if(isset($this->templates['index']) && $this->templates['index']) {
$templates = $this->templates['index'];
} else if($this->template) {
$templates = $this->template;
} else {
@ -318,6 +320,23 @@ class Controller extends RequestHandler implements TemplateGlobalProvider {
return $returnURL;
}
/**
* Return the class that defines the given action, so that we know where to check allowed_actions.
* Overrides RequestHandler to also look at defined templates
*/
protected function definingClassForAction($action) {
$definingClass = parent::definingClassForAction($action);
if($definingClass) return $definingClass;
$class = get_class($this);
while($class != 'RequestHandler') {
$templateName = strtok($class, '_') . '_' . $action;
if(SSViewer::hasTemplate($templateName)) return $class;
$class = get_parent_class($class);
}
}
/**
* Returns TRUE if this controller has a template that is specifically designed to handle a specific action.

View File

@ -110,6 +110,7 @@ class Cookie {
$expiry = $expiry > 0 ? time()+(86400*$expiry) : $expiry;
$path = ($path) ? $path : Director::baseURL();
setcookie($name, $value, $expiry, $path, $domain, $secure, $httpOnly);
$_COOKIE[$name] = $value;
} else {
if(Config::inst()->get('Cookie', 'report_errors')) {
user_error("Cookie '$name' can't be set. The site started outputting content at line $line in $file",

View File

@ -371,6 +371,22 @@ class RequestHandler extends ViewableData {
return false;
}
/**
* Return the class that defines the given action, so that we know where to check allowed_actions.
*/
protected function definingClassForAction($actionOrigCasing) {
$action = strtolower($actionOrigCasing);
$definingClass = null;
$insts = array_merge(array($this), (array)$this->getExtensionInstances());
foreach($insts as $inst) {
if(!method_exists($inst, $action)) continue;
$r = new ReflectionClass(get_class($inst));
$m = $r->getMethod($actionOrigCasing);
return $m->getDeclaringClass()->getName();
}
}
/**
* Check that the given action is allowed to be called from a URL.
@ -382,58 +398,45 @@ class RequestHandler extends ViewableData {
$isAllowed = false;
$isDefined = false;
if($this->hasMethod($actionOrigCasing) || !$action || $action == 'index') {
// Get actions for this specific class (without inheritance)
$definingClass = null;
$insts = array_merge(array($this), (array)$this->getExtensionInstances());
foreach($insts as $inst) {
if(!method_exists($inst, $action)) continue;
$r = new ReflectionClass(get_class($inst));
$m = $r->getMethod($actionOrigCasing);
$definingClass = $m->getDeclaringClass()->getName();
}
// Get actions for this specific class (without inheritance)
$definingClass = $this->definingClassForAction($actionOrigCasing);
$allowedActions = $this->allowedActions($definingClass);
$allowedActions = $this->allowedActions($definingClass);
// check if specific action is set
if(isset($allowedActions[$action])) {
$isDefined = true;
$test = $allowedActions[$action];
if($test === true || $test === 1 || $test === '1') {
// TRUE should always allow access
$isAllowed = true;
} elseif(substr($test, 0, 2) == '->') {
// Determined by custom method with "->" prefix
list($method, $arguments) = Object::parse_class_spec(substr($test, 2));
$definingClassInst = Injector::inst()->get($definingClass);
$isAllowed = call_user_func_array(array($definingClassInst, $method), $arguments);
} else {
// Value is a permission code to check the current member against
$isAllowed = Permission::check($test);
}
} elseif(
is_array($allowedActions)
&& (($key = array_search($action, $allowedActions, true)) !== false)
&& is_numeric($key)
) {
// Allow numeric array notation (search for array value as action instead of key)
$isDefined = true;
$isAllowed = true;
} elseif(is_array($allowedActions) && !count($allowedActions)) {
// If defined as empty array, deny action
$isAllowed = false;
} elseif($allowedActions === null) {
// If undefined, allow action
// check if specific action is set
if(isset($allowedActions[$action])) {
$isDefined = true;
$test = $allowedActions[$action];
if($test === true || $test === 1 || $test === '1') {
// TRUE should always allow access
$isAllowed = true;
} elseif(substr($test, 0, 2) == '->') {
// Determined by custom method with "->" prefix
list($method, $arguments) = Object::parse_class_spec(substr($test, 2));
$isAllowed = call_user_func_array(array($this, $method), $arguments);
} else {
// Value is a permission code to check the current member against
$isAllowed = Permission::check($test);
}
} elseif(
is_array($allowedActions)
&& (($key = array_search($action, $allowedActions, true)) !== false)
&& is_numeric($key)
) {
// Allow numeric array notation (search for array value as action instead of key)
$isDefined = true;
$isAllowed = true;
} elseif(is_array($allowedActions) && !count($allowedActions)) {
// If defined as empty array, deny action
$isAllowed = false;
} elseif($allowedActions === null) {
// If undefined, allow action
$isAllowed = true;
}
// If we don't have a match in allowed_actions,
// whitelist the 'index' action as well as undefined actions.
if(!$isDefined && ($action == 'index' || empty($action))) {
$isAllowed = true;
}
} else {
// Doesn't have method, set to true so that a template can handle this action
// If we don't have a match in allowed_actions,
// whitelist the 'index' action as well as undefined actions.
if(!$isDefined && ($action == 'index' || empty($action))) {
$isAllowed = true;
}

View File

@ -541,7 +541,7 @@ class Session {
// Modify the timeout behaviour so it's the *inactive* time before the session expires.
// By default it's the total session lifetime
if($timeout && !headers_sent()) {
setcookie(session_name(), session_id(), time()+$timeout, $path, $domain ? $domain : null, $secure, true);
Cookie::set(session_name(), session_id(), time()+$timeout, $path, $domain ? $domain : null, $secure, true);
}
}
@ -559,10 +559,10 @@ class Session {
$secure = Config::inst()->get('Session', 'cookie_secure');
if($domain) {
setcookie(session_name(), '', null, $path, $domain, $secure, true);
Cookie::set(session_name(), '', null, $path, $domain, $secure, true);
}
else {
setcookie(session_name(), '', null, $path, null, $secure, true);
Cookie::set(session_name(), '', null, $path, null, $secure, true);
}
unset($_COOKIE[session_name()]);

View File

@ -275,6 +275,7 @@ gc_enable();
require_once 'cache/Cache.php';
require_once 'core/Object.php';
require_once 'core/ClassInfo.php';
require_once 'core/DAG.php';
require_once 'core/Config.php';
require_once 'view/TemplateGlobalProvider.php';
require_once 'control/Director.php';

View File

@ -36,7 +36,7 @@ body.cms.ss-uploadfield-edit-iframe .fieldholder-small label, .composite.ss-asse
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item .info { position: relative; padding: 7px; overflow: hidden; background-color: #FFBE66; border: 1px solid #FF9300; }
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-preview { position: absolute; height: 30px; width: 40px; overflow: hidden; z-index: 1; }
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-preview .no-preview { display: block; height: 100%; width: 100%; background: url("../images/icons/document.png") 2px 0px no-repeat; }
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-info { position: relative; line-height: 30px; font-size: 14px; overflow: hidden; background-color: #5db4df; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5db4df), color-stop(8%, #5db1dd), color-stop(50%, #439bcb), color-stop(54%, #3f99cd), color-stop(96%, #207db6), color-stop(100%, #1e7cba)); background-image: -webkit-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -moz-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -o-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); }
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-info { position: relative; line-height: 30px; overflow: hidden; background-color: #5db4df; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5db4df), color-stop(8%, #5db1dd), color-stop(50%, #439bcb), color-stop(54%, #3f99cd), color-stop(96%, #207db6), color-stop(100%, #1e7cba)); background-image: -webkit-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -moz-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -o-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); }
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info { background-color: #c11f1d; padding-right: 130px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c11f1d), color-stop(4%, #bf1d1b), color-stop(8%, #b71b1c), color-stop(15%, #b61e1d), color-stop(27%, #b11d1d), color-stop(31%, #ab1d1c), color-stop(42%, #a51b1b), color-stop(46%, #9f1b19), color-stop(50%, #9f1b19), color-stop(54%, #991c1a), color-stop(58%, #971a18), color-stop(62%, #911b1b), color-stop(65%, #911b1b), color-stop(88%, #7e1816), color-stop(92%, #771919), color-stop(100%, #731817)); background-image: -webkit-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -moz-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -o-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); }
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name { width: 100%; cursor: default; background: #bcb9b9; background: rgba(201, 198, 198, 0.9); }
.ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info .ss-uploadfield-item-name .name { text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.7); }

View File

@ -1,55 +1,22 @@
/** Fields */
form { /** Messages */ }
form * { font-size: 12px; }
form fieldset { margin: 0; padding: 0; border-style: none; }
form .field { clear: both; padding: 0.2em; margin: 0 0 0 10em; vertical-align: middle; }
form p.checkbox { margin: 0 0 0 8.5em; }
form .field.nolabel { margin-left: 0; }
form label.left { float: left; width: 10em; margin-left: -10em; }
form input.maxlength { width: auto; }
form .actions { float: right; }
form .validation, form .error, form .required { border: 1px solid #f00; background: #fcc; padding: 0.5em; width: 50%; }
form .field span.readonly { border: 1px #CCC dotted; background-color: #F7F7F7; display: block; width: 98%; padding: 3px; margin: 5px 0; }
form .indicator.inline { display: inline; margin-left: 5px; vertical-align: middle; }
form .indicator.block { display: inline; }
/* Emulating link styling for actions requiring lesser attention, e.g. "cancel" FormActions */
form button.minorAction { background: none; padding: 0; border: 0; color: #0074C6; text-decoration: underline; }
/** Composite Fields - raw concatenation of fields for programmatic purposes. */
.right form div.CompositeField { margin-left: 7.5em; }
.right form div.CompositeField div.field { font-size: 1em; }
.right form div.CompositeField { clear: both; }
.right form div.CompositeField label.left { float: left; width: 10em; margin-left: -10em; }
.right form div.column2 { float: left; width: 45%; margin-right: 4%; }
.right form div.multicolumn { width: 100%; float: left; clear: left; }
/** Messages */
form .message.notice { background-color: #FCFFDF; border-color: #FF9300; }
form .message { margin: 1em 0; padding: 0.5em; font-weight: bold; border: 1px black solid; background-color: #B9FFB9; border-color: #00FF00; }
form .message.notice { background-color: #FCFFDF; border-color: #FF9300; }
form .message.warning { background-color: #FFD2A6; border-color: #FF9300; }
form .message.bad { background-color: #FF8080; border-color: #FF0000; }
form .message.required, form .message.validation { display: block; margin-top: 5px; color: #FF9300; width: 240px; border-color: #FF9300; }
form .message.validation { color: #FF4040; width: 240px; border-color: #FF4040; }
.typography .ss-tabset ul { margin: 0; }

View File

@ -30,7 +30,7 @@ Used in side panels and action tabs
.cms .ss-gridfield .add-existing-autocompleter span { display: -moz-inline-stack; display: inline-block; vertical-align: top; *vertical-align: auto; zoom: 1; *display: inline; }
.cms .ss-gridfield .add-existing-autocompleter input.relation-search { width: 270px; margin-bottom: 12px; }
.cms .ss-gridfield .grid-csv-button, .cms .ss-gridfield .grid-print-button { margin-bottom: 12px; display: -moz-inline-stack; display: inline-block; vertical-align: middle; *vertical-align: auto; zoom: 1; *display: inline; }
.cms table.ss-gridfield-table { display: table; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; padding: 0; border-collapse: separate; border-bottom: 0 none; width: 100%; margin-bottom: 12px; }
.cms table.ss-gridfield-table { display: table; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; padding: 0; border-collapse: separate; border-bottom: 0 none; width: 100%; }
.cms table.ss-gridfield-table thead { color: #323e46; background: transparent; }
.cms table.ss-gridfield-table thead tr.filter-header .fieldgroup { max-width: 512px; }
.cms table.ss-gridfield-table thead tr.filter-header .fieldgroup .fieldgroup-field { padding: 0; }
@ -114,7 +114,7 @@ Used in side panels and action tabs
.cms table.ss-gridfield-table tr td.bottom-all { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzk4YWFiNiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #98aab6)); background-image: -webkit-linear-gradient(#b0bec7, #98aab6); background-image: -moz-linear-gradient(#b0bec7, #98aab6); background-image: -o-linear-gradient(#b0bec7, #98aab6); background-image: linear-gradient(#b0bec7, #98aab6); padding: 4px 12px; }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-footer-message { text-align: center; padding-top: 6px; color: white; }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination { padding-top: 1px; position: absolute; left: 50%; margin-left: -116px; z-index: 5; }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination .pagination-page-number { color: white; text-shadow: 0px -1px 0 rgba(0, 0, 0, 0.2); }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination .pagination-page-number { color: white; text-align: center; text-shadow: 0px -1px 0 rgba(0, 0, 0, 0.2); }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination .pagination-page-number input { width: 35px; height: 18px; margin-bottom: -6px; padding: 0px; border: 1px solid #899eab; border-bottom: 1px solid #a7b7c1; }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination button { -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; border: none; width: 10px; margin: 0 10px; display: inline; float: none; }
.cms table.ss-gridfield-table tr td.bottom-all .datagrid-pagination button span { text-indent: -9999em; }
@ -127,3 +127,4 @@ Used in side panels and action tabs
.cms table.ss-gridfield-table tr.last td { border-bottom: 0 none; }
.cms table.ss-gridfield-table td:first-child { border-left: 1px solid rgba(0, 0, 0, 0.1); }
.cms table.ss-gridfield-table td:last-child { border-right: 1px solid rgba(0, 0, 0, 0.1); }
.cms .grid-bottom-button { margin-top: 12px; }

View File

@ -5,7 +5,7 @@ div.TreeDropdownField .treedropdownfield-panel { clear: left; position: absolute
div.TreeDropdownField .treedropdownfield-panel.loading { min-height: 30px; background: white url("../images/network-save.gif") 7px 7px no-repeat; }
div.TreeDropdownField .treedropdownfield-panel ul.tree { margin: 0; }
div.TreeDropdownField .treedropdownfield-panel ul.tree a { font-size: 12px; }
div.TreeDropdownField .treedropdownfield-toggle-panel-link { border: none; margin: 0; z-index: 0; padding: 7px 3px; overflow: hidden; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; background: #ccc; background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(0.6, #eeeeee)); background-image: -webkit-linear-gradient(center bottom, #cccccc 0%, #eeeeee 60%); background-image: -moz-linear-gradient(center bottom, #cccccc 0%, #eeeeee 60%); background-image: -o-linear-gradient(bottom, #cccccc 0%, #eeeeee 60%); background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 ); background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%); border-left: 1px solid #aaa; }
div.TreeDropdownField .treedropdownfield-toggle-panel-link { border: none; margin: 0; z-index: 0; padding: 7px 3px; overflow: hidden; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; }
div.TreeDropdownField .treedropdownfield-toggle-panel-link.treedropdownfield-open-tree { background: transparent; border: none; }
div.TreeDropdownField .treedropdownfield-toggle-panel-link a { text-decoration: none; display: block; border: 0; margin: 0; opacity: 0.5; }
div.TreeDropdownField a.jstree-loading .jstree-pageicon { background: white url("../images/network-save.gif") center center no-repeat; }

View File

@ -11,9 +11,6 @@
Used in side panels and action tabs
*/
.ss-uploadfield .clear { clear: both; }
.ss-insert-media .ss-uploadfield { margin-top: 20px; }
.ss-insert-media .ss-uploadfield h4 { float: left; }
.ss-insert-media .ss-uploadfield.from-CMS .nolabel.treedropdown .middleColumn { margin-left: 184px; }
.ss-uploadfield .middleColumn { width: 510px; padding: 0; background: #fff; border: 1px solid #b3b3b3; -webkit-border-radius: 4px; -moz-border-radius: 4px; -ms-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #efefef), color-stop(10%, #ffffff), color-stop(90%, #ffffff), color-stop(100%, #efefef)); background-image: -webkit-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -moz-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: -o-linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); background-image: linear-gradient(#efefef, #ffffff 10%, #ffffff 90%, #efefef); }
.ss-uploadfield .ss-uploadfield-item { margin: 0; padding: 15px; overflow: auto; }
.ss-uploadfield .ss-uploadfield-item .ss-uploadfield-item-preview { height: 60px; line-height: 60px; width: 80px; text-align: center; font-weight: bold; float: left; overflow: hidden; }

View File

@ -0,0 +1,23 @@
<?php
/**
* @package framework
* @subpackage testing
*/
class BehatFixtureFactory extends \FixtureFactory {
public function createObject($name, $identifier, $data = null) {
if(!$data) $data = array();
// Copy identifier to some visible property unless its already defined.
// Exclude files, since they generate their own named based on the file path.
if(!is_a($name, 'File', true)) {
foreach(array('Name', 'Title') as $fieldName) {
if(singleton($name)->hasField($fieldName) && !isset($data[$fieldName])) {
$data[$fieldName] = $identifier;
break;
}
}
}
return parent::createObject($name, $identifier, $data);
}
}

View File

@ -88,7 +88,7 @@ class Deprecation {
$callingfile = realpath($backtrace[1]['file']);
global $manifest;
$manifest = SS_ClassLoader::instance()->getManifest();
foreach ($manifest->getModules() as $name => $path) {
if (strpos($callingfile, realpath($path)) === 0) {
return $name;

View File

@ -116,6 +116,7 @@ class FixtureBlueprint {
$this->setValue($obj, $fieldName, $fieldVal, $fixtures);
}
$obj->write();
// Save to fixture before relationship processing in case of reflexive relationships

View File

@ -292,6 +292,10 @@ class SapphireTest extends PHPUnit_Framework_TestCase {
public function setUpOnce() {
$isAltered = false;
if(!Director::isDev()) {
user_error('Tests can only run in "dev" mode', E_USER_ERROR);
}
// Remove any illegal extensions that are present
foreach($this->illegalExtensions as $class => $extensions) {
foreach($extensions as $extension) {

View File

@ -286,8 +286,18 @@ class TestRunner extends Controller {
$skipTests = explode(',', $this->request->getVar('SkipTests'));
}
$classList = array_diff($classList, $skipTests);
$abstractClasses = array();
foreach($classList as $className) {
// Ensure that the autoloader pulls in the test class, as PHPUnit won't know how to do this.
class_exists($className);
$reflection = new ReflectionClass($className);
if ($reflection->isAbstract()) {
array_push($abstractClasses, $className);
}
}
$classList = array_diff($classList, $skipTests, $abstractClasses);
// run tests before outputting anything to the client
$suite = new PHPUnit_Framework_TestSuite();
natcasesort($classList);

View File

@ -14,6 +14,7 @@
* Removed SiteTree "MetaTitle" and "MetaKeywords" fields
* More legible and simplified tab and menu styling in the CMS
* Dropped support for Internet Explorer 7
* Added support for Internet Explorer 10 (in "classic"/desktop mode)
### Framework
@ -156,7 +157,7 @@ Here's an example on how to rewrite a common `_config.php` configuration:
Object::add_extension('Member', 'MyMemberExtension');
The ugpraded `_config.php`:
The upgraded `_config.php`:
:::php
<?php
@ -189,7 +190,7 @@ The upgraded `config.yml`:
theme: 'simple'
Member:
extensions:
MyMemberExtension
- MyMemberExtension
---
Only:
environment: 'live'
@ -475,3 +476,6 @@ you can enable those warnings and future-proof your code already.
by `updateCMSFields`. See the [DataExtension Reference](/reference/dataextension) for more information.
* Magic quotes is now deprecated. Will trigger user_error on live sites, as well as an error on new installs
* Support for Apache 1.x is removed.
* Forms created in the CMS should now be instances of a new `CMSForm` class,
and have the CMS controller's response negotiator passed into them.
Example: `$form = new CMSForm(...); $form->setResponseNegotiator($this->getResponseNegotiator());`

View File

@ -2,28 +2,31 @@
## Introduction ##
The CMS interface works just like any other part of your website: It consists of PHP controllers,
templates, CSS stylesheets and JavaScript. Because it uses the same base elements,
it is relatively easy to extend.
As an example, we're going to add a permanent "bookmarks" bar to popular pages at the bottom of the CMS.
A page can be bookmarked by a CMS author through a simple checkbox.
The CMS interface works just like any other part of your website: It consists of
PHP controllers, templates, CSS stylesheets and JavaScript. Because it uses the
same base elements, it is relatively easy to extend.
As an example, we're going to add a permanent "bookmarks" bar to popular pages
at the bottom of the CMS. A page can be bookmarked by a CMS author through a
simple checkbox.
For a deeper introduction to the inner workings of the CMS, please refer to our
guide on [CMS Architecture](../reference/cms-architecture).
## Overload a CMS template ##
If you place a template with an identical name into your application template directory
(usually `mysite/templates/`), it'll take priority over the built-in one.
If you place a template with an identical name into your application template
directory (usually `mysite/templates/`), it'll take priority over the built-in
one.
CMS templates are inherited based on their controllers, similar to subclasses of
the common `Page` object (a new PHP class `MyPage` will look for a `MyPage.ss` template).
We can use this to create a different base template with `LeftAndMain.ss`
(which corresponds to the `LeftAndMain` PHP controller class).
Copy the template markup of the base implementation at `framework/admin/templates/LeftAndMain.ss` into
`mysite/templates/LeftAndMain.ss`. It will automatically be picked up by the CMS logic. Add a new section after the
`$Content` tag:
Copy the template markup of the base implementation at `framework/admin/templates/LeftAndMain.ss`
into `mysite/templates/LeftAndMain.ss`. It will automatically be picked up by
the CMS logic. Add a new section after the `$Content` tag:
:::ss
...
@ -39,21 +42,24 @@ Copy the template markup of the base implementation at `framework/admin/template
</div>
...
Refresh the CMS interface with `admin/?flush=all`, and you should see the new bottom bar with some hardcoded links.
We'll make these dynamic further down.
Refresh the CMS interface with `admin/?flush=all`, and you should see the new
bottom bar with some hardcoded links. We'll make these dynamic further down.
You might have noticed that we didn't write any JavaScript to add our layout manager.
The important piece of information is the `south` class in our new `<div>` structure,
plus the height value in our CSS. It instructs the existing parent layout how to render the element.
This layout manager ([jLayout](http://www.bramstein.com/projects/jlayout/))
allows us to build complex layouts with minimal JavaScript configuration.
You might have noticed that we didn't write any JavaScript to add our layout
manager. The important piece of information is the `south` class in our new
`<div>` structure, plus the height value in our CSS. It instructs the existing
parent layout how to render the element. This layout manager
([jLayout](http://www.bramstein.com/projects/jlayout/)) allows us to build
complex layouts with minimal JavaScript configuration.
See [layout reference](../reference/layout) for more specific information on CMS layouting.
See [layout reference](../reference/layout) for more specific information on
CMS layouting.
## Include custom CSS in the CMS
In order to show the links in one line, we'll add some CSS, and get it to load with the CMS interface.
Paste the following content into a new file called `mysite/css/BookmarkedPages.css`:
In order to show the links in one line, we'll add some CSS, and get it to load
with the CMS interface. Paste the following content into a new file called
`mysite/css/BookmarkedPages.css`:
:::css
.cms-bottom-bar {height: 20px; padding: 5px; background: #C6D7DF;}
@ -67,18 +73,23 @@ Load the new CSS file into the CMS, by setting the `LeftAndMain.extra_requiremen
:::yml
LeftAndMain:
extra_requirements_css:
mysite/css/BookmarkedPages.css:
- mysite/css/BookmarkedPages.css:
## Create a "bookmark" flag on pages ##
Now we'll define which pages are actually bookmarked, a flag that is stored in the database.
For this we need to decorate the page record with a `DataExtension`.
Create a new file called `mysite/code/BookmarkedPageExtension.php` and insert the following code.
Now we'll define which pages are actually bookmarked, a flag that is stored in
the database. For this we need to decorate the page record with a
`DataExtension`. Create a new file called `mysite/code/BookmarkedPageExtension.php`
and insert the following code.
:::php
<?php
class BookmarkedPageExtension extends DataExtension {
private static $db = array('IsBookmarked' => 'Boolean');
private static $db = array(
'IsBookmarked' => 'Boolean'
);
public function updateCMSFields(FieldList $fields) {
$fields->addFieldToTab('Root.Main',
@ -100,14 +111,17 @@ Refresh the CMS, open a page for editing and you should see the new checkbox.
## Retrieve the list of bookmarks from the database
One piece in the puzzle is still missing: How do we get the list of bookmarked
pages from the datbase into the template we've already created (with hardcoded links)?
Again, we extend a core class: The main CMS controller called `LeftAndMain`.
pages from the database into the template we've already created (with hardcoded
links)? Again, we extend a core class: The main CMS controller called
`LeftAndMain`.
Add the following code to a new file `mysite/code/BookmarkedLeftAndMainExtension.php`;
:::php
<?php
class BookmarkedPagesLeftAndMainExtension extends LeftAndMainExtension {
public function BookmarkedPages() {
return Page::get()->filter("IsBookmarked", 1);
}
@ -133,39 +147,51 @@ and replace it with the following:
## Extending the CMS actions
CMS actions follow a principle similar to the CMS fields: they are built in the backend with the help of `FormFields`
and `FormActions`, and the frontend is responsible for applying a consistent styling.
CMS actions follow a principle similar to the CMS fields: they are built in the
backend with the help of `FormFields` and `FormActions`, and the frontend is
responsible for applying a consistent styling.
The following conventions apply:
* New actions can be added by redefining `getCMSActions`, or adding an extension with `updateCMSActions`.
* It is required the actions are contained in a `FieldSet` (`getCMSActions` returns this already).
* Standalone buttons are created by adding a top-level `FormAction` (no such button is added by default).
* Button groups are created by adding a top-level `CompositeField` with `FormActions` in it.
* New actions can be added by redefining `getCMSActions`, or adding an extension
with `updateCMSActions`.
* It is required the actions are contained in a `FieldSet` (`getCMSActions`
returns this already).
* Standalone buttons are created by adding a top-level `FormAction` (no such
button is added by default).
* Button groups are created by adding a top-level `CompositeField` with
`FormActions` in it.
* A `MajorActions` button group is already provided as a default.
* Drop ups with additional actions that appear as links are created via a `TabSet` and `Tabs` with `FormActions` inside.
* A `ActionMenus.MoreOptions` tab is already provided as a default and contains some minor actions.
* You can override the actions completely by providing your own `getAllCMSFields`.
* Drop ups with additional actions that appear as links are created via a
`TabSet` and `Tabs` with `FormActions` inside.
* A `ActionMenus.MoreOptions` tab is already provided as a default and contains
some minor actions.
* You can override the actions completely by providing your own
`getAllCMSFields`.
Let's walk through a couple of examples of adding new CMS actions in `getCMSActions`.
First of all we can add a regular standalone button anywhere in the set. Here we are inserting it in the front of all
other actions. We could also add a button group (`CompositeField`) in a similar fashion.
First of all we can add a regular standalone button anywhere in the set. Here
we are inserting it in the front of all other actions. We could also add a
button group (`CompositeField`) in a similar fashion.
:::php
$fields->unshift(FormAction::create('normal', 'Normal button'));
We can affect the existing button group by manipulating the `CompositeField` already present in the `FieldList`.
We can affect the existing button group by manipulating the `CompositeField`
already present in the `FieldList`.
:::php
$fields->fieldByName('MajorActions')->push(FormAction::create('grouped', 'New group button'));
Another option is adding actions into the drop-up - best place for placing infrequently used minor actions.
Another option is adding actions into the drop-up - best place for placing
infrequently used minor actions.
:::php
$fields->addFieldToTab('ActionMenus.MoreOptions', FormAction::create('minor', 'Minor action'));
We can also easily create new drop-up menus by defining new tabs within the `TabSet`.
We can also easily create new drop-up menus by defining new tabs within the
`TabSet`.
:::php
$fields->addFieldToTab('ActionMenus.MyDropUp', FormAction::create('minor', 'Minor action in a new drop-up'));
@ -174,15 +200,18 @@ We can also easily create new drop-up menus by defining new tabs within the `Tab
Empty tabs will be automatically removed from the `FieldList` to prevent clutter.
</div>
New actions will need associated controller handlers to work. You can use a `LeftAndMainExtension` to provide one. Refer
to [Controller documentation](../topics/controller) for instructions on setting up handlers.
New actions will need associated controller handlers to work. You can use a
`LeftAndMainExtension` to provide one. Refer to [Controller documentation](../topics/controller)
for instructions on setting up handlers.
To make the actions more user-friendly you can also use alternating buttons as detailed in the [CMS Alternating
Button](../reference/cms-alternating-button) how-to.
To make the actions more user-friendly you can also use alternating buttons as
detailed in the [CMS Alternating Button](../reference/cms-alternating-button)
how-to.
## Summary
In a few lines of code, we've customized the look and feel of the CMS.
While this example is only scratching the surface, it includes most building
blocks and concepts for more complex extensions as well.

View File

@ -1,9 +1,11 @@
# Contributing
Any open source product is only as good as the community behind it. You can participate by sharing
code, ideas, or simply helping others. No matter what your skill level is, every contribution counts.
Any open source product is only as good as the community behind it. You can
participate by sharing code, ideas, or simply helping others. No matter what
your skill level is, every contribution counts.
See our [high level overview on silverstripe.org](http://silverstripe.org/contributing-to-silverstripe) on how you can help out.
See our [high level overview on silverstripe.org](http://silverstripe.org/contributing-to-silverstripe)
on how you can help out.
Or, for more detailed guidance, read one of the following pages:

View File

@ -1,10 +1,9 @@
# Misc
This section is dedicated to going to detail about an assortment of topics which don't necessary fit into other documentation
sections.
This section is dedicated to going to detail about an assortment of topics which
don't necessary fit into other documentation sections.
* [Coding conventions](coding-conventions): Guidelines and standards for code formatting and documentation
* [Contributing](contributing): How you can be a part of the SilverStripe Open Source community
* [Module release process](module-release-process): Creating and looking after a module
* [Release process](release-process): Describes the Framework and CMS release process
* [SS markdown](ss-markdown): Markdown syntax for our technical documentation

View File

@ -1,241 +0,0 @@
# Module Maintenance and Release Procedures
## Creating a module
One of the best ways that you can contribute to SilverStripe is by developing a module for SilverStripe.
If you do, we would love to host your module and have you become an official module maintainer on our site.
Please read our ["Contributing to SilverStripe"](http://silverstripe.org/contributing-to-silverstripe/) overview.
Once you have created a module, login at [silverstripe.org](http://silverstripe.org) and
[submit your module](http://silverstripe.org/modules/manage/add)
It's very important to us that users of SilverStripe can come to expect a level of quality from the core product and any
modules running on it. In order to provide this, we require certain things from module maintainers.
<div class="hint" markdown="1">
The following documentation describes aspects of subversion, you can read about similiar
strategies for git on a [free online book](http://progit.org/book).
</div>
### Principles
Strive for features you add to the CMS to be innovatively usable by a content editor rather than a web-developer.
Think Wordpress and Apple. Most modules should work by merely placing the code in your SilverStripe installation and
running /dev/build. Provide a default set of configuration options that are easily changed in `_config.php`
(for instance the `ecommerce` module works out of the box, and you can easily set up a payment provider), aiding a pleasant
user experience.
### Code
Each line of code you write should be version controlled, in version control systems like
[subversion](http://subversion.tigris.org) or [Git](http://gitscm.com). There's lots of services that are freely
available for opensource projects, including wiki and bugtracker functionality
(e.g. [Google Code for Subversion](http://code.google.com) or [Github for Git](http://github.com)).
* Add your module to [silverstripe.org/modules](http://silverstripe.org/modules) (and keep the version compatibility information current)
* Follow our [coding-conventions](coding-conventions)
* Write unit tests and functional tests covering code bundled with the module - see [testing-guide](/topics/testing)
* Ensure your code is [localizable](/topics/i18n)
### Maintenance
* Create releases (see ["Module Releases"](#module-releases) below)
* Ensure that your module is patched to always work with the latest SilverStripe release, and note these compatibilities on
your modules page on silverstripe.org
* Be involved in our community
* Subscripe to our developer mailing list and be available to answer questions on the forum.
* Attend our weekly core discussions on IRC as regularly as you can.
* Create an **issue tracker** so your users can file bugs and feature requests (see ["Feedback and Bugtracking"](module-release-process#feedback-and-bugtracking) below)
* Create a **roadmap** and **milestones** outlining future release planning
### Feedback and Bugtracking
Both Google Code and github.com provide their own bugtracker - we encourage you to use any built-in tools that come with
your version control hoster. Most Silverstripe-maintained modules have their bugtracker on
[github.com](http://www.github.com) (see [issue reporting guidelines](/misc/contributing/issues)).
Providing bugtracking is a major form of communicating with your users in an efficient way, and will provide a good overview
of outstanding work and the stability of your code to an interested user.
If the user community finds bugs that shouldn't be included in the next stable release, you will need to release another
release candidate. If your release candidate is found to be stable, then you can create the stable release.
### Documentation
You should have both **developer documentation** and **user documentation**, and keep them updated with your releases.
See [Producing OSS: "Documentation"](http://producingoss.com/en/getting-started.html#documentation) and our
[contributing guide](contributing/documentation).
### README file
Each module should have a `README.md file` in the project root in
[markdown format](http://daringfireball.net/projects/markdown/), roughly following this template:
# <MODULENAME> Module
## Maintainer Contact
* <FULLNAME> (Nickname: <NICKNAME>, <EMAIL>)
## Requirements
* <Specific SilverStripe version, PHP, MySQL, ...>
## Documentation
<Links to the wiki, blog posts, etc>
## Installation Instructions
<Step by step instructions>
## Usage Overview
<Highlevel usage, refer to wiki documentation for details>
## Known issues
<Popular issues, how to solve them, and links to tickets in the bugtracker>
### The docs/ folder ###
The `README.md` file might get a bit long for bigger modules, and you might want to break it up into multiple files
that you can link from the `README.md` file. Example:
mymodule/
README.md
code/
docs/
installation.md
tutorial.md
howto-search-mymodule.md
The ["docsviewer" module](https://github.com/silverstripe/silverstripe-docsviewer) can be used
to list and render content inside a `docs/` folder (although it is not required, Markdown is designed
to be readable in plain text as well).
### What do you get?
In return for all your hard work in putting a high-quality module on the site, the SilverStripe project has the following
options to support you:
* Advertising of your module on the http://silverstripe.org/modules/ modules page once it has reached a beta stage and shown
to meet our requirements above.
* We might showcase your module on our blog and/or newsletter, when it's first released and/or when a major version with
significant new features is released. We'll work with you to publicise it on other blogs too (it helps if you deliver
screenshots and screencasts)
* More influence in suggesting changes to the core product
* Kudos on [Ohloh](http://www.ohloh.net/projects/5034?p=SilverStripe+CMS)
## Releasing a Module
If you are a module maintaienr, you will be responsible for creating new releases of the module.
Releases are important for each codebase to provide stability for its users,
and clearly communicate dependencies/requirements.
### Release Branches
In order to ensure stability, the first thing we do when making a release is to create a release branch. This branch
will exist for the duration of the testing and release candidate phase. The key is that **you should only commit
bugfixes to this branch**. This lets you focus on getting a stable version of module ready for release, and new
features can still be added to trunk.
Creating a release branch is a simple `svn cp` command. In the example below, (modulename) would be something like
"ecommerce" or "flickrservice", and (releasenumber) would be something like "0.2.1" (see
[Producing OSS: Release Numbering](http://producingoss.com/en/development-cycle.html#release-numbering))
svn cp http://svn.silverstripe.com/open/modules/(modulename)/trunk http://svn.silverstripe.com/open/modules/(modulename)/branches/(releasenumber)
Once you have created a release branch, you should do some testing of the module yourself. Try installing it on a new
site, and existing site, use the different features, and if possible, install on a couple of different servers.
See [SVN Book: "Release Branches"](http://svnbook.red-bean.com/en/1.5/svn.branchmerge.commonpatterns.html#svn.branchmerge.commonpatterns.release),
[Producing OSS: "Release Branches"](http://producingoss.com/en/release-branches.html) and
[Producing OSS: "Stabilizing a release"](http://producingoss.com/en/stabilizing-a-release.html) for more details.
### Release Candidates
Once you've done your own testing, it's time to create a release candidate (RC). This is a copy of your module that
will be sent to the developer community for testing and feedback. Creating a release candidate is a matter of executing
a `svn cp` command.
Note: If you are the only developer on the module, and you aren't going to be creating any new features for the duration
of the release cycle, then you can get away with creating your RCs directly from trunk instead of creating a release
branch. For major modules, we advise against this, but for very simple modules, going through the whole release process
might be overkill.
svn cp http://svn.silverstripe.com/open/modules/(modulename)/branches/(releasenumber) http://svn.silverstripe.com/open/modules/(modulename)/tags/rc/(releasenumber)-rc1
svn co http://svn.silverstripe.com/open/modules/(modulename)/tags/rc/(releasenumber)-rc1 (modulename)
tar czf (modulename)_(releasenumber)-rc1.tar.gz (modulename)
See ["ReleaseBranches" chapter](http://svnbook.red-bean.com/en/1.5/svn.branchmerge.commonpatterns.html#svn.branchmerge.commonpatterns.release)
and ["Tags" chapter](http://svnbook.red-bean.com/en/1.5/svn.branchmerge.tags.html).
### Stabilizing A Release
After you have put a release candidate out for testing and no-one has found any bugs that would prevent a release, you
can create the stable release! Please: **The stable release should always be a copy of a release candidate**. Even if
"there's just one tiny bug to fix", you shouldn't release that bug fix onto a stable release - there is always the risk
that you inadvertently broke something! As you might guess, `svn cp` is used to create the final release, and then an
export to a tar.gz.
svn cp http://svn.silverstripe.com/open/modules/(modulename)/tags/rc/(releasenumber)-rc2 http://svn.silverstripe.com/open/modules/(modulename)/tags/(releasenumber)
svn export http://svn.silverstripe.com/open/modules/(modulename)/tags/(releasenumber) (modulename)
tar czf (modulename)_(releasenumber).tar.gz (modulename)
### Announcing a Release or Release Candidate
* See [Producing OSS: "Announcing Releases"](http://producingoss.com/en/testing-and-releasing.html#release-announcement)
* Update your [documentation](module-release-process#documentation) in the sourcecode, wiki and README
* Add your release to the [silverstripe.org/modules](http://silverstripe.org/modules) listing
* Announce the release on [silverstripe-announce](http://groups.google.com/group/silverstripe-announce). Include a
[changelog](module-release-process#changelogs), the download link and instructions for filing bug reports.
* If this release is a major release, our [marketing guys](http://silverstripe.com/contact/) will strive to announce it
on the main [silverstripe.com blog](http://silverstripe.com/blog) as well
### Changelogs
Each release you make should contain `CHANGELOG` file in the project root with a highlevel overview of additions and
bugfixes in this release. The `svn log` command gives you all commit messages for a specific project, and is a good
start to build a changelog (see ["Examining historical changes" chapter](http://svnbook.red-bean.com/en/1.5/svn.tour.history.html)).
Depending on the volume of changes, it is preferred that you summarize these messages in a more "digestible"
form (see [Producing OSS: "Changes vs. Changelog"](http://producingoss.com/en/packaging.html#changelog)).
A good `CHANGELOG` example from the subversion project itself:
Version 1.5.2
(29 Aug 2008, from /branches/1.5.x)
http://svn.collab.net/repos/svn/tags/1.5.2
User-visible changes:
* Set correct permissions on created fsfs shards (r32355, -7)
* Pass client capabilities to start-commit hook (issue #3255)
* Disallow creating nested repositories (issue #3269)
Developer-visible changes:
* make libsvn_ra_neon initialization thread-safe (r32497, r32510)
Version 1.5.1
(24 Jul 2008, from /branches/1.5.x)
http://svn.collab.net/repos/svn/tags/1.5.1
...
### Release Branch Maintenance
This is also the time to remove the release branch from the subversion tree - we don't want to have lots of branches on
the source tree to confuse everyone. However, before you do this, you will need to merge your changes back to the
trunk.
## See Also
* [Module Development](/topics/module-development)
* [Documentation Guide](contributing/documentation)
* [Contributing to SilverStripe](contributing)
* [Submit your Module](http://silverstripe.org/modules/manage/add)
* [subversion](subversion)

View File

@ -1,7 +1,6 @@
# Release Process
Describes the process followed for "core" releases (mainly the `framework` and `cms` modules).
For other modules, we've compiled a helpful guide for a good [module release process](module-release-process).
## Release Maintainer
@ -18,8 +17,8 @@ Release dates are usually not published prior to the release, but you can get a
reviewing the release milestone on github.com. Releases will be
announced on the [release announcements mailing list](http://groups.google.com/group/silverstripe-announce).
Releases of the *cms* and *framework* modules are coupled at the moment, they follow the same numbering scheme. Module
releases are documented separately in [module-release-process](module-release-process).
Releases of the *cms* and *framework* modules are coupled at the moment, they
follow the same numbering scheme.
## Release Numbering

View File

@ -106,12 +106,15 @@ In order to set the correct layout classes, we also need a custom template.
To obey the inheritance chain, we use `$this->getTemplatesWithSuffix('_EditForm')` for
selecting the most specific template (so `MyAdmin_EditForm.ss`, if it exists).
The form should be of type `CMSForm` rather than `Form`, since it allows the use
of a `PjaxResponseNegotiator` to handle its display.
Basic example form in a CMS controller subclass:
:::php
class MyAdmin extends LeftAndMain {
function getEditForm() {
$form = new Form(
return CMSForm::create(
$this,
'EditForm',
new FieldSet(
@ -125,11 +128,14 @@ Basic example form in a CMS controller subclass:
new FieldSet(
FormAction::create('doSubmit')
)
);
// Required for correct CMS layout
$form->addExtraClass('cms-edit-form');
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
return $form;
)
// JS and CSS use this identifier
->setHTMLID('Form_EditForm')
// Render correct responses on validation errors
->setResponseNegotiator($this->getResponseNegotiator());
// Required for correct CMS layout
->addExtraClass('cms-edit-form')
->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
}
}

View File

@ -167,13 +167,13 @@ Example: Simple Definition
'ProductCode' => 'Int',
);
private static $summary_fields = array(
'Name',
'ProductCode'
);
'Name',
'ProductCode'
);
}
To include relations in your summaries, you can use a dot-notation.
To include relations or field manipulations in your summaries, you can use a dot-notation.
:::php
class OtherObject extends DataObject {
@ -183,17 +183,37 @@ To include relations in your summaries, you can use a dot-notation.
}
class MyDataObject extends DataObject {
private static $db = array(
'Name' => 'Text'
'Name' => 'Text',
'Description' => 'HTMLText'
);
private static $has_one = array(
'OtherObject' => 'OtherObject'
);
private static $summary_fields = array(
'Name',
'OtherObject.Title'
);
private static $summary_fields = array(
'Name' => 'Name',
'Description.Summary' => 'Description (summary)',
'OtherObject.Title' => 'Other Object Title'
);
}
Non-textual elements (such as images and their manipulations) can also be used in summaries.
:::php
class MyDataObject extends DataObject {
private static $db = array(
'Name' => 'Text'
);
private static $has_one = array(
'HeroImage' => 'Image'
);
private static $summary_fields = array(
'Name' => 'Name,
'HeroImage.CMSThumbnail' => 'Hero Image'
);
}
## Permissions
Models can be modified in a variety of controllers and user interfaces,

View File

@ -1,6 +1,6 @@
# Gridfield
# GridField
Gridfield is SilverStripe's implementation of data grids. Its main purpose is to display tabular data
GridField is SilverStripe's implementation of data grids. Its main purpose is to display tabular data
in a format that is easy to view and modify. It's a can be thought of as a HTML table with some tricks.
It's built in a way that provides developers with an extensible way to display tabular data in a
@ -170,6 +170,7 @@ The namespace notation is `ManyMany[<extradata-field-name>]`, so for example
Example:
:::php
class Player extends DataObject {
private static $db = array('Name' => 'Text');
public static $many_many = array('Teams' => 'Team');

View File

@ -2,31 +2,37 @@
## Overview
With the addition of side-by-side editing, the preview has the ability to appear within the CMS window when editing
content in the _Pages_ section of the CMS. The site is rendered into an iframe. It will update itself whenever the
content is saved, and relevant pages will be loaded for editing when the user navigates around in the preview.
With the addition of side-by-side editing, the preview has the ability to appear
within the CMS window when editing content in the _Pages_ section of the CMS.
The site is rendered into an iframe. It will update itself whenever the content
is saved, and relevant pages will be loaded for editing when the user navigates
around in the preview.
The root element for preview is `.cms-preview` which maintains the internal states neccessary for rendering within the
entwine properties. It provides function calls for transitioning between these states and has the ability to update the
appearance of the option selectors.
The root element for preview is `.cms-preview` which maintains the internal
states necessary for rendering within the entwine properties. It provides
function calls for transitioning between these states and has the ability to
update the appearance of the option selectors.
In terms of backend support, it relies on `SilverStripeNavigator` to be rendered into the `.cms-edit-form`.
_LeftAndMain_ will automatically take care of generating it as long as the `*_SilverStripeNavigator` template is found -
first segment has to match current _LeftAndMain_-derived class (e.g. `LeftAndMain_SilverStripeNavigator`).
In terms of backend support, it relies on `SilverStripeNavigator` to be rendered
into the `.cms-edit-form`. _LeftAndMain_ will automatically take care of
generating it as long as the `*_SilverStripeNavigator` template is found -
first segment has to match current _LeftAndMain_-derived class (e.g.
`LeftAndMain_SilverStripeNavigator`).
We use `ss.preview` entwine namespace for all preview-related entwines.
<div class="notice" markdown='1'>
Caveat: `SilverStripeNavigator` and `CMSPreviewable` interface currently only support SiteTree objects that are
_Versioned_. They are not general enough for using on any other DataObject. That pretty much limits the extendability
of the feature.
Caveat: `SilverStripeNavigator` and `CMSPreviewable` interface currently only
support SiteTree objects that are _Versioned_. They are not general enough for
using on any other DataObject. That pretty much limits the extendability of the
feature.
</div>
## Configuration and Defaults
Like most of the CMS, the preview UI is powered by
[jQuery entwine](https://github.com/hafriedlander/jquery.entwine).
This means its defaults are configured through JavaScript, by setting entwine properties.
[jQuery entwine](https://github.com/hafriedlander/jquery.entwine). This means
its defaults are configured through JavaScript, by setting entwine properties.
In order to achieve this, create a new file `mysite/javascript/MyLeftAndMain.Preview.js`.
In the following example we configure three aspects:
@ -69,7 +75,7 @@ to the `LeftAndMain.extra_requirements_javascript` [configuration value](/topics
:::yml
LeftAndMain
extra_requirements_javascript:
mysite/javascript/MyLeftAndMain.Preview.js:
- mysite/javascript/MyLeftAndMain.Preview.js:
In order to find out which configuration values are available, the source code
is your best reference at the moment - have a look in `framework/admin/javascript/LeftAndMain.Preview.js`.
@ -78,30 +84,33 @@ To understand how layouts are handled in the CMS UI, have a look at the
## Enabling preview
The frontend decides on the preview being enabled or disabled based on the presnce of the `.cms-previewable` class. If
this class is not found the preview will remain hidden, and the layout will stay in the _content_ mode.
The frontend decides on the preview being enabled or disabled based on the
presence of the `.cms-previewable` class. If this class is not found the preview
will remain hidden, and the layout will stay in the _content_ mode.
If the class is found, frontend looks for the `SilverStripeNavigator` structure and moves it to the
`.cms-preview-control` panel at the bottom of the preview. This structure supplies preview options such as state
selector.
If the class is found, frontend looks for the `SilverStripeNavigator` structure
and moves it to the `.cms-preview-control` panel at the bottom of the preview.
This structure supplies preview options such as state selector.
If the navigator is not found, the preview appears in the GUI, but is shown as "blocked" - i.e. displaying the "preview
unavailable" overlay.
If the navigator is not found, the preview appears in the GUI, but is shown as
"blocked" - i.e. displaying the "preview unavailable" overlay.
The preview can be affected by calling `enablePreview` and `disablePreview`. You can check if the preview is active by
inspecting the `IsPreviewEnabled` entwine property.
The preview can be affected by calling `enablePreview` and `disablePreview`. You
can check if the preview is active by inspecting the `IsPreviewEnabled` entwine
property.
## Preview states
States are the site stages: _live_, _stage_ etc. Preview states are picked up from the `SilverStripeNavigator`.
You can invoke the state change by calling:
States are the site stages: _live_, _stage_ etc. Preview states are picked up
from the `SilverStripeNavigator`. You can invoke the state change by calling:
```js
$('.cms-preview').entwine('.ss.preview').changeState('StageLink');
```
Note the state names come from `SilverStripeNavigatorItems` class names - thus the _Link_ in their names. This call will
also redraw the state selector to fit with the internal state. See `AllowedStates` in `.cms-preview` entwine for the
Note the state names come from `SilverStripeNavigatorItems` class names - thus
the _Link_ in their names. This call will also redraw the state selector to fit
with the internal state. See `AllowedStates` in `.cms-preview` entwine for the
list of supported states.
You can get the current state by calling:
@ -112,16 +121,18 @@ You can get the current state by calling:
## Preview sizes
This selector defines how the preview iframe is rendered, and try to emulate different device sizes. The options are
hardcoded. The option names map directly to CSS classes applied to the `.cms-preview` and are as follows:
This selector defines how the preview iframe is rendered, and try to emulate
different device sizes. The options are hardcoded. The option names map directly
to CSS classes applied to the `.cms-preview` and are as follows:
* _auto_: responsive layout
* _desktop_
* _tablet_
* _mobile_
You can switch between different types of display sizes programmatically, which has the benefit of redrawing the
related selector and maintaining a consistent internal state:
You can switch between different types of display sizes programmatically, which
has the benefit of redrawing the related selector and maintaining a consistent
internal state:
```js
$('.cms-preview').entwine('.ss.preview').changeSize('auto');
@ -135,25 +146,27 @@ You can find out current size by calling:
## Preview modes
Preview modes map to the modes supported by the _threeColumnCompressor_ layout algorithm, see
[layout reference](../reference/layout) for more details. You can change modes by calling:
Preview modes map to the modes supported by the _threeColumnCompressor_ layout
algorithm, see [layout reference](../reference/layout) for more details. You
can change modes by calling:
```js
$('.cms-preview').entwine('.ss.preview').changeMode('preview');
```
Currently active mode is stored on the `.cms-container` along with related internal states of the layout. You can reach
it by calling:
Currently active mode is stored on the `.cms-container` along with related
internal states of the layout. You can reach it by calling:
```js
$('.cms-container').entwine('.ss').getLayoutOptions().mode;
```
<div class="notice" markdown='1'>
Caveat: the `.preview-mode-selector` appears twice, once in the preview and second time in the CMS actions area as
`#preview-mode-dropdown-in-cms`. This is done because the user should still have access to the mode selector even if
preview is not visible. Currently CMS Actions are a separate area to the preview option selectors, even if they try
to appear as one horizontal bar.
Caveat: the `.preview-mode-selector` appears twice, once in the preview and
second time in the CMS actions area as `#preview-mode-dropdown-in-cms`. This is
done because the user should still have access to the mode selector even if
preview is not visible. Currently CMS Actions are a separate area to the preview
option selectors, even if they try to appear as one horizontal bar.
</div>
## Preview API

View File

@ -146,7 +146,7 @@ quotes, `kipper`, which is a **literal**. If true, the text inside the if-block
is output.
:::ss
<% if $MyDinner="kipper" %>
<% if $MyDinner=="kipper" %>
Yummy, kipper for tea.
<% end_if %>
@ -159,7 +159,7 @@ This example shows the use of the `else` option. The markup after `else` is
output if the tested condition is *not* true.
:::ss
<% if $MyDinner="kipper" %>
<% if $MyDinner=="kipper" %>
Yummy, kipper for tea
<% else %>
I wish I could have kipper :-(
@ -171,7 +171,7 @@ and the markup for that condition is used. If none of the conditions are true,
the markup in the `else` clause is used, if that clause is present.
:::ss
<% if $MyDinner="quiche" %>
<% if $MyDinner=="quiche" %>
Real men don't eat quiche
<% else_if $MyDinner=$YourDinner %>
We both have good taste

View File

@ -208,7 +208,7 @@ like this:
'Description' => 'Text'
);
public static $belongs_many_many = array(
private static $belongs_many_many = array(
'GalleryPage' => 'GalleryPage'
);
}

View File

@ -98,22 +98,25 @@ This code provides a good template:
:::php
class MyProcess extends Controller {
public static $allowed_actions = array('index');
function index() {
set_time_limit(0);
while(memory_get_usage() < 32*1024*1024) {
if($this->somethingToDo()) {
$this->doSomething();
sleep(1)
} else {
sleep(300);
}
}
}
private static $allowed_actions = array(
'index'
);
function index() {
set_time_limit(0);
while(memory_get_usage() < 32*1024*1024) {
if($this->somethingToDo()) {
$this->doSomething();
sleep(1)
} else {
sleep(300);
}
}
}
}
Step 2: Install the "daemon" command-line tool on your server.
Step 3: Use sake to start and stop your process
@ -122,8 +125,9 @@ Step 3: Use sake to start and stop your process
sake -stop MyProcess
Note that sake processes are currently a little brittle, in that the pid and log files are placed in the site root
directory, rather than somewhere sensible like /var/log or /var/run.
Note that sake processes are currently a little brittle, in that the pid and log
files are placed in the site root directory, rather than somewhere sensible like
/var/log or /var/run.
### Running Regular Tasks With Cron
@ -137,6 +141,7 @@ php /path/to/site_root/framework/cli-script.php dev/tasks/MyTask
If you find that your cron job appears to be retrieving the login screen, then you may need to use `php-cli`
instead. This is typical of a cPanel-based setup.
```
php-cli /path/to/site_root/framework/cli-script.php dev/tasks/MyTask
```

View File

@ -164,8 +164,12 @@ through `/fastfood/drivethrough/` to use the same order function.
:::php
class FastFood_Controller extends Controller {
private static $allowed_actions = array('drivethrough');
public static $url_handlers = array(
private static $allowed_actions = array(
'drivethrough'
);
private static $url_handlers = array(
'drivethrough/$Action/$ID/$Name' => 'order'
);

View File

@ -1,21 +1,26 @@
# Datamodel
SilverStripe uses an [object-relational model](http://en.wikipedia.org/wiki/Object-relational_model) that assumes the
following connections:
SilverStripe uses an [object-relational model](http://en.wikipedia.org/wiki/Object-relational_model)
that assumes the following connections:
* Each database-table maps to a PHP class
* Each database-row maps to a PHP object
* Each database-column maps to a property on a PHP object
All data tables in SilverStripe are defined as subclasses of `[api:DataObject]`. Inheritance is supported in the data
model: seperate tables will be linked together, the data spread across these tables. The mapping and saving/loading
logic is handled by SilverStripe, you don't need to worry about writing SQL most of the time.
All data tables in SilverStripe are defined as subclasses of `[api:DataObject]`.
Inheritance is supported in the data model: separate tables will be linked
together, the data spread across these tables. The mapping and saving/loading
logic is handled by SilverStripe, you don't need to worry about writing SQL most
of the time.
Most of the ORM customizations are possible through [PHP5 Object
Overloading](http://www.onlamp.com/pub/a/php/2005/06/16/overloading.html) handled in the `[api:Object]`-class.
Overloading](http://www.onlamp.com/pub/a/php/2005/06/16/overloading.html)
handled in the `[api:Object]`-class.
See [database-structure](/reference/database-structure) for in-depth information on the database-schema,
and the ["sql queries" topic](/reference/sqlquery) in case you need to drop down to the bare metal.
See [database-structure](/reference/database-structure) for in-depth information
on the database-schema and the ["sql queries" topic](/reference/sqlquery) in
case you need to drop down to the bare metal.
## Generating the Database Schema
@ -24,27 +29,34 @@ The SilverStripe database-schema is generated automatically by visiting the URL.
<div class="notice" markdown='1'>
Note: You need to be logged in as an administrator to perform this command,
unless your site is in "[dev mode](/topics/debugging)", or the command is run through CLI.
unless your site is in "[dev mode](/topics/debugging)", or the command is run
through CLI.
</div>
## Querying Data
Every query to data starts with a `DataList::create(<class>)` or `<class>::get()` call. For example, this query would return all of the `Member` objects:
Every query to data starts with a `DataList::create(<class>)` or `<class>::get()`
call. For example, this query would return all of the `Member` objects:
:::php
$members = Member::get();
The ORM uses a "fluent" syntax, where you specify a query by chaining together different methods. Two common methods
are `filter()` and `sort()`:
The ORM uses a "fluent" syntax, where you specify a query by chaining together
different methods. Two common methods are `filter()` and `sort()`:
:::php
$members = Member::get()->filter(array('FirstName' => 'Sam'))->sort('Surname');
$members = Member::get()->filter(array(
'FirstName' => 'Sam'
))->sort('Surname');
Those of you who know a bit about SQL might be thinking "it looks like you're querying all members, and then filtering
to those with a first name of 'Sam'. Isn't this very slow?" Is isn't, because the ORM doesn't actually execute the SQL
query until you iterate on the result with a `foreach()` or `<% loop %>`. The ORM is smart enough to generate a single
efficient query at the last moment in time without needing to post process the result set in PHP. In MySQL the query
generated by the ORM may look something like this for the previous query.
Those of you who know a bit about SQL might be thinking "it looks like you're
querying all members, and then filtering to those with a first name of 'Sam'.
Isn't this very slow?" Is isn't, because the ORM doesn't actually execute the
SQL query until you iterate on the result with a `foreach()` or `<% loop %>`.
The ORM is smart enough to generate a single efficient query at the last moment
in time without needing to post process the result set in PHP. In MySQL the
query generated by the ORM may look something like this for the previous query.
:::
SELECT * FROM Member WHERE FirstName = 'Sam' ORDER BY Surname
@ -64,10 +76,13 @@ An example of the query process in action:
echo "<p>$member->FirstName $member->Surname</p>";
}
This also means that getting the count of a list of objects will be done with a single, efficient query.
This also means that getting the count of a list of objects will be done with a
single, efficient query.
:::php
$members = Member::get()->filter(array('FirstName' => 'Sam'))->sort('Surname');
$members = Member::get()->filter(array(
'FirstName' => 'Sam'
))->sort('Surname');
// This will create an single SELECT COUNT query similar to -
// SELECT COUNT(*) FROM Members WHERE FirstName = 'Sam'
@ -76,35 +91,42 @@ This also means that getting the count of a list of objects will be done with a
### Returning a single DataObject
There are a couple of ways of getting a single DataObject from the ORM. If you know the ID number of the object,
you can use `byID($id)`:
There are a couple of ways of getting a single DataObject from the ORM. If you
know the ID number of the object, you can use `byID($id)`:
:::php
$member = Member::get()->byID(5);
If you have constructed a query that you know should return a single record, you can call `First()`:
If you have constructed a query that you know should return a single record, you
can call `First()`:
:::php
$member = Member::get()->filter(array('FirstName' => 'Sam', 'Surname' => 'Minnee'))->First();
$member = Member::get()->filter(array(
'FirstName' => 'Sam', 'Surname' => 'Minnee'
))->First();
### Sort
Quite often you would like to sort a list. Doing this on a list could be done in a few ways.
Quite often you would like to sort a list. Doing this on a list could be done in
a few ways.
If would like to sort the list by `FirstName` in a ascending way (from A to Z).
:::php
$member = Member::get()->sort('FirstName', 'ASC'); // ASC or DESC
$member = Member::get()->sort('FirstName'); // Ascending is implied
$members = Member::get()->sort('FirstName', 'ASC'); // ASC or DESC
$members = Member::get()->sort('FirstName'); // Ascending is implied
To reverse the sort
:::php
$member = Member::get()->sort('FirstName', 'DESC');
$members = Member::get()->sort('FirstName', 'DESC');
However you might have several entries with the same `FirstName` and would like to sort them by `FirstName`
and `LastName`
// or..
$members = Member::get()->sort('FirstName', 'ASC')->reverse();
However you might have several entries with the same `FirstName` and would like
to sort them by `FirstName` and `LastName`
:::php
$member = Member::get()->sort(array(
@ -119,18 +141,19 @@ You can also sort randomly
### Filter
As you might expect, the `filter()` method filters the list of objects that gets returned. The previous example
included this filter, which returns all Members with a first name of "Sam".
As you might expect, the `filter()` method filters the list of objects that gets
returned. The previous example included this filter, which returns all Members
with a first name of "Sam".
:::php
$members = Member::get()->filter(array('FirstName' => 'Sam'));
In SilverStripe 2, we would have passed `"\"FirstName\" = 'Sam'` to make this query. Now, we pass an array,
`array('FirstName' => 'Sam')`, to minimise the risk of SQL injection bugs. The format of this array follows a few
rules:
In SilverStripe 2, we would have passed `"\"FirstName\" = 'Sam'` to make this
query. Now, we pass an array, `array('FirstName' => 'Sam')`, to minimize the
risk of SQL injection bugs. The format of this array follows a few rules:
* Each element of the array specifies a filter. You can specify as many filters as you like, and they **all** must
be true.
* Each element of the array specifies a filter. You can specify as many
filters as you like, and they **all** must be true.
* The key in the filter corresponds to the field that you want to filter by.
* The value in the filter corresponds to the value that you want to filter to.
@ -154,18 +177,19 @@ Or if you want to find both Sam and Sig.
'FirstName', array('Sam', 'Sig')
);
Then there is the most complex task when you want to find Sam and Sig that has either Age 17 or 74.
Then there is the most complex task when you want to find Sam and Sig that has
either Age 17 or 74.
:::php
$members = Member::get()->filter(array(
'FirstName' => array('Sam', 'Sig'),
'Age' => array(17, 74)
));
// SQL: WHERE ("FirstName" IN ('Sam', 'Sig) AND "Age" IN ('17', '74))
In case you want to match multiple criteria non-exclusively (with an "OR" disjunctive),
use the `filterAny()` method instead:
In case you want to match multiple criteria non-exclusively (with an "OR"
disjunctive),use the `filterAny()` method instead:
:::php
$members = Member::get()->filterAny(array(
@ -185,11 +209,12 @@ You can also combine both conjunctive ("AND") and disjunctive ("OR") statements.
'FirstName' => 'Sam',
'Age' => 17,
));
// SQL: WHERE ("LastName" = 'Minnée' AND ("FirstName" = 'Sam' OR "Age" = '17'))
// WHERE ("LastName" = 'Minnée' AND ("FirstName" = 'Sam' OR "Age" = '17'))
### Exclude
The `exclude()` method is the opposite to the filter in that it removes entries from a list.
The `exclude()` method is the opposite to the filter in that it removes entries
from a list.
If we would like to remove all members from the list with the FirstName of Sam.
@ -201,7 +226,8 @@ Remove both Sam and Sig is as easy as.
:::php
$members = Member::get()->exclude('FirstName', array('Sam','Sig'));
As you can see it follows the same pattern as filter, so for removing only Sam Minnée from the list
As you can see it follows the same pattern as filter, so for removing only Sam
Minnée from the list:
:::php
$members = Member::get()->exclude(array(
@ -224,20 +250,24 @@ This would be equivalent to a SQL query of
### Search Filter Modifiers
The where clauses showcased in the previous two sections (filter and exclude) specify exact
matches by default. However, there are a number of suffixes that you can put on field names to change this
behaviour `":StartsWith"`, `":EndsWith"`, `":PartialMatch"`, `":GreaterThan"`, `":LessThan"`, `":Negation"`.
The where clauses showcased in the previous two sections (filter and exclude)
specify exact matches by default. However, there are a number of suffixes that
you can put on field names to change this behavior such as `":StartsWith"`,
`":EndsWith"`, `":PartialMatch"`, `":GreaterThan"`, `":LessThan"`,
`":Negation"`.
Each of these suffixes is represented in the ORM as a subclass of `[api:SearchFilter]`. Developers can define
their own SearchFilters if needing to extend the ORM filter and exclude behaviours.
Each of these suffixes is represented in the ORM as a subclass of
`[api:SearchFilter]`. Developers can define their own SearchFilters if needing
to extend the ORM filter and exclude behaviors.
These suffixes can also take modifiers themselves. The modifiers currently supported are `":not"`, `":nocase"`
and `":case"`. These negate the filter, make it case-insensitive and make it case-sensitive respectively. The
default comparison uses the database's default. For MySQL and MSSQL, this is case-insensitive. For PostgreSQL,
this is case-sensitive.
These suffixes can also take modifiers themselves. The modifiers currently
supported are `":not"`, `":nocase"` and `":case"`. These negate the filter,
make it case-insensitive and make it case-sensitive respectively. The default
comparison uses the database's default. For MySQL and MSSQL, this is
case-insensitive. For PostgreSQL, this is case-sensitive.
The following is a query which will return everyone whose first name doesn't start with S, who has logged in
since 1/1/2011.
The following is a query which will return everyone whose first name doesn't
start with S, who has logged in since 1/1/2011.
:::php
$members = Member::get()->filter(array(
@ -247,15 +277,17 @@ since 1/1/2011.
### Subtract
You can subtract entries from a DataList by passing in another DataList to `subtract()`
You can subtract entries from a DataList by passing in another DataList to
`subtract()`
:::php
$allSams = Member::get()->filter('FirstName', 'Sam');
$allMembers = Member::get();
$noSams = $allMembers->subtract($allSams);
Though for the above example it would probably be easier to use `filter()` and `exclude()`. A better
use case could be when you want to find all the members that does not exist in a Group.
Though for the above example it would probably be easier to use `filter()` and
`exclude()`. A better use case could be when you want to find all the members
that does not exist in a Group.
:::php
// ... Finding all members that does not belong to $group.
@ -263,15 +295,17 @@ use case could be when you want to find all the members that does not exist in a
### Limit
You can limit the amount of records returned in a DataList by using the `limit()` method.
You can limit the amount of records returned in a DataList by using the
`limit()` method.
:::php
// Returning the first 5 members, sorted alphabetically by Surname
$members = Member::get()->sort('Surname')->limit(5);
`limit()` accepts two arguments, the first being the amount of results you want returned, with an optional second
parameter to specify the offset, which allows you to tell the system where to start getting the results from. The
offset, if not provided as an argument, will default to 0.
`limit()` accepts two arguments, the first being the amount of results you want
returned, with an optional second parameter to specify the offset, which allows
you to tell the system where to start getting the results from. The offset, if
not provided as an argument, will default to 0.
:::php
// Return 10 members with an offset of 4 (starting from the 5th result).
@ -280,27 +314,33 @@ offset, if not provided as an argument, will default to 0.
### Raw SQL options for advanced users
Occasionally, the system described above won't let you do exactly what you need to do. In these situations, we have
methods that manipulate the SQL query at a lower level. When using these, please ensure that all table & field names
are escaped with double quotes, otherwise some DB back-ends (e.g. PostgreSQL) won't work.
Occasionally, the system described above won't let you do exactly what you need
to do. In these situations, we have methods that manipulate the SQL query at a
lower level. When using these, please ensure that all table & field names are
escaped with double quotes, otherwise some DB back-ends (e.g. PostgreSQL) won't
work.
Under the hood, query generation is handled by the `[api:DataQuery]` class. This class does provide more direct
access to certain SQL features that `DataList` abstracts away from you.
Under the hood, query generation is handled by the `[api:DataQuery]` class. This
class does provide more direct access to certain SQL features that `DataList`
abstracts away from you.
In general, we advise against using these methods unless it's absolutely necessary. If the ORM doesn't do quite what
you need it to, you may also consider extending the ORM with new data types or filter modifiers (that documentation
still needs to be written)
In general, we advise against using these methods unless it's absolutely
necessary. If the ORM doesn't do quite what you need it to, you may also
consider extending the ORM with new data types or filter modifiers (that
documentation still needs to be written)
#### Where clauses
You can specify a WHERE clause fragment (that will be combined with other filters using AND) with the `where()` method:
You can specify a WHERE clause fragment (that will be combined with other
filters using AND) with the `where()` method:
:::php
$members = Member::get()->where("\"FirstName\" = 'Sam'")
#### Joining
You can specify a join with the innerJoin and leftJoin methods. Both of these methods have the same arguments:
You can specify a join with the innerJoin and leftJoin methods. Both of these
methods have the same arguments:
* The name of the table to join to
* The filter clause for the join
@ -310,11 +350,15 @@ For example:
:::php
// Without an alias
$members = Member::get()->leftJoin("Group_Members", "\"Group_Members\".\"MemberID\" = \"Member\".\"ID\"");
$members = Member::get()->innerJoin("Group_Members", "\"Rel\".\"MemberID\" = \"Member\".\"ID\"", "REl");
$members = Member::get()
->leftJoin("Group_Members", "\"Group_Members\".\"MemberID\" = \"Member\".\"ID\"");
$members = Member::get()
->innerJoin("Group_Members", "\"Rel\".\"MemberID\" = \"Member\".\"ID\"", "Rel");
Passing a *$join* statement to DataObject::get will filter results further by the JOINs performed against the foreign
table. **It will NOT return the additionally joined data.** The returned *$records* will always be a
Passing a *$join* statement to DataObject::get will filter results further by
the JOINs performed against the foreign table. **It will NOT return the
additionally joined data.** The returned *$records* will always be a
`[api:DataObject]`.
## Properties
@ -340,9 +384,11 @@ See [data-types](data-types) for all available types.
### Overloading
"Getters" and "Setters" are functions that help us save fields to our data objects. By default, the methods getField()
and setField() are used to set data object fields. They save to the protected array, $obj->record. We can overload the
default behaviour by making a function called "get`<fieldname>`" or "set`<fieldname>`".
"Getters" and "Setters" are functions that help us save fields to our data
objects. By default, the methods getField() and setField() are used to set data
object fields. They save to the protected array, $obj->record. We can overload
the default behavior by making a function called "get`<fieldname>`" or
"set`<fieldname>`".
:::php
class Player extends DataObject {
@ -359,17 +405,22 @@ default behaviour by making a function called "get`<fieldname>`" or "set`<fieldn
### Customizing
We can create new "virtual properties" which are not actually listed in *static $db* or stored in the database-row.
Here we combined a Player's first name and surname, accessible through $myPlayer->Title.
We can create new "virtual properties" which are not actually listed in
`private static $db` or stored in the database-row.
Here we combined a Player's first name and surname, accessible through
$myPlayer->Title.
:::php
class Player extends DataObject {
public function getTitle() {
return "{$this->FirstName} {$this->Surname}";
}
// access through $myPlayer->Title = "John Doe";
// just saves data on the object, please use $myPlayer->write() to save the database-row
// just saves data on the object, please use $myPlayer->write() to save
// the database-row
public function setTitle($title) {
list($firstName, $surName) = explode(' ', $title);
$this->FirstName = $firstName;
@ -378,48 +429,55 @@ Here we combined a Player's first name and surname, accessible through $myPlayer
}
<div class="warning" markdown='1'>
**CAUTION:** It is common practice to make sure that pairs of custom getters/setter deal with the same data, in a consistent
format.
**CAUTION:** It is common practice to make sure that pairs of custom
getters/setter deal with the same data, in a consistent format.
</div>
<div class="warning" markdown='1'>
**CAUTION:** Custom setters can be hard to debug: Please double check if you could transform your data in more
straight-forward logic embedded to your custom controller or form-saving.
**CAUTION:** Custom setters can be hard to debug: Please double check if you
could transform your data in more straight-forward logic embedded to your custom
controller or form-saving.
</div>
### Default Values
Define the default values for all the $db fields. This example sets the "Status"-column on Player to "Active" whenever a
new object is created.
Define the default values for all the $db fields. This example sets the
"Status"-column on Player to "Active" whenever a new object is created.
:::php
class Player extends DataObject {
public static $defaults = array(
private static $defaults = array(
"Status" => 'Active',
);
}
<div class="notice" markdown='1'>
Note: Alternatively you can set defaults directly in the database-schema (rather than the object-model). See
[data-types](data-types) for details.
Note: Alternatively you can set defaults directly in the database-schema (rather
than the object-model). See [data-types](data-types) for details.
</div>
### Casting
Properties defined in *static $db* are automatically casted to their [data-types](data-types) when used in templates.
You can also cast the return-values of your custom functions (e.g. your "virtual properties").
Calling those functions directly will still return whatever type your PHP code generates,
but using the *obj()*-method or accessing through a template will cast the value according to the $casting-definition.
Properties defined in *static $db* are automatically casted to their
[data-types](data-types) when used in templates.
You can also cast the return-values of your custom functions (e.g. your "virtual
properties"). Calling those functions directly will still return whatever type
your PHP code generates, but using the *obj()*-method or accessing through a
template will cast the value according to the $casting-definition.
:::php
class Player extends DataObject {
public static $casting = array(
private static $casting = array(
"MembershipFee" => 'Currency',
);
// $myPlayer->MembershipFee() returns a float (e.g. 123.45)
// $myPlayer->obj('MembershipFee') returns a object of type Currency
// In a template: <% loop $MyPlayer %>MembershipFee.Nice<% end_loop %> returns a casted string (e.g. "$123.45")
// In a template: <% loop $MyPlayer %>MembershipFee.Nice<% end_loop %>
// returns a casted string (e.g. "$123.45")
public function getMembershipFee() {
return $this->Team()->BaseFee * $this->MembershipYears;
}
@ -428,86 +486,98 @@ but using the *obj()*-method or accessing through a template will cast the value
## Relations
Relations are built through static array definitions on a class, in the format `<relationship-name> => <classname>`
Relations are built through static array definitions on a class, in the format
`<relationship-name> => <classname>`.
### has_one
A 1-to-1 relation creates a database-column called "`<relationship-name>`ID", in the example below this would be "TeamID"
on the "Player"-table.
A 1-to-1 relation creates a database-column called "`<relationship-name>`ID", in
the example below this would be "TeamID" on the "Player"-table.
:::php
// access with $myPlayer->Team()
class Player extends DataObject {
public static $has_one = array(
private static $has_one = array(
"Team" => "Team",
);
}
SilverStripe's `[api:SiteTree]` base-class for content-pages uses a 1-to-1 relationship to link to its
parent element in the tree:
SilverStripe's `[api:SiteTree]` base-class for content-pages uses a 1-to-1
relationship to link to its parent element in the tree:
:::php
// access with $mySiteTree->Parent()
class SiteTree extends DataObject {
public static $has_one = array(
private static $has_one = array(
"Parent" => "SiteTree",
);
}
### has_many
Defines 1-to-many joins. A database-column named ""`<relationship-name>`ID"" will to be created in the child-class.
Defines 1-to-many joins. A database-column named ""`<relationship-name>`ID""
will to be created in the child-class.
<div class="warning" markdown='1'>
**CAUTION:** Please specify a $has_one-relationship on the related child-class as well, in order to have the necessary
accessors available on both ends.
**CAUTION:** Please specify a $has_one-relationship on the related child-class
as well, in order to have the necessary accessors available on both ends.
</div>
:::php
// access with $myTeam->Players() or $player->Team()
class Team extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Players" => "Player",
);
}
class Player extends DataObject {
public static $has_one = array(
private static $has_one = array(
"Team" => "Team",
);
}
To specify multiple $has_manys to the same object you can use dot notation to distinguish them like below
To specify multiple $has_manys to the same object you can use dot notation to
distinguish them like below
:::php
class Person extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Managing" => "Company.Manager",
"Cleaning" => "Company.Cleaner",
);
}
class Company extends DataObject {
public static $has_one = array(
private static $has_one = array(
"Manager" => "Person",
"Cleaner" => "Person"
);
}
Multiple $has_one relationships are okay if they aren't linking to the same object type.
Multiple $has_one relationships are okay if they aren't linking to the same
object type.
:::php
/**
* THIS IS BAD
*/
class Team extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Players" => "Player",
);
}
class Player extends DataObject {
public static $has_one = array(
private static $has_one = array(
"Team" => "Team",
"AnotherTeam" => "Team",
);
@ -516,22 +586,26 @@ Multiple $has_one relationships are okay if they aren't linking to the same obje
### many_many
Defines many-to-many joins. A new table, (this-class)_(relationship-name), will be created with a pair of ID fields.
Defines many-to-many joins. A new table, (this-class)_(relationship-name), will
be created with a pair of ID fields.
<div class="warning" markdown='1'>
**CAUTION:** Please specify a $belongs_many_many-relationship on the related class as well, in order to have the necessary
accessors available on both ends.
**CAUTION:** Please specify a $belongs_many_many-relationship on the related
class as well, in order to have the necessary accessors available on both ends.
</div>
:::php
// access with $myTeam->Categories() or $myCategory->Teams()
class Team extends DataObject {
public static $many_many = array(
private static $many_many = array(
"Categories" => "Category",
);
}
class Category extends DataObject {
public static $belongs_many_many = array(
private static $belongs_many_many = array(
"Teams" => "Team",
);
}
@ -539,14 +613,16 @@ accessors available on both ends.
### Adding relations
Adding new items to a relations works the same, regardless if you're editing a *has_many*- or a *many_many*.
They are encapsulated by `[api:HasManyList]` and `[api:ManyManyList]`, both of which provide very similar APIs,
e.g. an `add()` and `remove()` method.
Adding new items to a relations works the same, regardless if you're editing a
*has_many*- or a *many_many*. They are encapsulated by `[api:HasManyList]` and
`[api:ManyManyList]`, both of which provide very similar APIs, e.g. an `add()`
and `remove()` method.
:::php
class Team extends DataObject {
// see "many_many"-description for a sample definition of class "Category"
public static $many_many = array(
private static $many_many = array(
"Categories" => "Category",
);
@ -558,14 +634,15 @@ e.g. an `add()` and `remove()` method.
### Custom Relations
You can use the flexible datamodel to get a filtered result-list without writing any SQL. For example, this snippet
gets you the "Players"-relation on a team, but only containing active players.
You can use the flexible datamodel to get a filtered result-list without writing
any SQL. For example, this snippet gets you the "Players"-relation on a team,
but only containing active players.
See `[api:DataObject::$has_many]` for more info on the described relations.
:::php
class Team extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Players" => "Player"
);
@ -575,39 +652,45 @@ See `[api:DataObject::$has_many]` for more info on the described relations.
}
}
Note: Adding new records to a filtered `RelationList` like in the example above doesn't automatically set the
filtered criteria on the added record.
Note: Adding new records to a filtered `RelationList` like in the example above
doesn't automatically set the filtered criteria on the added record.
### Relations on Unsaved Objects
You can also set *has_many* and *many_many* relations before the `DataObject` is saved. This behaviour uses the
`[api:UnsavedRelationList]` and converts it into the correct `RelationList` when saving the `DataObject` for the
first time.
You can also set *has_many* and *many_many* relations before the `DataObject` is
saved. This behaviour uses the `[api:UnsavedRelationList]` and converts it into
the correct `RelationList` when saving the `DataObject` for the first time.
This unsaved lists will also recursively save any unsaved objects that they contain.
This unsaved lists will also recursively save any unsaved objects that they
contain.
As these lists are not backed by the database, most of the filtering methods on `DataList` cannot be used on a
list of this type. As such, an `UnsavedRelationList` should only be used for setting a relation before saving an
object, not for displaying the objects contained in the relation.
As these lists are not backed by the database, most of the filtering methods on
`DataList` cannot be used on a list of this type. As such, an
`UnsavedRelationList` should only be used for setting a relation before saving
an object, not for displaying the objects contained in the relation.
## Validation and Constraints
Traditionally, validation in SilverStripe has been mostly handled on the controller
through [form validation](/topics/form-validation).
Traditionally, validation in SilverStripe has been mostly handled on the
controller through [form validation](/topics/form-validation).
While this is a useful approach, it can lead to data inconsistencies if the
record is modified outside of the controller and form context.
Most validation constraints are actually data constraints which belong on the model.
SilverStripe provides the `[api:DataObject->validate()]` method for this purpose.
Most validation constraints are actually data constraints which belong on the
model. SilverStripe provides the `[api:DataObject->validate()]` method for this
purpose.
By default, there is no validation - objects are always valid!
However, you can overload this method in your
DataObject sub-classes to specify custom validation,
or use the hook through `[api:DataExtension]`.
Invalid objects won't be able to be written - a [api:ValidationException]`
will be thrown and no write will occur.
It is expected that you call validate() in your own application to test that an object
is valid before attempting a write, and respond appropriately if it isn't.
Invalid objects won't be able to be written - a [api:ValidationException]` will
be thrown and no write will occur.
It is expected that you call validate() in your own application to test that an
object is valid before attempting a write, and respond appropriately if it isn't.
The return value of `validate()` is a `[api:ValidationResult]` object.
You can append your own errors in there.
@ -616,6 +699,7 @@ Example: Validate postcodes based on the selected country
:::php
class MyObject extends DataObject {
private static $db = array(
'Country' => 'Varchar',
'Postcode' => 'Varchar'
@ -632,21 +716,23 @@ Example: Validate postcodes based on the selected country
## Maps
A map is an array where the array indexes contain data as well as the values. You can build a map
from any DataList like this:
A map is an array where the array indexes contain data as well as the values.
You can build a map from any DataList like this:
:::php
$members = Member::get()->map('ID', 'FirstName');
This will return a map where the keys are Member IDs, and the values are the corresponding FirstName
values. Like everything else in the ORM, these maps are lazy loaded, so the following code will only
query a single record from the database:
This will return a map where the keys are Member IDs, and the values are the
corresponding FirstName values. Like everything else in the ORM, these maps are
lazy loaded, so the following code will only query a single record from the
database:
:::php
$members = Member::get()->map('ID', 'FirstName');
echo $member[5];
This functionality is provided by the `SS_Map` class, which can be used to build a map around any `SS_List`.
This functionality is provided by the `SS_Map` class, which can be used to build
a map around any `SS_List`.
:::php
$members = Member::get();
@ -657,8 +743,9 @@ through `[api:SS_List->column()]`.
## Data Handling
When saving data through the object model, you don't have to manually escape strings to create SQL-safe commands.
You have to make sure though that certain properties are not overwritten, e.g. *ID* or *ClassName*.
When saving data through the object model, you don't have to manually escape
strings to create SQL-safe commands. You have to make sure though that certain
properties are not overwritten, e.g. *ID* or *ClassName*.
### Creation
@ -689,8 +776,9 @@ You have to make sure though that certain properties are not overwritten, e.g. *
);
Alternatively you can use *castedUpdate()* to respect the [data-types](/topics/data-types). This is preferred to manually
casting data before saving.
Alternatively you can use *castedUpdate()* to respect the
[data-types](/topics/data-types). This is preferred to manually casting data
before saving.
:::php
$myPlayer->castedUpdate(
@ -703,20 +791,24 @@ casting data before saving.
### onBeforeWrite
You can customize saving-behaviour for each DataObject, e.g. for adding workflow or data customization. The function is
triggered when calling *write()* to save the object to the database. This includes saving a page in the CMS or altering
a ModelAdmin record.
You can customize saving-behaviour for each DataObject, e.g. for adding workflow
or data customization. The function is triggered when calling *write()* to save
the object to the database. This includes saving a page in the CMS or altering a
ModelAdmin record.
Example: Disallow creation of new players if the currently logged-in player is not a team-manager.
Example: Disallow creation of new players if the currently logged-in player is
not a team-manager.
:::php
class Player extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Teams"=>"Team"
);
public function onBeforeWrite() {
// check on first write action, aka "database row creation" (ID-property is not set)
// check on first write action, aka "database row creation"
// (ID-property is not set)
if(!$this->ID) {
$currentPlayer = Member::currentUser();
if(!$currentPlayer->IsTeamManager()) {
@ -727,31 +819,34 @@ Example: Disallow creation of new players if the currently logged-in player is n
// check on every write action
if(!$this->record['TeamID']) {
user_error('Cannot save player without a valid team-connection', E_USER_ERROR);
user_error('Cannot save player without a valid team', E_USER_ERROR);
exit();
}
// CAUTION: You are required to call the parent-function, otherwise SilverStripe will not execute the request.
// CAUTION: You are required to call the parent-function, otherwise
// SilverStripe will not execute the request.
parent::onBeforeWrite();
}
}
<div class="notice" markdown='1'>
Note: There are no separate methods for *onBeforeCreate* and *onBeforeUpdate*. Please check for the existence of
$this->ID to toggle these two modes, as shown in the example above.
Note: There are no separate methods for *onBeforeCreate* and *onBeforeUpdate*.
Please check for the existence of $this->ID to toggle these two modes, as shown
in the example above.
</div>
### onBeforeDelete
Triggered before executing *delete()* on an existing object.
Example: Checking for a specific [permission](/reference/permission) to delete this type of object.
It checks if a member is logged in who belongs to a group containing the permission "PLAYER_DELETE".
Example: Checking for a specific [permission](/reference/permission) to delete
this type of object. It checks if a member is logged in who belongs to a group
containing the permission "PLAYER_DELETE".
:::php
class Player extends DataObject {
public static $has_many = array(
private static $has_many = array(
"Teams"=>"Team"
);
@ -771,20 +866,25 @@ See [forms](/topics/forms).
### Saving data with custom SQL
See the ["sql queries" topic](/reference/sqlquery) for custom *INSERT*, *UPDATE*, *DELETE* queries.
See the ["sql queries" topic](/reference/sqlquery) for custom *INSERT*,
*UPDATE*, *DELETE* queries.
## Extending DataObjects
You can add properties and methods to existing `[api:DataObjects]`s like `[api:Member]` (a core class) without
hacking core code or subclassing. See `[api:DataExtension]` for a general description, and `[api:Hierarchy]` for
the most popular examples.
You can add properties and methods to existing `[api:DataObjects]`s like
`[api:Member]` (a core class) without hacking core code or subclassing. See
`[api:DataExtension]` for a general description, and `[api:Hierarchy]` for the
most popular examples.
## FAQ
### What's the difference between DataObject::get() and a relation-getter?
You can work with both in pretty much the same way, but relationship-getters return a special type of collection:
A `[api:HasManyList]` or a `[api:ManyManyList]` with relation-specific functionality.
You can work with both in pretty much the same way, but relationship-getters
return a special type of collection:
A `[api:HasManyList]` or a `[api:ManyManyList]` with relation-specific
functionality.
:::php
$myTeams = $myPlayer->Team(); // returns HasManyList

View File

@ -1,11 +1,13 @@
# Forms
HTML forms are in practice the most used way to communicate with a browser. SilverStripe provides classes to generate
and handle the actions and data from a form.
HTML forms are in practice the most used way to communicate with a browser.
SilverStripe provides classes to generate and handle the actions and data from a
form.
## Overview
A fully implemented form in SilverStripe includes a couple of classes that individually have separate concerns.
A fully implemented form in SilverStripe includes a couple of classes that
individually have separate concerns.
* Controller - Takes care of assembling the form and receiving data from it.
* Form - Holds sets of fields, actions and validators.
@ -13,19 +15,22 @@ A fully implemented form in SilverStripe includes a couple of classes that indiv
* FormActions - Often submit buttons that executes actions.
* Validators - Validate the whole form, see [Form validation](form-validation.md) topic for more information.
Depending on your needs you can customize and override any of the above classes, however the defaults are often
sufficient.
Depending on your needs you can customize and override any of the above classes,
however the defaults are often sufficient.
## The Controller
Forms start at the controller. Here is a simple example on how to set up a form in a controller.
Forms start at the controller. Here is a simple example on how to set up a form
in a controller.
**Page.php**
:::php
class Page_Controller extends ContentController {
public static $allowed_actions = array('HelloForm');
private static $allowed_actions = array(
'HelloForm'
);
// Template method
public function HelloForm() {
@ -45,18 +50,20 @@ Forms start at the controller. Here is a simple example on how to set up a form
}
}
The name of the form ("HelloForm") is passed into the `Form`
constructor as a second argument. It needs to match the method name.
The name of the form ("HelloForm") is passed into the `Form` constructor as a
second argument. It needs to match the method name.
Since forms need a URL, the `HelloForm()` method needs to be handled
like any other controller action. In order to whitelist its access through
URLs, we add it to the `$allowed_actions` array.
Form actions ("doSayHello") on the other hand should NOT be included here,
these are handled separately through `Form->httpSubmission()`.
You can control access on form actions either by conditionally removing
a `FormAction` from the form construction,
or by defining `$allowed_actions` in your own `Form` class
(more information in the ["controllers" topic](/topics/controllers)).
Since forms need a URL, the `HelloForm()` method needs to be handled like any
other controller action. In order to whitelist its access through URLs, we add
it to the `$allowed_actions` array.
Form actions ("doSayHello") on the other hand should NOT be included here, these
are handled separately through `Form->httpSubmission()`.
You can control access on form actions either by conditionally removing a
`FormAction` from the form construction, or by defining `$allowed_actions` in
your own `Form` class (more information in the
["controllers" topic](/topics/controllers)).
**Page.ss**
@ -65,8 +72,8 @@ or by defining `$allowed_actions` in your own `Form` class
<div>$HelloForm</div>
<div class="warning" markdown='1'>
Be sure to add the Form name 'HelloForm' to the Controller::$allowed_actions() to be sure that form submissions
get through to the correct action.
Be sure to add the Form name 'HelloForm' to the Controller::$allowed_actions()
to be sure that form submissions get through to the correct action.
</div>
<div class="notice" markdown='1'>
@ -78,13 +85,15 @@ documentation or the API documentation for `[api:Object]`::create().
## The Form
Form is the base class of all forms in a SilverStripe application. Forms in your application can be created either by
instantiating the Form class itself, or by subclassing it.
Form is the base class of all forms in a SilverStripe application. Forms in your
application can be created either by instantiating the Form class itself, or by
subclassing it.
### Instantiating a form
Creating a form is a matter of defining a method to represent that form. This method should return a form object. The
constructor takes the following arguments:
Creating a form is a matter of defining a method to represent that form. This
method should return a form object. The constructor takes the following
arguments:
* `$controller`: This must be and instance of the controller that contains the form, often `$this`.
* `$name`: This must be the name of the method on that controller that is called to return the form. The first two
@ -141,7 +150,7 @@ data.
:::php
class Page_Controller extends ContentController {
public static $allowed_actions = array(
private static $allowed_actions = array(
'HelloForm',
);
@ -161,6 +170,7 @@ data.
EmailField::create("Email"),
PasswordField::create("Password")
);
$actions = new FieldList(FormAction::create("login")->setTitle("Log in"));
parent::__construct($controller, $name, $fields, $actions);
@ -180,8 +190,9 @@ There are many classes extending `[api:FormField]`. There is a full overview at
### Using Form Fields
To get these fields automatically rendered into a form element, all you need to do is create a new instance of the
class, and add it to the fieldlist of the form.
To get these fields automatically rendered into a form element, all you need to
do is create a new instance of the class, and add it to the `FieldList` of the
form.
:::php
$form = new Form(
@ -202,8 +213,9 @@ class, and add it to the fieldlist of the form.
## Readonly
You can turn a form or individual fields into a readonly version. This is handy in the case of confirmation pages or
when certain fields can be edited due to permissions.
You can turn a form or individual fields into a readonly version. This is handy
in the case of confirmation pages or when certain fields can be edited due to
permissions.
Readonly on a Form
@ -242,6 +254,7 @@ First of all, you need to create your form on it's own class, that way you can d
EmailField::create("Email"),
PasswordField::create("Password")
);
$actions = new FieldList(FormAction::create("login")->setTitle("Log in"));
parent::__construct($controller, $name, $fields, $actions);
}
@ -256,11 +269,12 @@ First of all, you need to create your form on it's own class, that way you can d
}
}
`MyForm->forTemplate()` tells the `[api:Form]` class to render with a template of return value of `$this->class`, which in this case
is *MyForm*. If the template doesn't exist, then it falls back to using Form.ss.
`MyForm->forTemplate()` tells the `[api:Form]` class to render with a template
of return value of `$this->class`, which in this case is *MyForm*. If the
template doesn't exist, then it falls back to using Form.ss.
*MyForm.ss* should then be placed into your *templates/Includes* directory for your project. Here is an example of
basic customisation:
*MyForm.ss* should then be placed into your *templates/Includes* directory for
your project. Here is an example of basic customization:
:::ss
<form $FormAttributes>
@ -314,30 +328,34 @@ Will be rendered as:
:::html
<input type="text" name="MyText" class="text largeText" id="MyForm_MyCustomForm_MyText" data-validation-regex="[\d]*">
Each form field is rendered into a form via the `[FormField->FieldHolder()](api:FormField)` method, which includes
a container `<div>` as well as a `<label>` element (if applicable).
Each form field is rendered into a form via the
`[FormField->FieldHolder()](api:FormField)` method, which includes a container
`<div>` as well as a `<label>` element (if applicable).
You can also render each field without these structural elements through the `[FormField->Field()](api:FormField)`
method. In order to influence the form rendering, overloading these two methods is a good start.
You can also render each field without these structural elements through the
`[FormField->Field()](api:FormField)` method. In order to influence the form
rendering, overloading these two methods is a good start.
In addition, most form fields are rendered through SilverStripe templates, e.g. `TextareaField` is rendered via
`framework/templates/forms/TextareaField.ss`.
In addition, most form fields are rendered through SilverStripe templates, e.g.
`TextareaField` is rendered via `framework/templates/forms/TextareaField.ss`.
These templates can be overwritten globally by placing a template with the same name in your `mysite` directory,
or set on a form field instance via anyone of these methods:
These templates can be overwritten globally by placing a template with the same
name in your `mysite` directory, or set on a form field instance via anyone of
these methods:
- FormField->setTemplate()
- FormField->setFieldHolderTemplate()
- FormField->getSmallFieldHolderTemplate()
<div class="hint" markdown='1'>
Caution: Not all FormFields consistently uses templates set by the above methods.
Caution: Not all FormFields consistently uses templates set by the above methods.
</div>
### Securing forms against Cross-Site Request Forgery (CSRF)
SilverStripe tries to protect users against *Cross-Site Request Forgery (CSRF)* by adding a hidden *SecurityID*
parameter to each form. See [secure-development](/topics/security) for details.
SilverStripe tries to protect users against *Cross-Site Request Forgery (CSRF)*
by adding a hidden *SecurityID* parameter to each form. See
[secure-development](/topics/security) for details.
In addition, you should limit forms to the intended HTTP verb (mostly `GET` or `POST`)
to further reduce attack surface, by using `[api:Form->setStrictFormMethodCheck()]`.
@ -353,6 +371,7 @@ If you want to remove certain fields from your subclass:
:::php
class MyCustomForm extends MyForm {
public function __construct($controller, $name) {
parent::__construct($controller, $name);

View File

@ -2,24 +2,34 @@
## Introduction
Creating a module is a good way to re-use abstract code and templates across multiple projects. SilverStripe already has
certain modules included, for example "framework" and "cms". These two modules are the core functionality and
templating for any initial installation. If you're wanting to add generic functionality that isn't specific to your
Creating a module is a good way to re-use abstract code and templates across
multiple projects. SilverStripe already has certain modules included, for
example "framework" and "cms". These two modules are the core functionality and
templates for any initial installation.
If you want to add generic functionality that isn't specific to your
project, like a forum, an ecommerce package or a blog you can do it like this;
1. Create another directory at the root level (same level as "framework" and "cms")
2. You must create an `_config/` directory inside your module directory, else SilverStripe will not include it
1. Create another directory at the root level (same level as "framework" and
"cms")
2. You must create a _config.php inside your module directory, or else
SilverStripe will not include it
3. Inside your module directory, follow our [directory structure guidelines](/topics/directory-structure#module_structure)
As long as your module has a `_config.php` file inside it, SilverStripe will
automatically include any PHP classes from that module.
## Tips
Try and keep your module as generic as possible - for example if you're making a forum module, your members section
shouldn't contain fields like 'Games You Play' or 'Your LiveJournal Name' - if people want to add these fields they can
Try to keep your module as generic as possible - for example if you're making a
forum module, your members section shouldn't contain fields like 'Games You
Play' or 'Your LiveJournal Name' - if people want to add these fields they can
sub-class your class, or extend the fields on to it.
If you're using Requirements to include generic support files for your project like CSS or Javascript, and want to
override these files to be more specific in your project, the following code is an example of how to do so using the
init() function on your module controller classes:
If you're using [api:Requirements] to include generic support files for your project
like CSS or Javascript, and want to override these files to be more specific in
your project, the following code is an example of how to do so using the init()
function on your module controller classes:
:::php
class Forum_Controller extends Page_Controller {
@ -27,7 +37,7 @@ init() function on your module controller classes:
public function init() {
if(Director::fileExists(project() . "/css/forum.css")) {
Requirements::css(project() . "/css/forum.css");
}else{
} else {
Requirements::css("forum/css/forum.css");
}
parent::init();
@ -36,22 +46,148 @@ init() function on your module controller classes:
}
This will use `<projectname>/css/forum.css` if it exists, otherwise it falls back to using `forum/css/forum.css`.
This will use `<projectname>/css/forum.css` if it exists, otherwise it falls
back to using `forum/css/forum.css`.
## Conventions
### Configuration
SilverStripe has a comprehensive [Configuration](/topics/configuration) system
built on YAML which allows developers to set configuration values in core
classes.
If your module allows developers to customize specific values (for example API
key values) use the existing configuration system for your data.
:::php
// use this in your module code
$varible = Config::inst()->get('ModuleName', 'SomeValue');
Then developers can set that value in their own configuration file. As a module
author, you can set the default configuration values.
// yourmodule/_config/module.yml
---
Name: modulename
---
ModuleName:
SomeValue: 10
But by using the Config system, developers can alter the value for their
application without editing your code.
// mysite/_config/module_customizations.yml
---
Name: modulecustomizations
After: "#modulename"
---
ModuleName:
SomeValue: 10
If you want to make the configuration value user editable in the backend CMS,
provide an extension to [SiteConfig](/reference/siteconfig).
## Publication
If you wish to submit your module to our public directory, you take responsibility for a certain level of code quality,
adherence to conventions, writing documentation, and releasing updates. See [contributing](/misc/contributing).
If you wish to submit your module to our public directory, you take
responsibility for a certain level of code quality, adherence to conventions,
writing documentation, and releasing updates. See
[contributing](/misc/contributing).
### Composer and Packagist
SilverStripe uses [Composer](/installation/composer/) to manage module releases
and dependencies between modules. If you plan on releasing your module to the
public, ensure that you provide a `composer.json` file in the root of your
module containing the meta-data about your module.
For more information about what your `composer.json` file should include,
consult the [Composer Documentation](http://getcomposer.org/doc/01-basic-usage.md).
A basic usage of a module for 3.1 that requires the CMS would look similar to
this:
{
"name": "yourname/silverstripe-modulename",
"description": "..",
"type": "silverstripe-module",
"keywords": ["silverstripe", ".."],
"license": "BSD-3-Clause",
"authors": [{
"name": "Your Name",
"email": "Your Email"
}],
"require": {
"silverstripe/framework": ">=3.1.x-dev,<4.0"
}
}
Once your module is released, submit it to [Packagist](https://packagist.org/)
to have the module accessible to developers.
### Versioning
Over time you may have to release new versions of your module to continue to
work with newer versions of SilverStripe. By using composer, this is made easy
for developers by allowing them to specify what version they want to use. Each
version of your module should be a separate branch in your version control and
each branch should have a `composer.json` file explicitly defining what versions
of SilverStripe you support.
<div class="notice" markdown='1'>
The convention to follow for support is the `master` or `trunk` branch of your
code should always be the one to work with the `master` branch of SilverStripe.
Other branches should be created as needed for other SilverStripe versions you
want to support.
</div>
For example, if you release a module for 3.0 which works well but doesn't work
in 3.1.0 you should provide a separate `branch` of the module for 3.0 support.
// for module that supports 3.0.1. (git branch 1.0)
"require": {
"silverstripe/framework": "3.0.*",
}
// for branch of the module that only supports 3.1 (git branch master)
"require": {
"silverstripe/framework": ">=3.1.*",
}
You can have an overlap in supported versions (e.g two branches for 3.1) but you
should explain the differences in your `README.md` file.
If you want to change the minimum supported version of your module, make sure
you create a new branch which continues to support the minimum version as it
stands before you update the main branch.
## Reference
**How To:**
### How To:
* [Add a link to your module in the main SilverStripe Admin Menu](/reference/leftandmain)
* [How to customize the CMS Menu](/howto/customize-cms-menu)
* [How to extend the CMS interface](/howto/extend-cms-interface)
**Useful Links:**
### Reference:
Provide custom functionality for the developer via:
* [DataExtension](/reference/dataextension)
* [SiteConfig](/reference/siteconfig)
* [Page types](/topics/page-types)
Follow SilverStripe best practice:
* [Partial Caching](/reference/partial-caching)
* [Injector](/reference/injector)
## Useful Links
* [Introduction to Composer](http://getcomposer.org/doc/00-intro.md)
* [Modules](modules)
* [Module Release Process](module-release-process)
* [Directory structure guidelines](/topics/directory-structure#module_structure)
* [Debugging methods](/topics/debugging)
* [URL Variable Tools](/reference/urlvariabletools) - Lists a number of page options, rendering tools or special URL variables that you can use to debug your SilverStripe applications

View File

@ -105,5 +105,4 @@ and comes with the same caveats.
## Related
* [Modules Development](/topics/module-developement)
* [Module Release Process](/misc/module-release-process)
* [Modules Development](/topics/module-developement)

View File

@ -466,7 +466,9 @@ class File extends DataObject {
parent::onBeforeWrite();
// Set default owner
if(!$this->ID) $this->OwnerID = (Member::currentUser() ? Member::currentUser()->ID : 0);
if(!$this->ID && !$this->OwnerID) {
$this->OwnerID = (Member::currentUser() ? Member::currentUser()->ID : 0);
}
// Set default name
if(!$this->getField('Name')) $this->Name = "new-" . strtolower($this->class);
@ -875,14 +877,11 @@ class File extends DataObject {
if(!in_array(strtolower($extension), $allowed)) {
$exts = $allowed;
sort($exts);
$message = sprintf(
_t(
'File.INVALIDEXTENSION',
'Extension is not allowed (valid: %s)',
'Argument 1: Comma-separated list of valid extensions'
),
wordwrap(implode(', ',$exts))
$message = _t(
'File.INVALIDEXTENSION',
'Extension is not allowed (valid: {extensions})',
'Argument 1: Comma-separated list of valid extensions',
array('extensions' => wordwrap(implode(', ',$exts)))
);
return new ValidationResult(false, $message);
}

View File

@ -359,9 +359,36 @@ class Form extends RequestHandler {
// Validate the form
if(!$this->validate()) {
if(Director::is_ajax()) {
// Special case for legacy Validator.js implementation (assumes eval'ed javascript collected through
// FormResponse)
return $this->getValidationErrorResponse();
}
// First, try a handler method on the controller (has been checked for allowed_actions above already)
if($this->controller->hasMethod($funcName)) {
return $this->controller->$funcName($vars, $this, $request);
// Otherwise, try a handler method on the form object.
} elseif($this->hasMethod($funcName)) {
return $this->$funcName($vars, $this, $request);
} elseif($field = $this->checkFieldsForAction($this->Fields(), $funcName)) {
return $field->$funcName($vars, $this, $request);
}
return $this->httpError(404);
}
/**
* Returns the appropriate response up the controller chain
* if {@link validate()} fails (which is checked prior to executing any form actions).
* By default, returns different views for ajax/non-ajax request, and
* handles 'appliction/json' requests with a JSON object containing the error messages.
* Behaviour can be influenced by setting {@link $redirectToFormOnValidationError}.
*
* @return SS_HTTPResponse|string
*/
protected function getValidationErrorResponse() {
$request = $this->getRequest();
if($request->isAjax()) {
// Special case for legacy Validator.js implementation
// (assumes eval'ed javascript collected through FormResponse)
$acceptType = $request->getHeader('Accept');
if(strpos($acceptType, 'application/json') !== FALSE) {
// Send validation errors back as JSON with a flag at the start
@ -387,19 +414,6 @@ class Form extends RequestHandler {
}
return $this->controller->redirectBack();
}
}
// First, try a handler method on the controller (has been checked for allowed_actions above already)
if($this->controller->hasMethod($funcName)) {
return $this->controller->$funcName($vars, $this, $request);
// Otherwise, try a handler method on the form object.
} elseif($this->hasMethod($funcName)) {
return $this->$funcName($vars, $this, $request);
} elseif($field = $this->checkFieldsForAction($this->Fields(), $funcName)) {
return $field->$funcName($vars, $this, $request);
}
return $this->httpError(404);
}
/**
@ -726,9 +740,9 @@ class Form extends RequestHandler {
/**
* Set the {@link FormTemplateHelper}
*
*
* @param string|FormTemplateHelper
*/
*/
public function setTemplateHelper($helper) {
$this->templateHelper = $helper;
}
@ -949,7 +963,7 @@ class Form extends RequestHandler {
return $this;
}
/**
* @return string
*/
@ -1049,9 +1063,9 @@ class Form extends RequestHandler {
return $this->message;
}
$this->message = Session::get("FormInfo.{$this->FormName()}.formError.message");
$this->messageType = Session::get("FormInfo.{$this->FormName()}.formError.type");
}
$this->message = Session::get("FormInfo.{$this->FormName()}.formError.message");
$this->messageType = Session::get("FormInfo.{$this->FormName()}.formError.type");
}
/**
* Set a status message for the form.
@ -1126,11 +1140,11 @@ class Form extends RequestHandler {
*
* @return boolean
*/
public function validate() {
if($this->validator) {
public function validate(){
if($this->validator){
$errors = $this->validator->validate();
if($errors) {
if($errors){
// Load errors into session and post back
$data = $this->getData();
@ -1162,7 +1176,7 @@ class Form extends RequestHandler {
*
* Passed data should not be escaped, and is saved to the FormField
* instances unescaped.
*
*
* Escaping happens automatically on saving the data through
* {@link saveInto()}.
*
@ -1315,7 +1329,7 @@ class Form extends RequestHandler {
$dataFields = $this->fields->dataFields();
$data = array();
if($dataFields) {
if($dataFields){
foreach($dataFields as $field) {
if($field->getName()) {
$data[$field->getName()] = $field->dataValue();
@ -1463,9 +1477,9 @@ class Form extends RequestHandler {
foreach($this->actions as $action) {
if($this->buttonClickedFunc == $action->actionName()) {
return $action;
}
}
}
}
/**
* Return the default button that should be clicked when another one isn't
@ -1476,7 +1490,7 @@ class Form extends RequestHandler {
public function defaultAction() {
if($this->hasDefaultAction && $this->actions) {
return $this->actions->First();
}
}
}
/**
@ -1548,7 +1562,7 @@ class Form extends RequestHandler {
public static function single_field_required() {
if(self::current_action() == 'callfieldmethod') {
return $_REQUEST['fieldName'];
}
}
}
/**

View File

@ -380,6 +380,8 @@ class HtmlEditorField_Toolbar extends RequestHandler {
new GridFieldSortableHeader(),
new GridFieldDataColumns(),
new GridFieldPaginator(5),
// TODO Shouldn't allow delete here, its too confusing with a "remove from editor view" action.
// Remove once we can fit the search button in the last actual title column
new GridFieldDeleteAction(),
new GridFieldDetailForm()
);
@ -399,11 +401,11 @@ class HtmlEditorField_Toolbar extends RequestHandler {
$fromCMS = new CompositeField(
new LiteralField('headerSelect',
'<h4>'.sprintf($numericLabelTmpl, '1', _t('HtmlEditorField.FindInFolder', 'Find in Folder')).'</h4>'),
$select = new TreeDropdownField('ParentID', "", 'Folder'),
$select = TreeDropdownField::create('ParentID', "", 'Folder')->addExtraClass('noborder'),
$fileField
);
$fromCMS->addExtraClass('content ss-uploadfield from-CMS');
$fromCMS->addExtraClass('content ss-uploadfield');
$select->addExtraClass('content-select');
@ -416,7 +418,7 @@ class HtmlEditorField_Toolbar extends RequestHandler {
);
$remoteURL->addExtraClass('remoteurl');
$fromWeb->addExtraClass('content ss-uploadfield from-web');
$fromWeb->addExtraClass('content ss-uploadfield');
Requirements::css(FRAMEWORK_DIR . '/css/AssetUploadField.css');
$computerUploadField = Object::create('UploadField', 'AssetUploadField', '');
@ -426,30 +428,32 @@ class HtmlEditorField_Toolbar extends RequestHandler {
$computerUploadField->removeExtraClass('ss-uploadfield');
$computerUploadField->setTemplate('HtmlEditorField_UploadField');
$computerUploadField->setFolderName(Config::inst()->get('Upload', 'uploads_folder'));
// @todo - Remove this once this field supports display and recovery of file upload validation errors
$computerUploadField->setOverwriteWarning(false);
$tabSet = new TabSet(
"MediaFormInsertMediaTabs",
new Tab(
Tab::create(
'FromComputer',
_t('HtmlEditorField.FROMCOMPUTER','From your computer'),
$computerUploadField
),
new Tab(
)->addExtraClass('htmleditorfield-from-computer'),
Tab::create(
'FromWeb',
_t('HtmlEditorField.FROMWEB', 'From the web'),
$fromWeb
),
new Tab(
)->addExtraClass('htmleditorfield-from-web'),
Tab::create(
'FromCms',
_t('HtmlEditorField.FROMCMS','From the CMS'),
$fromCMS
)
)->addExtraClass('htmleditorfield-from-cms')
);
$tabSet->addExtraClass('cms-tabset-primary');
$allFields = new CompositeField(
$tabSet,
new LiteralField('headerEdit', '<h4 class="field header-edit">' . sprintf($numericLabelTmpl, '2',
new LiteralField('headerEdit', '<h4 class="field noborder header-edit">' . sprintf($numericLabelTmpl, '2',
_t('HtmlEditorField.ADJUSTDETAILSDIMENSIONS', 'Details &amp; dimensions')) . '</h4>'),
$editComposite = new CompositeField(
new LiteralField('contentEdit', '<div class="content-edit ss-uploadfield-files files"></div>')
@ -709,15 +713,15 @@ class HtmlEditorField_Toolbar extends RequestHandler {
)->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'),
CompositeField::create(
CompositeField::create(
new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':', $file->FileType),
new ReadonlyField("Size", _t('AssetTableField.SIZE','File size') . ':', $file->getSize()),
new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type'), $file->FileType),
new ReadonlyField("Size", _t('AssetTableField.SIZE','File size'), $file->getSize()),
$urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'),
sprintf('<a href="%s" target="_blank" class="file-url">%s</a>',
$file->Link(), $file->RelativeLink())
sprintf('<a href="%s" title="%s" target="_blank" class="file-url">%s</a>',
$file->Link(), $file->Link(), $file->RelativeLink())
),
new DateField_Disabled("Created", _t('AssetTableField.CREATED','First uploaded') . ':',
new DateField_Disabled("Created", _t('AssetTableField.CREATED','First uploaded'),
$file->Created),
new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT','Last changed') . ':',
new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT','Last changed'),
$file->LastEdited)
)
)->setName("FilePreviewData")->addExtraClass('cms-file-info-data')

View File

@ -6,6 +6,14 @@
*/
class PasswordField extends TextField {
/**
* Controls the autocomplete attribute on the field.
*
* Setting it to false will set the attribute to "off", which will hint the browser
* to not cache the password and to not use any password managers.
*/
private static $autocomplete;
/**
* Returns an input field, class="text" and type="text" with an optional
* maxlength
@ -21,10 +29,17 @@ class PasswordField extends TextField {
public function getAttributes() {
return array_merge(
$attributes = array_merge(
parent::getAttributes(),
array('type' => 'password')
);
$autocomplete = Config::inst()->get('PasswordField', 'autocomplete');
if (isset($autocomplete)) {
$attributes['autocomplete'] = $autocomplete ? 'on' : 'off';
}
return $attributes;
}
/**

View File

@ -502,14 +502,13 @@ class UploadField extends FileField {
/**
* Assign a front-end config variable for the upload field
*
* @see https://github.com/blueimp/jQuery-File-Upload/wiki/Options for the list of front end options available
*
* @param string $key
* @param mixed $val
* @return UploadField self reference
*/
public function setConfig($key, $val) {
if(!array_key_exists($key, $this->ufConfig)) {
user_error("UploadField->setConfig called with invalid option: '$key'", E_USER_ERROR);
}
$this->ufConfig[$key] = $val;
return $this;
}
@ -517,13 +516,13 @@ class UploadField extends FileField {
/**
* Gets a front-end config variable for the upload field
*
* @see https://github.com/blueimp/jQuery-File-Upload/wiki/Options for the list of front end options available
*
* @param string $key
* @return mixed
*/
public function getConfig($key) {
if(!array_key_exists($key, $this->ufConfig)) {
user_error("UploadField->getConfig called with invalid option: '$key'", E_USER_ERROR);
}
if(!isset($this->ufConfig[$key])) return null;
return $this->ufConfig[$key];
}
@ -1548,8 +1547,13 @@ class UploadField_SelectHandler extends RequestHandler {
$config = GridFieldConfig::create();
$config->addComponent(new GridFieldSortableHeader());
$config->addComponent(new GridFieldFilterHeader());
$config->addComponent(new GridFieldDataColumns());
$config->addComponent(new GridFieldPaginator(10));
$config->addComponent($columns = new GridFieldDataColumns());
$columns->setDisplayFields(array(
'StripThumbnail' => '',
'Name' => 'Name',
'Title' => 'Title'
));
$config->addComponent(new GridFieldPaginator(8));
// If relation is to be autoset, we need to make sure we only list compatible objects.
$baseClass = $this->parent->getRelationAutosetClass();

View File

@ -381,6 +381,10 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
if($this->record->ID && !$canEdit) {
// Restrict editing of existing records
$form->makeReadonly();
// Hack to re-enable delete button if user can delete
if ($canDelete) {
$form->Actions()->fieldByName('action_doDelete')->setReadonly(false);
}
} elseif(!$this->record->ID && !$canCreate) {
// Restrict creation of new records
$form->makeReadonly();

View File

@ -53,7 +53,7 @@ class GridFieldExportButton implements GridField_HTMLProvider, GridField_ActionP
$button->setAttribute('data-icon', 'download-csv');
$button->addExtraClass('no-ajax');
return array(
$this->targetFragment => '<p class="grid-csv-button">' . $button->Field() . '</p>',
$this->targetFragment => '<p class="grid-bottom-button grid-csv-button">' . $button->Field() . '</p>',
);
}

View File

@ -14,6 +14,9 @@ var ss = ss || {};
*/
ss.editorWrappers = {};
ss.editorWrappers.tinyMCE = (function() {
var instance;
return {
init: function(config) {
if(!ss.editorWrappers.tinyMCE.initialized) {
@ -25,7 +28,7 @@ ss.editorWrappers.tinyMCE = (function() {
* @return Mixed Implementation specific object
*/
getInstance: function() {
return tinyMCE.activeEditor;
return this.instance;
},
/**
* Invoked when a content-modifying UI is opened.
@ -55,13 +58,31 @@ ss.editorWrappers.tinyMCE = (function() {
* @param Function
*/
create: function(domID, config) {
var ed = new tinymce.Editor(domID, config);
this.instance = new tinymce.Editor(domID, config);
// Patch TinyMCE events into underlying textarea field.
ed.onInit.add(function(ed) {
this.instance.onInit.add(function(ed) {
jQuery(ed.getElement()).trigger('editorinit');
// Periodically check for inline changes when focused,
// since TinyMCE's onChange only fires on certain actions
// like inserting a new paragraph, as opposed to any user input.
// This also works around an issue where the "save" button
// wouldn't trigger if the click is the cause of a "blur" event
// after an (undetected) inline change. This "blur" causes onChange
// to trigger, which will change the button markup to show "alternative" styles,
// effectively cancelling the original click event.
var interval;
jQuery(ed.getBody()).on('focus', function() {
interval = setInterval(function() {
ed.save();
}, 5000);
});
jQuery(ed.getBody()).on('blur', function() {
clearInterval(interval);
});
});
ed.onChange.add(function(ed, l) {
this.instance.onChange.add(function(ed, l) {
// Update underlying textarea on every change, so external handlers
// such as changetracker have a chance to trigger properly.
ed.save();
@ -69,7 +90,7 @@ ss.editorWrappers.tinyMCE = (function() {
});
// Add more events here as needed.
ed.render();
this.instance.render();
},
/**
* Redraw the editor contents
@ -234,7 +255,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
* Constructor: onmatch
*/
onadd: function() {
var edClass = this.data('editor') || ss.editorWrappers['default'], ed = edClass();
var edClass = this.data('editor') || 'default', ed = ss.editorWrappers[edClass]();
this.setEditor(ed);
// Using a global config (generated through HTMLEditorConfig PHP logic).
@ -342,10 +363,11 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
};
var url = $('#cms-editor-dialogs').data('url' + capitalize(type) + 'form'),
var self = this, url = $('#cms-editor-dialogs').data('url' + capitalize(type) + 'form'),
dialog = $('.htmleditorfield-' + type + 'dialog');
if(dialog.length) {
dialog.getForm().setElement(this);
dialog.open();
} else {
// Show a placeholder for instant feedback. Will be replaced with actual
@ -354,8 +376,12 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
$('body').append(dialog);
$.ajax({
url: url,
complete: function() {
dialog.removeClass('loading');
},
success: function(html) {
dialog.html(html);
dialog.getForm().setElement(self);
dialog.trigger('dialogopen');
}
});
@ -366,11 +392,9 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
$('.htmleditorfield-dialog').entwine({
onadd: function() {
// Create jQuery dialog
var height = $(window).height() * 0.8;
var width = $(window).width() * 0.8;
if (!this.is('.ui-dialog-content')) this.dialog({autoOpen: true, bgiframe: true, modal: true, height: height, width: width, ghost: true});
if (!this.is('.ui-dialog-content')) {
this.ssdialog({autoOpen: true});
}
this._super();
},
@ -379,10 +403,10 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
return this.find('form');
},
open: function() {
this.dialog('open');
this.ssdialog('open');
},
close: function() {
this.dialog('close');
this.ssdialog('close');
},
toggle: function(bool) {
if(this.is(':visible')) this.close();
@ -396,15 +420,17 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
*/
$('form.htmleditorfield-form').entwine({
Selection: null,
// Implementation-dependent serialization of the current editor selection state
Bookmark: null,
// DOMElement pointing to the currently active textarea
Element: null,
setSelection: function(node) {
return this._super($(node));
},
// Wrapper for various HTML editors
Editor: null,
onadd: function() {
// Move title from headline to (jQuery compatible) title attribute
var titleEl = this.find(':header:first');
@ -415,7 +441,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
onremove: function() {
this.setSelection(null);
this.setBookmark(null);
this.setEditor(null);
this.setElement(null);
this._super();
},
@ -454,19 +480,11 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
}
},
createEditor: function(){
return ss.editorWrappers['default']();
},
/**
* Get the tinyMCE editor
* @return Object ss.editorWrapper instance
*/
getEditor: function(){
var val = this._super();
if(!val) {
this.setEditor(val = this.createEditor());
}
return val;
return this.getElement().getEditor();
},
modifySelection: function(callback) {
@ -826,7 +844,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
}
this.redraw();
},
redraw: function() {
redraw: function(updateExisting) {
this._super();
var node = this.getSelection(),
@ -835,7 +853,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
header = this.find('.header-edit');
// Only show second step if files are selected
if(header) header[(hasItems) ? 'show' : 'hide']();
header[(hasItems) ? 'show' : 'hide']();
// Disable "insert" button if no files are selected
this.find('.Actions :submit')
@ -845,11 +863,15 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
// Hide file selection and step labels when editing an existing file
this.find('#MediaFormInsertMediaTabs,.header-edit')[editingSelected ? 'hide' : 'show']();
var updateExisting = Boolean(this.find('.ss-htmleditorfield-file').length);
this.find('.htmleditorfield-mediaform-heading.insert')[updateExisting ? 'hide' : 'show']();
this.find('.Actions .media-insert')[updateExisting ? 'hide' : 'show']();
this.find('.htmleditorfield-mediaform-heading.update')[updateExisting ? 'show' : 'hide']();
this.find('.Actions .media-update')[updateExisting ? 'show' : 'hide']();
// TODO Way too much knowledge on UploadField internals, use viewfile URL directly instead
this.find('.htmleditorfield-mediaform-heading.insert')[editingSelected ? 'hide' : 'show']();
this.find('.ss-uploadfield-item-actions')[editingSelected ? 'hide' : 'show']();
this.find('.ss-uploadfield-item-name')[editingSelected ? 'hide' : 'show']();
this.find('.ss-uploadfield-item-preview')[editingSelected ? 'hide' : 'show']();
this.find('.Actions .media-insert')[editingSelected ? 'hide' : 'show']();
this.find('.htmleditorfield-mediaform-heading.update')[editingSelected ? 'show' : 'hide']();
this.find('.Actions .media-update')[editingSelected ? 'show' : 'hide']();
this.find('.ss-uploadfield-item-editform').toggleEditForm(editingSelected);
},
resetFields: function() {
this.find('.ss-htmleditorfield-file').remove(); // Remove any existing views
@ -866,7 +888,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
var self = this, params = (Number(idOrUrl) == idOrUrl) ? {ID: idOrUrl} : {FileURL: idOrUrl};
var item = $('<div class="ss-htmleditorfield-file loading" />');
this.find('.content-edit').append(item);
this.find('.content-edit').prepend(item);
var dfr = $.Deferred();
@ -1004,6 +1026,10 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
* @return {String} HTML suitable for insertion into the rich text editor
*/
getHTML: function() {
// Assumes UploadField markup structure
return $('<div>').append(
$('<a/>').attr({href: this.data('url')}).text(this.find('.name').text())
).html();
},
/**
* Insert updated HTML content into the rich text editor
@ -1300,11 +1326,11 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
});
$('div.ss-assetuploadfield .ss-uploadfield-item-editform').entwine({
toggleEditForm: function() {
toggleEditForm: function(bool) {
var itemInfo = this.prev('.ss-uploadfield-item-info'), status = itemInfo.find('.ss-uploadfield-item-status');
var text="";
if(this.height() === 0) {
if(bool === true || (bool !== false && this.height() === 0)) {
text = ss.i18n._t('UploadField.Editing', "Editing ...");
this.height('auto');
itemInfo.find('.toggle-details-icon').addClass('opened');

View File

@ -114,16 +114,19 @@
var node = tree.find('*[data-id="' + val + '"]'),
title = node.children('a').find("span.jstree_pageicon")?node.children('a').find("span.item").html():null;
if(!title) title=(node) ? tree.jstree('get_text', node[0]) : null;
if(!title) title=(node.length > 0) ? tree.jstree('get_text', node[0]) : null;
if(title) self.setTitle(title);
if(title) {
self.setTitle(title);
self.data('title', title)
}
if(node) tree.jstree('select_node', node);
}
};
// Load the tree if its not already present
if(jQuery.jstree._reference(tree) || !val) updateFn();
else this.loadTree(null, updateFn);
if(!tree.is(':empty') || !val) updateFn();
else this.loadTree({forceValue: val}, updateFn);
},
setValue: function(val) {
this.data('metadata', $.extend(this.data('metadata'), {id: val}));

View File

@ -2,6 +2,7 @@ af:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nuwe Dossier'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Eerste opgelaai'
DIM: Afmetings
@ -59,9 +60,9 @@ af:
ERRORNOTADMIN: 'Daardie verbruiker is nie ''n administreerder nie'
ERRORNOTREC: 'Daar die verbruikersnaam / wagwoord is nie herken nie'
Boolean:
0: Onwaar
ANY: Enige
1: Waar
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Besig om te laai...'
REQUIREJS: 'Die IBS vereis dat JavaScript aangeskakel is'
@ -70,6 +71,8 @@ af:
ACCESSALLINTERFACES: 'Toegang tot alle IBS gedeeltes'
ACCESSALLINTERFACESHELP: 'Oorheers meer spesifieke toegans verstellings'
SAVE: Stoor
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My profiel'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ af:
HELLO: 'Hi daar'
PASSWORD: Wagwoord
CheckboxField:
- Onwaar
- Waar
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Maak wipop toe'
SUCCESSADD2: '{name} bygesit'
@ -109,20 +112,21 @@ af:
PLURALNAME: 'Data Voorwerpe'
SINGULARNAME: 'Data Voorwerp'
Date:
DAY: dag
DAYS: dae
HOUR: uur
HOURS: ure
MIN: minuut
MINS: minute
MONTH: maand
MONTHS: maande
SEC: sekonde
SECS: sekondes
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} terug'
TIMEDIFFIN: 'in {difference}'
YEAR: jaar
YEARS: jare
YEAR: year
YEARS: years
DateField:
NOTSET: 'Nie gestel nie'
TODAY: vandag
@ -198,7 +202,8 @@ af:
TEXT2: 'wagwoord herstel skakel'
TEXT3: vir
Form:
FIELDISREQUIRED: '%s word benodig.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Gaan
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The waarde wat ingesleutel is is nie uniek nie'
@ -208,6 +213,7 @@ af:
VALIDATOR: Vergeldiger
VALIDCURRENCY: 'Tik asseblief ''n geldige geldeenheid in '
FormField:
Example: 'e.g. %s'
NONE: geen
GridAction:
DELETE_DESCRIPTION: Verwyder
@ -230,6 +236,7 @@ af:
ResetFilter: Herstel
GridFieldAction_Delete:
DeletePermissionsFailure: 'Geen toestemming om te verwyder nie'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: 'Kanselleer '
Create: Skep
@ -237,7 +244,9 @@ af:
DeletePermissionsFailure: 'Geen toestemming om te verwyder nie'
Deleted: 'Verwyderde %s %s'
Save: Stoor
Saved: 'Gestoor %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Voeg nog ''n rol by hierdie groep'
@ -267,6 +276,7 @@ af:
ADDURL: 'Voeg URL by'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anker
BUTTONADDURL: 'Add url'
BUTTONINSERT: 'Plaas in'
BUTTONINSERTLINK: 'Sit in'
BUTTONREMOVELINK: 'Verwyder skakel'
@ -331,6 +341,9 @@ af:
PreviewButton: Beskou
REORGANISATIONSUCCESSFUL: 'Die ''site tree'' is suksesvol geheorganiseer'
SAVEDUP: Gestoor
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
@ -407,6 +420,7 @@ af:
TWODIGITMONTH: 'Twee syfer maand (01=Januarie etc)'
TWODIGITSECOND: 'Twee syfers van sekondes (00 to 59)'
TWODIGITYEAR: 'Twee syfer jaar'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p> Voer gebruikers in <em>CSV</em>formaat (komma geskeide waardes).<small> <a href="#" class="toggle-advanced">Wys gevorderde gebruike</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ af:
ModelAdmin:
DELETE: Verwyder
DELETEDRECORDS: 'Verwyder {count} rekords'
EMPTYBEFOREIMPORT: 'Maak databasis skoon voordat data ingevoer word'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Voer in van CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Soek asseblief vir ''n CSV lêer om in the voer'
@ -515,7 +529,20 @@ af:
BtnImport: 'Voer In'
FileFieldLabel: 'CSV Lêer <small>(Laat toe uitbreidings: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Verander
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Geen foto gelaai nie'
SiteTree:
@ -551,6 +578,8 @@ af:
ATTACHFILE: 'Heg lêer aan'
ATTACHFILES: 'Heg lêer(s) aan'
AttachFile: 'Aangehegde lêer(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Verwyder van lêers af'
DELETEINFO: 'Wis die lêer uit die lêer stoor uit'
DOEDIT: Stoor
@ -565,12 +594,15 @@ af:
FROMFILES: 'Van die lêers afdeling'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Maksimum aantal van {count} lêer(s) oorskry '
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Kan net {count} lêer oplaai'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Verwyder
REMOVEERROR: 'Daar het ''n fout onstaan met die verwydering van die lêer'
REMOVEINFO: 'Verwyder die lêer van hier af maar moet dit nie uit die lêer stoor verwyder nie'
STARTALL: 'Begin alles'
STARTALLINFO: 'Begin op alles op te laai'
Saved: Gestoor
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Weergawe

View File

@ -2,14 +2,15 @@ ar:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'مجلد جديد'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'أول المرفوعات'
DIM: الأبعاد
FILENAME: 'اسم الملف'
FOLDER: Folder
LASTEDIT: 'آخر التعديلات'
OWNER: المالك
SIZE: الحجم
OWNER: 'المالك'
SIZE: 'الحجم'
TITLE: العنوان
TYPE: النوع
URL: الرابط
@ -28,7 +29,7 @@ ar:
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
BBCodeParser:
ALIGNEMENT: المحاذاة
ALIGNEMENT: 'المحاذاة'
ALIGNEMENTEXAMPLE: 'محاذاة إلى اليمين'
BOLD: 'خط عريض'
BOLDEXAMPLE: عريض
@ -42,7 +43,7 @@ ar:
IMAGE: الصورة
IMAGEDESCRIPTION: 'عرض الصورة في الموضوع'
ITALIC: 'خط مائل'
ITALICEXAMPLE: مائل
ITALICEXAMPLE: 'مائل'
LINK: 'رابط الموقع'
LINKDESCRIPTION: 'رابط إلى موقع آخر'
STRUCK: 'خط في المنتصف'
@ -59,9 +60,9 @@ ar:
ERRORNOTADMIN: 'هذا المستخدم لا يملك صلاحيات الإدارة'
ERRORNOTREC: 'اسم المستخدم أو الرقم السري غير صحيح'
Boolean:
0: لا
ANY: أي
1: نعم
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ar:
ACCESSALLINTERFACES: 'الدخول إلى جميع واجهات إدارة المحتوى'
ACCESSALLINTERFACESHELP: 'ينقض أكثر من توصيف الوصول المحدد'
SAVE: حفظ
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ar:
HELLO: أهلاً
PASSWORD: 'الرقم السري'
CheckboxField:
- لا
- نعم
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'إغلاق النافذة'
SUCCESSADD2: 'Added {name}'
@ -109,23 +112,24 @@ ar:
PLURALNAME: 'بيانات كائن'
SINGULARNAME: 'بيانات كائن'
Date:
DAY: اليوم
DAYS: الأيام
HOUR: ساعة
HOURS: ساعات
MIN: دقيقة
MINS: الدقائق
MONTH: الشهر
MONTHS: الأشهر
SEC: ثانية
SECS: الثواني
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: السنة
YEARS: السنوات
YEAR: year
YEARS: years
DateField:
NOTSET: 'غير محدد'
TODAY: اليوم
TODAY: 'اليوم'
VALIDDATEFORMAT2: 'Please enter a valid date format ({format})'
VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})'
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
@ -144,7 +148,7 @@ ar:
ANY: أي
File:
AviType: 'AVI video file'
Content: المحتوى
Content: 'المحتوى'
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -162,11 +166,11 @@ ar:
MpgType: 'MPEG video file'
NOFILESIZE: 'حجم الملف 0 بايت'
NOVALIDUPLOAD: 'نوع الملف غير قابل للرفع'
Name: الاسم
PLURALNAME: الملفات
Name: 'الاسم'
PLURALNAME: 'الملفات'
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
SINGULARNAME: الملف
SINGULARNAME: 'الملف'
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TiffType: 'Tagged image format'
@ -180,7 +184,7 @@ ar:
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
FILE: ملف
FILE: 'ملف'
FROMCOMPUTER: 'من جهازك الشخصي'
FROMFILESTORE: 'من مكتبة الملفات'
NOSOURCE: 'الرجاء اختيارمصدر ملف المرفق'
@ -198,16 +202,18 @@ ar:
TEXT2: 'رابط إعادة تعيين كلمة المرور'
TEXT3: لـ
Form:
FIELDISREQUIRED: '%s مطلوب'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'القيمة المدخلة غير فريدة و قابلة للتكرار '
VALIDATIONPASSWORDSDONTMATCH: 'رقم المرور غير صحيح'
VALIDATIONPASSWORDSNOTEMPTY: 'أرقام المرور لا يمكن أن تكون فارغة'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: المحقق
VALIDATOR: 'المحقق'
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: لايوجد
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ar:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ar:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ar:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: رابط
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'أدخل رابط'
BUTTONREMOVELINK: 'إزالة رابط'
@ -279,8 +289,8 @@ ar:
CSSCLASSRIGHT: 'إلى اليمين ، مع التفاف النص'
DETAILS: Details
EMAIL: 'بريد إلكتروني'
FILE: ملف
FOLDER: المجلد
FILE: 'ملف'
FOLDER: 'المجلد'
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
@ -322,7 +332,7 @@ ar:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
HELP: مساعدة
HELP: 'مساعدة'
PAGETYPE: 'نوع الصفحة:'
PERMAGAIN: 'تم خروجك من النظام بنجاح. للدخول مرة أخرى أدحل البريد الإلكتروني و الرقم السري بالأسفل'
PERMALREADY: 'عذراً , لكن لا يمكنك الوصول لهذا القسم من النظام. يتوجب عليك الدخول بصلاحية أخرى'
@ -331,7 +341,10 @@ ar:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -377,7 +390,7 @@ ar:
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
YOUROLDPASSWORD: 'رقم المرور السابق'
belongs_many_many_Groups: المجموعات
belongs_many_many_Groups: 'المجموعات'
db_LastVisited: 'تاريخ آخر زيارة'
db_Locale: 'واجهة الموقع'
db_LockedOutUntil: 'مغلق حتى تاريخ'
@ -407,6 +420,7 @@ ar:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ar:
ModelAdmin:
DELETE: حذف
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'استيراد من CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'فضلاً استعرض ملف CSV للاستيراد'
@ -441,8 +455,8 @@ ar:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
MoneyField:
FIELDLABELAMOUNT: الكمية
FIELDLABELCURRENCY: العملة
FIELDLABELAMOUNT: 'الكمية'
FIELDLABELCURRENCY: 'العملة'
NullableField:
IsNullLabel: باطل
NumericField:
@ -515,7 +529,20 @@ ar:
BtnImport: استيراد
FileFieldLabel: ' CSV ملف <small>(الامتداد المسموح :*.csv )</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'لا توجد صور مرفوعة'
SiteTree:
@ -551,6 +578,8 @@ ar:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ ar:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: الإصدارات

View File

@ -2,6 +2,7 @@ ast:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ ast:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ast:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ast:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ ast:
PLURALNAME: 'Oxetos de datos'
SINGULARNAME: 'Oxetu de datos'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'nun s''establez'
TODAY: hoi
@ -198,7 +202,8 @@ ast:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ ast:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ast:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ast:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ast:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ ast:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ ast:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ast:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ ast:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ ast:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ ast:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiones

View File

@ -2,6 +2,7 @@ az:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ az:
ERRORNOTADMIN: 'İstifadəçi administrator deyil'
ERRORNOTREC: 'Belə istifadəçi adı və ya parol tanınmadı'
Boolean:
0: Yox
ANY: İstənilən
1: Bəli
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ az:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 'Yadda saxla'
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ az:
HELLO: Salam
PASSWORD: Parol
CheckboxField:
- Yox
- Bəli
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: Bağla
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ az:
PLURALNAME: 'Data Obyektlər'
SINGULARNAME: 'Data Obyekt'
Date:
DAY: gün
DAYS: günlər
HOUR: saat
HOURS: saatlar
MIN: dəq
MINS: dəqiqələr
MONTH: ay
MONTHS: aylar
SEC: san
SECS: san-lər
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: il
YEARS: illər
YEAR: year
YEARS: years
DateField:
NOTSET: 'təyin edilməyib'
TODAY: 'bu gün'
@ -198,7 +202,8 @@ az:
TEXT2: 'parolu sıfırlma linki'
TEXT3: üçün
Form:
FIELDISREQUIRED: '%s tələb olunur.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Daxil edilən məlumat unikal deyil'
@ -208,6 +213,7 @@ az:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: 'heç bir'
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ az:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ az:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ az:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Ankor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Link əlavə et'
BUTTONREMOVELINK: 'Linki sil'
@ -331,7 +341,10 @@ az:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ az:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ az:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ az:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Şəkil yüklənməmişdir'
SiteTree:
@ -551,6 +578,8 @@ az:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ az:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiyalar

View File

@ -2,9 +2,10 @@ bg:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: НоваПапка
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: Създаден
DIM: Размери
DIM: 'Размери'
FILENAME: 'Име на файл'
FOLDER: Папка
LASTEDIT: 'Последна промяна'
@ -59,9 +60,9 @@ bg:
ERRORNOTADMIN: 'Този потребител не е администратор.'
ERRORNOTREC: 'Това потребителско име / парола не е разпознато'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Зареждане ...'
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ bg:
ACCESSALLINTERFACES: 'Достъп до всички секции на CMS'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Запис
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Моят профил'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ bg:
HELLO: Здравей!
PASSWORD: Парола
CheckboxField:
- 'не е чекнато'
- чекнато
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Затвори прозореца'
SUCCESSADD2: 'Беше добавен {name}'
@ -88,8 +91,8 @@ bg:
ComplexTableField.ss:
ADDITEM: 'Добави %s'
NOITEMSFOUND: 'No items found'
SORTASC: Възходящ
SORTDESC: Низходящ
SORTASC: 'Възходящ'
SORTDESC: 'Низходящ'
ComplexTableField_popup.ss:
NEXT: Следващо
PREVIOUS: Предишно
@ -109,20 +112,21 @@ bg:
PLURALNAME: 'Обекти с данни'
SINGULARNAME: 'Обект с данни'
Date:
DAY: ден
DAYS: дни
HOUR: час
HOURS: часове
MIN: минута
MINS: минути
MONTH: месец
MONTHS: месеци
SEC: секунда
SECS: секунди
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: 'преди {difference}'
TIMEDIFFIN: 'за {difference}'
YEAR: година
YEARS: години
YEAR: year
YEARS: years
DateField:
NOTSET: 'Не нагласено'
TODAY: днес
@ -198,7 +202,8 @@ bg:
TEXT2: 'адрес за рестартирване на парола'
TEXT3: за
Form:
FIELDISREQUIRED: 'нужно е %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Въведената стойност не е уникална'
@ -208,6 +213,7 @@ bg:
VALIDATOR: Валидатор
VALIDCURRENCY: 'Моля, въведете коректна валута.'
FormField:
Example: 'e.g. %s'
NONE: нищо
GridAction:
DELETE_DESCRIPTION: Изтриване
@ -230,6 +236,7 @@ bg:
ResetFilter: Изчистване
GridFieldAction_Delete:
DeletePermissionsFailure: 'Изтриването не е разрешено'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Създай
@ -237,7 +244,9 @@ bg:
DeletePermissionsFailure: 'Изтриването не е разрешено'
Deleted: 'Изтрити %s %s'
Save: Запис
Saved: 'Съхранени %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Добавяне на роля към групата'
@ -253,7 +262,7 @@ bg:
RolesAddEditLink: 'Управление на ролите'
SINGULARNAME: Group
Sort: Сортиране
has_many_Permissions: Разрешения
has_many_Permissions: 'Разрешения'
many_many_Members: Потребители
GroupImportForm:
Help1: '<p>Внасяне на една или повече групи в <em>CSV формат</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Покажи начин на употреба</a></small></p>'
@ -267,6 +276,7 @@ bg:
ADDURL: 'Добави URL'
ADJUSTDETAILSDIMENSIONS: 'Детайли и размери'
ANCHORVALUE: Котва
BUTTONADDURL: 'Add url'
BUTTONINSERT: Вмъкни
BUTTONINSERTLINK: 'Вмъкни препратка'
BUTTONREMOVELINK: 'Премахни препратка'
@ -288,7 +298,7 @@ bg:
IMAGEALT: 'Алтернативен текст (alt)'
IMAGEALTTEXT: 'Алтернативен текст (alt) - показва се ако изображението не е заредено'
IMAGEALTTEXTDESC: 'Вижда се на екранните четци или ако картинката не може да бъде показана'
IMAGEDIMENSIONS: Размери
IMAGEDIMENSIONS: 'Размери'
IMAGEHEIGHTPX: Височина
IMAGETITLE: 'Описание (tooltip) - за допълнителна информация към изображението'
IMAGETITLETEXT: 'Описание (tooltip)'
@ -331,6 +341,9 @@ bg:
PreviewButton: Преглед
REORGANISATIONSUCCESSFUL: 'Реорганизацията на дървото на сайта беше успешна.'
SAVEDUP: Записано
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: непозната
LeftAndMain_Menu.ss:
Hello: Здравей
@ -407,6 +420,7 @@ bg:
TWODIGITMONTH: 'Месец с водеща нула (01=Януари, и т.н.)'
TWODIGITSECOND: 'Секунди с водеща нула (00 до 59)'
TWODIGITYEAR: 'Двуцифрена година'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Внасяне на потебители в <em>CSV формат</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Покажи начин на употреба</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ bg:
ModelAdmin:
DELETE: Изтрий
DELETEDRECORDS: 'Бяха изтрити {count} записа.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Внасяне от CSV'
IMPORTEDRECORDS: 'Бяха внесени {count} записа.'
NOCSVFILE: 'Преглед на CSV файл за внасяне'
@ -506,16 +520,29 @@ bg:
MENUTITLE: Сигурност
MemberListCaution: 'Внимание: изтривайки потребители от този списък, ще ги премахне от всички групи и от базата данни.'
NEWGROUP: 'Нова група'
PERMISSIONS: Разрешения
ROLES: Роли
PERMISSIONS: 'Разрешения'
ROLES: 'Роли'
ROLESDESCRIPTION: 'Ролите са предварително зададени сетове от разрешения и могат да бъдат присвоявани на групи.<br />Ако е нужно, те се наследяват от родителските групи.'
TABROLES: Роли
TABROLES: 'Роли'
Users: Потребители
SecurityAdmin_MemberImportForm:
BtnImport: 'Внасяне от CSV'
FileFieldLabel: 'CSV файл <small>(разширение: *.csv)</small>'
SilverStripeNavigator:
Edit: Редакция
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: 'Редакция'
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Няма качени изображения'
SiteTree:
@ -551,12 +578,14 @@ bg:
ATTACHFILE: 'Прикачване на файл'
ATTACHFILES: 'Прикачване на файлове'
AttachFile: 'Прикачване на файл(ове)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Изтрий файла от сървъра'
DOEDIT: Запис
DROPFILE: 'пуснете файл'
DROPFILES: 'пускане на файлове'
Dimensions: Размери
Dimensions: 'Размери'
EDIT: Edit
EDITINFO: 'Редактирай този файл'
FIELDNOTSET: 'Информация за файла не беше намерена'
@ -565,12 +594,15 @@ bg:
FROMFILES: 'От файлове'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Максималния брой файлове ({count}) е надхвърлен.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Максималният брой файлове за качване е {count}'
REMOVE: Премахни
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: 'Премахни'
REMOVEERROR: 'Грешка при премахване на файл'
REMOVEINFO: 'Премахни файла без да го изтриваш'
STARTALL: 'Старт на всички'
STARTALLINFO: 'Start all uploads'
Saved: Записано
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Версии

View File

@ -2,6 +2,7 @@ bs:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NoviDirektorij
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Prvo postavljeno'
DIM: Dimenzije
@ -59,9 +60,9 @@ bs:
ERRORNOTADMIN: 'Ovaj korisnik nije administrator.'
ERRORNOTREC: 'Korisničko ime / šifra nije prepoznata'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ bs:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Snimi
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ bs:
HELLO: Pozdrav
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ bs:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: dan
DAYS: dani
HOUR: sat
HOURS: sati
MIN: minuta
MINS: minute
MONTH: mjesec
MONTHS: mjeseci
SEC: sekunda
SECS: sekundi
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: godina
YEARS: godine
YEAR: year
YEARS: years
DateField:
NOTSET: 'nije postavljeno'
TODAY: danas
@ -198,7 +202,8 @@ bs:
TEXT2: 'link za ponovno podešavanje šifre'
TEXT3: za
Form:
FIELDISREQUIRED: '%s je obavezno'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Unesena vrijednost nije jedinstvena'
@ -208,6 +213,7 @@ bs:
VALIDATOR: 'Provjera ispravnosti'
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: ništa
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ bs:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ bs:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ bs:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Sidro
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Ubaci link'
BUTTONREMOVELINK: 'Ukloni link'
@ -293,7 +303,7 @@ bs:
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: Širina
IMAGEWIDTHPX: 'Širina'
INSERTMEDIA: 'Insert Media'
LINK: Link
LINKANCHOR: 'Sidro na ovoj stranici'
@ -331,7 +341,10 @@ bs:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -365,7 +378,7 @@ bs:
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: 'Nova šifra'
PASSWORD: Šifra
PASSWORD: 'Šifra'
PLURALNAME: Members
REMEMBERME: 'Zapamti me slijedeći put'
SINGULARNAME: Member
@ -407,6 +420,7 @@ bs:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ bs:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ bs:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nijedna slika nije postavljena'
SiteTree:
@ -527,7 +554,7 @@ bs:
ADDITEM: 'Add %s'
TableListField:
CSVEXPORT: 'Izvezi u CSV'
PRINT: Štampaj
PRINT: 'Štampaj'
Print: Print
SELECT: 'Select:'
TableListField.ss:
@ -551,6 +578,8 @@ bs:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ bs:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ ca:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NovaCarpeta
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Carregat per primer cop'
DIM: Dimensions
@ -59,9 +60,9 @@ ca:
ERRORNOTADMIN: 'Aquest usuari no és un administrador.'
ERRORNOTREC: 'Aquest nom d''usuari / contrasenya no es reconeix'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ca:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Desa
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ca:
HELLO: Hola
PASSWORD: Contrasenya
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Tanca la finestra'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ ca:
PLURALNAME: 'Objectes de dades'
SINGULARNAME: 'Objecte de dades'
Date:
DAY: dia
DAYS: dies
HOUR: hora
HOURS: hores
MIN: minut
MINS: minuts
MONTH: mes
MONTHS: mesos
SEC: segon
SECS: segons
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: any
YEARS: anys
YEAR: year
YEARS: years
DateField:
NOTSET: 'no definit'
TODAY: avui
@ -198,7 +202,8 @@ ca:
TEXT2: 'enllaç de reinici de la contrasenya'
TEXT3: per
Form:
FIELDISREQUIRED: 'Es requereix %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'El valor que heu introduït no és únic'
@ -208,6 +213,7 @@ ca:
VALIDATOR: Validador
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: cap
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ca:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ca:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ca:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Ancla
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insereix un enllaç'
BUTTONREMOVELINK: 'Suprimeix un enllaç'
@ -304,7 +314,7 @@ ca:
LINKINTERNAL: 'Pàgina del lloc web'
LINKOPENNEWWIN: 'Obrir l''enllaç a una nova finestra?'
LINKTO: 'Enllaça a'
PAGE: Pàgina
PAGE: 'Pàgina'
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
@ -331,7 +341,10 @@ ca:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ ca:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ca:
ModelAdmin:
DELETE: Suprimeix
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importa de CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Si us plau, cerqueu el fitxer CSV per a importar'
@ -515,7 +529,20 @@ ca:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No heu carregat cap imatge'
SiteTree:
@ -551,6 +578,8 @@ ca:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ ca:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ cs:
AssetAdmin:
ALLOWEDEXTS: 'Povolené extenze'
NEWFOLDER: 'Nová složka'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Poprvé nahráno'
DIM: Rozměry
@ -59,9 +60,9 @@ cs:
ERRORNOTADMIN: 'Tento uživatel není administrátor.'
ERRORNOTREC: 'Toto uživatelské jméno / heslo nebylo rozpoznáno'
Boolean:
0: Ne
ANY: Jakkýkoliv
1: Ano
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Nahrávání...
REQUIREJS: 'CMS vyžaduje, aby jste měli JavaScript zapnut.'
@ -70,6 +71,8 @@ cs:
ACCESSALLINTERFACES: 'Přístup ke všem sekcím CMS'
ACCESSALLINTERFACESHELP: 'Prepíše více specifické nastavení přístupu.'
SAVE: Uložit
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Můj profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ cs:
HELLO: 'Dobrý den'
PASSWORD: Heslo
CheckboxField:
- Ne
- Ano
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: Zavřít
SUCCESSADD2: 'Přidáno {name}'
@ -109,20 +112,21 @@ cs:
PLURALNAME: 'Datové objekty'
SINGULARNAME: 'Datový objekt'
Date:
DAY: den
DAYS: dny
HOUR: hodina
HOURS: hodiny
MIN: minuta
MINS: minuty
MONTH: měsíc
MONTHS: měsíce
SEC: sekunda
SECS: sekundy
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: 'před {difference}'
TIMEDIFFIN: 'v {difference}'
YEAR: rok
YEARS: roky
YEAR: year
YEARS: years
DateField:
NOTSET: nenastaveno
TODAY: dnes
@ -198,7 +202,8 @@ cs:
TEXT2: 'odkaz na reset hesla'
TEXT3: pro
Form:
FIELDISREQUIRED: '%s je požadováno.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Jdi
VALIDATIONCREDITNUMBER: 'Prosím ujistěte se, že jste zadal/a {number} číslo kreditní karty správně'
VALIDATIONNOTUNIQUE: 'Zadaná hodnota není unikátní'
@ -208,6 +213,7 @@ cs:
VALIDATOR: Validátor
VALIDCURRENCY: 'Prosím zadejte platnou měnu'
FormField:
Example: 'e.g. %s'
NONE: žádný
GridAction:
DELETE_DESCRIPTION: Smazat
@ -230,6 +236,7 @@ cs:
ResetFilter: Resetovat
GridFieldAction_Delete:
DeletePermissionsFailure: 'Žádná oprávnění mazat'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Storno
Create: Vytvořit
@ -237,7 +244,9 @@ cs:
DeletePermissionsFailure: 'Žádná oprávnění mazat'
Deleted: 'Smazáno %s %s'
Save: Uložit
Saved: 'Uloženo %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Přidat roli pro tuto skupinu'
@ -267,6 +276,7 @@ cs:
ADDURL: 'Přidat URL'
ADJUSTDETAILSDIMENSIONS: 'Detaily &amp; rozměry'
ANCHORVALUE: 'Záložka (kotva)'
BUTTONADDURL: 'Add url'
BUTTONINSERT: Vložit
BUTTONINSERTLINK: 'Vložit odkaz'
BUTTONREMOVELINK: 'Odstranit odkaz'
@ -293,7 +303,7 @@ cs:
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
IMAGETITLETEXT: 'Titulek textu (tooltip)'
IMAGETITLETEXTDESC: 'Pro další informace o obrázku'
IMAGEWIDTHPX: Šířka
IMAGEWIDTHPX: 'Šířka'
INSERTMEDIA: 'Vložit média'
LINK: 'Vložit nebo upravit odkaz'
LINKANCHOR: 'Záložka (kotva) na stránce'
@ -331,7 +341,10 @@ cs:
PreviewButton: Náhled
REORGANISATIONSUCCESSFUL: 'Strom webu reorganizován úspěšně.'
SAVEDUP: Uloženo.
VersionUnknown: neznáme
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Ahoj
LOGOUT: 'Odhlásit se'
@ -407,6 +420,7 @@ cs:
TWODIGITMONTH: 'Dvojčíslí měsíce (01=Leden, atď.)'
TWODIGITSECOND: 'Dvojčíslí vteřiny (00 až 59)'
TWODIGITYEAR: 'Dvojčíslí roku'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import členů v <em>CSV formátu</em> (čárkou-oddělené hodnoty). <small><a href="#" class="toggle-advanced">Zobrazit rozšířené použití</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Pokročilé použití</h4>\\n<ul>\\n<li>Povolené sloupce: <em>%s</em></li>\\n<li>Existující uživatelé jsou porovnáni jejich unikátní vlastností <em>Code</em>, a aktualizováni s novými hodnotami z importovaného souboru.</li>\\n<li>Skupiny mohou být přiřazeny sloupcem <em>Groups</em>. Skupiny jsou identifikovány svojí vlastností <em>Code</em>, více skupin může být odděleno čárkou. Existující členství ve skupině nejsou smazána.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ cs:
ModelAdmin:
DELETE: Smazat
DELETEDRECORDS: 'Smazáno {count} záznamů.'
EMPTYBEFOREIMPORT: 'Vyčistit databázi před importováním'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importovat ze souboru CSV'
IMPORTEDRECORDS: 'Importováno {count} záznamů.'
NOCSVFILE: 'Prosím, vyhledejte soubor CSV pro import'
@ -515,7 +529,20 @@ cs:
BtnImport: Import
FileFieldLabel: 'Soubor CSV <small>(Povoleny přípony: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Editovat
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nebyl nahrán žádný obrázek'
SiteTree:
@ -551,6 +578,8 @@ cs:
ATTACHFILE: 'Připojit soubor'
ATTACHFILES: 'Připojit soubory'
AttachFile: 'Připojit soubor(y)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Smazat ze souborů'
DELETEINFO: 'Trvale odstranit tento soubor z úložiště souborů'
DOEDIT: Uložit
@ -565,12 +594,15 @@ cs:
FROMFILES: 'Ze souborů'
HOTLINKINFO: 'Info: Tento obrázek bude "hotlinkován". Ujistěte se prosím, že máte oprávnění od původního tvůrce webu, aby se tak stalo.'
MAXNUMBEROFFILES: 'Maximální počet {count} soubor(ů) překročen.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Můžete nahrát pouze {count} souborů'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Odstranit
REMOVEERROR: 'Chyba odstranění souboru'
REMOVEINFO: 'Odtranit tento soubor odsud, ale nesmazat ho z úložiště souborů'
STARTALL: 'Začni vše'
STARTALLINFO: 'Začni vše nahrávat'
Saved: Uloženo
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Verze

View File

@ -2,6 +2,7 @@ da:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Ny mappe'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Først uploadet'
DIM: Dimensioner
@ -59,9 +60,9 @@ da:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ da:
ACCESSALLINTERFACES: 'Adgang til alle CMS grænseflader'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Gem
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ da:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Luk popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ da:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ da:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ da:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ da:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ da:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ da:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ da:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ da:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ da:
ModelAdmin:
DELETE: Slet
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importer fra CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Tryk p&aring; Gennemse for at v&aelig;lge en CSVfil til importering'
@ -515,7 +529,20 @@ da:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ da:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ da:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ de:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Neuer Ordner'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Erstmalig hochgeladen'
DIM: Dimensionen
@ -59,9 +60,9 @@ de:
ERRORNOTADMIN: 'Dieser Nutzer ist kein Administrator'
ERRORNOTREC: 'Dieser/s Nutzername/Passwort wurde nicht erkannt'
Boolean:
0: Nein
ANY: alle
1: Ja
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Lade Daten ...'
REQUIREJS: 'Für die Benutzung des CMS wird JavaScript benötigt.'
@ -70,6 +71,8 @@ de:
ACCESSALLINTERFACES: 'Zugriff auf alle Bereiche des CMS'
ACCESSALLINTERFACESHELP: 'Hebt alle bereichspezifischen Berechtigungen auf.'
SAVE: Speichern
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Mein Profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ de:
HELLO: Hi
PASSWORD: Passwort
CheckboxField:
- Nein
- Ja
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Popup schließen'
SUCCESSADD2: '{name} hinzugefügt'
@ -109,20 +112,21 @@ de:
PLURALNAME: DataObjects
SINGULARNAME: DataObject
Date:
DAY: Tag
DAYS: Tage
HOUR: Stunde
HOURS: Stunden
MIN: Minuten
MINS: Minuten
MONTH: Monat
MONTHS: Monat
SEC: Sekunden
SECS: Sekunden
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: 'vor {difference}'
TIMEDIFFIN: 'in {difference}'
YEAR: Jahr
YEARS: Jahre
YEAR: year
YEARS: years
DateField:
NOTSET: 'nicht gesetzt'
TODAY: heute
@ -198,7 +202,8 @@ de:
TEXT2: 'Link zum Zurücksetzen des Passworts'
TEXT3: für
Form:
FIELDISREQUIRED: '%s wird benötigt'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Los
VALIDATIONCREDITNUMBER: 'Bitte stellen Sie sicher, dass Sie die Kreditkartennummer ({number}) korrekt eingegeben haben'
VALIDATIONNOTUNIQUE: 'Der eingegebene Wert ist nicht einzigartig'
@ -208,6 +213,7 @@ de:
VALIDATOR: Prüfer
VALIDCURRENCY: 'Bitte geben Sie einen korrekten Betrag ein'
FormField:
Example: 'e.g. %s'
NONE: keine
GridAction:
DELETE_DESCRIPTION: Löschen
@ -230,6 +236,7 @@ de:
ResetFilter: Zurücksetzen
GridFieldAction_Delete:
DeletePermissionsFailure: 'Keine Berechtigung zum Löschen'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Abbrechen
Create: Erstellen
@ -237,7 +244,9 @@ de:
DeletePermissionsFailure: 'Keine Berechtigungen zum löschen'
Deleted: 'Gelöscht %s %s'
Save: Speichern
Saved: 'Gespeichert %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Rolle für die Gruppe hinzufügen'
@ -267,6 +276,7 @@ de:
ADDURL: 'URL hinzufügen'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; Dimensionen'
ANCHORVALUE: Anker
BUTTONADDURL: 'Add url'
BUTTONINSERT: Einfügen
BUTTONINSERTLINK: 'Verweis einfügen'
BUTTONREMOVELINK: 'Verweise entfernen'
@ -331,7 +341,10 @@ de:
PreviewButton: Vorschau
REORGANISATIONSUCCESSFUL: 'Der Seitenbaum wurde erfolgreich sortiert.'
SAVEDUP: Gespeichert.
VersionUnknown: Unbekannt
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: unbekannt
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: Ausloggen
@ -407,6 +420,7 @@ de:
TWODIGITMONTH: 'Monat mit führender Null (z.B. 01 = Januar, usw.)'
TWODIGITSECOND: Sekunde
TWODIGITYEAR: 'Zweistellige Jahreszahl'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Mitglieder im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Erweiterte Benutzung</h4>\\n<ul>\\n<li>Gültige Spalten: <em>%s</em></li>\\n<li>Bereits existierende Benutzer werden anhand ihres eindeutigen <em>Code</em> identifiziert und um neue Einträge aus der Importdatei erweitert.</li>\\n<li>Gruppen können in der Spalte <em>Gruppen</em> hinzugefügt werden. Gruppen werden anhand ihres <em>Code</em> erkannt. Mehrere Gruppen werden Komma-separiert eingetragen. Schon zugewiesene Gruppen werden nicht entfernt.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ de:
ModelAdmin:
DELETE: Löschen
DELETEDRECORDS: '{count} Datensätze wurden gelöscht.'
EMPTYBEFOREIMPORT: 'Datenbank vor Import leeren'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'CSV Import'
IMPORTEDRECORDS: '{count} Datensätze wurden importiert.'
NOCSVFILE: 'Wählen Sie eine CSV-Datei zum Importieren'
@ -515,7 +529,20 @@ de:
BtnImport: Import
FileFieldLabel: 'CSV Datei <small>(Erlaubte Dateierweiterung: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Bearbeiten
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Es wurde kein Bild hochgeladen'
SiteTree:
@ -551,6 +578,8 @@ de:
ATTACHFILE: 'Datei anhängen'
ATTACHFILES: 'Dateien anhängen'
AttachFile: 'Dateien anhängen'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Aus Dateien löschen'
DELETEINFO: 'Löscht die Datei dauerhaft aus dem Dateisystem'
DOEDIT: Speichern
@ -565,12 +594,15 @@ de:
FROMFILES: 'Von "Dateien"'
HOTLINKINFO: 'Info: Dieses Bild wird verknüpft. Bitte vergewissere dich die Erlaubnis des Inhabers der Ursprungsseite zu haben.'
MAXNUMBEROFFILES: 'Maximale Anzahl an {count} Datei(en) überschritten'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'SIe können maximal {count} Datei(en) hochladen'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Entfernen
REMOVEERROR: 'Fehler beim Entfernen der Datei'
REMOVEINFO: 'Entfernt die Datei von hier, löscht Sie aber nicht aus dem Dateisystem.'
STARTALL: 'Alle starten'
STARTALLINFO: 'Alle Uploads starten'
Saved: Gespeichert
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versionen

View File

@ -2,6 +2,7 @@ el:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ el:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -69,7 +70,9 @@ el:
ACCESS: 'Access to ''{title}'' section'
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Αποθήκευση
SAVE: 'Αποθήκευση'
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ el:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ el:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ el:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ el:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ el:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ el:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ el:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ el:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ el:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ el:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ el:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ el:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ el:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ en:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -109,20 +110,21 @@ en:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
LessThanMinuteAgo: 'less than a minute'
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +200,7 @@ en:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -207,8 +209,10 @@ en:
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FormField:
NONE: none
Example: 'e.g. %s'
GridAction:
DELETE_DESCRIPTION: Delete
Delete: Delete
@ -230,6 +234,7 @@ en:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +242,7 @@ en:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldItemEditView.ss:
'Go back': 'Go back'
Group:
@ -309,6 +314,7 @@ en:
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
BUTTONADDURL: 'Add url'
Image:
PLURALNAME: Files
SINGULARNAME: File
@ -332,7 +338,10 @@ en:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
VersionUnknown: Unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +416,7 @@ en:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: "<div class=\"advanced\">\n <h4>Advanced usage</h4>\n <ul>\n <li>Allowed columns: <em>%s</em></li>\n <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from\n the imported file.</li>\n <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property,\n multiple groups can be separated by comma. Existing group memberships are not cleared.</li>\n </ul>\n</div>"
@ -422,7 +432,7 @@ en:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -517,6 +527,19 @@ en:
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -574,5 +597,13 @@ en:
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
OVERWRITEWARNING: 'File with the same name already exists'
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
GridFieldEditButton.ss:
EDIT: Edit

View File

@ -2,6 +2,7 @@ en_GB:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ en_GB:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ en_GB:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ en_GB:
HELLO: Hello
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -113,10 +116,11 @@ en_GB:
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: ' months'
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
@ -198,7 +202,8 @@ en_GB:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ en_GB:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ en_GB:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ en_GB:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ en_GB:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ en_GB:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ en_GB:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ en_GB:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ en_GB:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ en_GB:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,13 +594,15 @@ en_GB:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ eo:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Unue alŝutita'
DIM: Dimensioj
@ -59,9 +60,9 @@ eo:
ERRORNOTADMIN: 'Tiu uzanto ne estas administranto.'
ERRORNOTREC: 'Kiuj salutnomo / pasvorto ne estas rekonebla'
Boolean:
0: Ne
ANY: Ajna
1: Jes
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ eo:
ACCESSALLINTERFACES: 'Aliro al ĉiuj interfacoj de CMS'
ACCESSALLINTERFACESHELP: 'Nuligas pli specifajn alirajn agordojn.'
SAVE: Konservi
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ eo:
HELLO: Saluton
PASSWORD: Pasvorto
CheckboxField:
- Ne
- Jes
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Fermi Ŝprucfenestron'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ eo:
PLURALNAME: 'Datumaj Objektoj'
SINGULARNAME: 'Datuma Objekto'
Date:
DAY: tago
DAYS: tagoj
HOUR: horo
HOURS: horoj
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: minutoj
MONTH: monato
MONTHS: monatoj
SEC: sek
SECS: sekundoj
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: jaro
YEARS: jaroj
YEAR: year
YEARS: years
DateField:
NOTSET: 'ne agordita'
TODAY: hodiaŭ
@ -198,7 +202,8 @@ eo:
TEXT2: 'pasvorta reagorda ligilo'
TEXT3: por
Form:
FIELDISREQUIRED: '%s estas postulita'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'La enirita valoron ne unika'
@ -208,6 +213,7 @@ eo:
VALIDATOR: Validigilo
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: neniu
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ eo:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ eo:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ eo:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Ankri
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Almeti ligilon'
BUTTONREMOVELINK: 'Forigi ligilon'
@ -331,7 +341,10 @@ eo:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ eo:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Gravaj membroj en <em>CSV-formato</em> (perkome disigitaj valoroj ). <small><a href="#" class="toggle-advanced">Vidigi spertulan uzadon</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ eo:
ModelAdmin:
DELETE: Forigi
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importi el CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Bonvolu foliumi por CSV-dosiero importota'
@ -515,7 +529,20 @@ eo:
BtnImport: Importi
FileFieldLabel: 'CSV-dosiero <small>(Permesitaj sufiksoj: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Neniu Bildo Alŝutita'
SiteTree:
@ -551,6 +578,8 @@ eo:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ eo:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versioj

View File

@ -1,12 +1,13 @@
es:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
ALLOWEDEXTS: 'Extensiones permitidas'
NEWFOLDER: NuevaCarpeta
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Agregado por primera vez'
DIM: Dimensiones
FILENAME: 'Nombre del archivo'
FOLDER: Folder
FOLDER: Carpeta
LASTEDIT: 'Modificado por última vez'
OWNER: Propietario
SIZE: Tamaño
@ -14,19 +15,19 @@ es:
TYPE: Tipo
URL: URL
AssetUploadField:
ChooseFiles: 'Choose files'
DRAGFILESHERE: 'Drag files here'
DROPAREA: 'Drop Area'
EDITALL: 'Edit all'
EDITANDORGANIZE: 'Edit & organize'
EDITINFO: 'Edit files'
FILES: Files
FROMCOMPUTER: 'Choose files from your computer'
FROMCOMPUTERINFO: 'Upload from your computer'
ChooseFiles: 'Seleccione los archivos'
DRAGFILESHERE: 'Arrastre los archivos aqui'
DROPAREA: 'Area para soltar ficheros'
EDITALL: 'Editar todo'
EDITANDORGANIZE: 'Editar y organizar'
EDITINFO: 'Editar archivos'
FILES: Archivos
FROMCOMPUTER: 'Seleccione los archivos desde su ordenador'
FROMCOMPUTERINFO: 'Subir archivos desde tu ordenador'
TOTAL: Total
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
TOUPLOAD: 'Seleccione los archivos a subir...'
UPLOADINPROGRESS: 'Por favor espere .... carga en curso'
UPLOADOR: O
BBCodeParser:
ALIGNEMENT: Alineación
ALIGNEMENTEXAMPLE: 'alineado a la derecha'
@ -53,25 +54,27 @@ es:
UNORDEREDDESCRIPTION: 'Lista desordenada'
UNORDEREDEXAMPLE1: 'elemento 1 desordenado'
BackLink_Button.ss:
Back: Back
Back: Volver
BasicAuth:
ENTERINFO: 'Por favor introduzca su nombre de usuario y contraseña.'
ERRORNOTADMIN: 'Ese usuario no es un administrador.'
ERRORNOTREC: 'Ese nombre de usuario / contraseña no pudo ser reconocido.'
Boolean:
0: 'False'
ANY: Any
1: 'True'
ANY: Cualquiera
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
LOADING: Cargando...
REQUIREJS: 'El CMS requiere que tenga habilitado JavaScript .'
CMSMain:
ACCESS: 'Access to ''{title}'' section'
ACCESS: 'Acceder a la sección ''{title}'''
ACCESSALLINTERFACES: 'Acceder a todas las interfaces del CMS'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
ACCESSALLINTERFACESHELP: 'Anula configuraciones de acceso más específicas.'
SAVE: Guardar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
MENUTITLE: 'Mi Perfil'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'Has cambiado tu contraseña por'
CHANGEPASSWORDTEXT2: 'Ahora puede utilizar los siguientes datos de acreditación para iniciar sesión:'
@ -79,24 +82,24 @@ es:
HELLO: Hola
PASSWORD: Contraseña
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Cerrar Popup'
SUCCESSADD2: 'Added {name}'
SUCCESSADD2: 'Añadido {name}'
SUCCESSEDIT: 'Guardado %s %s %s'
ComplexTableField.ss:
ADDITEM: 'Agregar %s'
NOITEMSFOUND: 'No items found'
NOITEMSFOUND: 'Registros no encontrados'
SORTASC: 'Orden Ascendente'
SORTDESC: 'Orden Descendente'
ComplexTableField_popup.ss:
NEXT: Siguiente
PREVIOUS: Anterior
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
MAXIMUM: 'Passwords must be at most {max} characters long.'
ATLEAST: 'Las constraseñas deben tener al menos {min} caracteres de longitud.'
BETWEEN: 'Las contraseñas deben tener desde {min} a {max} caracteres de longitud.'
MAXIMUM: 'Las contraseñas deben tener como máximo {max} caracteres de longitud.'
SHOWONCLICKTITLE: 'Cambiar contraseña'
CreditCardField:
FIRST: primero
@ -109,192 +112,199 @@ es:
PLURALNAME: 'Objetos de Datos'
SINGULARNAME: 'Objeto de Datos'
Date:
DAY: día
DAYS: días
HOUR: hora
HOURS: horas
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins.
MONTH: mes
MONTHS: meses
SEC: seg.
SECS: segs.
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: año
YEARS: años
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: 'hace {difference}'
TIMEDIFFIN: 'en {difference}'
YEAR: year
YEARS: years
DateField:
NOTSET: 'sin establecer'
TODAY: hoy
VALIDDATEFORMAT2: 'Please enter a valid date format ({format})'
VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})'
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
VALIDDATEFORMAT2: 'Por favor, introduzca un formato de fecha válido ({format})'
VALIDDATEMAXDATE: 'La fecha tiene que ser mayor o igual a la fecha máxima permitida ({date})'
VALIDDATEMINDATE: 'La fecha tiene que ser posterior o coincidente a la fecha mínima permitida ({date})'
DatetimeField:
NOTSET: 'Not set'
NOTSET: 'No establecido'
Director:
INVALID_REQUEST: 'Invalid request'
INVALID_REQUEST: 'Solicitud no válida'
DropdownField:
CHOOSE: (Elegir)
EmailField:
VALIDATION: 'Please enter an email address'
VALIDATION: 'Introduzca una dirección de correo electrónico'
Email_BounceRecord:
PLURALNAME: 'Email Bounce Records'
SINGULARNAME: 'Email Bounce Record'
Enum:
ANY: Any
ANY: Cualquiera
File:
AviType: 'AVI video file'
AviType: 'Archivo de video AVI'
Content: Contenido
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
CssType: 'Archivo CSS'
DmgType: 'Image de disco de Apple'
DocType: 'Documento Word'
Filename: 'Nombre del archivo'
GifType: 'GIF image - good for diagrams'
GzType: 'GZIP compressed file'
HtlType: 'HTML file'
HtmlType: 'HTML file'
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
IcoType: 'Icon image'
JpgType: 'JPEG image - good for photos'
JsType: 'Javascript file'
Mp3Type: 'MP3 audio file'
MpgType: 'MPEG video file'
GifType: 'Imagen GIF - buena para diagramas'
GzType: 'Archivo comprimido GZIP'
HtlType: 'Archivo HTML'
HtmlType: 'Archivo HTML'
INVALIDEXTENSION: 'La extensión no es permitida (válidas: {extensions})'
INVALIDEXTENSIONSHORT: 'La extensión no es permitida'
IcoType: 'Imagen Icon'
JpgType: 'Imagen JPEG - buena para fotos'
JsType: 'Archivo Javascript'
Mp3Type: 'Archivo de audio MP3'
MpgType: 'Archivo de video MPEG'
NOFILESIZE: 'El tamaño del fichero es de cero bytes.'
NOVALIDUPLOAD: 'File is not a valid upload'
NOVALIDUPLOAD: 'El archivo no es válido para cargarlo'
Name: Nombre
PLURALNAME: Archivos
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
PdfType: 'Archivo PDF de Adobe Acrobat'
PngType: 'Imagen PNG - buen formato de propósito general'
SINGULARNAME: Archivo
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TiffType: 'Tagged image format'
TOOLARGE: 'El tamaño del archivo es demasiado grande, máximo permitido {size}'
TOOLARGESHORT: 'El tamaño del archivo supera {size}'
TiffType: 'Formato de imagen etiquetada'
Title: Título
WavType: 'WAV audo file'
XlsType: 'Excel spreadsheet'
ZipType: 'ZIP compressed file'
WavType: 'Archivo de audio WAV'
XlsType: 'Hoja de cálculo Excel'
ZipType: 'Archivo comprimido ZIP'
FileIFrameField:
ATTACH: 'Attach {type}'
ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.'
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
FILE: File
FROMCOMPUTER: 'From your Computer'
FROMFILESTORE: 'From the File Store'
NOSOURCE: 'Please select a source file to attach'
REPLACE: 'Replace {type}'
ATTACH: 'Adjunte {type}'
ATTACHONCESAVED: '{type}s puede ser adjuntado una vez hayas guardado el registro por primera vez.'
ATTACHONCESAVED2: 'Se pueden adjuntar archivos una vez se haya guardado el registro por primera vez.'
DELETE: 'Borrar {type}'
DISALLOWEDFILETYPE: 'No se permite cargar este tipo de archivo'
FILE: Archivo
FROMCOMPUTER: 'Desde tu ordenador'
FROMFILESTORE: 'Desde el Almacén de archivos'
NOSOURCE: 'Por favor, seleccione un archivo de origen para adjuntar'
REPLACE: 'Reemplace {type}'
FileIFrameField_iframe.ss:
TITLE: 'Image Uploading Iframe'
TITLE: 'Imagen para cargar Iframe'
Filesystem:
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
SYNCRESULTS: 'Sincronización completada: {createdcount} registros creados, {deletedcount} registros borrados'
Folder:
PLURALNAME: Folders
SINGULARNAME: Folder
PLURALNAME: Carpetas
SINGULARNAME: Carpeta
ForgotPasswordEmail.ss:
HELLO: Hola
TEXT1: 'Aquí tiene su'
TEXT2: 'enlace para restablecer contraseña'
TEXT3: para
Form:
FIELDISREQUIRED: 'se requiere llenar el campo %s'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Ir
VALIDATIONCREDITNUMBER: 'Por favor, asegúrese de que ha introducido el número de tarjeta de crédito correctamente {number}'
VALIDATIONNOTUNIQUE: 'El valor que se ha introducido no es único'
VALIDATIONPASSWORDSDONTMATCH: 'Las contraseñas no concuerdan'
VALIDATIONPASSWORDSNOTEMPTY: 'Las contraseñas no pueden estar vacías'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATIONSTRONGPASSWORD: 'Las contraseñas deben tener al menos un dígito y un carácter alfanumérico'
VALIDATOR: Validador
VALIDCURRENCY: 'Please enter a valid currency'
VALIDCURRENCY: 'Por favor, introduzca una moneda válida.'
FormField:
Example: 'e.g. %s'
NONE: ninguna
GridAction:
DELETE_DESCRIPTION: Delete
Delete: Delete
UnlinkRelation: Unlink
DELETE_DESCRIPTION: Borrar
Delete: Borrar
UnlinkRelation: Desenlazar
GridField:
Add: 'Add {name}'
Filter: Filter
FilterBy: 'Filter by '
Find: Find
LEVELUP: 'Level up'
LinkExisting: 'Link Existing'
NewRecord: 'New %s'
NoItemsFound: 'No items found'
PRINTEDAT: 'Printed at'
PRINTEDBY: 'Printed by'
PlaceHolder: 'Find {type}'
PlaceHolderWithLabels: 'Find {type} by {name}'
RelationSearch: 'Relation search'
ResetFilter: Reset
Add: 'Añadir {name}'
Filter: Filtro
FilterBy: 'Filtrar por'
Find: Buscar
LEVELUP: 'Subir nivel'
LinkExisting: 'Enlace Existente'
NewRecord: 'Nuevo %s'
NoItemsFound: 'No se encontraron registros'
PRINTEDAT: 'Impreso en'
PRINTEDBY: 'Impreso por'
PlaceHolder: 'Buscar {type}'
PlaceHolderWithLabels: 'Buscar {type} por {name}'
RelationSearch: 'Búsqueda de relación'
ResetFilter: Restaurar
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
DeletePermissionsFailure: 'Sin permiso para borrar'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
Delete: Delete
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
CancelBtn: Cancelar
Create: Crear
Delete: Borrar
DeletePermissionsFailure: 'Sin permiso para borrar'
Deleted: 'Borrado %s %s'
Save: Guardar
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
AddRole: 'Añadir una regla a este grupo'
Code: 'Código de grupo'
DefaultGroupTitleAdministrators: Administrators
DefaultGroupTitleContentAuthors: 'Content Authors'
DefaultGroupTitleAdministrators: Administradores
DefaultGroupTitleContentAuthors: 'Autores de contenido'
Description: Descripción
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
GroupReminder: 'Si selecciona un grupo padre, este grupo tomará todas sus funciones'
Locked: '¿Bloqueado?'
NoRoles: 'No roles found'
PLURALNAME: Groups
NoRoles: 'Reglas no encontradas'
PLURALNAME: Grupos
Parent: 'Grupo Padre'
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
RolesAddEditLink: 'Administrar reglas'
SINGULARNAME: Grupo
Sort: 'Orden de Clasificación'
has_many_Permissions: Permisos
many_many_Members: Miembros
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing groups are matched by their unique <em>Code</em> value, and updated with any new values from the imported file</li> <li>Group hierarchies can be created by using a <em>ParentCode</em> column.</li> <li>Permission codes can be assigned by the <em>PermissionCode</em> column. Existing permission codes are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} groups'
Help1: '<p>Importar uno o más grupos en formato <em>CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Uso avanzado</h4>\\n<ul>\\n<li>Columnas permitidas: <em>%s</em></li>\\n<li>Grupos existentes son relacionados por su valor <em>Code</em>, y actualizados con nuevos valores desde el archivo importado</li>\\n<li>Jerarquías de grupos pueden ser creadas usando una columna <em>ParentCode</em>.</li>\\n<li>Códigos de permiso pueden ser asignados por la columna <em>PermissionCode</em>. Códigos de permisos existentes no son borrados.</li>\\n</ul>\\n</div>"
ResultCreated: 'Creados {count} grupos'
ResultDeleted: 'Se eliminaron %d grupos'
ResultUpdated: 'Updated %d groups'
ResultUpdated: 'Actualizados grupos %d'
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
InfiniteLoopNotAllowed: 'Bucle infinito encontrado dentro de la jerarquía "{type}". Por favor, cambie el padre para resolver el problema'
HtmlEditorField:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ADDURL: 'Añadir URL'
ADJUSTDETAILSDIMENSIONS: 'Detalles &amp; dimensiones'
ANCHORVALUE: Ancla
BUTTONINSERT: Insert
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insertar
BUTTONINSERTLINK: 'Insertar enlace'
BUTTONREMOVELINK: 'Eliminar enlace'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
BUTTONUpdate: Actualizar
CAPTIONTEXT: 'Texto del título'
CSSCLASS: 'Alineación / estilo'
CSSCLASSCENTER: 'Centrado, en si mismo'
CSSCLASSLEFT: 'A la izquierda, con el texto flotando alrededor.'
CSSCLASSLEFTALONE: 'En la izquierda, en el suyo.'
CSSCLASSRIGHT: 'A la derecha, con el texto flotando alrededor.'
DETAILS: Details
DETAILS: Detalles
EMAIL: 'Dirección de E-mail'
FILE: Archivo
FOLDER: Carpeta
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
FindInFolder: 'Find in Folder'
IMAGEALT: 'Alternative text (alt)'
IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
FROMCMS: 'Desde el CMS'
FROMCOMPUTER: 'Desde tu ordenador'
FROMWEB: 'Desde la web'
FindInFolder: 'Buscar en carpeta'
IMAGEALT: 'Texto alternativo (alt)'
IMAGEALTTEXT: 'Texto alternativo (alt) - es mostrado si la imagen no puede ser visualizada'
IMAGEALTTEXTDESC: 'Mostrar a los lectores de pantalla o si la imagen no se puede visualizar'
IMAGEDIMENSIONS: Dimensiones
IMAGEHEIGHTPX: Alto
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGETITLE: 'Texto del título (tooltip) - para obtener más información acerca de la imagen'
IMAGETITLETEXT: 'Texto del título (tooltip)'
IMAGETITLETEXTDESC: 'Para obtener información adicional acerca de la imagen'
IMAGEWIDTHPX: Ancho
INSERTMEDIA: 'Insert Media'
INSERTMEDIA: 'Insertar Media'
LINK: 'Insertar/editar enlace para el texto resaltado'
LINKANCHOR: 'Ancla en esta página'
LINKDESCR: 'Descripción del Enlace'
@ -306,55 +316,58 @@ es:
LINKTO: 'Enlazar a'
PAGE: Página
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
URLNOTANOEMBEDRESOURCE: 'La URL ''{url}'' ''no se puede convertir en un recurso multimedia.'
UpdateMEDIA: 'Actualizar Media'
Image:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Archivos
SINGULARNAME: Archivo
ImageField:
IMAGE: Image
IMAGE: Imagen
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Archivos
SINGULARNAME: Archivo
Image_iframe.ss:
TITLE: 'Iframe para agregar imágenes'
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
CANT_REORGANISE: 'Usted no tiene permiso para modificar las páginas de nivel superior. Su modificación no se ha guardado.'
DELETED: Borrado
DropdownBatchActionsDefault: Acciones
HELP: Ayuda
PAGETYPE: 'Tipo de página:'
PERMAGAIN: 'Ha sido desconectado del CMS. Si quiere volver a entrar, introduzca su nombre de usuario y contraseña a continuación.'
PERMALREADY: 'Lamentablemente no puede acceder a esta parte del CMS. Si quiere entrar como alguien distinto, hágalo a continuación'
PERMDEFAULT: 'Introduzca su correo electrónico y su contraseña para acceder al CMS.'
PLEASESAVE: 'Por favor Guarde la Página: Esta página no se ha podido actualizar porque aún no ha sido salvada.'
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
PreviewButton: 'Vista previa'
REORGANISATIONSUCCESSFUL: 'Reorganizado el árbol del sitio con éxito.'
SAVEDUP: Guardado
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
Hello: Hola
LOGOUT: 'Finalizar la sesión'
LoginAttempt:
Email: 'Correo electrónico'
IP: 'Dirección IP'
PLURALNAME: 'Login Attempts'
SINGULARNAME: 'Login Attempt'
PLURALNAME: 'Intentos de ingreso'
SINGULARNAME: 'Intento de ingreso'
Status: Estado
Member:
ADDGROUP: 'Add group'
ADDGROUP: 'Añadir grupo'
BUTTONCHANGEPASSWORD: 'Cambiar Contraseña'
BUTTONLOGIN: 'Inicie Sesión'
BUTTONLOGINOTHER: 'Inicie sesión como otra persona'
BUTTONLOSTPASSWORD: 'He perdido mi contraseña'
CANTEDIT: 'You don''t have permission to do that'
CANTEDIT: 'No tiene permiso para hacer eso'
CONFIRMNEWPASSWORD: 'Confirmar Nueva Contraseña'
CONFIRMPASSWORD: 'Confirmar Contraseña'
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 'Default Admin'
DefaultDateTime: default
DATEFORMAT: 'Formato de fecha'
DefaultAdminFirstname: 'Administrador por defecto'
DefaultDateTime: 'por defecto'
EMAIL: E-mail
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
EMPTYNEWPASSWORD: 'La nueva contraseña no puede estar vacía, por favor inténtalo de nuevo'
ENTEREMAIL: 'Por favor, introduce un correo electrónico para obtener un enlace con el que cambiar la contraseña'
ERRORLOCKEDOUT: 'Su cuenta ha sido inhabilitada temporalmente porque ha habido demasiados intentos fallidos de conectarse. Por favor, intente de nuevo en 20 minutos.'
ERRORNEWPASSWORD: 'Ha introducido su nueva contraseña de distinta manera, intente de nuevo'
@ -362,8 +375,8 @@ es:
ERRORWRONGCRED: 'No parece ser la dirección de e-mail o contraseña correcta. Por favor intente de nuevo.'
FIRSTNAME: Nombre(s)
INTERFACELANG: 'Lenguaje de la Interfaz'
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
INVALIDNEWPASSWORD: 'No podemos aceptar este password: {password}'
LOGGEDINAS: 'Estás conectado como {name}.'
NEWPASSWORD: 'Nueva Contraseña'
PASSWORD: Contraseña
PLURALNAME: Miembros
@ -372,10 +385,10 @@ es:
SUBJECTPASSWORDCHANGED: 'Su contraseña ha sido cambiada'
SUBJECTPASSWORDRESET: 'Enlace para restaurar su contraseña'
SURNAME: Apellidos
TIMEFORMAT: 'Time format'
TIMEFORMAT: 'Formato de tiempo'
VALIDATIONMEMBEREXISTS: 'Ya existe un miembro con este email.'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
ValidationIdentifierFailed: 'No se puede sobrescribir el miembro existente #{id} con identificador idéntico ({name} = {value}))'
WELCOMEBACK: 'Bienvenido de nuevo, {firstname}'
YOUROLDPASSWORD: 'Su contraseña anterior'
belongs_many_many_Groups: Grupos
db_LastVisited: 'Fecha de la Última Visita'
@ -387,98 +400,99 @@ es:
MemberAuthenticator:
TITLE: 'E-mail &amp; Contraseña'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
'APPLY FILTER': 'Apply Filter'
Custom: Custom
DATEFORMATBAD: 'Date format is invalid'
DAYNOLEADING: 'Day of month without leading zero'
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
FOURDIGITYEAR: 'Four-digit year'
FULLNAMEMONTH: 'Full name of month (e.g. June)'
HOURNOLEADING: 'Hour without leading zero'
MINUTENOLEADING: 'Minute without leading zero'
MONTHNOLEADING: 'Month digit without leading zero'
Preview: Preview
SHORTMONTH: 'Short name of month (e.g. Jun)'
TOGGLEHELP: 'Toggle formatting help'
TWODIGITDAY: 'Two-digit day of month'
TWODIGITHOUR: 'Two digits of hour (00 through 23)'
TWODIGITMINUTE: 'Two digits of minute (00 through 59)'
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
AMORPM: 'AM (antes del mediodía) o PM (después del mediodía)'
'APPLY FILTER': 'Aplicar filtro'
Custom: Personalizable
DATEFORMATBAD: 'El formato de fecha es inválido'
DAYNOLEADING: 'Día del mes sin cero inicial'
DIGITSDECFRACTIONSECOND: 'Uno o más dígitos representando una fracción decimal de un segundo'
FOURDIGITYEAR: 'Año de cuatro dígitos'
FULLNAMEMONTH: 'Nombre completo del mes (ej.Junio)'
HOURNOLEADING: 'Hora sin ceros a la izquierda'
MINUTENOLEADING: 'Minutos sin cero inicial'
MONTHNOLEADING: 'Dígitos mes sin cero inicial'
Preview: 'Vista previa'
SHORTMONTH: 'Nombre abreviado del mes (por ejemplo, Jun)'
TOGGLEHELP: 'Cambia el formato de ayuda'
TWODIGITDAY: 'Día de dos dígitos del mes'
TWODIGITHOUR: 'Dos dígitos de hora (00 a 23)'
TWODIGITMINUTE: 'Dos dígitos en minutos (00 a 59)'
TWODIGITMONTH: 'Meses con dos dígitos (01=Enero,etc.)'
TWODIGITSECOND: 'Segundos con dos dígitos (00 a 59)'
TWODIGITYEAR: 'Año de dos dígitos'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} members'
Help1: '<p>Importar usuarios en <em>formato CSV</em> (valores separados por coma). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Uso avanzado</h4>\\n<ul>\\n<li>Columnas permitidas: <em>%s</em></li>\\n<li>Usuarios existentes son relacionados por su propiedad <em>Code</em>, y actualizados con nuevos valores desde el archivo importado.</li>\\n<li>Los grupos pueden ser asignaods por la columna <em>Groups</em>. Los grupos son identificados por su propiedad <em>Code</em>,\\nmúltiples grupos pueden ser separados por comas. Los grupos de miembros existentes no son borrados.</li>\\n</ul>\\n</div>"
ResultCreated: 'Creados {count} miembros'
ResultDeleted: 'Se eliminaron %d miembros'
ResultNone: 'No changes'
ResultUpdated: 'Updated {count} members'
ResultNone: 'No hay cambios'
ResultUpdated: 'Actualizados {count} miembros'
MemberPassword:
PLURALNAME: 'Member Passwords'
SINGULARNAME: 'Member Password'
PLURALNAME: 'Contraseñas de los miembros'
SINGULARNAME: 'Contraseña del miembro'
MemberTableField: null
ModelAdmin:
DELETE: Eliminar
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
DELETEDRECORDS: 'Borrados {count} registros.'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importar desde CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
IMPORTEDRECORDS: 'Importados {count} registros.'
NOCSVFILE: 'Por favor, selecciona un archivo CSV para importar'
NOIMPORT: 'Nada para importar'
RESET: Reset
Title: 'Data Models'
UPDATEDRECORDS: 'Updated {count} records.'
RESET: Restablecer
Title: 'Modelos de datos'
UPDATEDRECORDS: 'Actualizados {count} registros.'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: 'Database columns'
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: Relations
IMPORTSPECTITLE: 'Specification for %s'
IMPORTSPECFIELDS: 'Columnas de la base de datos'
IMPORTSPECLINK: 'Mostrar especificación para %s'
IMPORTSPECRELATIONS: Relaciones
IMPORTSPECTITLE: 'Especificación para %s'
ModelAdmin_Tools.ss:
FILTER: Filter
IMPORT: Import
FILTER: Filtrar
IMPORT: Importar
ModelSidebar.ss:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
IMPORT_TAB_HEADER: Importar
SEARCHLISTINGS: Buscar
MoneyField:
FIELDLABELAMOUNT: Amount
FIELDLABELCURRENCY: Currency
FIELDLABELAMOUNT: Cantidad
FIELDLABELCURRENCY: Moneda
NullableField:
IsNullLabel: 'Is Null'
IsNullLabel: 'Es Nulo'
NumericField:
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
VALIDATION: '''{value}'' no es un número, sólo números pueden ser aceptados para este campo'
Pagination:
Page: Page
View: View
Page: Página
View: Vista
Permission:
AdminGroup: Administrator
CMS_ACCESS_CATEGORY: 'CMS Access'
AdminGroup: Administrador
CMS_ACCESS_CATEGORY: 'Acceso al CMS'
FULLADMINRIGHTS: 'Todos los derechos administrativos'
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
PLURALNAME: Permissions
SINGULARNAME: Permission
FULLADMINRIGHTS_HELP: 'Implica y anula todos los demás permisos asignados.'
PLURALNAME: Permisos
SINGULARNAME: Permiso
PermissionCheckboxSetField:
AssignedTo: 'assigned to "{title}"'
FromGroup: 'inherited from group "{title}"'
FromRole: 'inherited from role "{title}"'
FromRoleOnGroup: 'inherited from role "%s" on group "%s"'
AssignedTo: 'asignado a "{title}"'
FromGroup: 'heredado desde el grupo "{title}"'
FromRole: 'heredado desde la regla "{title}"'
FromRoleOnGroup: 'heredado desde la regla "%s" del grupo "%s"'
PermissionRole:
OnlyAdminCanApply: 'Only admin can apply'
PLURALNAME: Roles
SINGULARNAME: Role
Title: Title
OnlyAdminCanApply: 'Sólo el administrador puede aplicar'
PLURALNAME: Reglas
SINGULARNAME: Regla
Title: Título
PermissionRoleCode:
PLURALNAME: 'Permission Role Cods'
SINGULARNAME: 'Permission Role Code'
PLURALNAME: 'Códigos de las reglas de permisos'
SINGULARNAME: 'Códigos de las regla de permisos'
Permissions:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PERMISSIONS_CATEGORY: 'Reglas y permisos de acceso'
UserPermissionsIntro: 'Asignar grupos a este usuario ajustará los permisos que tienen. Vea la sección de grupos para obtener información sobre permisos en grupos individuales.'
PhoneNumberField:
VALIDATION: 'Por favor introduzca un número de teléfono válido'
RelationComplexTableField.ss:
ADD: Añadir
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
CSVEXPORT: 'Exportar a CSV'
NOTFOUND: 'Registros no encontrados'
Security:
ALREADYLOGGEDIN: 'No tiene acceso a esta página. Si posee otra cuenta con los privilegios para acceder a esta página, puede iniciar sesión a continuación.'
BUTTONSEND: 'Envíenme el enlace para restaurar la contraseña'
@ -489,88 +503,106 @@ es:
LOGGEDOUT: 'Ha terminado su sesión. Si desea iniciar sesión nuevamente, introduzca sus datos de acreditación a continuación.'
LOGIN: Entrar
NOTEPAGESECURED: 'Esa página está protegida. Introduzca sus datos de acreditación a continuación y lo enviaremos a ella en un momento.'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETLINKINVALID: '<p>El enlace para restablecer la contraseña es inválido o ha expirado.</p><p>Usted puede solicitar uno nuevo <a href="{link1}">aqui</a> o cambiar su contraseña después de que se haya <a href="{link2}">conectado</a>.</p>'
NOTERESETPASSWORD: 'Introduzca su dirección de e-mail, y le enviaremos un enlace, con el cual podrá restaurar su contraseña'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
PASSWORDSENTHEADER: 'Un enlace para restablecer la contraseña ha sido enviado a ''{email}'''
PASSWORDSENTTEXT: 'Gracias! Un enlace para restablecer la contraseña ha sido enviado a ''{email}'', siempre que una cuenta exista para la dirección de email indicada.'
SecurityAdmin:
ACCESS_HELP: 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.'
APPLY_ROLES: 'Apply roles to groups'
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
ACCESS_HELP: 'Permitir ver, añadir y editar usuarios, así como asignarles permisos y reglas.'
APPLY_ROLES: 'Aplicar reglas a grupos'
APPLY_ROLES_HELP: 'Posibilidad de editar las reglas asignados a un grupo. Requiere el permiso de "acceso a la sección ''Usuarios''" .'
EDITPERMISSIONS: 'Editar permisos y direcciones IP de cada grupo'
EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.'
EDITPERMISSIONS_HELP: 'Posibilidad de editar los permisos y direcciones IP para un grupo. Requiere el permiso de "Acceso a la sección ''Seguridad '' ".'
GROUPNAME: 'Nombre del grupo'
IMPORTGROUPS: 'Import groups'
IMPORTUSERS: 'Import users'
IMPORTGROUPS: 'Importar grupos'
IMPORTUSERS: 'Importar usuarios'
MEMBERS: Miembros
MENUTITLE: Security
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
MENUTITLE: Seguridad
MemberListCaution: 'Precaución: Borrar miembros de esta lista también los eliminará de todos los grupos y la base de datos'
NEWGROUP: 'Nuevo grupo'
PERMISSIONS: Permisos
ROLES: Roles
ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.<br />They are inherited from parent groups if required.'
TABROLES: Roles
Users: Users
ROLES: Reglas
ROLESDESCRIPTION: 'Las reglas son conjuntos predefinidos de permisos, y pueden ser asignadas a grupos.<br /> Pueden ser heredadas desde grupos padres si es necesario.'
TABROLES: Reglas
Users: Usuarios
SecurityAdmin_MemberImportForm:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
BtnImport: 'Importar desde CSV'
FileFieldLabel: 'Archivo CSV <small>(Permitidas extensiones: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Editar
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No se han agregado imágenes'
SiteTree:
TABMAIN: Principal
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
ISREQUIRED: 'En %s ''%s'' es requerido'
TableField.ss:
ADD: 'Añadir una nueva línea'
ADDITEM: 'Add %s'
ADDITEM: 'Añadir %s'
TableListField:
CSVEXPORT: 'Exportar a CSV'
PRINT: Imprimir
Print: Print
SELECT: 'Select:'
Print: Imprimir
SELECT: Seleccionar
TableListField.ss:
NOITEMSFOUND: 'No items found'
SORTASC: 'Sort in ascending order'
SORTDESC: 'Sort in descending order'
NOITEMSFOUND: 'Registros no encontrados'
SORTASC: 'Clasificar en orden ascendente'
SORTDESC: 'Clasificar en orden descendente'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
TO: to
DISPLAYING: Mostrando
OF: de
TO: a
VIEWFIRST: 'Ver primero'
VIEWLAST: 'Ver último'
VIEWNEXT: 'Ver siguiente'
VIEWPREVIOUS: 'Ver anterior'
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
VALIDATEFORMAT: 'Por favor, introduzca un formato de tiempo válido ({format})'
ToggleField:
LESS: menos
MORE: más
UploadField:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
DROPFILE: 'drop a file'
DROPFILES: 'drop files'
Dimensions: Dimensions
EDIT: Edit
EDITINFO: 'Edit this file'
FIELDNOTSET: 'File information not found'
FROMCOMPUTER: 'From your computer'
FROMCOMPUTERINFO: 'Select from files'
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
ATTACHFILE: 'Adjuntar un archivo'
ATTACHFILES: 'Adjuntar ficheros'
AttachFile: 'Adjuntar archivo(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Borrar desde archivos'
DELETEINFO: 'Borrar permanentemente este archivo del almacén de archivos'
DOEDIT: Guardar
DROPFILE: 'Soltar un fichero'
DROPFILES: 'soltar archivos'
Dimensions: Dimensiones
EDIT: Editar
EDITINFO: 'Editar este archivo'
FIELDNOTSET: 'No ha sido encontrada la información del archivo'
FROMCOMPUTER: 'Desde tu ordenador'
FROMCOMPUTERINFO: 'Seleccione desde los archivos'
FROMFILES: 'Desde archivos'
HOTLINKINFO: 'Información: Esta imagen será hotlinked. Asegúrese de que tiene los permisos del sitio original del creador para hacerlo.'
MAXNUMBEROFFILES: 'El número máximo de {count} archivo(s) ha sido excedido.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Sólo puede cargar {count} archivos'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Eliminar
REMOVEERROR: 'Error borrando el fichero'
REMOVEINFO: 'Eliminar este archivo de este lugar, pero no eliminarlo del almacén de archivos'
STARTALL: 'Iniciar todos'
STARTALLINFO: 'Iniciar todas las subidas de archivos'
Saved: Guardado
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiones

View File

@ -2,6 +2,7 @@ es_AR:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nueva Carpeta'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Agregado por primera vez'
DIM: Dimensiones
@ -59,9 +60,9 @@ es_AR:
ERRORNOTADMIN: 'El usuario no es administrador.'
ERRORNOTREC: 'No se reconoce el nombre de usuario / contraseña'
Boolean:
0: No
ANY: Cualquiera
1:
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ es_AR:
ACCESSALLINTERFACES: 'Acceder a todas las secciones del CMS'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Guardar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ es_AR:
HELLO: Hola
PASSWORD: Contraseña
CheckboxField:
- No
- No
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Cerrar Ventana Emergente'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ es_AR:
PLURALNAME: 'Objetos de Datos'
SINGULARNAME: 'Objeto de Datos'
Date:
DAY: día
DAYS: días
HOUR: hora
HOURS: horas
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: min
MONTH: mes
MONTHS: meses
SEC: seg
SECS: segs
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: año
YEARS: años
YEAR: year
YEARS: years
DateField:
NOTSET: 'no especificada'
TODAY: hoy
@ -198,7 +202,8 @@ es_AR:
TEXT2: 'vínculo para restablecer la contraseña'
TEXT3: para
Form:
FIELDISREQUIRED: '%s es obligatorio.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'El valor ingresado no es único'
@ -208,6 +213,7 @@ es_AR:
VALIDATOR: Verificador
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: ninguna
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ es_AR:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ es_AR:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ es_AR:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anclar
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insertar enlace'
BUTTONREMOVELINK: 'Quitar enlace'
@ -331,7 +341,10 @@ es_AR:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ es_AR:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Importar miembros en <em>formato CSV</em> (valores separados por comas). <small><a href="#" class="toggle-advanced">Mostrar uso avanzado</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ es_AR:
ModelAdmin:
DELETE: Eliminar
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importar desde CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Por favor explorar por un archivo CVS para importar'
@ -515,7 +529,20 @@ es_AR:
BtnImport: importar
FileFieldLabel: 'Archivo CSV <small>(extensiones permitidas: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'La Imagen No se Cargó'
SiteTree:
@ -551,6 +578,8 @@ es_AR:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ es_AR:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiones

View File

@ -2,6 +2,7 @@ es_MX:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nueva Carpeta'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Agregado por primera vez'
DIM: Dimensiones
@ -59,9 +60,9 @@ es_MX:
ERRORNOTADMIN: 'El usuario no es administrador.'
ERRORNOTREC: 'No se reconoce el nombre de usuario / contraseña'
Boolean:
0: Falso
ANY: Cualquiera
1: Verdadero
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Cargando...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ es_MX:
ACCESSALLINTERFACES: 'Acceder a todas las secciones del CMS'
ACCESSALLINTERFACESHELP: 'Anula la configuració de acceso más específica.'
SAVE: Guardar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ es_MX:
HELLO: Hey
PASSWORD: Contraseña
CheckboxField:
- Falso
- Verdadero
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Cerrar Mensaje Emergente'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ es_MX:
PLURALNAME: 'Datos de objetos'
SINGULARNAME: 'Datos del objeto'
Date:
DAY: día
DAYS: días
HOUR: hora
HOURS: horas
MIN: minuto
MINS: minutos
MONTH: mes
MONTHS: meses
SEC: segundo
SECS: segundos
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} atrás'
TIMEDIFFIN: 'en {difference}'
YEAR: año
YEARS: años
YEAR: year
YEARS: years
DateField:
NOTSET: 'no especificada'
TODAY: ahora
@ -198,7 +202,8 @@ es_MX:
TEXT2: 'vínculo para restablecer la contraseña'
TEXT3: para
Form:
FIELDISREQUIRED: '%s es obligatorio'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'El valor ingresado no es único'
@ -208,6 +213,7 @@ es_MX:
VALIDATOR: Verificador
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: Ninguno
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ es_MX:
ResetFilter: Resetear
GridFieldAction_Delete:
DeletePermissionsFailure: 'No borrar permisos'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ es_MX:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Agrega un rol para este grupo'
@ -267,6 +276,7 @@ es_MX:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anclar
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insertar
BUTTONINSERTLINK: 'Insertar enlace'
BUTTONREMOVELINK: 'Quitar enlace'
@ -331,6 +341,9 @@ es_MX:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: desconocido
LeftAndMain_Menu.ss:
Hello: Hi
@ -407,6 +420,7 @@ es_MX:
TWODIGITMONTH: 'Mes de 2 dígitos (01=Enero, etc.)'
TWODIGITSECOND: 'Dos dígitos de los segundos (00 a 59)'
TWODIGITYEAR: 'Año en 2 dígitos'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: "<p>Importar usurious en <em>format CSV</em> (valores separados por comas). <small><a href=\"#\" class=\"toggle-advanced\">Mostrar uso avanzado</a></small></p>\\n"
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ es_MX:
ModelAdmin:
DELETE: Eliminar
DELETEDRECORDS: 'Borrados {count} registros'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importar desde CSV'
IMPORTEDRECORDS: 'Importados {count} registros'
NOCSVFILE: 'Por favor navegue hasta el archivo CSV a importar'
@ -515,7 +529,20 @@ es_MX:
BtnImport: Importar
FileFieldLabel: 'Archivo CSV <small>(Extensiones permitidas: *.csv)'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No subió la Imagen'
SiteTree:
@ -551,6 +578,8 @@ es_MX:
ATTACHFILE: 'Adjuntar un archivo'
ATTACHFILES: 'Adjuntar archivos'
AttachFile: 'Adjuntar archivo(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Eliminar permanentemente este archivo desde el almacén'
DOEDIT: Guardar
@ -565,12 +594,15 @@ es_MX:
FROMFILES: 'Desde archivos'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Máximo número {count} de archivos sobrepasado'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Solo puedes subir {count} archivos'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remover
REMOVEERROR: 'Error removiendo archivo'
REMOVEINFO: 'Remover este archivo de aquí, pero no borrarlo del almacén de archivos'
STARTALL: 'Comenzar todas'
STARTALLINFO: 'Start all uploads'
Saved: Guardado
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiones

View File

@ -1,43 +1,44 @@
et_EE:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
ALLOWEDEXTS: 'Lubatud laiendid'
NEWFOLDER: 'Uus kaust'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Esmakordselt üles laaditud'
DIM: Mõõtmed
FILENAME: Failinimi
FOLDER: Folder
FOLDER: Kaust
LASTEDIT: 'Viimati muudetud'
OWNER: Omanik
SIZE: Suurus
SIZE: Failisuurus
TITLE: Pealkiri
TYPE: Tüüp
URL: Aadress
TYPE: Failitüüp
URL: URL
AssetUploadField:
ChooseFiles: 'Choose files'
DRAGFILESHERE: 'Lohista failid siia'
DROPAREA: 'Drop Area'
EDITALL: 'Edit all'
EDITANDORGANIZE: 'Edit & organize'
EDITINFO: 'Edit files'
FILES: Files
FROMCOMPUTER: 'Choose files from your computer'
FROMCOMPUTERINFO: 'Upload from your computer'
TOTAL: Total
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
ChooseFiles: 'Valige failid'
DRAGFILESHERE: 'Lohistage failid siia'
DROPAREA: Pukseerimisala
EDITALL: 'Muuda kõiki'
EDITANDORGANIZE: 'Muuda ja korralda'
EDITINFO: 'Muuda faile'
FILES: Failid
FROMCOMPUTER: 'Valige fail arvutist'
FROMCOMPUTERINFO: 'Laadige üles arvutist'
TOTAL: Kokku
TOUPLOAD: 'Valige üleslaadimiseks failid...'
UPLOADINPROGRESS: 'Oodake... Üleslaadimine on pooleli'
UPLOADOR: VÕI
BBCodeParser:
ALIGNEMENT: Joondus
ALIGNEMENTEXAMPLE: 'Joondus paremale'
BOLD: 'Paks tekst'
BOLDEXAMPLE: Paks
CODE: 'Koodi plokk'
CODE: Koodiplokk
CODEDESCRIPTION: 'Kodederimata koodi plokk'
CODEEXAMPLE: 'Koodi plokk'
COLORED: 'Värvitud tekst'
COLORED: 'Värviline tekst'
COLOREDEXAMPLE: 'Sinine tekst'
EMAILLINK: 'Emaili aadress'
EMAILLINK: 'Saada link e-posti teel'
EMAILLINKDESCRIPTION: 'Loo link emaili aadrssile'
IMAGE: Pilt
IMAGEDESCRIPTION: 'Näita pilti oma postituses'
@ -59,19 +60,21 @@ et_EE:
ERRORNOTADMIN: 'Antud kasutaja ei ole administraator.'
ERRORNOTREC: 'See kasutajanimi / parool ei ole tunnustatud'
Boolean:
0: 'False'
ANY: Any
1: 'True'
ANY: Kõik
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
LOADING: Laadimine...
REQUIREJS: 'Sisuhaldussüsteem nõuab, et JavaScript oleks lubatud.'
CMSMain:
ACCESS: 'Juurdepääs jaotisele ''{title}'''
ACCESSALLINTERFACES: 'Ligipääs kõigile Sisuhalduse kasutajaliidestele'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
ACCESSALLINTERFACESHELP: 'Alistab täpsemad juurdepääsuseaded.'
SAVE: Salvesta
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
MENUTITLE: 'Minu profiil'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'Vahetasid oma parooli lehel'
CHANGEPASSWORDTEXT2: 'Nüüd võid kasutada sisse logimiseks järgnevaid andmeid:'
@ -79,28 +82,28 @@ et_EE:
HELLO: Tere
PASSWORD: Parool
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Sulge hüpikaken'
SUCCESSADD2: 'Added {name}'
SUCCESSADD2: '{name} on lisatud'
SUCCESSEDIT: 'Salvestatud %s %s %s'
ComplexTableField.ss:
ADDITEM: 'Lisa %s'
NOITEMSFOUND: 'No items found'
NOITEMSFOUND: 'Üksusi ei leitud'
SORTASC: 'Sorteeri kasvavalt'
SORTDESC: 'Sorteeri kahanevalt'
ComplexTableField_popup.ss:
NEXT: Eelmine
PREVIOUS: Järgmine
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
MAXIMUM: 'Passwords must be at most {max} characters long.'
ATLEAST: 'Parool peab olema vähemalt {min} märki pikk.'
BETWEEN: 'Parooli pikkus peab olema vahemikus {min}{max} märki.'
MAXIMUM: 'Parool võib olla kuni {max} märki pikk.'
SHOWONCLICKTITLE: 'Muuda parool'
CreditCardField:
FIRST: esimene
FOURTH: Neljas
FOURTH: neljas
SECOND: teine
THIRD: kolmas
CurrencyField:
@ -109,192 +112,199 @@ et_EE:
PLURALNAME: 'Andme objektid'
SINGULARNAME: 'Andme objekt'
Date:
DAY: Päev
DAYS: Päevad
HOUR: Tund
HOURS: Tunnid
MIN: Minut
MINS: Minutid
MONTH: Kuu
MONTHS: Kuud
SEC: Sekund
SECS: Sekundit
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: Aasta
YEARS: Aastad
YEAR: year
YEARS: years
DateField:
NOTSET: 'Pole seadistatud'
TODAY: Täna
VALIDDATEFORMAT2: 'Please enter a valid date format ({format})'
VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})'
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
VALIDDATEFORMAT2: 'Sisestage sobivas vormingus kuupäev ({format})'
VALIDDATEMAXDATE: 'Teie kuupäev peab oleme lubatud kuupäevast ({date}) varasem või ühtima sellega.'
VALIDDATEMINDATE: 'Teie kuupäev peab oleme lubatud kuupäevast ({date}) hilisem või ühtima sellega.'
DatetimeField:
NOTSET: Määramata
Director:
INVALID_REQUEST: 'Invalid request'
INVALID_REQUEST: 'Sobimatu taotlus'
DropdownField:
CHOOSE: (Vali)
EmailField:
VALIDATION: 'Please enter an email address'
VALIDATION: 'Sisestage e-posti aadress'
Email_BounceRecord:
PLURALNAME: 'Email Bounce Records'
SINGULARNAME: 'Email Bounce Record'
PLURALNAME: 'Tagastatud e-posti kirjed'
SINGULARNAME: 'Tagastatud e-posti kirje'
Enum:
ANY: Any
ANY: Kõik
File:
AviType: 'AVI videofail'
AviType: AVI-videofail
Content: Sisu
CssType: 'CSS file'
CssType: CSS-fail
DmgType: 'Apple disk image'
DocType: 'Wordi dokument'
Filename: Failinimi
GifType: 'GIF image - good for diagrams'
GzType: 'GZIP tihendatud fail'
HtlType: 'HTML fail'
HtmlType: 'HTML fail'
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
IcoType: 'Icon image'
JpgType: 'JPEG pilt - hea fotode jaoks'
GifType: 'GIF-kujutis hea diagrammide jaoks'
GzType: 'Tihendatud GZIP-fail'
HtlType: HTML-fail
HtmlType: HTML-fail
INVALIDEXTENSION: 'Laiend ei ole lubatud (sobimatud: {extensions})'
INVALIDEXTENSIONSHORT: 'Laiend ei ole lubatud'
IcoType: Ikoonipilt
JpgType: 'JPEG-kujutis hea fotode jaoks'
JsType: 'Javascripti fail'
Mp3Type: 'MP3 helifail'
MpgType: 'MPEG videofail'
NOFILESIZE: 'Faili suurus on null bitti.'
NOVALIDUPLOAD: 'File is not a valid upload'
Mp3Type: MP3-helifail
MpgType: MPEG-videofail
NOFILESIZE: 'Faili suurus on null baiti.'
NOVALIDUPLOAD: 'Fail ei ole üleslaadimiseks sobiv'
Name: Nimi
PLURALNAME: Failid
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
PdfType: 'Adobe Acrobati PDF-fail'
PngType: 'PNG-kujutis hea üldotstarbelise vormingu jaoks'
SINGULARNAME: Fail
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TOOLARGE: 'Fail on liiga suur, lubatud on maksimaalselt {size}'
TOOLARGESHORT: 'Fail on suurem kui {size}'
TiffType: 'Tagged image format'
Title: Pealkiri
WavType: 'WAV helifail'
WavType: WAV-helifail
XlsType: 'Exceli arvutustabel'
ZipType: 'ZIP tihendatud fail'
ZipType: 'Tihendatud ZIP-fail'
FileIFrameField:
ATTACH: 'Attach {type}'
ATTACH: 'Manusta {type}'
ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.'
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
FILE: File
FROMCOMPUTER: 'From your Computer'
FROMFILESTORE: 'From the File Store'
NOSOURCE: 'Please select a source file to attach'
REPLACE: 'Replace {type}'
ATTACHONCESAVED2: 'Faile saab manustada pärast seda, kui olete kirje salvestanud.'
DELETE: 'Kustuta {type}'
DISALLOWEDFILETYPE: 'Seda failitüüpi ei ole lubatud üles laadida'
FILE: Fail
FROMCOMPUTER: 'Teie arvutist'
FROMFILESTORE: Failihoidlast
NOSOURCE: 'Valige manustamiseks lähtefail'
REPLACE: 'Asenda {type}'
FileIFrameField_iframe.ss:
TITLE: 'Image Uploading Iframe'
TITLE: 'Kujutise üleslaadimise IFrame'
Filesystem:
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
SYNCRESULTS: 'Sünkroonimine on lõpetatud: {createdcount} loodud üksust, {deletedcount} kustutatud üksust'
Folder:
PLURALNAME: Kataloogid
SINGULARNAME: Folder
PLURALNAME: Kaustad
SINGULARNAME: Kaust
ForgotPasswordEmail.ss:
HELLO: Tere
TEXT1: 'Siin on sinu'
TEXT2: 'Parooli tühistus link'
TEXT3: -
Form:
FIELDISREQUIRED: '%s on vajalik'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Mine
VALIDATIONCREDITNUMBER: 'Veenduge, et sisestasite krediitkaardinumbri {number} õigesti'
VALIDATIONNOTUNIQUE: 'Sisestatud väärtus ei ole unikaalne'
VALIDATIONPASSWORDSDONTMATCH: 'Paroolid ei katu'
VALIDATIONPASSWORDSNOTEMPTY: 'Paroolid ei saa olla tühjad'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATIONSTRONGPASSWORD: 'Paroolis peab olema vähemalt üks number ja üks tähestikutäht'
VALIDATOR: Kinnitaja
VALIDCURRENCY: 'Please enter a valid currency'
VALIDCURRENCY: 'Sisestage kehtiv valuuta'
FormField:
Example: 'e.g. %s'
NONE: puudub
GridAction:
DELETE_DESCRIPTION: Kustuta
Delete: Delete
UnlinkRelation: Unlink
Delete: Kustuta
UnlinkRelation: 'Tühista linkimine'
GridField:
Add: 'Add {name}'
Filter: Filter
FilterBy: 'Filter by '
Find: Find
Add: 'Lisa {name}'
Filter: Filtreeri
FilterBy: Filtreerimisalus
Find: Otsi
LEVELUP: 'Level up'
LinkExisting: 'Link Existing'
NewRecord: 'New %s'
NoItemsFound: 'Ei leitud ühtegi kannet'
PRINTEDAT: 'Printed at'
PRINTEDBY: 'Printed by'
PlaceHolder: 'Find {type}'
LinkExisting: 'Lingi olemasolev'
NewRecord: 'Uus %s'
NoItemsFound: 'Üksusi ei leitud'
PRINTEDAT: 'Printimiskoht:'
PRINTEDBY: Printis
PlaceHolder: 'Leia {type}'
PlaceHolderWithLabels: 'Find {type} by {name}'
RelationSearch: 'Relation search'
ResetFilter: Reset
RelationSearch: 'Seose otsing'
ResetFilter: Lähtesta
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
DeletePermissionsFailure: 'Kustutamisõigused puuduvad'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Katkesta
Create: Create
Delete: Delete
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
CancelBtn: Loobu
Create: Loo
Delete: Kustuta
DeletePermissionsFailure: 'Kustutamisõigused puuduvad'
Deleted: '%s %s on kustutatud'
Save: Salvesta
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
AddRole: 'Lisa selle grupi jaoks rolle'
Code: 'Grupi kood'
DefaultGroupTitleAdministrators: Administrators
DefaultGroupTitleContentAuthors: 'Content Authors'
DefaultGroupTitleAdministrators: Administraatorid
DefaultGroupTitleContentAuthors: 'Sisu autorid'
Description: Kirjeldus
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
GroupReminder: 'Kui valite vanemgrupi, kaotab see grupp kõik rollid'
Locked: 'Lukus?'
NoRoles: 'No roles found'
PLURALNAME: Groups
NoRoles: 'Ühtegi rolli ei leitud'
PLURALNAME: Grupid
Parent: 'Vanem grupp'
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
RolesAddEditLink: 'Halda rolle'
SINGULARNAME: Grupp
Sort: Järjesta
has_many_Permissions: Õigused
many_many_Members: Liikmed
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help1: '<p>Impordi üks või rohkem gruppe <em>CSV</em>-vormingus (komaeraldusega väärtused). <small><a href="#" class="toggle-advanced">Kuva täpsem kasutus</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing groups are matched by their unique <em>Code</em> value, and updated with any new values from the imported file</li> <li>Group hierarchies can be created by using a <em>ParentCode</em> column.</li> <li>Permission codes can be assigned by the <em>PermissionCode</em> column. Existing permission codes are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} groups'
ResultDeleted: 'Deleted %d groups'
ResultUpdated: 'Updated %d groups'
ResultCreated: '{count} gruppi on loodud'
ResultDeleted: '%d gruppi on kustutatud'
ResultUpdated: '%d gruppi on uuendatud'
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
HtmlEditorField:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ADDURL: 'Lisa URL'
ADJUSTDETAILSDIMENSIONS: 'Üksikasjad ja mõõtmed'
ANCHORVALUE: Link
BUTTONINSERT: Insert
BUTTONADDURL: 'Add url'
BUTTONINSERT: Sisesta
BUTTONINSERTLINK: 'Sisesta link'
BUTTONREMOVELINK: 'Eemalda link'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
BUTTONUpdate: Uuenda
CAPTIONTEXT: 'Pealdise tekst'
CSSCLASS: 'Joondus / Stiil'
CSSCLASSCENTER: 'Keskel, iseseisvalt.'
CSSCLASSLEFT: 'Vasakul, tekst voldib ennast ümber.'
CSSCLASSLEFTALONE: 'Ise vasakule'
CSSCLASSRIGHT: 'Paremal, tekst voldib ennast ümber.'
DETAILS: Details
DETAILS: Üksikasjad
EMAIL: 'E-posti aadress'
FILE: Fail
FOLDER: Kaust
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
FindInFolder: 'Find in Folder'
IMAGEALT: 'Alternative text (alt)'
IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
FROMCMS: Sisuhaldussüsteemist
FROMCOMPUTER: 'Teie arvutist'
FROMWEB: Veebist
FindInFolder: 'Otsi kaustast'
IMAGEALT: 'Asetekst (alt)'
IMAGEALTTEXT: 'Asetekst (alt) kuvatakse, kui kujutist ei ole võimalik kuvada'
IMAGEALTTEXTDESC: 'Kuvatakse ekraanilugeja puhul või kui kujutist ei saa kuvada'
IMAGEDIMENSIONS: Mõõtmed
IMAGEHEIGHTPX: Laius
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGETITLE: 'Pealkirja tekst (kohtspikker) lisateabeks kujutise kohta'
IMAGETITLETEXT: 'Pealkirja tekst (kohtspikker)'
IMAGETITLETEXTDESC: 'Lisateabe saamiseks kujutise kohta'
IMAGEWIDTHPX: Kõrgus
INSERTMEDIA: 'Insert Media'
INSERTMEDIA: 'Sisesta meedium'
LINK: Link
LINKANCHOR: 'Link sellele lehele'
LINKDESCR: 'Lingi kirjeldus'
@ -306,22 +316,22 @@ et_EE:
LINKTO: Lingi
PAGE: Leht
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
URLNOTANOEMBEDRESOURCE: 'URL-i ''{url}'' ei saanud muuta meediumiressursiks.'
UpdateMEDIA: 'Uuenda meediumi'
Image:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Failid
SINGULARNAME: Fail
ImageField:
IMAGE: Image
IMAGE: Kujutis
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Failid
SINGULARNAME: Fail
Image_iframe.ss:
TITLE: 'Pildi üleslaadimise Iframe'
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
CANT_REORGANISE: 'Teil ei ole õigusi kõrgema taseme lehtede muutmiseks. Teie muudatust ei salvestatud.'
DELETED: Kustutatud.
DropdownBatchActionsDefault: Actions
DropdownBatchActionsDefault: Tegevused
HELP: Spikker
PAGETYPE: 'Lehekülje tüüp:'
PERMAGAIN: 'Oled Sisuhaldusest välja logitud. Kui soovite uuesti sisse logida sisestage kasutajanimi ja parool.'
@ -329,32 +339,35 @@ et_EE:
PERMDEFAULT: 'Sisesta oma e-posti aadress ja parool sisuhaldussüsteemi ligipääsemiseks.'
PLEASESAVE: 'Palun Salvesta Lehekülg: Antud lehekülge ei uuendatud, kuna seda ei ole veel salvestatud.'
PreviewButton: Eelvaade
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
REORGANISATIONSUCCESSFUL: 'Saidipuu korraldati edukalt ümber.'
SAVEDUP: Salvestatud.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
Hello: Tere!
LOGOUT: 'Logi välja'
LoginAttempt:
Email: 'E-posti aadress'
IP: 'IP Aadress'
PLURALNAME: 'Login Attempts'
SINGULARNAME: 'Login Attempt'
PLURALNAME: Sisselogimiskatsed
SINGULARNAME: Sisselogimiskatse
Status: Staatus
Member:
ADDGROUP: 'Add group'
ADDGROUP: 'Lisa grupp'
BUTTONCHANGEPASSWORD: 'Muuda parool'
BUTTONLOGIN: 'Logi sisse'
BUTTONLOGINOTHER: 'Logi sisse kellegi teisena'
BUTTONLOSTPASSWORD: 'Kaotasin oma parooli'
CANTEDIT: 'You don''t have permission to do that'
CANTEDIT: 'Teil ei ole selleks tegevuseks õigust'
CONFIRMNEWPASSWORD: 'Kinnita uus parool'
CONFIRMPASSWORD: 'Kinnita parool'
DATEFORMAT: 'Kuupäeva vorming'
DefaultAdminFirstname: 'Default Admin'
DefaultDateTime: default
DATEFORMAT: Kuupäevavorming
DefaultAdminFirstname: Vaikeadministraator
DefaultDateTime: vaikeseadistus
EMAIL: E-post
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
EMPTYNEWPASSWORD: 'Uue parooli väli ei saa olla tühi. Proovige uuesti'
ENTEREMAIL: 'Palun sisesta email, et saada paooli tühistamise link'
ERRORLOCKEDOUT: 'Konto on liiga paljude ebaõnnestunud sisselogimiskatsete tõttu ajutiselt blokeeritud. Palun oota 20 minutit ja proovi siis uuesti.'
ERRORNEWPASSWORD: 'Te sisestasite oma parooli erinevalt, proovige uuesti'
@ -363,7 +376,7 @@ et_EE:
FIRSTNAME: Eesnimi
INTERFACELANG: 'Kasutajaliidese keel'
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
LOGGEDINAS: 'Olete logitud sisse kui {name}.'
NEWPASSWORD: 'Uus parool'
PASSWORD: Parool
PLURALNAME: Kasutajad
@ -372,10 +385,10 @@ et_EE:
SUBJECTPASSWORDCHANGED: 'Sinu parool on muudetud'
SUBJECTPASSWORDRESET: 'Sinu parooli lähtestamise link'
SURNAME: Perekonnanimi
TIMEFORMAT: 'Aja vorming'
TIMEFORMAT: Kellaajavorming
VALIDATIONMEMBEREXISTS: 'Sellise e-posti aadressiga liige on juba olemas'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
ValidationIdentifierFailed: 'Olemasolevat kasutajat #{id} ei saa sama identifikaatoriga üle kirjutada ({name} = {value})'
WELCOMEBACK: 'Tere tulemast tagasi, {firstname}!'
YOUROLDPASSWORD: 'Sinu vana parool'
belongs_many_many_Groups: Grupid
db_LastVisited: 'Viimati külastatud kuupäev'
@ -387,98 +400,99 @@ et_EE:
MemberAuthenticator:
TITLE: 'E-post ja parool'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
'APPLY FILTER': 'Apply Filter'
Custom: Custom
DATEFORMATBAD: 'Date format is invalid'
DAYNOLEADING: 'Day of month without leading zero'
AMORPM: 'AM (enne keskpäeva) või PM (pärast keskpäeva)'
'APPLY FILTER': 'Rakenda filter'
Custom: Kohandatud
DATEFORMATBAD: 'Kuupäevavorming on sobimatu'
DAYNOLEADING: 'Kuupäev ilma nullita'
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
FOURDIGITYEAR: 'Four-digit year'
FULLNAMEMONTH: 'Full name of month (e.g. June)'
HOURNOLEADING: 'Hour without leading zero'
MINUTENOLEADING: 'Minute without leading zero'
MONTHNOLEADING: 'Month digit without leading zero'
FOURDIGITYEAR: 'Aasta nelja numbrina'
FULLNAMEMONTH: 'Kuu täisnimetus (nt august)'
HOURNOLEADING: 'Tunnid ilma nullita'
MINUTENOLEADING: 'Minutid ilma nullita'
MONTHNOLEADING: 'Kuu ilma nullita'
Preview: Eelvaade
SHORTMONTH: 'Short name of month (e.g. Jun)'
SHORTMONTH: 'Kuu lühinimetus (nt aug)'
TOGGLEHELP: 'Toggle formatting help'
TWODIGITDAY: 'Two-digit day of month'
TWODIGITHOUR: 'Two digits of hour (00 through 23)'
TWODIGITMINUTE: 'Two digits of minute (00 through 59)'
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
TWODIGITDAY: 'Kuupäev kahe numbrina'
TWODIGITHOUR: 'Tunnid kahe numbrina (0023)'
TWODIGITMINUTE: 'Minutid kahe numbrina (0059)'
TWODIGITMONTH: 'Kuu kahe numbrina (nt 01=jaanuar jne)'
TWODIGITSECOND: 'Sekundid kahe numbrina (0059)'
TWODIGITYEAR: 'Aasta kahe numbrina'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help1: '<p>Impordi kasutajad <em>CSV-vormingus</em> (komaeraldusega väärtused). <small><a href="#" class="toggle-advanced">Kuva täpsem kasutus</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} members'
ResultDeleted: 'Deleted %d members'
ResultNone: 'No changes'
ResultUpdated: 'Updated {count} members'
ResultCreated: '{count} liiget on loodud'
ResultDeleted: '%d liiget on kustutatud'
ResultNone: 'Muudatusi pole'
ResultUpdated: '{count} liiget on uuendatud'
MemberPassword:
PLURALNAME: 'Member Passwords'
SINGULARNAME: 'Member Password'
PLURALNAME: 'Liikme paroolid'
SINGULARNAME: 'Liikme parool'
MemberTableField: null
ModelAdmin:
DELETE: Kustuta
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
IMPORT: 'Impordi CSV failist'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Palun avage CSV fail impordiks'
NOIMPORT: 'Midagi pole importida'
RESET: Reset
Title: 'Data Models'
UPDATEDRECORDS: 'Updated {count} records.'
DELETEDRECORDS: '{count} kirjet on kustutatud.'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Impordi CSV-failist'
IMPORTEDRECORDS: '{count} kirjet on imporditud.'
NOCSVFILE: 'Avage importimiseks CSV-fail'
NOIMPORT: 'Pole midagi importida'
RESET: Lähtesta
Title: Andmemudelid
UPDATEDRECORDS: '{count} kirjet on uuendatud.'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: 'Database columns'
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: Relations
IMPORTSPECTITLE: 'Specification for %s'
IMPORTSPECFIELDS: 'Andmebaasi tulbad'
IMPORTSPECLINK: 'Kuva üksuse %s spetsifikatsioonid'
IMPORTSPECRELATIONS: Seosed
IMPORTSPECTITLE: 'Üksuse %s spetsifikatsioonid'
ModelAdmin_Tools.ss:
FILTER: Filter
IMPORT: Import
FILTER: Filtreeri
IMPORT: Impordi
ModelSidebar.ss:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
IMPORT_TAB_HEADER: Impordi
SEARCHLISTINGS: Otsi
MoneyField:
FIELDLABELAMOUNT: Amount
FIELDLABELAMOUNT: Hulk
FIELDLABELCURRENCY: Valuuta
NullableField:
IsNullLabel: 'Is Null'
IsNullLabel: 'On tühi'
NumericField:
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
VALIDATION: '''{value}'' ei ole number, sellele väljale võib sisestada ainult numbreid'
Pagination:
Page: Lehekülg
View: View
Page: Leht
View: Kuva
Permission:
AdminGroup: Administrator
CMS_ACCESS_CATEGORY: CMS-juurdepääs
FULLADMINRIGHTS: 'Täis administraatori õigused'
AdminGroup: Administraator
CMS_ACCESS_CATEGORY: 'Sisuhaldussüsteemi juurdepääs'
FULLADMINRIGHTS: 'Täielikud administraatoriõigused'
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
PLURALNAME: Õigused
SINGULARNAME: Õigus
PermissionCheckboxSetField:
AssignedTo: 'assigned to "{title}"'
FromGroup: 'inherited from group "{title}"'
FromRole: 'inherited from role "{title}"'
FromRoleOnGroup: 'inherited from role "%s" on group "%s"'
AssignedTo: 'määratud grupile "{title}"'
FromGroup: 'päritud grupilt "{title}"'
FromRole: 'päritud rollilt "{title}"'
FromRoleOnGroup: 'päritud rollist "%s" grupis "%s"'
PermissionRole:
OnlyAdminCanApply: 'Only admin can apply'
PLURALNAME: Roles
SINGULARNAME: Role
Title: Title
OnlyAdminCanApply: 'Ainult administraator saab rakendada'
PLURALNAME: Rollid
SINGULARNAME: Roll
Title: Pealkiri
PermissionRoleCode:
PLURALNAME: 'Permission Role Cods'
SINGULARNAME: 'Permission Role Code'
Permissions:
PERMISSIONS_CATEGORY: 'Rollid ja juurdepääsuõigused'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
UserPermissionsIntro: 'Sellele kasutajale gruppide määramine kohandab tema õiguseid. Vaadake gruppide jaotist, et näha üksikasju iga grupi õiguste kohta.'
PhoneNumberField:
VALIDATION: 'Palun sisesta kehtiv telefoninumber'
VALIDATION: 'Sisestage kehtiv telefoninumber'
RelationComplexTableField.ss:
ADD: Lisa
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
CSVEXPORT: 'Ekspordi CSV-vormingusse'
NOTFOUND: 'Üksusi ei leitud'
Security:
ALREADYLOGGEDIN: 'Sul puudub õigus sellele lehele pääsemiseks. Kui sul on teine konto, millega siia sisse logida, võid <a href="%s">uuesti sisse logida</a>.'
BUTTONSEND: 'Saada parooli tühistamise link'
@ -489,33 +503,46 @@ et_EE:
LOGGEDOUT: 'Olete välja loginud. Kui soovite uuesti siseneda, sisestage oma andmed allpool'
LOGIN: 'Logi sisse'
NOTEPAGESECURED: 'See leht on turvatud. Sisesta enda andmed allpool ja me saadame sind otse edasi'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETLINKINVALID: '<p>Parooli lähtestamise link on kehtetu või aegunud.</p><p>Saate taotleda uut linki <a href="{link1}">siin</a> või muuta parooli pärast <a href="{link2}">sisselogimist</a>.</p>'
NOTERESETPASSWORD: 'Sisesta oma email ja me saadame sulle lingi kus saad oma parooli tühistada.'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
PASSWORDSENTHEADER: 'Parooli lähtestamise link saadeti aadressile ''{email}'''
PASSWORDSENTTEXT: 'Aitäh! Lähtestamislink saadeti aadressile ''{email}'' eeldusel, et selle e-posti aadressiga seotud konto on olemas.'
SecurityAdmin:
ACCESS_HELP: 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.'
APPLY_ROLES: 'Apply roles to groups'
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
ACCESS_HELP: 'Luba kasutajate vaatamine, lisamine ja muutmine ning nedele lubade ja rollide määramine.'
APPLY_ROLES: 'Määra gruppidele rolle'
APPLY_ROLES_HELP: 'Võime muuta grupile määratud rolle. Vajab Kasutajate sektsiooni juurdepääsu luba.'
EDITPERMISSIONS: 'Muuda õigusi ja IP aadresse igal grupil'
EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.'
EDITPERMISSIONS_HELP: 'Võime muuta grupi Lubasid ja IP aadresse. Vajab Turvalisusseadetele juurdepääsu luba.'
GROUPNAME: 'Rühma nimi'
IMPORTGROUPS: 'Import groups'
IMPORTUSERS: 'Import users'
IMPORTGROUPS: 'Impordi grupid'
IMPORTUSERS: 'Impordi kasutajad'
MEMBERS: Kasutajad
MENUTITLE: Security
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
MENUTITLE: Turvalisus
MemberListCaution: 'Hoiatus. Sellest loendist liikmete eemdaldamisel eemaldatakse need kõikidest gruppidest ja andmebaasidest'
NEWGROUP: 'Uus rühm'
PERMISSIONS: Õigused
ROLES: Roles
ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.<br />They are inherited from parent groups if required.'
TABROLES: Roles
Users: Users
ROLES: Rollid
ROLESDESCRIPTION: 'Rollid on eelmäratud õiguste kogumid, mida on võimalik määrara gruppidele.<br />Need päritakse vajaduse korral vanemgruppidest.'
TABROLES: Rollid
Users: Kasutajad
SecurityAdmin_MemberImportForm:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
BtnImport: 'Impordi CSV-failist'
FileFieldLabel: 'CSV-fail <small>(lubatud laiendid: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Muuda
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Pilte pole üles laaditud'
SiteTree:
@ -524,53 +551,58 @@ et_EE:
ISREQUIRED: 'In %s ''%s'' is required'
TableField.ss:
ADD: 'Lisa uus rida'
ADDITEM: 'Add %s'
ADDITEM: 'Lisa %s'
TableListField:
CSVEXPORT: 'Ekspordi CSV-sse'
CSVEXPORT: 'Ekspordi CSV-vormingusse'
PRINT: Prindi
Print: Print
Print: Prindi
SELECT: 'Vali:'
TableListField.ss:
NOITEMSFOUND: 'No items found'
NOITEMSFOUND: 'Üksusi ei leitud'
SORTASC: 'Sordi kasvavas järjekorras'
SORTDESC: 'Sordi kahanevas järjekorras'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
DISPLAYING: Kuvatakse
OF: /
TO: to
VIEWFIRST: 'Vaata esimest'
VIEWLAST: 'Vaata viimast'
VIEWNEXT: 'Vaata järgmist'
VIEWPREVIOUS: 'Vaata eelmist'
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
VALIDATEFORMAT: 'Sisestage sobivas vormingus kellaaeg ({format})'
ToggleField:
LESS: Vähem
MORE: Veel
UploadField:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
DROPFILE: 'drop a file'
DROPFILES: 'drop files'
Dimensions: Dimensions
EDIT: Edit
EDITINFO: 'Edit this file'
FIELDNOTSET: 'File information not found'
FROMCOMPUTER: 'From your computer'
FROMCOMPUTERINFO: 'Select from files'
FROMFILES: 'From files'
ATTACHFILE: 'Manusta fail'
ATTACHFILES: 'Manusta failid'
AttachFile: 'Manusta fail(id)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Kustuta failide hulgast'
DELETEINFO: 'Kustuta see fail lõplikult failihoidlast'
DOEDIT: Salvesta
DROPFILE: 'pukseeri failid'
DROPFILES: 'pukseeri failid'
Dimensions: Mõõtmed
EDIT: Muuda
EDITINFO: 'Muuda seda faili'
FIELDNOTSET: 'Failiteavet ei leitud'
FROMCOMPUTER: 'Teie arvutist'
FROMCOMPUTERINFO: 'Valige failide hulgast'
FROMFILES: Failidest
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
MAXNUMBEROFFILES: 'Maksimaalne failide arv {count} on ületatud.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Üles saab laadida ainult {count} faili'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Eemalda
REMOVEERROR: 'Viga faili eemaldamisel'
REMOVEINFO: 'Eemalda see fail siit, kuid ära kustuta seda failihoidlast'
STARTALL: 'Alusta kõiki'
STARTALLINFO: 'Alusta kõiki üleslaadimisi'
Saved: Salvestatud
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versioon

View File

@ -2,6 +2,7 @@ fa_IR:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'پوشه جديد'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: ابعاد
@ -9,7 +10,7 @@ fa_IR:
FOLDER: Folder
LASTEDIT: 'آخرین تغییرات'
OWNER: دارنده
SIZE: حجم
SIZE: 'حجم'
TITLE: عنوان
TYPE: نوع
URL: نشانی
@ -59,9 +60,9 @@ fa_IR:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: نه
ANY: هر
1: آری
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,17 +71,19 @@ fa_IR:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: نگاهداری
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'شما گذرواژه تان را دگرگون کردید برای'
CHANGEPASSWORDTEXT2: 'You can now use the following credentials to log in:'
EMAIL: ايميل
EMAIL: 'ايميل'
HELLO: درود
PASSWORD: 'كلمه عبور'
CheckboxField:
- نه
- آری
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'بستن چنجره'
SUCCESSADD2: 'Added {name}'
@ -100,32 +103,33 @@ fa_IR:
SHOWONCLICKTITLE: 'تغيير كلمه عبور'
CreditCardField:
FIRST: نخست
FOURTH: چهارم
SECOND: دوم
THIRD: سوم
FOURTH: 'چهارم'
SECOND: 'دوم'
THIRD: 'سوم'
CurrencyField:
CURRENCYSYMBOL: $
DataObject:
PLURALNAME: 'داده های اشیاء'
SINGULARNAME: 'داده اشیاء'
Date:
DAY: روز
DAYS: روز
HOUR: ساعت
HOURS: ساعت
MIN: دقیقه
MINS: دقیقه
MONTH: ماه
MONTHS: 'ماه ها'
SEC: ثانیه
SECS: ثانیه
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: سال
YEARS: سال
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: امروز
TODAY: 'امروز'
VALIDDATEFORMAT2: 'Please enter a valid date format ({format})'
VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})'
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
@ -144,7 +148,7 @@ fa_IR:
ANY: Any
File:
AviType: 'AVI video file'
Content: محتوا
Content: 'محتوا'
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -162,7 +166,7 @@ fa_IR:
MpgType: 'MPEG video file'
NOFILESIZE: 'Filesize is zero bytes.'
NOVALIDUPLOAD: 'File is not a valid upload'
Name: نام
Name: 'نام'
PLURALNAME: 'فايل ها'
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
@ -198,7 +202,8 @@ fa_IR:
TEXT2: 'password reset link'
TEXT3: برای
Form:
FIELDISREQUIRED: '%s نیاز است.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ fa_IR:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: 'هیچ کدام'
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ fa_IR:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ fa_IR:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -253,7 +262,7 @@ fa_IR:
RolesAddEditLink: 'اضافه/ویرایش وظیفه'
SINGULARNAME: Group
Sort: 'تربیت چیدن'
has_many_Permissions: مجوز‌ها
has_many_Permissions: 'مجوز‌ها'
many_many_Members: اعضاء
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
@ -267,6 +276,7 @@ fa_IR:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'گذاشتن پیوند'
BUTTONREMOVELINK: 'برداشتن پیوند'
@ -322,7 +332,7 @@ fa_IR:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
HELP: کمک
HELP: 'کمک'
PAGETYPE: 'نوع صفحه'
PERMAGAIN: 'شما از سیستم مدیریت محتوا خارج شده اید.اگر میخواهید دوباره وارد شوید نام کاربری و رمز عبور خود را در قسمت زیر وارد کنید'
PERMALREADY: 'من متاسفم، شما نمی توانید به آن قسمت از سیستم مدیریت محتوا دسترسی پیدا کنید. اگر میخواهید به عنوان شخص دیگری وارد شوید از قسمت زیر تلاش کنید'
@ -331,7 +341,10 @@ fa_IR:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -360,7 +373,7 @@ fa_IR:
ERRORNEWPASSWORD: 'You have entered your new password differently, try again'
ERRORPASSWORDNOTMATCH: 'Your current password does not match, please try again'
ERRORWRONGCRED: 'That doesn''t seem to be the right e-mail address or password. Please try again.'
FIRSTNAME: نام
FIRSTNAME: 'نام'
INTERFACELANG: 'زبان برنامه'
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
@ -407,6 +420,7 @@ fa_IR:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ fa_IR:
ModelAdmin:
DELETE: حذف
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ fa_IR:
BtnImport: 'وارد کردن'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ fa_IR:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ fa_IR:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: 'نسخه ها'

View File

@ -2,6 +2,7 @@ fi:
AssetAdmin:
ALLOWEDEXTS: 'Sallitut laajennukset'
NEWFOLDER: 'Uusi kansio'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Ensimmäisen kerran ladattu palvelimelle'
DIM: Mitat
@ -59,9 +60,9 @@ fi:
ERRORNOTADMIN: 'Tämä käyttäjä ei ole ylläpitäjä'
ERRORNOTREC: 'Tätä käyttäjänimeä/salasanaa ei tunnistettu.'
Boolean:
0: Ei
ANY: Yhtään
1: Kyllä
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Ladataan...
REQUIREJS: 'CMS-järjestelmä vaatii, että selaimessasi on JavaSkriptit päällä.'
@ -70,6 +71,8 @@ fi:
ACCESSALLINTERFACES: 'Pääsy kaikkiin CMS-osioihin'
ACCESSALLINTERFACESHELP: 'Ohittaa tarkemmat käyttöoikeudet.'
SAVE: Tallenna
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: Profiilini
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ fi:
HELLO: Hei
PASSWORD: Salasana
CheckboxField:
- Ei
- Kyllä
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Sulje ponnahdusikkuna'
SUCCESSADD2: 'Lisättiin {name}'
@ -109,20 +112,21 @@ fi:
PLURALNAME: Dataobjektit
SINGULARNAME: Dataobjekti
Date:
DAY: päivä
DAYS: ' päivää '
HOUR: ' tunti'
HOURS: ' tuntia'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: min.
MONTH: kuukausi
MONTHS: kuukaudet
SEC: sek.
SECS: sek.
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} sitten'
TIMEDIFFIN: '&raquo; {difference}'
YEAR: vuosi
YEARS: vuodet
YEAR: year
YEARS: years
DateField:
NOTSET: 'ei asetettu'
TODAY: tänään
@ -198,7 +202,8 @@ fi:
TEXT2: 'salasanan tyhjäys -linkki'
TEXT3: henkilölle
Form:
FIELDISREQUIRED: '%s on pakollinen.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Siirrä
VALIDATIONCREDITNUMBER: 'Tarkista, ovatko antamasi luottokortin numerot ({number}) oikein'
VALIDATIONNOTUNIQUE: 'Syötetty arvo ei ole yksilöllinen'
@ -208,6 +213,7 @@ fi:
VALIDATOR: Tarkistin
VALIDCURRENCY: 'Ole hyvä ja valitse voimassa oleva valuutta'
FormField:
Example: 'e.g. %s'
NONE: 'Ei yhtään'
GridAction:
DELETE_DESCRIPTION: Poista
@ -230,6 +236,7 @@ fi:
ResetFilter: Nollaa
GridFieldAction_Delete:
DeletePermissionsFailure: 'Ei oikeuksia poistamiseen'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Peruuta
Create: Luo
@ -237,7 +244,9 @@ fi:
DeletePermissionsFailure: 'Ei oikeuksia poistamiseen'
Deleted: 'Poistettiin %s %s'
Save: Tallenna
Saved: 'Tallennettu %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Lisää ryhmälle rooli'
@ -267,6 +276,7 @@ fi:
ADDURL: 'Lisää URL-osoite'
ADJUSTDETAILSDIMENSIONS: 'Tarkat tiedot &amp; mitat'
ANCHORVALUE: Ankkuri
BUTTONADDURL: 'Add url'
BUTTONINSERT: Liitä
BUTTONINSERTLINK: 'Lisää linkki'
BUTTONREMOVELINK: 'Poista linkki'
@ -323,7 +333,7 @@ fi:
DELETED: Poistettu.
DropdownBatchActionsDefault: Toimenpiteet
HELP: Ohje
PAGETYPE: 'Sivun tyyppi:'
PAGETYPE: 'Sivutyyppi:'
PERMAGAIN: 'Olet kirjautunut ulos CMS:stä. Jos haluat kirjautua uudelleen sisään, syötä käyttäjätunnuksesi ja salasanasi alla.'
PERMALREADY: 'Paihoittelut, mutta et pääse tähän osaan CMS:ää. Jos haluat kirjautua jonain muuna, voit tehdä sen alla.'
PERMDEFAULT: 'Valitse tunnistustapa ja syötä tunnistetietosi CMS:ään.'
@ -331,6 +341,9 @@ fi:
PreviewButton: Esikatselu
REORGANISATIONSUCCESSFUL: 'Hakemistopuu järjestettiin uudelleen onnistuneesti.'
SAVEDUP: Tallennettu.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: tuntematon
LeftAndMain_Menu.ss:
Hello: Hei
@ -407,6 +420,7 @@ fi:
TWODIGITMONTH: 'Kaksinumeroinen kuukausi (01=tammikuu, jne.)'
TWODIGITSECOND: 'Kaksinumeroinen sekunti (0059)'
TWODIGITYEAR: 'Kaksinumeroinen vuosiluku'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Tuo käyttäjät <em>CSV-muodossa</em> (arvot pilkulla erotettuina). <small><a href="#" class="toggle-advanced">Näytä edistyksellinen käyttö</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Edistynyt käyttö</h4>\\n<ul>\\n<li>Sallitut palstat: <em>%s</em></li>\\n<li>Olemassa olevat käyttäjät kohdistetaan uniikilla <em>Code</em>-arvolla, ja päivitetään uudet arvot tuodusta tiedostosta.</li>\\n<li>Ryhmät voidaan kohdistaa <em>Ryhmät</em>-palstaan. Ryhmät tunnistetaan <em>Code</em>-arvosta, useat ryhmät voidaan erottaa pilkulla. Olemassa olevat ryhmäjäsenyydet säilytetään.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ fi:
ModelAdmin:
DELETE: Poista
DELETEDRECORDS: 'Poistettiin {count} tietuetta'
EMPTYBEFOREIMPORT: 'Tyhjennä tietokanta ennen tuonti'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Tuo CSV:stä'
IMPORTEDRECORDS: 'Tuotiin {count} tietuetta'
NOCSVFILE: 'Selaa ja tuo CSV-tiedosto'
@ -515,7 +529,20 @@ fi:
BtnImport: Tuonti
FileFieldLabel: 'CSV-tiedosto <small>(Sallitut päätteet: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Muokkaa
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Kuvaa ei kopioitu palvelimelle'
SiteTree:
@ -551,6 +578,8 @@ fi:
ATTACHFILE: 'Liitä tiedosto'
ATTACHFILES: 'Liitä tiedostoja'
AttachFile: 'Liitä tiedostoja'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Poista tiedostoista'
DELETEINFO: 'Poista tiedosto pysyvästi'
DOEDIT: Tallenna
@ -565,12 +594,15 @@ fi:
FROMFILES: Tiedostoista
HOTLINKINFO: 'Info: Kuvalle tulee suora linkki. Varmista sivun omistajalta, että sinulla on oikeus suoraan linkitykseen.'
MAXNUMBEROFFILES: 'Suurin sallittu määrä ({count}) tiedostoja ylitetty.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Voidaan siirtää vain {count} tiedostoa'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Poista
REMOVEERROR: 'Virhe poistettaessa tiedostoa'
REMOVEINFO: 'Poista tiedosto, mutta säilytä se tiedostovarastossa'
STARTALL: 'Aloita kaikki'
STARTALLINFO: 'Aloita kaikkien siirto'
Saved: Tallennettu
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiot

View File

@ -2,6 +2,7 @@ fo:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nýggj skjátta'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ fo:
ERRORNOTADMIN: 'Hasin brúkarin er ikki ein fyrisitari.'
ERRORNOTREC: 'Brúkaranavn / loyniorð er skeivt'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ fo:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Goym
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ fo:
HELLO: Hey
PASSWORD: Loyniorð
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Lat glugga aftur'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ fo:
PLURALNAME: 'Dáta eindir'
SINGULARNAME: 'Dáta eind'
Date:
DAY: dagur
DAYS: dagar
HOUR: tími
HOURS: tímar
MIN: minuttur
MINS: minuttir
MONTH: máni
MONTHS: mánaðar
SEC: sekund
SECS: sekundir
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ár
YEARS: ár
YEAR: year
YEARS: years
DateField:
NOTSET: 'ikki ásett'
TODAY: 'í dag'
@ -198,7 +202,8 @@ fo:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s er kravt'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Virðið sum bleiv inntøppað er ikki eintýðugt'
@ -208,6 +213,7 @@ fo:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: einki
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ fo:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ fo:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ fo:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Stovna leinku'
BUTTONREMOVELINK: 'Strika leinku'
@ -331,7 +341,10 @@ fo:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ fo:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ fo:
ModelAdmin:
DELETE: Strika
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Innles frá CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ fo:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ fo:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ fo:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Útgávur

View File

@ -2,6 +2,7 @@ fr:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nouveau dossier'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Premier chargement'
DIM: Dimensions
@ -59,9 +60,9 @@ fr:
ERRORNOTADMIN: 'Cet utilisateur n''est pas un administrateur.'
ERRORNOTREC: 'Cet identifiant / mot de passe n''est pas reconnu'
Boolean:
0: Non
ANY: Tout
1: Oui
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Chargement...
REQUIREJS: 'Vous devez activer JavaScript pour utiliser le CMS.'
@ -70,6 +71,8 @@ fr:
ACCESSALLINTERFACES: 'Accès à toutes les sections du CMS'
ACCESSALLINTERFACESHELP: 'Prioritaire sur les droits plus spécifiques d''accès.'
SAVE: Enregistrer
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Mon profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ fr:
HELLO: Salut
PASSWORD: 'Mot de passe'
CheckboxField:
- Non
- Oui
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Ferme Popup'
SUCCESSADD2: '{name} ajouté'
@ -109,20 +112,21 @@ fr:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: jour
DAYS: jours
HOUR: heure
HOURS: heures
MIN: minutes
MINS: minutes
MONTH: mois
MONTHS: mois
SEC: seconde
SECS: secondes
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: 'Il y a {difference}'
TIMEDIFFIN: 'Dans {difference}'
YEAR: année
YEARS: années
YEAR: year
YEARS: years
DateField:
NOTSET: 'pas d''ensemble'
TODAY: 'aujourd''hui'
@ -198,7 +202,8 @@ fr:
TEXT2: 'lien de réinitialisation de mot de passe'
TEXT3: pour
Form:
FIELDISREQUIRED: '%s est requis'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Envoyer
VALIDATIONCREDITNUMBER: 'Vérifiez que vous avez bien saisi votre numéro de carte bleue {number}.'
VALIDATIONNOTUNIQUE: 'La valeur entrée n''est pas unique'
@ -208,6 +213,7 @@ fr:
VALIDATOR: Validateur
VALIDCURRENCY: 'Saisissez une monnaie valide'
FormField:
Example: 'e.g. %s'
NONE: aucun
GridAction:
DELETE_DESCRIPTION: Supprime
@ -230,6 +236,7 @@ fr:
ResetFilter: Réinitialiser
GridFieldAction_Delete:
DeletePermissionsFailure: 'Vous navez pas les autorisations pour supprimer'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Annuler
Create: Créer
@ -237,7 +244,9 @@ fr:
DeletePermissionsFailure: 'Vous navez pas les autorisations pour supprimer'
Deleted: '%s %s supprimés'
Save: Enregistrer
Saved: '%s %s sauvegardés'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Ajouter un rôle à ce groupe '
@ -267,6 +276,7 @@ fr:
ADDURL: 'Ajouter URL'
ADJUSTDETAILSDIMENSIONS: 'Détails &amp; dimensions'
ANCHORVALUE: Ancre
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insérer
BUTTONINSERTLINK: 'Insérer un lien'
BUTTONREMOVELINK: 'Supprimer le lien'
@ -331,6 +341,9 @@ fr:
PreviewButton: Aperçu
REORGANISATIONSUCCESSFUL: 'Larbre du site a été bien réorganisé.'
SAVEDUP: Enregistré.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: inconnu
LeftAndMain_Menu.ss:
Hello: Bonjour
@ -407,6 +420,7 @@ fr:
TWODIGITMONTH: 'Le mois sur deux chiffres (p. ex. 01=janvier)'
TWODIGITSECOND: 'La seconde sur deux chiffres (de 00 à 59)'
TWODIGITYEAR: 'Lannée sur deux chiffres'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Importer les membres au format<em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Afficher l''usage avancé.</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Utilisation avancée</h4>\\n<ul>\\n<li>Colonnes autorisées&nbsp;: <em>%s</em></li>\\n<li>Les utilisateurs existants sont retrouvés avec leur <em>Code</em> unique et les registres sont mis à jour avec les nouvelles valeurs du fichier importé.</li>\\n<li>Des groupes peuvent être assignés à laide de la colonne <em>Groups</em>. Les groupes sont identifiés par leur <em>Code</em>, plusieurs groupes peuvent être indiqués en les séparant par des virgules. Lappartenance actuelle aux groupes nest pas modifiée.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ fr:
ModelAdmin:
DELETE: Supprime
DELETEDRECORDS: '{count} enregistrements supprimés.'
EMPTYBEFOREIMPORT: 'Vider la base de données avant dimporter'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importer de CSV'
IMPORTEDRECORDS: '{count} enregistrements importés.'
NOCSVFILE: 'Veuillez choisir un fichier CSV à importer'
@ -515,7 +529,20 @@ fr:
BtnImport: Importer
FileFieldLabel: 'Fichier CSV <small>(extension autorisée&nbsp;: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: 'Tout modifier'
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Aucune image chargée'
SiteTree:
@ -537,7 +564,7 @@ fr:
TableListField_PageControls.ss:
DISPLAYING: 'Affichage de'
OF: de
TO: à
TO: 'à'
VIEWFIRST: 'Voir premier'
VIEWLAST: 'Voir dernier'
VIEWNEXT: 'Voir suivant'
@ -551,6 +578,8 @@ fr:
ATTACHFILE: 'Joindre un fichier'
ATTACHFILES: 'Joindre des fichiers'
AttachFile: 'Joindre un ou plusieurs fichiers'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Supprimer des fichiers'
DELETEINFO: 'Effacer définitivement ce fichier des archives'
DOEDIT: Enregistrer
@ -565,12 +594,15 @@ fr:
FROMFILES: 'Depuis les fichiers'
HOTLINKINFO: 'Note : Cette image sera liée par un « hotlink », assurez-vous davoir lautorisation des ayant-droits du site web dorigine.'
MAXNUMBEROFFILES: 'Le nombre maximal de {count} fichiers a été dépassé.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'On ne peut pas télécharger plus de {count} fichiers'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Supprimer
REMOVEERROR: 'Le fichier na pas pu être supprimé'
REMOVEINFO: 'Supprimer ce fichier ici sans leffacer des archives'
STARTALL: 'Démarrer tout'
STARTALLINFO: 'Démarrer tous les téléchargements'
Saved: Enregistré
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ gl_ES:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Primeiro subido'
DIM: Dimensións
@ -59,9 +60,9 @@ gl_ES:
ERRORNOTADMIN: 'Ese usuario non é un administrador.'
ERRORNOTREC: 'Ese nome de usuario/contrasinal non é recoñecido'
Boolean:
0: Falso
ANY: Ningún
1: Verdadeiro
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ gl_ES:
ACCESSALLINTERFACES: 'Acceder a todas as seccións do CMS'
ACCESSALLINTERFACESHELP: 'Anular a configuración de acceso máis específica.'
SAVE: Gardar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ gl_ES:
HELLO: Ola
PASSWORD: Contrasinal
CheckboxField:
- Falso
- Verdade
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Pechar Ventá Emerxente'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ gl_ES:
PLURALNAME: 'Obxectos de Datos'
SINGULARNAME: 'Obxecto de Dato'
Date:
DAY: día
DAYS: días
HOUR: hora
HOURS: horas
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: mes
MONTHS: meses
SEC: seg
SECS: segs
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ano
YEARS: anos
YEAR: year
YEARS: years
DateField:
NOTSET: 'sen establecer'
TODAY: hoxe
@ -198,7 +202,8 @@ gl_ES:
TEXT2: 'ligazón de reinicio do contrasinal'
TEXT3: para
Form:
FIELDISREQUIRED: '%s é requirido'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'O valor inserido non é único'
@ -208,6 +213,7 @@ gl_ES:
VALIDATOR: Validador
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: ningún
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ gl_ES:
ResetFilter: Reiniciar
GridFieldAction_Delete:
DeletePermissionsFailure: 'Non eliminar permisos'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ gl_ES:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Engadir un role para este grupo'
@ -267,6 +276,7 @@ gl_ES:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Áncora
BUTTONADDURL: 'Add url'
BUTTONINSERT: Inserir
BUTTONINSERTLINK: 'Inserir ligazón'
BUTTONREMOVELINK: 'Eliminar ligazón'
@ -331,6 +341,9 @@ gl_ES:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: descoñecido
LeftAndMain_Menu.ss:
Hello: Hi
@ -407,6 +420,7 @@ gl_ES:
TWODIGITMONTH: 'Dous díxitos para o mes (01=Xaneiro, etc.)'
TWODIGITSECOND: 'Dous díxitos de segundo (00 ata 59)'
TWODIGITYEAR: 'Dous díxitos ano'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Importar usuarios en <em>formato CSV</em> (valores separados por comas). <small><a href="#" class="toggle-advanced">Amosar uso avanzado</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ gl_ES:
ModelAdmin:
DELETE: Eliminar
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importar dende CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Por favor navega por un ficheiro CSV para importar'
@ -515,7 +529,20 @@ gl_ES:
BtnImport: 'Importar dende CSV'
FileFieldLabel: 'Ficheiro CSV <small>(Extensións permitidas: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Ningunha Imaxe Subida'
SiteTree:
@ -551,6 +578,8 @@ gl_ES:
ATTACHFILE: 'Anexar un ficheiro'
ATTACHFILES: 'Anexar ficheiros'
AttachFile: 'Anexar ficheiro(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Eliminar permanentemente este ficheiro do almacén de ficheiros'
DOEDIT: Gardar
@ -565,12 +594,15 @@ gl_ES:
FROMFILES: 'Dende ficheiros'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Erro eliminando o ficheiro'
REMOVEINFO: 'Eliminar este ficheiro daquí, pero non eliminalo do almacén de ficheiros'
STARTALL: 'Comezar todo'
STARTALLINFO: 'Start all uploads'
Saved: Gardado
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versións

View File

@ -2,6 +2,7 @@ he_IL:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: תיקיהחדשה
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'הועלה לראשונה'
DIM: מידות
@ -59,9 +60,9 @@ he_IL:
ERRORNOTADMIN: 'משתמש זה אינו מנהל'
ERRORNOTREC: 'שם המשתמש / סיסמא לא מזוהה'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ he_IL:
ACCESSALLINTERFACES: 'גישה לכל ממשקי המערכת'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: שמור
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ he_IL:
HELLO: היי
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'סגור חלון'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ he_IL:
PLURALNAME: 'אובייקטי מידע'
SINGULARNAME: 'אובייקט מידע'
Date:
DAY: יום
DAYS: ימים
HOUR: שעה
HOURS: שעות
MIN: דקה
MINS: דקות
MONTH: חודש
MONTHS: חודשים
SEC: שניה
SECS: שניות
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: שנה
YEARS: שנים
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ he_IL:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: 'דרוש %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'הערך שהוקש אינו יחודי'
@ -208,6 +213,7 @@ he_IL:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ he_IL:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ he_IL:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,12 +276,13 @@ he_IL:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'הכנס קישור'
BUTTONREMOVELINK: 'הסר קישור'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
CSSCLASS: יישור/סגנון
CSSCLASS: 'יישור/סגנון'
CSSCLASSCENTER: 'ממורכז, ללא טקסט בצדדים.'
CSSCLASSLEFT: 'לשמאל, עם טקסט מסודר מסביב.'
CSSCLASSLEFTALONE: 'On the left, on its own.'
@ -331,7 +341,10 @@ he_IL:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ he_IL:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ he_IL:
ModelAdmin:
DELETE: מחק
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'ייבא מקובץ CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'בחר קובץ CSV לייבוא'
@ -515,7 +529,20 @@ he_IL:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'לא הועלתה תמונה'
SiteTree:
@ -551,6 +578,8 @@ he_IL:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ he_IL:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: גירסאות

View File

@ -2,6 +2,7 @@ hi:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ hi:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ hi:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ hi:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ hi:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: आज
@ -198,7 +202,8 @@ hi:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ hi:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ hi:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ hi:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'इस समूह के लिए एक भूमिका जोड़ें'
@ -253,7 +262,7 @@ hi:
RolesAddEditLink: 'भूमिकाओं का प्रबंधन करे '
SINGULARNAME: Group
Sort: 'Sort Order'
has_many_Permissions: अनुमतियाँ
has_many_Permissions: 'अनुमतियाँ'
many_many_Members: सदस्य
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
@ -267,6 +276,7 @@ hi:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ hi:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ hi:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ hi:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ hi:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ hi:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ hi:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ hr:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Novi direktorij'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: Uploadano
DIM: Dimenzije
@ -59,9 +60,9 @@ hr:
ERRORNOTADMIN: 'Korisnik nije administrator'
ERRORNOTREC: 'Korisničko ime / lozinka nije prepoznata'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ hr:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Snimi
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ hr:
HELLO: Pozdrav
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ hr:
PLURALNAME: 'Podatkovni Objekti'
SINGULARNAME: 'Podatkovni Objekt'
Date:
DAY: dan
DAYS: dani
HOUR: sat
HOURS: sati
MIN: minute
MINS: minute
MONTH: mjesec
MONTHS: mjeseci
SEC: sekunde
SECS: sekundi
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: godina
YEARS: godine
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ hr:
TEXT2: 'link za resetiranje zaporke'
TEXT3: za
Form:
FIELDISREQUIRED: '%s je obavezan'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Unesena vrijednost nije unikatna'
@ -208,6 +213,7 @@ hr:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ hr:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ hr:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ hr:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Ubaci vezu'
BUTTONREMOVELINK: 'Obriši vezu'
@ -293,7 +303,7 @@ hr:
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: Širina
IMAGEWIDTHPX: 'Širina'
INSERTMEDIA: 'Insert Media'
LINK: 'Ubaci/editiraj link za označeni tekst'
LINKANCHOR: 'Anchor on this page'
@ -331,7 +341,10 @@ hr:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ hr:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ hr:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ hr:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nema uploadanih slika'
SiteTree:
@ -551,6 +578,8 @@ hr:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ hr:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Verzije

View File

@ -2,6 +2,7 @@ hu:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Új mappa'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Először feltöltve'
DIM: Képméret
@ -59,9 +60,9 @@ hu:
ERRORNOTADMIN: 'Ez a felhasználó nem adminisztrátor. '
ERRORNOTREC: 'Ez a felhasználónév / jelszó nem létezik'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ hu:
ACCESSALLINTERFACES: 'Elérés minden CMS interfészhez'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Mentés
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ hu:
HELLO: Szia!
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Ablak bezárása'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ hu:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: nap
DAYS: nappal
HOUR: órája
HOURS: órával
MIN: perce
MINS: perccel
MONTH: hónap
MONTHS: hónappal
SEC: másodperce
SECS: másodperccel
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: éve
YEARS: évvel
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ hu:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: 'A %s szükséges'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'A beírt érték nem egyedi'
@ -208,6 +213,7 @@ hu:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ hu:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ hu:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ hu:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Link beszúrása'
BUTTONREMOVELINK: 'Link eltávolítása'
@ -331,7 +341,10 @@ hu:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ hu:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ hu:
ModelAdmin:
DELETE: Törlés
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Betöltés CSV-ből'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Kérünk, válaszd ki a betöltendő CSV fájlt'
@ -515,7 +529,20 @@ hu:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nincs feltöltött kép'
SiteTree:
@ -551,6 +578,8 @@ hu:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ hu:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Verziók

View File

@ -2,6 +2,7 @@ hy_AM:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ hy_AM:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ hy_AM:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ hy_AM:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ hy_AM:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ hy_AM:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ hy_AM:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ hy_AM:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ hy_AM:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ hy_AM:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ hy_AM:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ hy_AM:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ hy_AM:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ hy_AM:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ hy_AM:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ hy_AM:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ id:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ id:
ERRORNOTADMIN: 'User tersebut bukan administrator.'
ERRORNOTREC: 'Username/password tidak dikenali'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ id:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Simpan
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ id:
HELLO: Hai
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Tutup popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ id:
PLURALNAME: 'Objek-objek Data'
SINGULARNAME: 'Objek Data'
Date:
DAY: hari
DAYS: hari
HOUR: jam
HOURS: jam
MIN: menit
MINS: menit
MONTH: bulan
MONTHS: bulan
SEC: detik
SECS: detik
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: tahun
YEARS: tahun
YEAR: year
YEARS: years
DateField:
NOTSET: 'tidak diset'
TODAY: 'hari ini'
@ -198,7 +202,8 @@ id:
TEXT2: 'link untuk mereset kata sandi'
TEXT3: untuk
Form:
FIELDISREQUIRED: '%s dibutuhkan'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Harga yang dimasukkan tidak unik'
@ -208,6 +213,7 @@ id:
VALIDATOR: Pengesah
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: 'tidak ada'
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ id:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ id:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ id:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Beri link'
BUTTONREMOVELINK: 'Pindahkan link'
@ -331,7 +341,10 @@ id:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ id:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ id:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ id:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Tidak Ada Gambar yang Di-upload'
SiteTree:
@ -551,6 +578,8 @@ id:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ id:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versi-versi

View File

@ -2,6 +2,7 @@ is:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ is:
ERRORNOTADMIN: 'Þessi notandi er ekki stjórnandi'
ERRORNOTREC: 'Þetta notendanafn / lykilorð er ekki til'
Boolean:
0: Nei
ANY: Einhver
1:
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ is:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Vista
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ is:
HELLO:
PASSWORD: Lykilorð
CheckboxField:
- Nei
-
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Loka glugga'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ is:
PLURALNAME: 'Gagna hlutir'
SINGULARNAME: 'Gagna hlutir'
Date:
DAY: dagur
DAYS: dagar
HOUR: klukkustund
HOURS: klukkustundir
MIN: mín
MINS: mín
MONTH: mánuð
MONTHS: mánuði
SEC: sek
SECS: sek
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ár
YEARS: ár
YEAR: year
YEARS: years
DateField:
NOTSET: 'ekki valið'
TODAY: 'í dag'
@ -198,7 +202,8 @@ is:
TEXT2: 'endursetja lykilorð'
TEXT3: fyrir
Form:
FIELDISREQUIRED: '%s er krafist'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Gildið sem þú slóst inn er ekki einkvæmt'
@ -208,6 +213,7 @@ is:
VALIDATOR: Staðfesta
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: ekkert
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ is:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ is:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ is:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Markstikla
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Bæta við hlekk'
BUTTONREMOVELINK: 'Fjarlægja hlekk'
@ -331,7 +341,10 @@ is:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ is:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ is:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ is:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Engin mynd sótt'
SiteTree:
@ -551,6 +578,8 @@ is:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ is:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: útgáfur

View File

@ -2,6 +2,7 @@ it:
AssetAdmin:
ALLOWEDEXTS: 'Estensioni consentite'
NEWFOLDER: NuovaCartella
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Inizialmente caricato'
DIM: Dimensioni
@ -59,9 +60,9 @@ it:
ERRORNOTADMIN: 'Questo utente non è amministratore.'
ERRORNOTREC: 'Nome utente / password non riconosciuti'
Boolean:
0: NO
ANY: Qualsiasi
1: SI
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Caricamento in corso...'
REQUIREJS: 'Il CMS richiede JavaScript abilitato.'
@ -70,6 +71,8 @@ it:
ACCESSALLINTERFACES: 'Accesso a tutte le sezioni del CMS'
ACCESSALLINTERFACESHELP: 'Annulla le impostazioni di accesso più specifiche.'
SAVE: Salva
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Il mio Profilo'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ it:
HELLO: Ciao
PASSWORD: Password
CheckboxField:
- No
- Si
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Chiudi Finestra'
SUCCESSADD2: 'Aggiunto {name}'
@ -109,20 +112,21 @@ it:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: giorno
DAYS: giorni
HOUR: ora
HOURS: ore
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: min
MONTH: mese
MONTHS: mesi
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: sec
SECS: secs
TIMEDIFFAGO: '{difference} fa'
TIMEDIFFIN: 'in {difference}'
YEAR: anno
YEARS: anni
YEAR: year
YEARS: years
DateField:
NOTSET: 'non impostato'
TODAY: oggi
@ -198,7 +202,8 @@ it:
TEXT2: 'Link per l''azzeramento della password'
TEXT3: per
Form:
FIELDISREQUIRED: '%s è richiesto'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Vai
VALIDATIONCREDITNUMBER: 'Assicurati che il numero di carta di credito {number} sia inserito correttamente'
VALIDATIONNOTUNIQUE: 'Il valore inserito non è unico'
@ -208,6 +213,7 @@ it:
VALIDATOR: Valiidatore
VALIDCURRENCY: 'Inserisci una valuta valida'
FormField:
Example: 'e.g. %s'
NONE: nessuno
GridAction:
DELETE_DESCRIPTION: Elimina
@ -230,6 +236,7 @@ it:
ResetFilter: Azzera
GridFieldAction_Delete:
DeletePermissionsFailure: 'Non hai i permessi per eliminare'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Annulla
Create: Crea
@ -237,7 +244,9 @@ it:
DeletePermissionsFailure: 'Non hai i permessi per eliminare'
Deleted: 'Eliminato %s %s'
Save: Salva
Saved: 'Salvato %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Aggiungi un ruolo per questo gruppo'
@ -267,6 +276,7 @@ it:
ADDURL: 'Aggiungi URL'
ADJUSTDETAILSDIMENSIONS: 'Dettagli e dimensioni'
ANCHORVALUE: Ancora
BUTTONADDURL: 'Add url'
BUTTONINSERT: Inserisci
BUTTONINSERTLINK: 'Inserisci link'
BUTTONREMOVELINK: 'Rimuovi link'
@ -331,6 +341,9 @@ it:
PreviewButton: Anteprima
REORGANISATIONSUCCESSFUL: 'Albero del sito riorganizzato con successo.'
SAVEDUP: Salvato.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: sconosciuto
LeftAndMain_Menu.ss:
Hello: Ciao
@ -407,6 +420,7 @@ it:
TWODIGITMONTH: 'Mese a due cifre (01=Gennaio, ecc.)'
TWODIGITSECOND: 'Secondi a due cifre (00 a 59)'
TWODIGITYEAR: 'Anno a due cifre'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Importa utenti in <em>formato CSV</em> (valori separati da virgole). <small><a href="#" class="toggle-advanced">Mostra utilizzo avanzato</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Utilizzo avanzato</h4>\\n<ul>\\n<li>Colonne consentite: <em>%s</em></li>\\n<li>Utenti esistenti sono individuati attraverso la proprietà univoca <em>Code</em> e aggiornati con i nuovi valori \\ndal file importato.</li>\\n<li>I gruppi possono essere assegnati attraverso la colonna <em>Groups</em>. I gruppi sono identificati attraverso la loro colonna <em>Code</em>, \\npiù gruppi devono essere separati da virgola. L''appartenenza esistente a gruppi non viene cancellata.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ it:
ModelAdmin:
DELETE: Elimina
DELETEDRECORDS: 'Eliminati {count} record.'
EMPTYBEFOREIMPORT: 'Cancella database prima dell''import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importa da CSV'
IMPORTEDRECORDS: 'Importati {count} record.'
NOCSVFILE: 'Scegli un file CSV da importare'
@ -515,7 +529,20 @@ it:
BtnImport: 'Importa da CSV'
FileFieldLabel: 'File CSV <small>(Estensioni consentite: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Modifica
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nessuna immagine caricata'
SiteTree:
@ -551,6 +578,8 @@ it:
ATTACHFILE: 'Allega un file'
ATTACHFILES: 'Allega file'
AttachFile: 'Allega file'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: Elimina
DELETEINFO: 'Elimina permanentemente questo file dal CMS'
DOEDIT: Salva
@ -565,12 +594,15 @@ it:
FROMFILES: 'Dal CMS'
HOTLINKINFO: 'Info: Questa immagine sarà collegata. Assicurati di avere il permesso di farlo.'
MAXNUMBEROFFILES: 'Numero massimo di {count} file ecceduto.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Puoi caricare solo {count} file'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Rimuovi
REMOVEERROR: 'Errore eliminando il file'
REMOVEINFO: 'Rimuove il file da qui, ma non lo elimina dal CMS'
STARTALL: 'Avvia tutti'
STARTALLINFO: 'Avvia tutti i caricamenti'
Saved: Salvato
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versioni

View File

@ -2,13 +2,14 @@ ja_JP:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 新しいフォルダ
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 初回アップロード日時
DIM: Dimensions
FILENAME: ファイル名
FOLDER: フォルダ
LASTEDIT: 最終更新日
OWNER: 所有者
OWNER: '所有者'
SIZE: ファイルサイズ
TITLE: タイトル
TYPE: ファイルの種類
@ -16,7 +17,7 @@ ja_JP:
AssetUploadField:
ChooseFiles: ファイルを選択
DRAGFILESHERE: ここにファイルをドラッグ
DROPAREA: ドロップ領域
DROPAREA: 'ドロップ領域'
EDITALL: すべて編集
EDITANDORGANIZE: 編集と管理
EDITINFO: ファイルを編集
@ -25,7 +26,7 @@ ja_JP:
FROMCOMPUTERINFO: コンピュータからアップロード
TOTAL: 合計
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: しばらくお待ちください...アップロードは進行中です
UPLOADINPROGRESS: 'しばらくお待ちください...アップロードは進行中です'
UPLOADOR: もしくは
BBCodeParser:
ALIGNEMENT: 整列
@ -44,7 +45,7 @@ ja_JP:
ITALIC: テキストを斜体にする
ITALICEXAMPLE: 斜体
LINK: ウェブサイトのリンク
LINKDESCRIPTION: 別のウェブサイトかURLにリンクしてください
LINKDESCRIPTION: '別のウェブサイトかURLにリンクしてください'
STRUCK: テキストに取り消し線を引く
STRUCKEXAMPLE: 取り消し線
UNDERLINE: テキストに下線を引く
@ -55,21 +56,23 @@ ja_JP:
BackLink_Button.ss:
Back: 戻る
BasicAuth:
ENTERINFO: ユーザー名とパスワードを入力してください
ERRORNOTADMIN: このユーザーは管理者(アドミニストレーター)ではありません
ENTERINFO: 'ユーザー名とパスワードを入力してください'
ERRORNOTADMIN: 'このユーザーは管理者(アドミニストレーター)ではありません'
ERRORNOTREC: 'ユーザー名 / パスワードは認識されませんでした'
Boolean:
0:
ANY: 何でも
1:
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 読み込み中...
REQUIREJS: CMSを利用するにはJavascriptが有効化されている必要があります。
REQUIREJS: 'CMSを利用するにはJavascriptが有効化されている必要があります。'
CMSMain:
ACCESS: 'Access to ''{title}'' section'
ACCESSALLINTERFACES: すべてのCMSのセクションへアクセス
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 保存
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,17 +82,17 @@ ja_JP:
HELLO: こんにちわ!
PASSWORD: パスワード
CheckboxField:
- いいえ
- はい
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: ポップアップを閉じる
SUCCESSADD2: '{name}を追加しました'
SUCCESSEDIT: '更新日時 %s %s %s'
ComplexTableField.ss:
ADDITEM: '%sを追加する'
NOITEMSFOUND: 項目が見つかりませんでした
SORTASC: 昇順
SORTDESC: ソート(下順)
NOITEMSFOUND: '項目が見つかりませんでした'
SORTASC: '昇順'
SORTDESC: 'ソート(下順)'
ComplexTableField_popup.ss:
NEXT: 次へ
PREVIOUS: 前へ
@ -109,20 +112,21 @@ ja_JP:
PLURALNAME: データオブジェクト
SINGULARNAME: データオブジェクト
Date:
DAY: ' 日'
DAYS:
HOUR:
HOURS:
MIN:
MINS:
MONTH: ' 月'
MONTHS: ' 月'
SEC:
SECS:
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference}前'
TIMEDIFFIN: '{difference}以内'
YEAR:
YEARS:
YEAR: year
YEARS: years
DateField:
NOTSET: セットされていません
TODAY: 今日
@ -136,7 +140,7 @@ ja_JP:
DropdownField:
CHOOSE: (選択)
EmailField:
VALIDATION: メールアドレスを入力してください
VALIDATION: 'メールアドレスを入力してください'
Email_BounceRecord:
PLURALNAME: 'Eメール 反応記録'
SINGULARNAME: 'Eメール 反応記録'
@ -144,7 +148,7 @@ ja_JP:
ANY: 何でも
File:
AviType: 'AVI video file'
Content: 内容
Content: '内容'
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -198,16 +202,18 @@ ja_JP:
TEXT2: パスワードリセットのリンク
TEXT3:
Form:
FIELDISREQUIRED: '%s が必要です'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 入力された値はユニークではありません
VALIDATIONNOTUNIQUE: '入力された値はユニークではありません'
VALIDATIONPASSWORDSDONTMATCH: パスワードが一致しません
VALIDATIONPASSWORDSNOTEMPTY: パスワードが空欄です
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: 検証
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: 何もありません
GridAction:
DELETE_DESCRIPTION: Delete
@ -221,7 +227,7 @@ ja_JP:
LEVELUP: 'Level up'
LinkExisting: 'Link Existing'
NewRecord: 新しい%s
NoItemsFound: 項目が見つかりませんでした
NoItemsFound: '項目が見つかりませんでした'
PRINTEDAT: 'Printed at'
PRINTEDBY: 'Printed by'
PlaceHolder: '{type}を探す'
@ -230,6 +236,7 @@ ja_JP:
ResetFilter: リセット
GridFieldAction_Delete:
DeletePermissionsFailure: 削除権限がありません
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: 作成
@ -237,22 +244,24 @@ ja_JP:
DeletePermissionsFailure: 削除権限がありません
Deleted: '削除済み %s %s'
Save: 保存
Saved: '保存済み %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: このグループに役割を追加する
AddRole: 'このグループに役割を追加する'
Code: グループコード
DefaultGroupTitleAdministrators: 管理者
DefaultGroupTitleContentAuthors: コンテンツの著者
DefaultGroupTitleAdministrators: '管理者'
DefaultGroupTitleContentAuthors: 'コンテンツの著者'
Description: 説明文
GroupReminder: 元グループを選択された場合、このグループはその役割をすべて受け継ぎます。
GroupReminder: '元グループを選択された場合、このグループはその役割をすべて受け継ぎます。'
Locked: ロックしますか?
NoRoles: 役割が見つかりませんでした
PLURALNAME: Groups
Parent: 元グループ
Parent: '元グループ'
RolesAddEditLink: 役割の管理
SINGULARNAME: Group
Sort: 並び順
Sort: '並び順'
has_many_Permissions: 承認
many_many_Members: メンバー
GroupImportForm:
@ -264,19 +273,20 @@ ja_JP:
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
HtmlEditorField:
ADDURL: URLを追加
ADDURL: 'URLを追加'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: アンカー
BUTTONINSERT: 追加
BUTTONINSERTLINK: リンクを追加
BUTTONADDURL: 'Add url'
BUTTONINSERT: '追加'
BUTTONINSERTLINK: 'リンクを追加'
BUTTONREMOVELINK: リンクを削除
BUTTONUpdate: 更新
CAPTIONTEXT: タイトル
CSSCLASS: '調整 / スタイル'
CSSCLASSCENTER: 中央はテキストのみ
CSSCLASSLEFT: 左側にテキストと一緒に処理してください
CSSCLASSLEFT: '左側にテキストと一緒に処理してください'
CSSCLASSLEFTALONE: 中央はテキストのみ
CSSCLASSRIGHT: 右側にテキストと一緒に処理してください
CSSCLASSRIGHT: '右側にテキストと一緒に処理してください'
DETAILS: 詳細
EMAIL: メールアドレス
FILE: ファイル
@ -284,18 +294,18 @@ ja_JP:
FROMCMS: CMSから
FROMCOMPUTER: コンピュータから
FROMWEB: Webから
FindInFolder: フォルダ内を探す
FindInFolder: 'フォルダ内を探す'
IMAGEALT: 代替テキスト(Alt)
IMAGEALTTEXT: '代替(Alt)テキスト - 画像が表示されなかった場合に表示されます'
IMAGEALTTEXTDESC: スクリーンリーダー利用者やイメージが表示されなかった場合に表示されます
IMAGEALTTEXTDESC: 'スクリーンリーダー利用者やイメージが表示されなかった場合に表示されます'
IMAGEDIMENSIONS: サイズ
IMAGEHEIGHTPX: Height
IMAGETITLE: 'タイトル(ツールチップ)テキスト - 画像に対する追加的情報'
IMAGETITLETEXT: タイトルテキスト(ツールチップ)
IMAGETITLETEXTDESC: 画像に関する追加情報
IMAGETITLETEXTDESC: '画像に関する追加情報'
IMAGEWIDTHPX: Width
INSERTMEDIA: メディアを追加
LINK: ハイライトテキストへのリンクの挿入/削除
INSERTMEDIA: 'メディアを追加'
LINK: 'ハイライトテキストへのリンクの挿入/削除'
LINKANCHOR: このページにアンカーを置く
LINKDESCR: リンクの説明
LINKEMAIL: メールアドレス
@ -324,13 +334,16 @@ ja_JP:
DropdownBatchActionsDefault: アクション
HELP: ヘルプ
PAGETYPE: 'ページの種類:'
PERMAGAIN: ログアウトしました。再度ログインする場合は下にユーザー名とパスワードを入力してください。
PERMALREADY: 申し訳ございません。ご指定になられたCMSの箇所にはアクセスいただけません。別ユーザーとしてログインをされたい場合は、下記より行えます。
PERMDEFAULT: 認証方法を選択し、CMSにアクセスするために利用する認証情報を入力してください。
PERMAGAIN: 'ログアウトしました。再度ログインする場合は下にユーザー名とパスワードを入力してください。'
PERMALREADY: '申し訳ございません。ご指定になられたCMSの箇所にはアクセスいただけません。別ユーザーとしてログインをされたい場合は、下記より行えます。'
PERMDEFAULT: '認証方法を選択し、CMSにアクセスするために利用する認証情報を入力してください。'
PLEASESAVE: '保存してください: 保存してないため更新できません。'
PreviewButton: プレビュー
REORGANISATIONSUCCESSFUL: サイトツリーの再編集に成功しました。
SAVEDUP: 保存済み
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: 不明
LeftAndMain_Menu.ss:
Hello: こんにちは!
@ -342,7 +355,7 @@ ja_JP:
SINGULARNAME: 'Login Attempt'
Status: ステータス
Member:
ADDGROUP: グループを追加
ADDGROUP: 'グループを追加'
BUTTONCHANGEPASSWORD: パスワードの変更
BUTTONLOGIN: ログイン
BUTTONLOGINOTHER: 他の誰かとしてログイン
@ -351,15 +364,15 @@ ja_JP:
CONFIRMNEWPASSWORD: 新しいパスワードを確認します
CONFIRMPASSWORD: パスワード(確認のためもう一度)
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 初期管理者
DefaultAdminFirstname: '初期管理者'
DefaultDateTime: 初期設定
EMAIL: メールアドレス
EMPTYNEWPASSWORD: パスワードが空です。もう一度入力して下さい。
ENTEREMAIL: パスワードをリセットするためにメールアドレスを入力してください。
ERRORLOCKEDOUT: あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。
ERRORNEWPASSWORD: 入力されたパスワードが一致しません。再度お試しください
ERRORPASSWORDNOTMATCH: 登録されているパスワードと一致しません、もう一度入力し直してください
ERRORWRONGCRED: メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください
EMPTYNEWPASSWORD: 'パスワードが空です。もう一度入力して下さい。'
ENTEREMAIL: 'パスワードをリセットするためにメールアドレスを入力してください。'
ERRORLOCKEDOUT: 'あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。'
ERRORNEWPASSWORD: '入力されたパスワードが一致しません。再度お試しください'
ERRORPASSWORDNOTMATCH: '登録されているパスワードと一致しません、もう一度入力し直してください'
ERRORWRONGCRED: 'メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください'
FIRSTNAME:
INTERFACELANG: 画面言語
INVALIDNEWPASSWORD: '次のパスワードは受け付けることができません: {password}'
@ -373,7 +386,7 @@ ja_JP:
SUBJECTPASSWORDRESET: パスワード再発行
SURNAME:
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: 入力したメールアドレス(%sは、他のメンバーにすでに使用されています。
VALIDATIONMEMBEREXISTS: '入力したメールアドレス(%sは、他のメンバーにすでに使用されています。'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: '{firstname}さん、おかえりなさい'
YOUROLDPASSWORD: 古いパスワード
@ -381,7 +394,7 @@ ja_JP:
db_LastVisited: 最終訪問日
db_Locale: インターフェースの言語地域
db_LockedOutUntil: DBロックがされています。
db_NumVisit: 訪問者数
db_NumVisit: '訪問者数'
db_Password: パスワード
db_PasswordExpiry: パスワードの有効期限
MemberAuthenticator:
@ -407,6 +420,7 @@ ja_JP:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p><em>CSVフォーマット</em>(コンマ区切り)でユーザーを取り込みます。 <small><a href="#" class="toggle-advanced">高度な利用方法を表示</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,16 +435,16 @@ ja_JP:
ModelAdmin:
DELETE: 削除
DELETEDRECORDS: '{count}レコードを削除しました。'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: CSVからインポート
IMPORTEDRECORDS: '{count}レコードを取り込みました。'
NOCSVFILE: インポートするためのCSVファイルを参照してください
NOCSVFILE: 'インポートするためのCSVファイルを参照してください'
NOIMPORT: インポートするものがありません。
RESET: リセット
Title: 'Data Models'
UPDATEDRECORDS: '{count}レコードを更新しました。'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: データベースカラム
IMPORTSPECFIELDS: 'データベースカラム'
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: 関連
IMPORTSPECTITLE: 'Specification for %s'
@ -451,9 +465,9 @@ ja_JP:
Page: Page
View: View
Permission:
AdminGroup: 管理者
AdminGroup: '管理者'
CMS_ACCESS_CATEGORY: 'CMS Access'
FULLADMINRIGHTS: 完全な管理権
FULLADMINRIGHTS: '完全な管理権'
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
PLURALNAME: Permissions
SINGULARNAME: Permission
@ -474,27 +488,27 @@ ja_JP:
PERMISSIONS_CATEGORY: 役割とアクセス権限
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: 電話番号を入力してください
VALIDATION: '電話番号を入力してください'
RelationComplexTableField.ss:
ADD: 追加
ADD: '追加'
CSVEXPORT: CSVへ書き出し
NOTFOUND: 項目が見つかりませんでした
NOTFOUND: '項目が見つかりませんでした'
Security:
ALREADYLOGGEDIN: 'あなたはこのページにアクセスできません。別のアカウントを持っていたら <a href="%s">再ログイン</a>を行ってください。'
BUTTONSEND: パスワードリセットのリンクを送信してください
BUTTONSEND: 'パスワードリセットのリンクを送信してください'
CHANGEPASSWORDBELOW: 以下のパスワードを変更できます
CHANGEPASSWORDHEADER: パスワードを変更しました
ENTERNEWPASSWORD: 新しいパスワードを入力してください
ENTERNEWPASSWORD: '新しいパスワードを入力してください'
ERRORPASSWORDPERMISSION: パスワードを変更する為に、ログインしなければなりません!
LOGGEDOUT: ログアウトしました。再度ログインする場合は証明書キーを入力してください
LOGGEDOUT: 'ログアウトしました。再度ログインする場合は証明書キーを入力してください'
LOGIN: ログイン
NOTEPAGESECURED: このページはセキュリティで保護されております証明書キーを下記に入力してください。こちらからすぐに送信します
NOTEPAGESECURED: 'このページはセキュリティで保護されております証明書キーを下記に入力してください。こちらからすぐに送信します'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: メールアドレスを入力してください、パスワードをリセットするURLを送信致します
NOTERESETPASSWORD: 'メールアドレスを入力してください、パスワードをリセットするURLを送信致します'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:
ACCESS_HELP: ユーザを閲覧、追加、編集すること、及び、そのユーザに対して権限や役割を割り当てることを許可
ACCESS_HELP: 'ユーザを閲覧、追加、編集すること、及び、そのユーザに対して権限や役割を割り当てることを許可'
APPLY_ROLES: 役割をグループへ適用
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
EDITPERMISSIONS: グループの権限を編集
@ -515,7 +529,20 @@ ja_JP:
BtnImport: CSVから取り込み
FileFieldLabel: 'CSVファイル <small>(利用可能な拡張子: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: 編集
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 何も画像がアップロードされていません
SiteTree:
@ -523,7 +550,7 @@ ja_JP:
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
TableField.ss:
ADD: 新しい行を追加
ADD: '新しい行を追加'
ADDITEM: '%sを追加'
TableListField:
CSVEXPORT: CSVにエクスポート
@ -531,9 +558,9 @@ ja_JP:
Print: Print
SELECT: 選択:
TableListField.ss:
NOITEMSFOUND: 項目が見つかりませんでした
SORTASC: 昇順で並べ替え
SORTDESC: 降順で並べ替え
NOITEMSFOUND: '項目が見つかりませんでした'
SORTASC: '昇順で並べ替え'
SORTDESC: '降順で並べ替え'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
@ -546,31 +573,36 @@ ja_JP:
VALIDATEFORMAT: '正しい時間フォーマット{{format}}を入力してください'
ToggleField:
LESS: 減少
MORE: 増加
MORE: '増加'
UploadField:
ATTACHFILE: ファイルを添付
ATTACHFILES: ファイルを添付
AttachFile: ファイルを添付
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: ファイルストレージから永久にこのファイルは削除されました
DELETEINFO: 'ファイルストレージから永久にこのファイルは削除されました'
DOEDIT: 保存
DROPFILE: ファイルをドロップ
DROPFILES: ファイルをドロップ
Dimensions: Dimensions
EDIT: 編集
EDITINFO: このファイルを編集
FIELDNOTSET: ファイル情報が見つかりませんでした
FIELDNOTSET: 'ファイル情報が見つかりませんでした'
FROMCOMPUTER: コンピュータから
FROMCOMPUTERINFO: ファイルから選択
FROMFILES: ファイルから
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: '最大数の{count}ファイルを超えました。'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: '{count}ファイルしかアップロードすることができません'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: 削除
REMOVEERROR: ファイルの削除におけるエラー
REMOVEINFO: ここからこのファイルを削除。ただし、ファイルのストレージからこのファイルの削除はしない。
REMOVEINFO: 'ここからこのファイルを削除。ただし、ファイルのストレージからこのファイルの削除はしない。'
STARTALL: すべて開始
STARTALLINFO: すべてのアップロードを開始
Saved: 保存しました
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: バージョン

View File

@ -2,6 +2,7 @@ km:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ km:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ km:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ km:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ km:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Objects'
Date:
DAY: ថ្ងៃ
DAYS: ថ្ងៃ
HOUR: ម៉ោង
HOURS: ម៉ោង
MIN: នាទី
MINS: នាទី
MONTH: ខែ
MONTHS: ខែ
SEC: វិនាទី
SECS: វិនាទី
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ឆ្នាំ
YEARS: ឆ្នាំ
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ km:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ km:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ km:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ km:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -246,10 +255,10 @@ km:
DefaultGroupTitleContentAuthors: 'Content Authors'
Description: Description
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
Locked: មិនអាចប្រើ
Locked: 'មិនអាចប្រើ'
NoRoles: 'No roles found'
PLURALNAME: Groups
Parent: ចំណាត់ក្រុមដើម
Parent: 'ចំណាត់ក្រុមដើម'
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
Sort: 'Sort Order'
@ -267,6 +276,7 @@ km:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ km:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -377,13 +390,13 @@ km:
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
YOUROLDPASSWORD: 'Your old password'
belongs_many_many_Groups: ចំណាត់ក្រុម
belongs_many_many_Groups: 'ចំណាត់ក្រុម'
db_LastVisited: 'Last Visited Date'
db_Locale: 'Interface Locale'
db_LockedOutUntil: ដោះចេញរហូតដល់
db_LockedOutUntil: 'ដោះចេញរហូតដល់'
db_NumVisit: 'Number of Visits'
db_Password: Password
db_PasswordExpiry: កាលបរិច្ឆេទផុតកំណត់ពាក្យសំងាត់
db_PasswordExpiry: 'កាលបរិច្ឆេទផុតកំណត់ពាក្យសំងាត់'
MemberAuthenticator:
TITLE: 'E-mail &amp; Password'
MemberDatetimeOptionsetField:
@ -407,6 +420,7 @@ km:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ km:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ km:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ km:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ km:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: ជំនាន់

View File

@ -2,6 +2,7 @@ lt:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ lt:
ERRORNOTADMIN: 'Vartotojas nėra administratorius'
ERRORNOTREC: 'Toks vartotojo vardas / slaptažodis neatpažintas'
Boolean:
0: Ne
ANY: 'Bet koks'
1: Taip
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ lt:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Išsaugoti
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ lt:
HELLO: Sveiki
PASSWORD: Slaptažodis
CheckboxField:
- Ne
- Taip
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: Uždaryti
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ lt:
PLURALNAME: 'Duomenų objektai'
SINGULARNAME: 'Duomenų objektas'
Date:
DAY: diena
DAYS: dienas
HOUR: valandą
HOURS: valandas
MIN: minutę
MINS: minutes
MONTH: mėnuo
MONTHS: mėnesiai
SEC: sek.
SECS: sekundes
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: metai
YEARS: metus
YEAR: year
YEARS: years
DateField:
NOTSET: nenustatyta
TODAY: šiandien
@ -198,7 +202,8 @@ lt:
TEXT2: 'slaptažodžio atstatymo nuoroda'
TEXT3: kam
Form:
FIELDISREQUIRED: '%s yra būtinas'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Įvesta reikšmė nėra unikali'
@ -208,6 +213,7 @@ lt:
VALIDATOR: Tikrintojas
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: niekas
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ lt:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ lt:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ lt:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Pagrindinis
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Įterpti nuorodą'
BUTTONREMOVELINK: 'Pašalinti nuorodą'
@ -331,7 +341,10 @@ lt:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ lt:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ lt:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ lt:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Neįkrauta jokių paveikslėlių'
SiteTree:
@ -551,6 +578,8 @@ lt:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ lt:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versijos

View File

@ -2,6 +2,7 @@ lv:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ lv:
ERRORNOTADMIN: 'Šis lietotājs nav administrators.'
ERRORNOTREC: 'Šis lietotājvārds / parole nav atpazīts'
Boolean:
0:
ANY: Jebkurš
1:
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ lv:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Saglabāt
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ lv:
HELLO: Sveiki
PASSWORD: Parole
CheckboxField:
-
-
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Aizvērt izlēcošo logu'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ lv:
PLURALNAME: 'Datu Objekti'
SINGULARNAME: 'Datu Objekts'
Date:
DAY: diena
DAYS: dienas
HOUR: stunda
HOURS: stundas
MIN: minūte
MINS: minūtes
MONTH: mēnesis
MONTHS: mēneši
SEC: sekunde
SECS: sekundes
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: gads
YEARS: gadi
YEAR: year
YEARS: years
DateField:
NOTSET: 'nav uzstādīts'
TODAY: šodien
@ -198,7 +202,8 @@ lv:
TEXT2: 'paroles atiestatīšanas saite'
TEXT3: ' '
Form:
FIELDISREQUIRED: '%s ir obligāti aizpildāms.'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Ievadītā vērtība nav unikāla'
@ -208,6 +213,7 @@ lv:
VALIDATOR: Validators
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: neviens
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ lv:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ lv:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ lv:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Enkurs
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Ievietot saiti'
BUTTONREMOVELINK: 'Noņemt saiti'
@ -331,7 +341,10 @@ lv:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ lv:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ lv:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ lv:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Netika augšupielādēts neviens attēls'
SiteTree:
@ -551,6 +578,8 @@ lv:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ lv:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versijas

View File

@ -2,6 +2,7 @@ mi_NZ:
AssetAdmin:
ALLOWEDEXTS: 'Ngā toronga ka whakaaetia'
NEWFOLDER: KōpakiHōu
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Tukuatu tuatahi'
DIM: 'Ngā Rahinga'
@ -59,9 +60,9 @@ mi_NZ:
ERRORNOTADMIN: 'Ehara tēnā kaiwhakamahi i te kaiwhakahaere'
ERRORNOTREC: 'Kāore i te mōhiotia tēnā ingoa kaiwhakamahi / kupuhipa'
Boolean:
0:
ANY: 'Ko tētahi'
1: Pono
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Uta ana...'
REQUIREJS: 'Ka hiahia te CMS kia whakahohea te JavaScript'
@ -70,6 +71,8 @@ mi_NZ:
ACCESSALLINTERFACES: 'Uru ki ngā wāhanga CMS katoa'
ACCESSALLINTERFACESHELP: 'Ka takahi i ngā tautuhinga uru tauwhāiti ake'
SAVE: Tiaki
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ mi_NZ:
HELLO: 'Kia ora'
PASSWORD: Kupuhipa
CheckboxField:
-
- Pono
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Kati Pakū-Ake'
SUCCESSADD2: 'Kua tāpiritia a {name}'
@ -109,20 +112,21 @@ mi_NZ:
PLURALNAME: 'Ngā Ahanoa Raraunga'
SINGULARNAME: 'Ahanoa Raraunga'
Date:
DAY:
DAYS: 'ngā rā'
HOUR: haora
HOURS: 'ngā haora'
MIN: meneti
MINS: 'ngā meneti'
MONTH: marama
MONTHS: 'ngā marama'
SEC: hēkona
SECS: 'ngā hēkona'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} i mua'
TIMEDIFFIN: 'i roto i te {difference}'
YEAR: tau
YEARS: 'ngā tau'
YEAR: year
YEARS: years
DateField:
NOTSET: 'kāore i tautuhia'
TODAY: 'i tēnei rā'
@ -198,7 +202,8 @@ mi_NZ:
TEXT2: 'hono tautuhi kupuhipa anō'
TEXT3:
Form:
FIELDISREQUIRED: 'Ka hiahiatia a %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Tirohia kua tika tō tāuru i te tau kāri nama {number}'
VALIDATIONNOTUNIQUE: 'Ehara te uara i tāurua i te ahurei'
@ -208,6 +213,7 @@ mi_NZ:
VALIDATOR: Pūwhakamana
VALIDCURRENCY: 'Tāurua he moni tika'
FormField:
Example: 'e.g. %s'
NONE: Kore
GridAction:
DELETE_DESCRIPTION: Muku
@ -230,6 +236,7 @@ mi_NZ:
ResetFilter: 'Tautuhi anō'
GridFieldAction_Delete:
DeletePermissionsFailure: 'Kāore he muku whakaaetanga'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Whakakore
Create: Hanga
@ -237,7 +244,9 @@ mi_NZ:
DeletePermissionsFailure: 'Kāore he whakaaetanga muku'
Deleted: 'Kua mukua %s %s'
Save: Tiaki
Saved: 'I tiakina a %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Tāpiritia he tūnga mō tēnei rōpū'
@ -267,6 +276,7 @@ mi_NZ:
ADDURL: 'Tāpiri PRO'
ADJUSTDETAILSDIMENSIONS: 'Ngā taipitopito &amp; ngā rahinga'
ANCHORVALUE: Punga
BUTTONADDURL: 'Add url'
BUTTONINSERT: Kōkohu
BUTTONINSERTLINK: 'Kōkuhu hono'
BUTTONREMOVELINK: 'Tango hono'
@ -331,6 +341,9 @@ mi_NZ:
PreviewButton: Arokite
REORGANISATIONSUCCESSFUL: 'Kua momoho te whakaraupapa anō i te rākau pae'
SAVEDUP: 'Kua Tiakina'
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: 'tē mōhiotia'
LeftAndMain_Menu.ss:
Hello: 'Kia ora'
@ -407,6 +420,7 @@ mi_NZ:
TWODIGITMONTH: 'Marama matirua (01=Kohitātea)'
TWODIGITSECOND: 'Ngā mati hēkona e rua (00 ki te 59)'
TWODIGITYEAR: 'Tau matirua'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Kawea mai ngā kaiwhakamahi i te <em>hōputu CSV </em> (ngā uara ka wehea ki te piko). <small><a href="#" class="toggle-advanced">Whakaatu whakamahinga ara atu anō</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ mi_NZ:
ModelAdmin:
DELETE: Muku
DELETEDRECORDS: 'I mukua e {count} ngā pūkete.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Kawemai i CSV'
IMPORTEDRECORDS: 'I kawea mai e {count} ngā pūkete.'
NOCSVFILE: 'Pūtirotiro kia kitea he kōnae CSV hei kawemai'
@ -515,7 +529,20 @@ mi_NZ:
BtnImport: 'Kawemai i CSV'
FileFieldLabel: 'Kōnae CSV <small>(Ngā toronga ka whakaaetia: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Whakatika
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Kāore He Atahanga Tukuatu'
SiteTree:
@ -551,6 +578,8 @@ mi_NZ:
ATTACHFILE: 'Tāpiritia tētahi kōnae'
ATTACHFILES: 'Tāpiri kōnae'
AttachFile: 'Tāpiritia t/ētahi kōnae'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Muku i ngā kōnae'
DELETEINFO: 'Muku pūmautia tēnei kōnae i te pātaka kōnae'
DOEDIT: Tiaki
@ -565,12 +594,15 @@ mi_NZ:
FROMFILES: 'I ngā kōnae'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Kua hipa te mōrahi o ngā kōnae {count}.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Ka taea te tukuatu i ngā kōnae {count} anake '
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Tango
REMOVEERROR: 'Kua rarua te tango kōnae'
REMOVEINFO: 'Tangohia tēnei kōane i konei, engari kaua e muku i te pātaka kōnae'
STARTALL: 'Tīmata katoa'
STARTALLINFO: 'Tīmataria ngā tukuatu katoa'
Saved: 'Kua Tiakina'
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: 'Ngā Putanga'

View File

@ -2,6 +2,7 @@ ms:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ ms:
ERRORNOTADMIN: 'Pengguna ini bukan pentadbir.'
ERRORNOTREC: 'ID pengguna dan katalaluan tidak dikenali'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ms:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ms:
HELLO: Hi
PASSWORD: 'Kata Laluan'
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ ms:
PLURALNAME: 'Objek-objek Data'
SINGULARNAME: 'Objek Data'
Date:
DAY: hari
DAYS: hari-hari
HOUR: jam
HOURS: jam-jam
MIN: minit
MINS: minit-minit
MONTH: bulan
MONTHS: bulan-bulan
SEC: saat
SECS: saat-saat
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: tahun
YEARS: tahun-tahun
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ ms:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s dipelukan'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Nilai yang dimasukkan tidak unik'
@ -208,6 +213,7 @@ ms:
VALIDATOR: Pengesah
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ms:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ms:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ms:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Masukkan pautan'
BUTTONREMOVELINK: 'Hapuskan pautan'
@ -331,7 +341,10 @@ ms:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ ms:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ms:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ ms:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Tiada imej dimuat naikkan'
SiteTree:
@ -551,6 +578,8 @@ ms:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ ms:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versi-versi

View File

@ -2,6 +2,7 @@ nb:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Ny Mappe'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Først opplastet'
DIM: Dimensjoner
@ -59,9 +60,9 @@ nb:
ERRORNOTADMIN: 'Denne brukeren er ikke administrator.'
ERRORNOTREC: 'Det brukernavnet / Passord er ikke gjenkjent'
Boolean:
0: Usant
ANY: Any
1: Sant
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Laster ...'
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ nb:
ACCESSALLINTERFACES: 'Adgang til alle CMS-seksjoner'
ACCESSALLINTERFACESHELP: 'Overstyrer mer spesifikke adgangsinnstillinger'
SAVE: Lagre
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ nb:
HELLO: Hei
PASSWORD: Passord
CheckboxField:
- Usant
- Sant
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Lukk Popup'
SUCCESSADD2: 'Lagt til {name}'
@ -109,20 +112,21 @@ nb:
PLURALNAME: 'Data Objekter'
SINGULARNAME: 'Data Objekt'
Date:
DAY: dag
DAYS: dager
HOUR: time
HOURS: timer
MIN: minutter
MINS: minutter
MONTH: måned
MONTHS: måneder
SEC: sekund
SECS: sekunder
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} siden'
TIMEDIFFIN: 'i {difference}'
YEAR: år
YEARS: år
YEAR: year
YEARS: years
DateField:
NOTSET: mangler
TODAY: 'i dag'
@ -198,7 +202,8 @@ nb:
TEXT2: 'passord resett link'
TEXT3: for
Form:
FIELDISREQUIRED: 'mangler %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Utfør
VALIDATIONCREDITNUMBER: 'Vennligst sjekk at du har skrevet inn {number} korrekt kortnummer'
VALIDATIONNOTUNIQUE: 'Den spesifiserte verdien er ikke unik'
@ -208,6 +213,7 @@ nb:
VALIDATOR: Validator
VALIDCURRENCY: 'Vennligst skriv inn gyldig valuta'
FormField:
Example: 'e.g. %s'
NONE: ingen
GridAction:
DELETE_DESCRIPTION: Slett
@ -230,6 +236,7 @@ nb:
ResetFilter: Tilbakestille
GridFieldAction_Delete:
DeletePermissionsFailure: 'Ikke tillatt å slette'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Avbryt
Create: Create
@ -237,7 +244,9 @@ nb:
DeletePermissionsFailure: 'Ikke tillatt å slette'
Deleted: 'Slettet %s %s'
Save: Lagre
Saved: 'Lagret %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Legg en rolle til denne gruppen'
@ -267,6 +276,7 @@ nb:
ADDURL: 'Legg til URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Lenke
BUTTONADDURL: 'Add url'
BUTTONINSERT: 'Sett inn'
BUTTONINSERTLINK: 'Sett inn lenke'
BUTTONREMOVELINK: 'Fjern lenke'
@ -331,6 +341,9 @@ nb:
PreviewButton: Forhåndsvisning
REORGANISATIONSUCCESSFUL: 'Omorganisering av sidetreet vellykket'
SAVEDUP: Lagret.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Ukjent
LeftAndMain_Menu.ss:
Hello: Hei
@ -407,6 +420,7 @@ nb:
TWODIGITMONTH: 'Tosifret måned (01=Januar, etc.)'
TWODIGITSECOND: 'Tosifret sekundtall (00 til 59)'
TWODIGITYEAR: 'Tosifret årstall'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ nb:
ModelAdmin:
DELETE: Slett
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importer fra CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ nb:
BtnImport: 'Importer fra CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Rediger
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Ingen Bilder Lastet Opp'
SiteTree:
@ -551,6 +578,8 @@ nb:
ATTACHFILE: 'Legg ved fil'
ATTACHFILES: 'Legg ved filer'
AttachFile: 'Legg ved fil(er)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Slett fra filer'
DELETEINFO: 'Slett filen permament fra filarkivet'
DOEDIT: Lagre
@ -565,12 +594,15 @@ nb:
FROMFILES: 'Fra filer'
HOTLINKINFO: 'Info: Dette bildet vil bli lenket direkte til opprinnelig kilde. Vennligst forsikre deg om at du har tillatelse fra den opprinnelige rettighetshaveren til å gjøre dette.'
MAXNUMBEROFFILES: 'Maks antall {count} fil(er) overskredet'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Kan kun laste opp {count} filer'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Fjern
REMOVEERROR: 'Feil ved fjerning av fil'
REMOVEINFO: 'Fjern filen herfra, men ikke slett den fra filarkivet'
STARTALL: 'Start alle'
STARTALLINFO: 'Start alle opplastinger'
Saved: Lagret
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versjoner

View File

@ -2,6 +2,7 @@ ne:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ ne:
ERRORNOTADMIN: 'यो प्रयोगकता मुख्य प्रयोगकता होइन'
ERRORNOTREC: 'त्यो प्रयोगकता / पासओड बुझन् सकिएन'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ne:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ne:
HELLO: हाई
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ ne:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: दिन
DAYS: दिनहरु
HOUR: घण्टा
HOURS: घण्टाहरु
MIN: मिनेट
MINS: मिनेटहरु
MONTH: महिना
MONTHS: महिनाहरु
SEC: सेकेन्ड
SECS: सेकेन्डहरु
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: बर्ष
YEARS: बर्षाहरु
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ ne:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s चाहिन्छ'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'लेखिएको मान भिन्न छैन '
@ -208,6 +213,7 @@ ne:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ne:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ne:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ne:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'लिन्क राखनुहोस्'
BUTTONREMOVELINK: 'लिन्क हटाउनुहोस्'
@ -331,7 +341,10 @@ ne:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ ne:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ne:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ ne:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'कुनै पनि तस्बिर उप्लोओद गरिएको छैन '
SiteTree:
@ -551,6 +578,8 @@ ne:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ ne:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ nl:
AssetAdmin:
ALLOWEDEXTS: 'Toegestane extensies'
NEWFOLDER: 'Nieuwe Map'
SHOWALLOWEDEXTS: 'Toon toegestane extensies'
AssetTableField:
CREATED: 'Eerste upload'
DIM: Dimensies
@ -59,9 +60,9 @@ nl:
ERRORNOTADMIN: 'Die gebruiker is geen beheerder.'
ERRORNOTREC: 'De gebruikersnaam en/of wachtwoord wordt niet herkend'
Boolean:
0: Nee
ANY: Elke
1: Ja
NOANSWER: Nee
YESANSWER: Ja
CMSLoadingScreen.ss:
LOADING: 'Bezig met laden...'
REQUIREJS: 'Het CMS heeft JavaScript nodig om te werken.'
@ -70,6 +71,8 @@ nl:
ACCESSALLINTERFACES: 'Toegang tot alle CMS onderdelen'
ACCESSALLINTERFACESHELP: 'Overstemt meer specifieke toegangsinstellingen'
SAVE: Bewaar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website voorbeeld'
CMSProfileController:
MENUTITLE: 'Mijn Profiel'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ nl:
HELLO: Hallo
PASSWORD: Wachtwoord
CheckboxField:
- Nee
- Ja
NOANSWER: Nee
YESANSWER: Ja
ComplexTableField:
CLOSEPOPUP: 'Sluit Popup'
SUCCESSADD2: 'Toegevoegd {name}'
@ -113,11 +116,12 @@ nl:
DAYS: dagen
HOUR: uur
HOURS: uren
LessThanMinuteAgo: 'minder dan één minuut'
MIN: minuut
MINS: minuten
MONTH: maand
MONTHS: maanden
SEC: seconde
SEC: second
SECS: seconden
TIMEDIFFAGO: '{difference} geleden'
TIMEDIFFIN: '{difference} geleden'
@ -198,7 +202,8 @@ nl:
TEXT2: 'wachtwoord reset link'
TEXT3: voor
Form:
FIELDISREQUIRED: '%s is verplicht'
CSRF_FAILED_MESSAGE: 'Er lijkt een technisch probleem te zijn. Klikt u op de knop terug, vernieuw uw browser, en probeer het opnieuw.'
FIELDISREQUIRED: '{name} is verplicht'
SubmitBtnLabel: Gaan
VALIDATIONCREDITNUMBER: 'Gelieve uw credit card number {number} juist in te vullen'
VALIDATIONNOTUNIQUE: 'De ingevoerde waarde is niet uniek'
@ -208,6 +213,7 @@ nl:
VALIDATOR: Controleur
VALIDCURRENCY: 'Vul een geldige valuta in'
FormField:
Example: 'e.g. %s'
NONE: geen
GridAction:
DELETE_DESCRIPTION: Verwijderen
@ -230,6 +236,7 @@ nl:
ResetFilter: Herstellen
GridFieldAction_Delete:
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Annuleren
Create: Creëren
@ -237,7 +244,9 @@ nl:
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
Deleted: '%s %s verwijderd'
Save: Opslaan
Saved: '%s %s opgeslagen'
Saved: '{name} {link} opgeslagen'
GridFieldEditButton.ss:
EDIT: Bewerken
GridFieldItemEditView.ss: null
Group:
AddRole: 'Voeg een rol toe aan deze groep'
@ -257,7 +266,7 @@ nl:
many_many_Members: Leden
GroupImportForm:
Help1: '<p>Importeer en of meerdere groepen in <em>CSV</em> formaat (Kommagescheiden bestandsformaat). <small><a href="#" class="toggle-advanced">Toon geavanceerd gebruik</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing groups are matched by their unique <em>Code</em> value, and updated with any new values from the imported file</li> <li>Group hierarchies can be created by using a <em>ParentCode</em> column.</li> <li>Permission codes can be assigned by the <em>PermissionCode</em> column. Existing permission codes are not cleared.</li> </ul></div>'
Help2: "<div class=\"advanced\">\\n<h4>Geavanceerd gebruik</h4>\\n<ul>\\n<li>Toegestane kolommen: <em>%s</em></li>\\n<li>Bestaande leden worden geïdentificeerd door middel van hun unieke <em>Code</em> waarde en aangepast met de nieuwe waarden van het geïmporteerde bestand</li>\\n<li>Groepen kunnen toegewezen worden met de <em>Groups</em> kolom. Groepen worden geïdentificeerd met hun <em>Code</em> waarde en meerdere groepen kunnen worden gescheiden met een komma. Bestaande groep lidmaatschappen worden niet gewist.</li>\\n</ul>\\n</div>\\n</ul>\\n</div>\\n"
ResultCreated: '{count} groepen aangemaakt'
ResultDeleted: '%d groepen verwijderd'
ResultUpdated: '%d groepen aangepast'
@ -267,6 +276,7 @@ nl:
ADDURL: 'Voeg URL toe'
ADJUSTDETAILSDIMENSIONS: 'Details $amp; afmeting'
ANCHORVALUE: Anker
BUTTONADDURL: 'Voeg URL toe'
BUTTONINSERT: Invoegen
BUTTONINSERTLINK: 'Link invoegen'
BUTTONREMOVELINK: 'Link verwijderen'
@ -287,7 +297,7 @@ nl:
FindInFolder: 'Zoek in map'
IMAGEALT: 'Alternatieve tekst (alt tekst) - wordt getoond als de afbeelding niet kan worden geladen'
IMAGEALTTEXT: 'Alternatieve tekst (alt tekst) - wordt getoond als de afbeelding niet kan worden geladen'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEALTTEXTDESC: 'Getoond voor schermlezers of als afbeelding niet kan worden weergegeven'
IMAGEDIMENSIONS: Dimensies
IMAGEHEIGHTPX: Hoogte
IMAGETITLE: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding'
@ -331,6 +341,9 @@ nl:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Menu-indeling is aangepast'
SAVEDUP: 'Succesvol opgeslagen'
ShowAsList: 'Laat als lijst zien'
TooManyPages: 'Te veel pagina''s'
ValidationError: Validatiefout
VersionUnknown: onbekend
LeftAndMain_Menu.ss:
Hello: Hallo
@ -374,7 +387,7 @@ nl:
SURNAME: Achternaam
TIMEFORMAT: 'Tijd formaat'
VALIDATIONMEMBEREXISTS: 'Er bestaat al een lid met dit emailadres, %s'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
ValidationIdentifierFailed: 'Een bestaande gebruiker #{id} kan niet dezelfde unieke velden hebben ({name} = {value}))'
WELCOMEBACK: 'Welkom terug {firstname}'
YOUROLDPASSWORD: 'Uw oude wachtwoord'
belongs_many_many_Groups: Groepen
@ -392,7 +405,7 @@ nl:
Custom: Aangepast
DATEFORMATBAD: 'Datum is niet correct opgegeven'
DAYNOLEADING: 'Dag van de maand zonder voorloop-nul'
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
DIGITSDECFRACTIONSECOND: 'Een of meer cijfers die een decimale fractie van een seconde'
FOURDIGITYEAR: 'jaar (yyyy)'
FULLNAMEMONTH: 'Volledige naam van de maand (Bijv. Juni)'
HOURNOLEADING: 'Uur zonder voorloopnul'
@ -407,9 +420,10 @@ nl:
TWODIGITMONTH: 'Maand in twee cijfers (01 = januari, enz.)'
TWODIGITSECOND: 'Twee cijfer van het uur (00 tot 23)'
TWODIGITYEAR: 'Twee-cijferig jaar'
Toggle: 'Toon opmaak hulp'
MemberImportForm:
Help1: '<p>Importeer leden in <em>CSV</em> formaat (Kommagescheiden bestandsformaat). <small><a href="#" class="toggle-advanced">Toon geavanceerd gebruik</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
Help2: "<div class=\"advanced\">\\n<h4>Geavanceerd gebruik</h4>\\n<ul>\\n<li>Toegestane kolommen: <em>%s</em></li>\\n<li>Bestaande leden worden geïdentificeerd door middel van hun unieke <em>Code</em> waarde en aangepast met de nieuwe waarden van het geïmporteerde bestand</li>\\n<li>Groepen kunnen toegewezen worden met de <em>Groups</em> kolom. Groepen worden geïdentificeerd met hun <em>Code</em> waarde en meerdere groepen kunnen worden gescheiden met een komma. Bestaande groep lidmaatschappen worden niet gewist.</li>\\n</ul>\\n</div>\\n</ul>\\n</div>\\n"
ResultCreated: '{count} leden aangemaakt'
ResultDeleted: '%d leden verwijderd'
ResultNone: 'Geen wijzingen'
@ -421,7 +435,7 @@ nl:
ModelAdmin:
DELETE: Verwijderen
DELETEDRECORDS: '{count} records verwijderd'
EMPTYBEFOREIMPORT: 'Database legen voor importeren'
EMPTYBEFOREIMPORT: 'Vervang gegevens'
IMPORT: 'Importeren vanuit CSV'
IMPORTEDRECORDS: '{count} records geïmporteerd'
NOCSVFILE: 'Selecteer een CSV bestand op uw computer om te importeren'
@ -459,8 +473,8 @@ nl:
SINGULARNAME: Machtiging
PermissionCheckboxSetField:
AssignedTo: 'toegewezen aan "{title}"'
FromGroup: 'inherited from group "{title}"'
FromRole: 'inherited from role "{title}"'
FromGroup: 'geërfd van de groep "{title}"'
FromRole: 'geërfd van de rol "{title}"'
FromRoleOnGroup: 'geërfd van rol "%s" in groep "%s"'
PermissionRole:
OnlyAdminCanApply: 'Alleen admin kan doorvoeren'
@ -472,7 +486,7 @@ nl:
SINGULARNAME: 'Machtigingen rol code'
Permissions:
PERMISSIONS_CATEGORY: 'Rollen en toegangsrechten'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
UserPermissionsIntro: 'Groepen aan deze gebruiker toewijzen zullen de permissies aanpassen. Zie de sectie groepen voor meer informatie over machtigingen voor afzonderlijke groepen.'
PhoneNumberField:
VALIDATION: 'Voer een geldig telefoonnummer in'
RelationComplexTableField.ss:
@ -515,7 +529,20 @@ nl:
BtnImport: Importeer
FileFieldLabel: 'CSV Bestand <small>(Toegestane extensies: *.csv)</small>'
SilverStripeNavigator:
Auto: Automatisch
ChangeViewMode: 'Wijzig weergavemodus'
Desktop: Desktop
DualWindowView: Dubbelvenster
Edit: Bewerken
EditView: Bewerkmodus
Mobile: Mobiel
PreviewState: Voorbeeldstatus
PreviewView: Voorbeeldmodus
Responsive: Responsive
SplitView: Split-modus
Tablet: Tablet
ViewDeviceWidth: 'Selecteer een voorbeeldbreedte'
Width: breedte
SimpleImageField:
NOUPLOAD: 'Geen afbeeldingen ontvangen'
SiteTree:
@ -551,6 +578,8 @@ nl:
ATTACHFILE: 'Voeg een bestand toe'
ATTACHFILES: 'Voeg bestanden toe'
AttachFile: 'Voeg bestand(en) toe'
CHOOSEANOTHERFILE: 'Kies een ander bestand'
CHOOSEANOTHERINFO: 'Vervang dit bestand met een ander uit de bestandsopslag'
DELETE: 'Volledig verwijderen'
DELETEINFO: 'Verwijder dit bestand uit bestandsopslag van de website.'
DOEDIT: Opslaan
@ -565,12 +594,15 @@ nl:
FROMFILES: 'Bestaande bestanden'
HOTLINKINFO: 'Info: Deze afbeelding wordt hotlinked. Zorg ervoor dat u de machtigingen van de oorspronkelijke site maker om dit te doen.'
MAXNUMBEROFFILES: 'Maximale aantal van {count} bestand(en) overschreden.'
MAXNUMBEROFFILESONE: 'Kan slechts één bestand uploaden'
MAXNUMBEROFFILESSHORT: 'Kan alleen {count} bestanden uploaden'
OVERWRITEWARNING: 'Bestand met dezelfde naam bestaat al'
REMOVE: Verwijder
REMOVEERROR: 'Fout bij verwijderen'
REMOVEINFO: 'Verwijder (ontkoppel) dit bestand, maar behoud het in bestandsopslag van de website.'
STARTALL: 'Start alle'
STARTALLINFO: 'Start alle'
Saved: Opgeslagen
UPLOADSINTO: 'Word opgeslagen in /{path}'
Versioned:
has_many_Versions: Versies

View File

@ -2,6 +2,7 @@ pa:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ pa:
ERRORNOTADMIN: 'ਇਹ user ਪ੍ਰਬੰਧਕ ਨਹੀ ਹੈ।'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ pa:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ pa:
HELLO: ਹਾਏ
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -91,7 +94,7 @@ pa:
SORTASC: 'Sort ascending'
SORTDESC: 'Sort descending'
ComplexTableField_popup.ss:
NEXT: ਅਗਲਾ
NEXT: 'ਅਗਲਾ'
PREVIOUS: ਪਿਛਲਾ
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
@ -109,20 +112,21 @@ pa:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: 'ਿਦਨ '
DAYS: ਿਦਨ
HOUR: 'ਘੰਟਾ '
HOURS: 'ਘੰਟੇ '
MIN: 'ਿਮੰਟ '
MINS: 'ਿਮੰਟ '
MONTH: ਮਹੀਨਾ
MONTHS: 'ਮਹੀਨੇੇੇੇੇ '
SEC: 'ਸਿਕ ੰਟ'
SECS: 'ਸਿਕ ੰਟ'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ਸਾਲ
YEARS: ਸਾਲ
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ pa:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s ਚਾਹੀਦਾ ਹੈ'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ pa:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ pa:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ pa:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ pa:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'ਿਲੰਕ ਪਾਉ'
BUTTONREMOVELINK: 'ਿਲੰਕ ਕੱਟੋਂ'
@ -331,7 +341,10 @@ pa:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ pa:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ pa:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ pa:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'ਕੋਈ ਫੋਟੋ ਅੱਪਲੋਡ ਨਹੀ ਹੋਈ'
SiteTree:
@ -551,6 +578,8 @@ pa:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ pa:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ pl:
AssetAdmin:
ALLOWEDEXTS: 'Dopuszczalne rozszerzenia'
NEWFOLDER: NowyFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Po raz pierwszy wgrany'
DIM: Rozmiar
@ -59,9 +60,9 @@ pl:
ERRORNOTADMIN: 'Ten użytkownik nie jest administratorem'
ERRORNOTREC: 'Nie istnieje taki username/hasło'
Boolean:
0: Nie
ANY: Jakikolwiek
1: Tak
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Wczytywanie...
REQUIREJS: 'CMS wymaga włączonej obsługi JavaScript.'
@ -70,6 +71,8 @@ pl:
ACCESSALLINTERFACES: 'Dostęp do wszystkich sekcji CMSa'
ACCESSALLINTERFACESHELP: 'Nadpisuje bardziej specyficzne ustawienia dostępu.'
SAVE: Zapisz
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Mój profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ pl:
HELLO: Cześć
PASSWORD: Hasło
CheckboxField:
- Nie
- Tak
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Zamknij Okienko'
SUCCESSADD2: 'Dodano {name}'
@ -109,20 +112,21 @@ pl:
PLURALNAME: 'Obiekty danych'
SINGULARNAME: 'Obiekt danych'
Date:
DAY: dzień
DAYS: dni
HOUR: godzina
HOURS: godziny
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: minuty
MONTH: miesiąc
MONTHS: miesiące
SEC: sekunda
SECS: sekundy
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} temu'
TIMEDIFFIN: 'w {difference}'
YEAR: rok
YEARS: lata
YEAR: year
YEARS: years
DateField:
NOTSET: 'nie ustawiono'
TODAY: dzisiaj
@ -198,7 +202,8 @@ pl:
TEXT2: 'link zmiany hasła'
TEXT3: dla
Form:
FIELDISREQUIRED: '%s jest wymagane'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Przejdź
VALIDATIONCREDITNUMBER: 'Proszę upewnij się, że wprowadzony numer karty kredytowej {number} jest prawidłowy'
VALIDATIONNOTUNIQUE: 'Wprowadzona wartość nie jest unikalna'
@ -208,6 +213,7 @@ pl:
VALIDATOR: Walidator
VALIDCURRENCY: 'Proszę podaj prawidłową walutę'
FormField:
Example: 'e.g. %s'
NONE: brak
GridAction:
DELETE_DESCRIPTION: Usuń
@ -230,6 +236,7 @@ pl:
ResetFilter: Resetuj
GridFieldAction_Delete:
DeletePermissionsFailure: 'Brak uprawnień do usuwania'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Anuluj
Create: Stwórz
@ -237,7 +244,9 @@ pl:
DeletePermissionsFailure: 'Brak uprawnień do usuwania'
Deleted: 'Usunięto %s %s'
Save: Zapisz
Saved: 'Zapisano %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Dodaj rolę dla tej grupy'
@ -267,6 +276,7 @@ pl:
ADDURL: 'Dodaj adres URL'
ADJUSTDETAILSDIMENSIONS: 'Szczegóły i rozmiar'
ANCHORVALUE: Odnośnik
BUTTONADDURL: 'Add url'
BUTTONINSERT: Wstaw
BUTTONINSERTLINK: 'Wstaw link'
BUTTONREMOVELINK: 'Zmień link'
@ -328,9 +338,12 @@ pl:
PERMALREADY: 'Niestety nie masz dostępu do tej części CMS. Jeśli chcesz zalogować się jako ktoś inny, zrób to poniżej'
PERMDEFAULT: 'Proszę wybrać metodę identyfikacji i wpisać swoje dane, aby uruchomić CMSa.'
PLEASESAVE: 'Proszę zapisać stronę. Ta strona nie mogła zostać uaktualniona, ponieważ nie została jeszcze zapisana.'
PreviewButton: Podgląd
PreviewButton: 'Podgląd'
REORGANISATIONSUCCESSFUL: 'Pomyślnie zreorganizowano drzewo serwisu.'
SAVEDUP: Zapisano.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: nieznany
LeftAndMain_Menu.ss:
Hello: Witaj
@ -398,7 +411,7 @@ pl:
HOURNOLEADING: 'Godzina bez wiodącego zera'
MINUTENOLEADING: 'Minuta bez wiodącego zera'
MONTHNOLEADING: 'Miesiąc bez wiodącego zera'
Preview: Podgląd
Preview: 'Podgląd'
SHORTMONTH: 'Skrócona nazwa miesiąca (np. Cze)'
TOGGLEHELP: 'Przełącz pomoc formatowania'
TWODIGITDAY: 'Dwucyfrowy dzień miesiąca'
@ -407,6 +420,7 @@ pl:
TWODIGITMONTH: 'Dwucyfrowy miesiąc (01=Styczeń, itd.)'
TWODIGITSECOND: 'Dwucyfrowa sekunda (od 00 do 59)'
TWODIGITYEAR: 'Dwucyfrowy rok'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Zaimportuj użytkowników w <em>formacie CSV</em> (tekst rozdzielany przecinkami). <small><a href="#" class="toggle-advanced">Zaawansowane</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ pl:
ModelAdmin:
DELETE: Usuń
DELETEDRECORDS: 'Usunięto rekordów: {count}'
EMPTYBEFOREIMPORT: 'Wyczyść bazę danych przed importowaniem'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import z CSV'
IMPORTEDRECORDS: 'Zaimportowano rekordów: {count}'
NOCSVFILE: 'Wybierz plik CSV do zaimportowania'
@ -515,7 +529,20 @@ pl:
BtnImport: 'Import z CSV'
FileFieldLabel: 'Plik CSV <small>(Dozwolone rozszerzenia: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edycja
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nie wgrano zdjęć'
SiteTree:
@ -551,6 +578,8 @@ pl:
ATTACHFILE: 'Załącz plik'
ATTACHFILES: 'Załącz pliki'
AttachFile: 'Załącz plik(i)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Usuń z plików'
DELETEINFO: 'Usuń ten plik z magazynu'
DOEDIT: Zapisz
@ -565,12 +594,15 @@ pl:
FROMFILES: 'Z plików'
HOTLINKINFO: 'Informacja: Ten obrazek pochodzi z zewnętrznego serwisu. Upewnij się, że jego twórca pozwala korzystać z niego.'
MAXNUMBEROFFILES: 'Osiągnięto maksymalną liczbę {count} plików.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Można wgrać tylko {count} plik(ów/i)'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Usuń
REMOVEERROR: 'Błąd podczas usuwania pliku'
REMOVEINFO: 'Usuń pliki z tego miejsca, ale nie usuwaj ich z magazynu'
STARTALL: 'Rozpocznij wszystko'
STARTALLINFO: 'Rozpocznij ładowanie wszystkich'
Saved: Zapisano
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Wersje

View File

@ -2,6 +2,7 @@ pt:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nova pasta'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ pt:
ERRORNOTADMIN: 'Esse utilizador não é um administrador.'
ERRORNOTREC: 'Esse nome de utilizador / password não é válido'
Boolean:
0: Não
ANY: Qualquer
1: Sim
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ pt:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Guardar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ pt:
HELLO: Olá
PASSWORD: Palavra-chave
CheckboxField:
- Não
- Sim
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Fechar Janela'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ pt:
PLURALNAME: 'Objectos de Dados'
SINGULARNAME: 'Objecto de Dados'
Date:
DAY: dia
DAYS: dias
HOUR: hora
HOURS: horas
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: mês
MONTHS: meses
SEC: seg
SECS: segs
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ano
YEARS: anos
YEAR: year
YEARS: years
DateField:
NOTSET: 'Não inserido'
TODAY: Hoje
@ -198,7 +202,8 @@ pt:
TEXT2: 'link para alterar password'
TEXT3: para
Form:
FIELDISREQUIRED: '%s é de preenchimento obrigatório'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'O valor inserido não é único'
@ -208,6 +213,7 @@ pt:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: nenhum
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ pt:
ResetFilter: Redefinir
GridFieldAction_Delete:
DeletePermissionsFailure: 'Não tem permissões para apagar'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancelar
Create: Create
@ -237,7 +244,9 @@ pt:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Adicionar regra a este grupo'
@ -267,6 +276,7 @@ pt:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Âncora
BUTTONADDURL: 'Add url'
BUTTONINSERT: Inserir
BUTTONINSERTLINK: 'Inserir link'
BUTTONREMOVELINK: 'Remover link'
@ -331,7 +341,10 @@ pt:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: desconhecido
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ pt:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ pt:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ pt:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nenhuma imagem enviada'
SiteTree:
@ -551,6 +578,8 @@ pt:
ATTACHFILE: 'Adicionar um ficheiro'
ATTACHFILES: 'Adicionar ficheiros'
AttachFile: 'Adicionar ficheiro(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Remover permanentemente este ficheiro do sistema'
DOEDIT: Guardar
@ -565,12 +594,15 @@ pt:
FROMFILES: 'De ficheiros'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Erro ao mover o ficheiro'
REMOVEINFO: 'Remover este ficheiro daqui, mas não apaga do sistema'
STARTALL: 'Iniciar todos'
STARTALLINFO: 'Start all uploads'
Saved: Guardado
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versões

View File

@ -2,6 +2,7 @@ pt_BR:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Nova Pasta'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Primeiro upload'
DIM: Dimensões
@ -59,9 +60,9 @@ pt_BR:
ERRORNOTADMIN: 'Este usuário não é um administrador'
ERRORNOTREC: 'Este nome de usuário / senha não é reconhecido'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ pt_BR:
ACCESSALLINTERFACES: 'Acessar todas as interfaces do CMS'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Salvar
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ pt_BR:
HELLO: Olá
PASSWORD: Senha
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Fechar janela'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ pt_BR:
PLURALNAME: 'Dados dos objetos'
SINGULARNAME: 'Dado do objeto'
Date:
DAY: dia
DAYS: dias
HOUR: hora
HOURS: horas
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: mês
MONTHS: meses
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ano
YEARS: anos
YEAR: year
YEARS: years
DateField:
NOTSET: 'não informado'
TODAY: hoje
@ -198,7 +202,8 @@ pt_BR:
TEXT2: 'link para reiniciar sua senha'
TEXT3: para
Form:
FIELDISREQUIRED: '%s é requerido'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'O valor inserido não é exclusivo'
@ -208,6 +213,7 @@ pt_BR:
VALIDATOR: Verificador
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: nenhum
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ pt_BR:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ pt_BR:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ pt_BR:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Âncora
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Inserir link'
BUTTONREMOVELINK: 'Remover link'
@ -331,7 +341,10 @@ pt_BR:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ pt_BR:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ pt_BR:
ModelAdmin:
DELETE: Excluir
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'importar do CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Por favor, localize um arquivo CSV para importar'
@ -515,7 +529,20 @@ pt_BR:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Não foi feito o upload de nenhuma imagem'
SiteTree:
@ -551,6 +578,8 @@ pt_BR:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ pt_BR:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versões

View File

@ -2,6 +2,7 @@ ro:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ ro:
ERRORNOTADMIN: 'Acest utilizator nu este un administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ ro:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ro:
HELLO: Salut
PASSWORD: Parola
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ ro:
PLURALNAME: 'Obiecte Data'
SINGULARNAME: 'Obiect Data'
Date:
DAY: zi
DAYS: zile
HOUR: oră
HOURS: ore
MIN: minut
MINS: minute
MONTH: lună
MONTHS: luni
SEC: secundă
SECS: secunde
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: an
YEARS: ani
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: astazi
@ -198,7 +202,8 @@ ro:
TEXT2: 'link de resetare a parolei'
TEXT3: pentru
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Valoarea introdusă nu este unică'
@ -208,6 +213,7 @@ ro:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ ro:
ResetFilter: Reseteaza
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ ro:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ ro:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insereaza link'
BUTTONREMOVELINK: 'Indeparteaza link'
@ -331,7 +341,10 @@ ro:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ ro:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ ro:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ ro:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nici o imagine incarcata'
SiteTree:
@ -551,6 +578,8 @@ ro:
ATTACHFILE: 'Atasati un fisier'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Salveaza
@ -565,12 +594,15 @@ ro:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Salvat
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiune

View File

@ -2,14 +2,15 @@ ru:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Новая папка'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Первая загрузка'
DIM: Размеры
DIM: 'Размеры'
FILENAME: 'Имя файла'
FOLDER: Папка
LASTEDIT: 'Последнее изменение'
OWNER: Владелец
SIZE: Размер
SIZE: 'Размер'
TITLE: Название
TYPE: Тип
URL: URL
@ -59,9 +60,9 @@ ru:
ERRORNOTADMIN: 'Такой пользователь не является администратором.'
ERRORNOTREC: 'Такое имя пользователя или пароль не существует'
Boolean:
0: 'False'
ANY: Все
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Идет загрузка...'
REQUIREJS: 'Для работы с CMS у вас должен быть включен JavaScript.'
@ -69,7 +70,9 @@ ru:
ACCESS: 'Доступ к разделу ''{title}'''
ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS'
ACCESSALLINTERFACESHELP: 'Отменяет индивидуальные настройки прав доступа.'
SAVE: Сохранить
SAVE: 'Сохранить'
CMSPageHistoryController_versions.ss:
PREVIEW: 'Предварительный просмотр сайта'
CMSProfileController:
MENUTITLE: 'Мой профиль'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ ru:
HELLO: Здравствуйте
PASSWORD: Пароль
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Закрыть всплывающее окно'
SUCCESSADD2: '{name} добавлено'
@ -109,20 +112,21 @@ ru:
PLURALNAME: Объекты
SINGULARNAME: Объект
Date:
DAY: день
DAYS: дней
HOUR: час
HOURS: час.
MIN: мин.
MINS: мин.
MONTH: месяц
MONTHS: месяца(ев)
SEC: сек.
SECS: сек.
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} назад'
TIMEDIFFIN: 'через {difference}'
YEAR: год
YEARS: лет
YEAR: year
YEARS: years
DateField:
NOTSET: 'не установлено'
TODAY: сегодня
@ -198,7 +202,8 @@ ru:
TEXT2: 'ссылка переустановки пароля'
TEXT3: для
Form:
FIELDISREQUIRED: 'Поле %s является обязательным'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Выбрать
VALIDATIONCREDITNUMBER: 'Пожалуйста, убедитесь, что номер кредитной карты {number} задан правильно'
VALIDATIONNOTUNIQUE: 'Введенное значение не уникально'
@ -208,6 +213,7 @@ ru:
VALIDATOR: Валидатор
VALIDCURRENCY: 'Пожалуйста, укажите валюту правильно'
FormField:
Example: 'e.g. %s'
NONE: 'не выбрано'
GridAction:
DELETE_DESCRIPTION: Удалить
@ -230,14 +236,17 @@ ru:
ResetFilter: Сброс
GridFieldAction_Delete:
DeletePermissionsFailure: 'Нет прав на удаление'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Отмена
Create: Создать
Delete: Удалить
DeletePermissionsFailure: 'Нет прав на удаление'
Deleted: 'Удалено %s %s'
Save: Сохранить
Saved: 'Сохранено %s %s'
Save: 'Сохранить'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: 'Редактировать'
GridFieldItemEditView.ss: null
Group:
AddRole: 'Добавить роль для этой группы'
@ -267,6 +276,7 @@ ru:
ADDURL: 'Добавить URL'
ADJUSTDETAILSDIMENSIONS: 'Дополнительные сведения и размеры'
ANCHORVALUE: Якорь
BUTTONADDURL: 'Добавить URL'
BUTTONINSERT: Вставить
BUTTONINSERTLINK: 'Вставить ссылку'
BUTTONREMOVELINK: 'Удалить ссылку'
@ -288,7 +298,7 @@ ru:
IMAGEALT: 'Альтернативный текст (alt)'
IMAGEALTTEXT: 'Альтернативный текст (alt) - показывается, если изображение недоступно'
IMAGEALTTEXTDESC: 'Передается программе чтения экрана или отображается, если изображение недоступно'
IMAGEDIMENSIONS: Размеры
IMAGEDIMENSIONS: 'Размеры'
IMAGEHEIGHTPX: Высота
IMAGETITLE: 'Текст (всплывающая подсказка) - для дополнительной информации об изображении'
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
@ -330,11 +340,14 @@ ru:
PLEASESAVE: 'Пожалуйста, сохраните страницу: ее нельзя обновить, т.к. она еще не была сохранена.'
PreviewButton: Просмотр
REORGANISATIONSUCCESSFUL: 'Древесная структура сайта успешно реорганизована.'
SAVEDUP: Сохранено.
VersionUnknown: неизвестно
SAVEDUP: 'Сохранено.'
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Здравствуйте
LOGOUT: Выход
LOGOUT: 'Выход'
LoginAttempt:
Email: Email
IP: IP-адрес
@ -407,6 +420,7 @@ ru:
TWODIGITMONTH: 'Месяц двумя цифрами (01=январь и т.д.)'
TWODIGITSECOND: 'Секунды: двумя цифрами (00 - 59)'
TWODIGITYEAR: 'Год: двумя цифрами'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Импорт пользователей в формате <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Показать подробности</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Расширенное использование</h4>\\n<ul>\\n<li>Разрешенные столбцы: <em>%s</em></li>\\n<li>Существующие пользователи сверяются c уникальным атрибутом <em>Code</em> и новые значения из \\nимпортированного файла вносятся в записи о пользователях.</li>\\n<li>Назначение групп производится с помощью столбца <em>Groups</em>. Группы идентифицируются по атрибуту <em>Code</em>, \\nотдельные группы разделяются запятой. Если участник входит в какую-либо группу, это свойство не обнуляется.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ ru:
ModelAdmin:
DELETE: Удалить
DELETEDRECORDS: 'Удалено {count} записей.'
EMPTYBEFOREIMPORT: 'Очистить базу данных перед импортированием'
EMPTYBEFOREIMPORT: 'Заменить данные'
IMPORT: 'Импорт из CSV'
IMPORTEDRECORDS: 'Импортировано {count} записей.'
NOCSVFILE: 'Выберите CSV-файл для импорта'
@ -464,8 +478,8 @@ ru:
FromRoleOnGroup: 'перенято из роли "%s" для группы "%s"'
PermissionRole:
OnlyAdminCanApply: 'Может применяться только администратором'
PLURALNAME: Роли
SINGULARNAME: Роль
PLURALNAME: 'Роли'
SINGULARNAME: 'Роль'
Title: Название
PermissionRoleCode:
PLURALNAME: 'Коды ролей доступа'
@ -487,7 +501,7 @@ ru:
ENTERNEWPASSWORD: 'Пожалуйста, введите новый пароль.'
ERRORPASSWORDPERMISSION: 'Вы должны войти в систему, чтобы изменить Ваш пароль!'
LOGGEDOUT: 'Вы вышли. Если Вы хотите войти снова, введите ваши учетные данные ниже.'
LOGIN: Вход
LOGIN: 'Вход'
NOTEPAGESECURED: 'Эта страница защищена. Пожалуйста, введите свои учетные данные для входа.'
NOTERESETLINKINVALID: '<p>Неверная ссылка переустановки пароля или время действия ссылки истекло.</p><p>Вы можете повторно запросить ссылку, щелкнув <a href="{link1}">здесь</a>, или поменять пароль, <a href="{link2}">войдя в систему</a>.</p> '
NOTERESETPASSWORD: 'Введите Ваш адрес email, и Вам будет отправлена ссылка, по которой Вы сможете переустановить свой пароль'
@ -507,15 +521,28 @@ ru:
MemberListCaution: 'Внимание: при удалении участников из этого списка они будут удалены из всех групп и из базы данных '
NEWGROUP: 'Новая группа'
PERMISSIONS: 'Права доступа'
ROLES: Роли
ROLES: 'Роли'
ROLESDESCRIPTION: 'Роли представляют собой сочетания различных прав доступа, которые могут быть присвоены группам.<br />При необходимости они наследуются от групп более высокого уровня.'
TABROLES: Роли
TABROLES: 'Роли'
Users: Пользователи
SecurityAdmin_MemberImportForm:
BtnImport: 'Импорт из CSV'
FileFieldLabel: 'Файл CSV <small>(Допустимые расширения: *.csv)</small>'
SilverStripeNavigator:
Edit: Редактировать
Auto: Auto
ChangeViewMode: 'Сменить режим просмотра'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: 'Редактировать'
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Планшет
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Не загружено ни одного изображения'
SiteTree:
@ -551,13 +578,15 @@ ru:
ATTACHFILE: 'Прикрепить файл'
ATTACHFILES: 'Прикрепить файлы'
AttachFile: 'Прикрепить файл(ы)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Удалить из файлов'
DELETEINFO: 'Окончательно удалить этот файл с сервера'
DOEDIT: Сохранить
DOEDIT: 'Сохранить'
DROPFILE: 'перетащите файл сюда'
DROPFILES: 'перетащить файлы'
Dimensions: Размеры
EDIT: Редактировать
Dimensions: 'Размеры'
EDIT: 'Редактировать'
EDITINFO: 'Редактировать этот файл'
FIELDNOTSET: 'Информация о файле не найдена'
FROMCOMPUTER: 'С диска'
@ -565,12 +594,15 @@ ru:
FROMFILES: 'Из файлов'
HOTLINKINFO: 'Внимание: это изображение будет вставлено через хотлинк. Пожалуйста, не забывайте, что на это у вас должно быть разрешение владельца исходного ресурса.'
MAXNUMBEROFFILES: 'Превышено максимальное количество файлов ({count}).'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Можно загрузить не более {count} файлов'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Удалить
REMOVEERROR: 'Ошибка при удалении файла'
REMOVEINFO: 'Удалить файл отсюда, но не удалять с сервера'
STARTALL: 'Стартовать все'
STARTALLINFO: 'Стартовать все загрузки'
Saved: Сохранено
Saved: 'Сохранено'
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Версии

View File

@ -2,6 +2,7 @@ si:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'අලත් ගොනුවක්'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'පලමු ලිපිය අප්ලෝඩ් කරන ලදී'
DIM: මාන
@ -59,9 +60,9 @@ si:
ERRORNOTADMIN: 'ඵම පරිශීලකයා නියමුවෙකු නොවේ'
ERRORNOTREC: 'ඵම නම/මුරපදය හදුනාගත නොහැක'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ si:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 'සේවි කරන්න'
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ si:
HELLO: කොහොමද
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -99,7 +102,7 @@ si:
MAXIMUM: 'Passwords must be at most {max} characters long.'
SHOWONCLICKTITLE: 'මුර පදය වෙනස් කිරීම'
CreditCardField:
FIRST: පළමු
FIRST: 'පළමු'
FOURTH: fourth
SECOND: දෙවන
THIRD: third
@ -109,20 +112,21 @@ si:
PLURALNAME: 'දත්ත වස්තු'
SINGULARNAME: 'දත්ත වස්තුව'
Date:
DAY: ඳිනය
DAYS: ඳින
HOUR: පැය
HOURS: පැය
MIN: විනාඩිය
MINS: විනාඩි
MONTH: මාසය
MONTHS: මාස
SEC: තත්පරය
SECS: 'තත්පර '
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: අවුරුද්ද
YEARS: අවුරුදු
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ si:
TEXT2: 'password reset link'
TEXT3: සඳහා
Form:
FIELDISREQUIRED: '%s අවශ්යයි'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'අගය අද්විතීය නොවේ'
@ -208,6 +213,7 @@ si:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ si:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ si:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -253,7 +262,7 @@ si:
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
Sort: 'Sort Order'
has_many_Permissions: අවසර
has_many_Permissions: 'අවසර'
many_many_Members: සාමාජිකයින්
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
@ -267,6 +276,7 @@ si:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'බැදීමක් යොදන්න'
BUTTONREMOVELINK: 'බැදීම ගලවන්න'
@ -331,7 +341,10 @@ si:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ si:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ si:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ si:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'පි0තුර අප්ලෝඩ් කර නැත'
SiteTree:
@ -545,12 +572,14 @@ si:
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
ToggleField:
LESS: අඩු
LESS: 'අඩු'
MORE: වැඩි
UploadField:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ si:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: වෙලුම

View File

@ -2,6 +2,7 @@ sk:
AssetAdmin:
ALLOWEDEXTS: 'Povolené extenzie'
NEWFOLDER: 'Nový priečinok'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Prvýkrát nahrané'
DIM: Rozmery
@ -59,9 +60,9 @@ sk:
ERRORNOTADMIN: 'Tento používateľ nie je administrátor.'
ERRORNOTREC: 'Toto používateľské meno / heslo nebolo rozpoznané'
Boolean:
0: Nie
ANY: Ktorýkoľvek
1: Áno
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: 'Načíta sa ...'
REQUIREJS: 'CMS vyžaduje, aby ste mali JavaScript zapnutý.'
@ -70,6 +71,8 @@ sk:
ACCESSALLINTERFACES: 'Pristup do všetkých častí CMS.'
ACCESSALLINTERFACESHELP: 'Prepisuje viac špecifických nastavení prístupu.'
SAVE: Uložiť
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Môj profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ sk:
HELLO: 'Dobrý deň'
PASSWORD: Heslo
CheckboxField:
- Nie
- Áno
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Zatvoriť okno'
SUCCESSADD2: 'Pridané {name}'
@ -109,20 +112,21 @@ sk:
PLURALNAME: 'Datové objekty'
SINGULARNAME: 'Dátový objekt'
Date:
DAY: deň
DAYS: dni
HOUR: hodina
HOURS: hodiny
MIN: minúta
MINS: minúty
MONTH: mesiac
MONTHS: mesiace
SEC: sekunda
SECS: sekundy
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} pred'
TIMEDIFFIN: 'v {difference}'
YEAR: rok
YEARS: roky
YEAR: year
YEARS: years
DateField:
NOTSET: nezadané
TODAY: dnes
@ -198,7 +202,8 @@ sk:
TEXT2: 'odkaz na resetovanie hesla'
TEXT3: pre
Form:
FIELDISREQUIRED: '%s je požadované'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Choď
VALIDATIONCREDITNUMBER: 'Uistite sa, že ste zadali číslo {number} kreditnej karty správne'
VALIDATIONNOTUNIQUE: 'Zadaná hodnota nie je unikátna'
@ -208,6 +213,7 @@ sk:
VALIDATOR: Validácia
VALIDCURRENCY: 'Prosím zadajte platnú menu'
FormField:
Example: 'e.g. %s'
NONE: žiadne
GridAction:
DELETE_DESCRIPTION: Zmazať
@ -230,6 +236,7 @@ sk:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'Žiadne oprávnenia zmazať'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Zrušiť
Create: Vytvoriť
@ -237,7 +244,9 @@ sk:
DeletePermissionsFailure: 'Žiadne oprávnenia zmazať'
Deleted: 'Zmazané %s %s'
Save: Uložiť
Saved: 'Uložené %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Pridať úlohu pre túto skupinu'
@ -267,6 +276,7 @@ sk:
ADDURL: 'Pridať URL'
ADJUSTDETAILSDIMENSIONS: 'Detaily &amp; rozmery'
ANCHORVALUE: Odkaz
BUTTONADDURL: 'Add url'
BUTTONINSERT: Vložiť
BUTTONINSERTLINK: 'Vložiť odkaz'
BUTTONREMOVELINK: 'Odstrániť odkaz'
@ -293,7 +303,7 @@ sk:
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
IMAGETITLETEXT: 'Text titulky (tooltip)'
IMAGETITLETEXTDESC: 'Pre doplňujúce informácie o obrázku'
IMAGEWIDTHPX: Šírka
IMAGEWIDTHPX: 'Šírka'
INSERTMEDIA: 'Vložiť média'
LINK: 'Vložiť/upraviť odkaz na zvýraznený text'
LINKANCHOR: 'Odkaz na tejto stranke'
@ -331,6 +341,9 @@ sk:
PreviewButton: Náhľad
REORGANISATIONSUCCESSFUL: 'Strom webu bol reorganizovaný úspešne.'
SAVEDUP: Uložené.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: neznáme
LeftAndMain_Menu.ss:
Hello: Ahoj
@ -407,6 +420,7 @@ sk:
TWODIGITMONTH: 'Dvojčíslie mesiaca (01=január, atď.)'
TWODIGITSECOND: 'Dvojčíslie sekundy (00 až 59)'
TWODIGITYEAR: 'Dvojčíslie roka'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: 'Importovať členov v <em>CSV formáte</em> (čiarkov oddelené hodnoty). Zobraziť pokročile použitie'
Help2: "<div class=\"advanced\">\\n<h4>Pokročilé použitie</h4>\\n<ul>\\n<li>Povolené stĺpce: <em>%s</em></li>\\n<li>Existujúci užívatelia sú porovnávaní ich unikátnou vlastnosťou <em>Code</em>, a aktualizovaní s novými hodnotami z\\nimportovaného súboru.</li>\\n<li>Skupiny môžu byťt priradené stĺpcom <em>Groups</em>. Skupiny sú identifikované ich vlastnosťou <em>Code</em>,\\nviacero skupín môže byť oddelené čiarkou. Existujúce členstvá skupiny nie sú smazané.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ sk:
ModelAdmin:
DELETE: Zmazať
DELETEDRECORDS: 'Zmazaných {count} záznamov.'
EMPTYBEFOREIMPORT: 'Vyčistiť databázu pred importovaním'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importovať z CSV'
IMPORTEDRECORDS: 'Importovaných {count} záznamov.'
NOCSVFILE: 'Prosím vyhľadajte CSV súbor pre importovanie'
@ -515,7 +529,20 @@ sk:
BtnImport: Importovať
FileFieldLabel: 'CSV súbor <small>(Povoléné koncovki súborov: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Editovať
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Nebol nahraný žiaden obrázok'
SiteTree:
@ -551,6 +578,8 @@ sk:
ATTACHFILE: 'Priložiť súbor'
ATTACHFILES: 'Priložiť súbory'
AttachFile: 'Priložiť súbor(y)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Zmazať zo súborov'
DELETEINFO: 'Trvalo zmazať tento súbor z úložiska súborov'
DOEDIT: Uložiť
@ -565,12 +594,15 @@ sk:
FROMFILES: 'Zo súborov'
HOTLINKINFO: 'Info: Tento obrázok bude "hotlinkovaný". Uistete sa prosím, že máte oprávnenie od pôvodneho tvorcu webu, aby sa tak stalo.'
MAXNUMBEROFFILES: 'Maximálny počet {count} súbor(ov) prekročený.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Môžte nahrať iba {count} súborov'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Odstrániť
REMOVEERROR: 'Chyba odstránenia súboru'
REMOVEINFO: 'Odstrániť tento súbor odtiaľ, ale nezmazať z úložiska súborov'
STARTALL: 'Začni všetko'
STARTALLINFO: 'Začni všetko nahrávať'
Saved: Uložené
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: verzie

View File

@ -1,12 +1,13 @@
sl:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
ALLOWEDEXTS: 'Podaljševanje je dovoljeno.'
NEWFOLDER: 'Nova mapa'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Naloženo na začetku'
DIM: Dimenzije
FILENAME: 'Ime datoteke'
FOLDER: Folder
FOLDER: Mapa
LASTEDIT: 'Zadnje naloženo'
OWNER: Lastnik
SIZE: Velikost
@ -14,19 +15,19 @@ sl:
TYPE: Tip
URL: URL
AssetUploadField:
ChooseFiles: 'Choose files'
DRAGFILESHERE: 'Drag files here'
ChooseFiles: 'Izberite datoteke'
DRAGFILESHERE: 'Potegnite datoteke na to mesto '
DROPAREA: 'Drop Area'
EDITALL: 'Edit all'
EDITANDORGANIZE: 'Edit & organize'
EDITINFO: 'Edit files'
FILES: Files
FROMCOMPUTER: 'Choose files from your computer'
FROMCOMPUTERINFO: 'Upload from your computer'
TOTAL: Total
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
EDITALL: 'Uredi vse'
EDITANDORGANIZE: 'Uredite in razvrščajte'
EDITINFO: 'Uredi datoteke'
FILES: Datoteke
FROMCOMPUTER: 'Izberite datoteke z vašega računalnika'
FROMCOMPUTERINFO: 'Prenesite z vašega računalnika'
TOTAL: Vse
TOUPLOAD: 'Izberite datoteke za prenos'
UPLOADINPROGRESS: 'Prosimo, počakajte ... prenos poteka.'
UPLOADOR: ALI
BBCodeParser:
ALIGNEMENT: Poravnava
ALIGNEMENTEXAMPLE: 'desno poravnano'
@ -53,25 +54,27 @@ sl:
UNORDEREDDESCRIPTION: 'Neurejen seznam'
UNORDEREDEXAMPLE1: 'alineja na neurejenem seznamu'
BackLink_Button.ss:
Back: Back
Back: Nazaj
BasicAuth:
ENTERINFO: 'Vpišite uporabniško ime in geslo.'
ERRORNOTADMIN: 'Uporabnik ni administrator tega spletnega mesta.'
ERRORNOTREC: 'Ne prepoznam uporabniškega imena ali gesla'
Boolean:
0: Ne
ANY: Katerikoli
1: Da
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
LOADING: 'Nalaganje ...'
REQUIREJS: 'CMS zahteva, da imate omogočen JavaScript.'
CMSMain:
ACCESS: 'Access to ''{title}'' section'
ACCESS: 'Dostop do razdelka ''{title}'''
ACCESSALLINTERFACES: 'Dostop do vseh sklopov CMS'
ACCESSALLINTERFACESHELP: 'Omogoča bolj specifične nastavitve za možnosti dostop.'
SAVE: Shrani
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
MENUTITLE: 'Moj profil'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'Geslo ste spremenili v'
CHANGEPASSWORDTEXT2: 'Za prijavo lahko odslej uporabite naslednje podatke:'
@ -79,24 +82,24 @@ sl:
HELLO: 'Pozdravljeni,'
PASSWORD: Geslo
CheckboxField:
- Ne
- Da
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Zapri okno'
SUCCESSADD2: 'Added {name}'
SUCCESSADD2: 'Dodano {name}'
SUCCESSEDIT: 'Shranjeno: %s %s %s'
ComplexTableField.ss:
ADDITEM: 'Dodaj %s'
NOITEMSFOUND: 'No items found'
NOITEMSFOUND: 'Ni najdenih predmetov.'
SORTASC: 'Razvrsti naraščajoče'
SORTDESC: 'Razvrsti padajoče'
ComplexTableField_popup.ss:
NEXT: Naprej
PREVIOUS: Nazaj
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
MAXIMUM: 'Passwords must be at most {max} characters long.'
ATLEAST: 'Geslo mora vsebovati vsaj {min} znakov.'
BETWEEN: 'Geslo mora biti dolgo od {min} do {max} znakov.'
MAXIMUM: 'Geslo je lahko dolgo največ {max} znakov.'
SHOWONCLICKTITLE: 'Spremeni geslo'
CreditCardField:
FIRST: prvič
@ -109,191 +112,198 @@ sl:
PLURALNAME: 'Podatkovni objekti'
SINGULARNAME: 'Podatkovni objekt'
Date:
DAY: dan
DAYS: dni
HOUR: ura
HOURS: ure
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: minute
MONTH: mesec
MONTHS: meseci
SEC: s
SECS: s
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: leto
YEARS: let
YEAR: year
YEARS: years
DateField:
NOTSET: 'ni nastavljeno'
TODAY: danes
VALIDDATEFORMAT2: 'Please enter a valid date format ({format})'
VALIDDATEFORMAT2: 'Prosim, vnesite ustrezno obliko datuma ({format})'
VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})'
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
DatetimeField:
NOTSET: 'Not set'
NOTSET: 'Ni nastavljeno'
Director:
INVALID_REQUEST: 'Invalid request'
INVALID_REQUEST: 'Napačna zahteva'
DropdownField:
CHOOSE: (Izberi)
EmailField:
VALIDATION: 'Please enter an email address'
VALIDATION: 'Prosim, vpišite e-naslov.'
Email_BounceRecord:
PLURALNAME: 'Seznam zavrnjenih e-sporočil'
SINGULARNAME: 'Zavrnjeno e-sporočilo'
Enum:
ANY: Katerikoli
File:
AviType: 'AVI video file'
AviType: 'AVI video datoteka'
Content: Vsebina
CssType: 'CSS file'
CssType: 'CSS datoteka'
DmgType: 'Apple disk image'
DocType: 'Word document'
DocType: 'Word datoteka'
Filename: 'Ime datoteke'
GifType: 'GIF image - good for diagrams'
GifType: 'GIF slika - primerna za diagrame'
GzType: 'GZIP compressed file'
HtlType: 'HTML file'
HtmlType: 'HTML file'
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
IcoType: 'Icon image'
JpgType: 'JPEG image - good for photos'
JsType: 'Javascript file'
Mp3Type: 'MP3 audio file'
MpgType: 'MPEG video file'
HtlType: 'HTML datoteka'
HtmlType: 'HTML datoteka'
INVALIDEXTENSION: 'Podaljševanje ni dovoljeno (dovoljeno: {extensions})'
INVALIDEXTENSIONSHORT: 'Podaljševanje ni dovoljeno.'
IcoType: Ikona
JpgType: 'JPEG slika - primerno za fotografije'
JsType: 'Javascript datoteka'
Mp3Type: 'MP3 avdio datoteka'
MpgType: 'MPEG video datoteka'
NOFILESIZE: 'Velikost datoteke je 0 bajtov.'
NOVALIDUPLOAD: 'Datoteke ni možno naložiti.'
Name: Ime
PLURALNAME: Datoteke
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
PdfType: 'Adobe Acrobat PDF datoteka'
PngType: 'PNG slika - večstransko uporabna oblika'
SINGULARNAME: Datoteka
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TOOLARGE: 'Datoteka je prevelika. Največja dovoljena velikost je {size} '
TOOLARGESHORT: 'Velikost datoteke presega {size}'
TiffType: 'Tagged image format'
Title: Naslov
WavType: 'WAV audo file'
XlsType: 'Excel spreadsheet'
ZipType: 'ZIP compressed file'
WavType: 'WAV avdio datoteka'
XlsType: 'Excel preglednica'
ZipType: 'ZIP stisnjena datoteka'
FileIFrameField:
ATTACH: 'Attach {type}'
ATTACH: 'Pripni {type}'
ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.'
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
DELETE: 'Izbriši {type}'
DISALLOWEDFILETYPE: 'Datoteke v tem formatu ni mogoče naložiti'
FILE: Datoteka
FROMCOMPUTER: 'Z vašega računalnika'
FROMFILESTORE: 'Iz knjižnice datotek'
NOSOURCE: 'Izberite datoteko, ki jo boste pripeli.'
REPLACE: 'Replace {type}'
REPLACE: 'Nadomesti {type}'
FileIFrameField_iframe.ss:
TITLE: 'Image Uploading Iframe'
Filesystem:
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
Folder:
PLURALNAME: Folders
SINGULARNAME: Folder
PLURALNAME: Mape
SINGULARNAME: Mapa
ForgotPasswordEmail.ss:
HELLO: 'Pozdravljeni,'
TEXT1: 'Tukaj je vaša'
TEXT2: 'povezava za ponastavitev gesla'
TEXT3: za
Form:
FIELDISREQUIRED: 'Vpišite %s (obvezen podatek).'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Naprej
VALIDATIONCREDITNUMBER: 'Prosim, preverite, da ste vnesli številko kreditne kartice {number} pravilno.'
VALIDATIONNOTUNIQUE: 'Vpisana vrednost ni unikatna'
VALIDATIONPASSWORDSDONTMATCH: 'Vpisani gesli se ne ujemata'
VALIDATIONPASSWORDSNOTEMPTY: 'Vpišite geslo (dvakrat) v za to predvideni polji'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATIONSTRONGPASSWORD: 'Geslo naj vsebuje vsaj eno črko in vsaj eno številko.'
VALIDATOR: Preverjanje
VALIDCURRENCY: 'Please enter a valid currency'
VALIDCURRENCY: 'Prosim, vnesite pravo valuto.'
FormField:
Example: 'e.g. %s'
NONE: brez
GridAction:
DELETE_DESCRIPTION: Delete
Delete: Delete
UnlinkRelation: Unlink
DELETE_DESCRIPTION: Izbriši
Delete: Izbriši
UnlinkRelation: 'Odstrani povezavo'
GridField:
Add: 'Add {name}'
Add: 'Dodaj {name}'
Filter: Filter
FilterBy: 'Filter by '
Find: Find
Find: Poišči
LEVELUP: 'Level up'
LinkExisting: 'Link Existing'
LinkExisting: 'Poveži na'
NewRecord: 'New %s'
NoItemsFound: 'No items found'
PRINTEDAT: 'Printed at'
PRINTEDBY: 'Printed by'
PlaceHolder: 'Find {type}'
PlaceHolderWithLabels: 'Find {type} by {name}'
PlaceHolder: 'Poišči {type} '
PlaceHolderWithLabels: 'Poišči {type} glede na {name}'
RelationSearch: 'Relation search'
ResetFilter: Reset
ResetFilter: Ponastavi
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
DeletePermissionsFailure: 'Ni dovoljenja za brisanje'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
Delete: Delete
DeletePermissionsFailure: 'No delete permissions'
CancelBtn: Prekliči
Create: Ustvari
Delete: Izbriši
DeletePermissionsFailure: 'Ni dovoljenja za brisanje'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Save: Shrani
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
AddRole: 'Dodaj vlogo za to skupino.'
Code: 'Koda skupine'
DefaultGroupTitleAdministrators: Administratorji
DefaultGroupTitleContentAuthors: 'Avtorji vsebine'
Description: Opis
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
GroupReminder: 'Če izberete nadrejeno skupino, bo ta skupina prevzela vse vloge nadrejene skupine.'
Locked: 'Zaklenjeno za urejanje?'
NoRoles: 'No roles found'
PLURALNAME: Groups
NoRoles: Vloge
PLURALNAME: Skupine
Parent: 'Nadrejena skupina'
RolesAddEditLink: 'Dodaj in uredi vloge'
SINGULARNAME: Group
SINGULARNAME: Skupina
Sort: 'Način razvrščanja'
has_many_Permissions: Dovoljenja
many_many_Members: Uporabniki
GroupImportForm:
Help1: '<p>Uvozi eno ali več skupin v formatu <em>CSV</ em> (comma-separated values). <small> <a href="#" class="toggle-advanced">Prikaži možnosti za napredno urejanje</ a> </ small> </ p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing groups are matched by their unique <em>Code</em> value, and updated with any new values from the imported file</li> <li>Group hierarchies can be created by using a <em>ParentCode</em> column.</li> <li>Permission codes can be assigned by the <em>PermissionCode</em> column. Existing permission codes are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} groups'
ResultCreated: 'Ustvarjenih je {count} skupin'
ResultDeleted: 'Število izbrisanih skupin %d'
ResultUpdated: 'Število ponastavljenih skupin %d'
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
HtmlEditorField:
ADDURL: 'Add URL'
ADDURL: 'Dodaj URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Sidro
BUTTONINSERT: Insert
BUTTONADDURL: 'Add url'
BUTTONINSERT: Vstavi
BUTTONINSERTLINK: 'Vstavi povezavo'
BUTTONREMOVELINK: 'Odstrani povezavo'
BUTTONUpdate: Update
BUTTONUpdate: Osveži
CAPTIONTEXT: Pripis
CSSCLASS: 'Poravnava in slog'
CSSCLASSCENTER: 'Na sredini, samostojno'
CSSCLASSLEFT: 'Levo, z oblivajočim besedilom'
CSSCLASSLEFTALONE: 'Na levi, samostojno.'
CSSCLASSRIGHT: 'Desno, z oblivajočim besedilom'
DETAILS: Details
DETAILS: Podrobno
EMAIL: E-naslov
FILE: Datoteka
FOLDER: Mapa
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
FindInFolder: 'Find in Folder'
IMAGEALT: 'Alternative text (alt)'
FROMCOMPUTER: 'Z vašega računalnika'
FROMWEB: 'S spleta'
FindInFolder: 'Poišči v mapi'
IMAGEALT: 'Nadomestno besedilo (alt)'
IMAGEALTTEXT: 'Nadomestno besedilo (alt) bo izpisano, kadar slike ne bo možno prikazati'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEALTTEXTDESC: 'Prikaz na bralnikih ali če se slika ne more prikazati'
IMAGEDIMENSIONS: Velikosti
IMAGEHEIGHTPX: Višina
IMAGETITLE: 'Naslov (tooltip) bo izpisan kot dopolnitev k vsebini slike'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: Širina
IMAGETITLETEXT: 'Naslov (tooltip)'
IMAGETITLETEXTDESC: 'Za dodatne informacije o sliki'
IMAGEWIDTHPX: 'Širina'
INSERTMEDIA: 'Insert Media'
LINK: Povezava
LINKANCHOR: 'Sidro na tej strani'
@ -309,50 +319,53 @@ sl:
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
Image:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Datoteke
SINGULARNAME: Datoteka
ImageField:
IMAGE: Slika
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Datoteke
SINGULARNAME: Datoteka
Image_iframe.ss:
TITLE: 'Slika "uploading iframe"'
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
CANT_REORGANISE: 'Nimate dovoljenja za menjavo strani v zgornjem nivoju. Sprememba ni shranjena.'
DELETED: Izbrisano.
DropdownBatchActionsDefault: Dejanja
HELP: Pomoč
PAGETYPE: 'Tip strani:'
PERMAGAIN: 'Odjavili ste se iz CMS-vmesnika. Če se želite ponovno prijaviti, vpišite uporabniško ime in geslo.'
PERMALREADY: 'Do tega dela CMS-vmesnika nimate dostopa. Če se želite vpisati z drugim uporabniškim imenom, lahko to storite spodaj'
PERMDEFAULT: 'Izberite način avtentikacije in vpišite svoje podatke za dostop do CMS-vmesnika.'
PLEASESAVE: 'Shranite stran: te strani ne morete posodobiti, ker še ni bila shranjena.'
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
PreviewButton: Predogled
REORGANISATIONSUCCESSFUL: 'Struktura spletnega mesta je bila uspešno spremenjena.'
SAVEDUP: Shranjeno.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
Hello: 'Pozdravljeni,'
LOGOUT: Odjava
LoginAttempt:
Email: E-naslov
IP: IP-naslov
PLURALNAME: 'Login Attempts'
SINGULARNAME: 'Login Attempt'
PLURALNAME: 'Poskusi prijave'
SINGULARNAME: 'Poskus prijave'
Status: Stanje
Member:
ADDGROUP: 'Add group'
ADDGROUP: 'Dodaj skupino'
BUTTONCHANGEPASSWORD: 'Spremeni geslo'
BUTTONLOGIN: Prijava
BUTTONLOGINOTHER: 'Prijavite se z drugim uporabniškim imenom'
BUTTONLOSTPASSWORD: 'Pozabil-a sem geslo'
CANTEDIT: 'You don''t have permission to do that'
CANTEDIT: 'Nimate dovoljenja za to dejanje'
CONFIRMNEWPASSWORD: 'Potrdi novo geslo'
CONFIRMPASSWORD: 'Potrdi geslo'
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 'Privzeti administrator'
DefaultDateTime: default
DefaultDateTime: privzeto
EMAIL: E-naslov
EMPTYNEWPASSWORD: 'Polje za vpis novega gesla ne sme ostati prazno. Poskusite ponovno.'
ENTEREMAIL: 'Vpišite e-naslov, na katerega vam bomo nato poslali povezavo za ponastavitev gesla.'
@ -362,8 +375,8 @@ sl:
ERRORWRONGCRED: 'Izgleda, kakor da se uporabniško ime in geslo ne ujemata. Poskusite se ponovno prijaviti.'
FIRSTNAME: Ime
INTERFACELANG: Jezik
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
INVALIDNEWPASSWORD: 'Tega gesla ne moremo sprejeti: {password}'
LOGGEDINAS: 'Vpisan(a) si kot: {name}.'
NEWPASSWORD: 'Novo geslo'
PASSWORD: Geslo
PLURALNAME: Uporabniki
@ -375,7 +388,7 @@ sl:
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: 'Uporabnik s tem %s že obstaja'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
WELCOMEBACK: 'Ponovno pozdravljeni, {firstname}'
YOUROLDPASSWORD: 'Staro geslo'
belongs_many_many_Groups: Skupine
db_LastVisited: 'Datum zadnjega obiska'
@ -387,46 +400,47 @@ sl:
MemberAuthenticator:
TITLE: 'Uporabniški račun'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
AMORPM: 'AM (zjutraj in dopoldan) ali PM (popoldan in zvečer)'
'APPLY FILTER': 'Apply Filter'
Custom: Custom
DATEFORMATBAD: 'Date format is invalid'
DAYNOLEADING: 'Day of month without leading zero'
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
FOURDIGITYEAR: 'Four-digit year'
FULLNAMEMONTH: 'Full name of month (e.g. June)'
HOURNOLEADING: 'Hour without leading zero'
MINUTENOLEADING: 'Minute without leading zero'
MONTHNOLEADING: 'Month digit without leading zero'
Preview: Preview
SHORTMONTH: 'Short name of month (e.g. Jun)'
Custom: Prilagojeno
DATEFORMATBAD: 'Zapis datuma je napačen'
DAYNOLEADING: 'Dan v mesecu brez zapisa sprednje ničle'
DIGITSDECFRACTIONSECOND: 'Ena ali več decimalk, ki predstavljajo sekunde'
FOURDIGITYEAR: 'Štirimesten zapis letnice'
FULLNAMEMONTH: 'Celoten zapis meseca (npr: junij)'
HOURNOLEADING: 'Ura brez zapisa sprednje ničle'
MINUTENOLEADING: 'Minute brez zapisa sprednje ničle'
MONTHNOLEADING: 'Mesec brez zapisa sprednje ničle'
Preview: Predogled
SHORTMONTH: 'Kratek zapis meseca (npr. Jun)'
TOGGLEHELP: 'Toggle formatting help'
TWODIGITDAY: 'Two-digit day of month'
TWODIGITHOUR: 'Two digits of hour (00 through 23)'
TWODIGITMINUTE: 'Two digits of minute (00 through 59)'
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
TWODIGITDAY: 'Dvomestno število za mesec'
TWODIGITHOUR: 'Dvomestno število za uro (od 00 do 23)'
TWODIGITMINUTE: 'Dvomestno število za minute (od 00 do 59)'
TWODIGITMONTH: 'Dvomesten zapis meseca (01 = Januar)'
TWODIGITSECOND: 'Dvomesten zapis sekund (od 00 do 59)'
TWODIGITYEAR: 'Dvomestno število za letnico'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Uvoz uporabnikov v <em>formatu CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Prikaži možnosti za napredno urejanje.</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
ResultCreated: 'Created {count} members'
ResultCreated: 'Ustvarjenih {count} članov'
ResultDeleted: 'Število izbrisanih uporabnikov: %d'
ResultNone: 'Ni sprememb'
ResultUpdated: 'Updated {count} members'
ResultUpdated: 'Posodobljenih {count} članov'
MemberPassword:
PLURALNAME: 'Member Passwords'
SINGULARNAME: 'Member Password'
PLURALNAME: 'Gesla uporabnika'
SINGULARNAME: 'Geslo uporabnika'
MemberTableField: null
ModelAdmin:
DELETE: Izbriši
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Uvozi CSV-datoteko'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Poiščite CSV-datoteko za uvoz'
NOIMPORT: 'Ne najdem ničesar za uvoz'
RESET: Reset
RESET: Ponastavi
Title: 'Data Models'
UPDATEDRECORDS: 'Updated {count} records.'
ModelAdmin_ImportSpec.ss:
@ -436,37 +450,37 @@ sl:
IMPORTSPECTITLE: 'Specification for %s'
ModelAdmin_Tools.ss:
FILTER: Filter
IMPORT: Import
IMPORT: Uvozi
ModelSidebar.ss:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
IMPORT_TAB_HEADER: Uvozi
SEARCHLISTINGS: Išči
MoneyField:
FIELDLABELAMOUNT: Znesek
FIELDLABELCURRENCY: Valuta
NullableField:
IsNullLabel: 'Prazno polje'
NumericField:
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
VALIDATION: '''{value}'' ni številka. V to polje lahko vnesete samo številke.'
Pagination:
Page: Page
View: View
Page: Stran
View: Poglej
Permission:
AdminGroup: Administrator
CMS_ACCESS_CATEGORY: 'Dostop do CMS-vmesnika'
FULLADMINRIGHTS: 'Popolne administratorske pravice'
FULLADMINRIGHTS_HELP: 'Lahko izniči oziroma upravlja z vsemi drugimi dovoljenji.'
PLURALNAME: Permissions
SINGULARNAME: Permission
PLURALNAME: Dovoljenja
SINGULARNAME: Dovoljenje
PermissionCheckboxSetField:
AssignedTo: 'assigned to "{title}"'
FromGroup: 'inherited from group "{title}"'
FromGroup: 'Privzeto iz skupine "{title}"'
FromRole: 'inherited from role "{title}"'
FromRoleOnGroup: 'podedovano iz vloge "%s" na skupino "%s"'
PermissionRole:
OnlyAdminCanApply: 'Only admin can apply'
PLURALNAME: Roles
SINGULARNAME: Role
Title: Title
PLURALNAME: Vloge
SINGULARNAME: Vloga
Title: Naslov
PermissionRoleCode:
PLURALNAME: 'Permission Role Cods'
SINGULARNAME: 'Permission Role Code'
@ -477,8 +491,8 @@ sl:
VALIDATION: 'Vpišite veljavno telefonsko številko'
RelationComplexTableField.ss:
ADD: Dodaj
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
CSVEXPORT: 'Izvozi kot CSV-datoteko'
NOTFOUND: 'Ni najdenih predmetov.'
Security:
ALREADYLOGGEDIN: 'Nimate dovoljenja za dostop do te strani. Če imate uporabniško ime z večimi pravicami, se lahko <a href="%s">ponovno prijavite</a>.'
BUTTONSEND: 'Pošlji povezavo za ponastavitev gesla'
@ -489,10 +503,10 @@ sl:
LOGGEDOUT: 'Vaša prijava je bila prekinjena. Če se želite ponovno prijaviti, vpišite svoje podatke.'
LOGIN: Prijava
NOTEPAGESECURED: 'Stran je zaščitena. Da bi lahko nadaljevali, vpišite svoje podatke.'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETLINKINVALID: '<p>Povezava za ponastavitev gesla je napačna ali pa je njena veljavnost potekla.</p><p><a href="{link1}">Tukaj</a> lahko zaprosite za novo povezavo or pa zamenjate geslo, ko <a href="{link2}">se prijavite v sistem</a>.</p>'
NOTERESETPASSWORD: 'Vpišite e-naslov, na katerega vam bomo poslali povezavo za ponastavitev gesla'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
PASSWORDSENTHEADER: 'Povezava za ponastavitev gesla je bila poslana na e-naslov ''{email}''.'
PASSWORDSENTTEXT: 'Hvala! Povezava za ponastavitev gesla je bila poslana na e-naslov ''{email}'', ki je naveden kot e-naslov vašega računa. '
SecurityAdmin:
ACCESS_HELP: 'Dovoli ogled, dodajanje in urejanje uporabnikov ter dodeljevanje dovoljenj in vlog zanje.'
APPLY_ROLES: 'Skupinam pripiši vloge'
@ -500,22 +514,35 @@ sl:
EDITPERMISSIONS: 'Upravljanje dovoljenj za skupine'
EDITPERMISSIONS_HELP: 'Možnost upravljanja z dovoljenji in IP-naslovi skupin. Potrebujete dovoljenje za dostop do sklopa "Varnost".'
GROUPNAME: 'Ime skupine'
IMPORTGROUPS: 'Import groups'
IMPORTUSERS: 'Import users'
IMPORTGROUPS: 'Uvozi skupine'
IMPORTUSERS: 'Uvozi uporabnike'
MEMBERS: Člani
MENUTITLE: Security
MENUTITLE: Varnost
MemberListCaution: 'Pozor! Če boste odstranili uporabnike s tega seznama, jih boste hkrati odstranili iz vseh drugih skupin in izbrisali iz podatkovne zbirke.'
NEWGROUP: 'Nova Skupina'
PERMISSIONS: Dovoljenja
ROLES: Vloge
ROLESDESCRIPTION: 'Tukaj lahko skupini dodajate vloge. Vloge so logični sklopi dovoljenj, ki jih urejate v zavihku "Vloge".'
TABROLES: Vloge
Users: Users
Users: Uporabniki
SecurityAdmin_MemberImportForm:
BtnImport: Uvozi
FileFieldLabel: 'CSV-datoteka <small>(Samo končnica: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Uredi
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Slika ni naložena'
SiteTree:
@ -528,49 +555,54 @@ sl:
TableListField:
CSVEXPORT: 'Izvozi kot CSV-datoteko'
PRINT: Natisni
Print: Print
Print: Natisni
SELECT: 'Izberi:'
TableListField.ss:
NOITEMSFOUND: 'No items found'
NOITEMSFOUND: 'Ni najdenih predmetov.'
SORTASC: 'Razvrsti naraščajoče'
SORTDESC: 'Razvrsti padajoče'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
TO: to
DISPLAYING: Prikaz
OF: od
TO: za
VIEWFIRST: 'Na začetek'
VIEWLAST: 'Na konec'
VIEWNEXT: Naslednja
VIEWPREVIOUS: Prejšnja
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
VALIDATEFORMAT: 'Prosim, vnesite čas v ustrezni obliki ({format})'
ToggleField:
LESS: manj
MORE: več
UploadField:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
DROPFILE: 'drop a file'
DROPFILES: 'drop files'
Dimensions: Dimensions
EDIT: Edit
EDITINFO: 'Edit this file'
FIELDNOTSET: 'File information not found'
FROMCOMPUTER: 'From your computer'
FROMCOMPUTERINFO: 'Select from files'
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
ATTACHFILE: 'Pripni datoteko'
ATTACHFILES: 'Pripni datoteke'
AttachFile: 'Pripni datoteke'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Izbriši iz zbirke naloženih datotek'
DELETEINFO: 'Dokončno izbriši datoteko iz knjižnjice datotek'
DOEDIT: Shrani
DROPFILE: 'Spusti datoteko'
DROPFILES: 'Spusti datoteko'
Dimensions: Dimenzije
EDIT: Uredi
EDITINFO: 'Uredi datoteko'
FIELDNOTSET: 'Pred uvozom počisti bazo podatkov'
FROMCOMPUTER: 'Z vašega računalnika'
FROMCOMPUTERINFO: 'Izberite iz zbirke naloženih datotek'
FROMFILES: 'Iz zbirke naloženih datotek'
HOTLINKINFO: 'Info: Ta slika bo dostopna prek povezave. Prosim, preverite, da imate dovoljenje avtorja za tako uporabo.'
MAXNUMBEROFFILES: 'Doseženo je največje možno število datotek: {count}'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Naložite lahko največ {count} datotek'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Odstrani
REMOVEERROR: 'Napaka pri brisanju datoteke'
REMOVEINFO: 'Odstrani datoteko, vendar je ne izbriši iz knjižnjice datotek'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
Saved: Shranjeno
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Verzije

View File

@ -2,6 +2,7 @@ sr:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Нова фасцикла'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Прво достављено'
DIM: Димензије
@ -59,9 +60,9 @@ sr:
ERRORNOTADMIN: 'Овај корисник није администратор.'
ERRORNOTREC: 'То корисничко име / лозинка није препознато'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ sr:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Сачувај
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ sr:
HELLO: Здраво
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -92,7 +95,7 @@ sr:
SORTDESC: 'Сортирају у опадајућем поретку'
ComplexTableField_popup.ss:
NEXT: Следеће
PREVIOUS: Претходно
PREVIOUS: 'Претходно'
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
@ -109,20 +112,21 @@ sr:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: дан
DAYS: дана
HOUR: сат
HOURS: сати
MIN: минут
MINS: минута
MONTH: месец
MONTHS: месеци
SEC: секунда
SECS: секунди
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: година
YEARS: година
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: данас
@ -198,7 +202,8 @@ sr:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s је захтевано'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Унета вредност није јединствена'
@ -208,6 +213,7 @@ sr:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: без
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ sr:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ sr:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ sr:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Уметни линк'
BUTTONREMOVELINK: 'Уклони линк'
@ -331,7 +341,10 @@ sr:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ sr:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ sr:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ sr:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Ниједна слика није достављена'
SiteTree:
@ -551,6 +578,8 @@ sr:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ sr:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ sv:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Ny mapp'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Först uppladdad'
DIM: Dimensioner
@ -59,9 +60,9 @@ sv:
ERRORNOTADMIN: 'Den användaren är inte administratör'
ERRORNOTREC: 'Användarnamnet / lösenordet hittas inte'
Boolean:
0: Falskt
ANY: 'Vilken som helst'
1: Sant
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Laddar...
REQUIREJS: 'CMS:et kräver att du har javascript aktiverat.'
@ -70,6 +71,8 @@ sv:
ACCESSALLINTERFACES: 'Tillgång till alla CMS-sektioner'
ACCESSALLINTERFACESHELP: 'Ersätter mer specifika behörighetsinställningar.'
SAVE: Spara
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'Min Profil'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ sv:
HELLO: Hej
PASSWORD: Lösenord
CheckboxField:
- Falskt
- Sant
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Stäng popup'
SUCCESSADD2: 'Lade till {name}'
@ -109,20 +112,21 @@ sv:
PLURALNAME: Dataobjekt
SINGULARNAME: Dataobjekt
Date:
DAY: dag
DAYS: dagar
HOUR: timme
HOURS: timmar
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: min
MONTH: 'månad '
MONTHS: 'månader '
SEC: sek
SECS: sekunder
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} sen'
TIMEDIFFIN: 'om {difference}'
YEAR: år
YEARS: år
YEAR: year
YEARS: years
DateField:
NOTSET: 'inte angivet'
TODAY: 'i dag'
@ -198,7 +202,8 @@ sv:
TEXT2: 'Återställningslänk för lösenord'
TEXT3: för
Form:
FIELDISREQUIRED: '%s är obligatorisk'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Kör
VALIDATIONCREDITNUMBER: 'Kontrollera att du angav kortnummret {number} rätt'
VALIDATIONNOTUNIQUE: 'Det angivna värdet är inte unikt'
@ -208,6 +213,7 @@ sv:
VALIDATOR: Validator
VALIDCURRENCY: 'Var vänlig ange en korrekt valuta'
FormField:
Example: 'e.g. %s'
NONE: ingen
GridAction:
DELETE_DESCRIPTION: Radera
@ -230,6 +236,7 @@ sv:
ResetFilter: Rensa
GridFieldAction_Delete:
DeletePermissionsFailure: 'Rättighet för att radera saknas'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Avbryt
Create: Skapa
@ -237,7 +244,9 @@ sv:
DeletePermissionsFailure: 'Rättighet för att radera saknas'
Deleted: 'Raderade %s %s'
Save: Spara
Saved: 'Sparade %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Lägg till roll för den här gruppen'
@ -267,6 +276,7 @@ sv:
ADDURL: 'Lägg till URL'
ADJUSTDETAILSDIMENSIONS: 'Detaljer &amp; dimensioner'
ANCHORVALUE: Ankare
BUTTONADDURL: 'Add url'
BUTTONINSERT: Infoga
BUTTONINSERTLINK: 'Infoga länk'
BUTTONREMOVELINK: 'Ta bort länk'
@ -321,7 +331,7 @@ sv:
LeftAndMain:
CANT_REORGANISE: 'Du har inte tillstånd att ändra sidor på toppnivå. Dina ändringar har inte sparats.'
DELETED: Raderad
DropdownBatchActionsDefault: Åtgärder
DropdownBatchActionsDefault: 'Åtgärder'
HELP: Hjälp
PAGETYPE: Sidtyp
PERMAGAIN: 'Du har blivit utloggad. Om du vill logga in igen anger du dina uppgifter nedan.'
@ -331,6 +341,9 @@ sv:
PreviewButton: Förhandsgranska
REORGANISATIONSUCCESSFUL: 'Omorganisationen av sidträdet luyckades.'
SAVEDUP: Sparad.
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: okänd
LeftAndMain_Menu.ss:
Hello: Hej
@ -407,6 +420,7 @@ sv:
TWODIGITMONTH: 'Tvåsiffrig månad (01 = januari osv)'
TWODIGITSECOND: 'Två siffror för sekund (00 till 59)'
TWODIGITYEAR: 'Två siffror för år'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Importera användare i <em>CSV-format</em> (kommaseparerade värden). <small><a href="#" class="toggle-advanced">Visa avancerat</a></small></p>'
Help2: "<div class=\"advanced\">\\n<h4>Avancerat </h4>\\n<ul>\\n<li>Tillåtna kolumner: <em>%s</em></li>\\n<li>Existerade användare matchas av deras unika <em>kod</em>-attribut och uppdateras med alla nya värden från den importerade filen</li>\\n<li>Grupper kan anges i <em>Grupp</em>-kolumnen. Grupper identiferas av deras <em>Code</em>-attribut. Anges flera grupper separeras dessa med kommatecken. Existerande användarrättigheter till grupperna tas inte bort.</li>\\n</ul>\\n</div>"
@ -421,7 +435,7 @@ sv:
ModelAdmin:
DELETE: Radera
DELETEDRECORDS: 'Raderade {count} poster.'
EMPTYBEFOREIMPORT: 'Töm databasen före import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Importera från CSV'
IMPORTEDRECORDS: 'Importerade {count} poster.'
NOCSVFILE: 'Var god och bläddra efter en CSV-fil för import'
@ -515,7 +529,20 @@ sv:
BtnImport: 'Importera från CSV'
FileFieldLabel: 'CSV-fil <small>(Tillåtna filtyper: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Ändra
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Ingen bild uppladdad'
SiteTree:
@ -551,6 +578,8 @@ sv:
ATTACHFILE: 'Bifoga en fil'
ATTACHFILES: 'Bifoga fil(er)'
AttachFile: 'Bifoga fil(er)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Radera från filer'
DELETEINFO: 'Ta bort filen permanent från filarkivet'
DOEDIT: Spara
@ -565,12 +594,15 @@ sv:
FROMFILES: 'Från filer'
HOTLINKINFO: 'Information: Denna bild kommer att bli länkad till. Var god kontrollera med ägaren till sajten att du har tillåtelse att länka till bilden.'
MAXNUMBEROFFILES: 'Max antal ({count}) filer överstiget.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Kan bara ladda upp {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: 'Ta bort'
REMOVEERROR: 'Fel när filen skulle tas bort'
REMOVEINFO: 'Ta bort filen härifrån, men radera den inte från filarkivet'
STARTALL: 'Starta alla'
STARTALLINFO: 'Starta all uppladdningar'
Saved: Sparad
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versioner

View File

@ -2,6 +2,7 @@ th:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: สร้างโฟลเดอร์ใหม่
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: อัพโหลดครั้งแรก
DIM: สัดส่วนกว้างยาว
@ -39,8 +40,8 @@ th:
COLOREDEXAMPLE: 'blue text'
EMAILLINK: ลิงก์อีเมล
EMAILLINKDESCRIPTION: สร้างลิงค์ให้กับที่อยู่อีเมล์
IMAGE: รูปภาพ
IMAGEDESCRIPTION: แสดงรูปภาพในหน้าบทความของคุณ
IMAGE: 'รูปภาพ'
IMAGEDESCRIPTION: 'แสดงรูปภาพในหน้าบทความของคุณ'
ITALIC: ข้อความตัวเอียง
ITALICEXAMPLE: ตัวเอียง
LINK: ลิงก์เว็บไซต์
@ -59,9 +60,9 @@ th:
ERRORNOTADMIN: ผู้ใช้งานรายดังกล่าวไม่ใช่ผู้ดูแลระบบ
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: ไม่ตกลง
ANY: ใดๆ
1: ตกลง
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: กำลังโหลด...
REQUIREJS: 'CMS ตัวนี้จำเป็นต้องมีการเปิดใช้งานจาวาสคริปต์'
@ -70,6 +71,8 @@ th:
ACCESSALLINTERFACES: 'เข้าถึงพื้นที่ในส่วนของ CMS ทั้งหมด'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: บันทึก
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ th:
HELLO: สวัสดี
PASSWORD: รหัสผ่าน
CheckboxField:
- ไม่ตกลง
- ตกลง
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: ปิดหน้าต่างป๊อปอัพ
SUCCESSADD2: 'เพิ่มแล้ว {name}'
@ -109,20 +112,21 @@ th:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: วัน
DAYS: วัน
HOUR: ชั่วโมง
HOURS: ชั่วโมง
MIN: นาที
MINS: นาที
MONTH: เดือน
MONTHS: เดือน
SEC: วินาที
SECS: วินาที
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ปี
YEARS: ปี
YEAR: year
YEARS: years
DateField:
NOTSET: ไม่ต้องตั้งค่า
TODAY: วันนี้
@ -198,7 +202,8 @@ th:
TEXT2: ลิงค์รีเซ็ตรหัสผ่าน
TEXT3: สำหรับ
Form:
FIELDISREQUIRED: '%s เป็นข้อมูลที่จำเป็น'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: ไป
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ th:
VALIDATOR: Validator
VALIDCURRENCY: กรุณากรอกสกุลเงินที่ถูกต้อง
FormField:
Example: 'e.g. %s'
NONE: ไม่มี
GridAction:
DELETE_DESCRIPTION: ลบ
@ -230,6 +236,7 @@ th:
ResetFilter: รีเซ็ต
GridFieldAction_Delete:
DeletePermissionsFailure: ไม่ได้รับสิทธิ์ให้ลบได้
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: ยกเลิก
Create: สร้าง
@ -237,7 +244,9 @@ th:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'ลบ %s %s แล้ว'
Save: บันทึก
Saved: 'บันทึกแล้ว %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: เพิ่มบทบาทให้กับกลุ่มนี้
@ -267,11 +276,12 @@ th:
ADDURL: 'เพิ่ม URL'
ADJUSTDETAILSDIMENSIONS: 'รายละเอียด &amp; ขนาดสัดส่วน'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: แทรก
BUTTONINSERTLINK: แทรกลิงค์
BUTTONREMOVELINK: ลบลิงค์
BUTTONUpdate: อัพเดท
CAPTIONTEXT: ข้อความคำอธิบายใต้ภาพ
CAPTIONTEXT: 'ข้อความคำอธิบายใต้ภาพ'
CSSCLASS: 'การจัดวาง / รูปแบบ'
CSSCLASSCENTER: 'Centered, on its own.'
CSSCLASSLEFT: 'On the left, with text wrapping around.'
@ -312,7 +322,7 @@ th:
PLURALNAME: ไฟล์
SINGULARNAME: ไฟล์
ImageField:
IMAGE: รูปภาพ
IMAGE: 'รูปภาพ'
Image_Cached:
PLURALNAME: ไฟล์
SINGULARNAME: ไฟล์
@ -331,7 +341,10 @@ th:
PreviewButton: ดูตัวอย่าง
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: บันทึกแล้ว
VersionUnknown: ไม่ทราบ
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: สวัสดีค่ะ
LOGOUT: ออกจากระบบ
@ -361,7 +374,7 @@ th:
ERRORPASSWORDNOTMATCH: 'รหัสผ่านไม่ตรงกัน กรุณาลองใหม่อีกครั้ง'
ERRORWRONGCRED: 'That doesn''t seem to be the right e-mail address or password. Please try again.'
FIRSTNAME: ชื่อจริง
INTERFACELANG: ภาษาสำหรับหน้าจอติดต่อผู้ใช้
INTERFACELANG: 'ภาษาสำหรับหน้าจอติดต่อผู้ใช้'
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: รหัสผ่านใหม่
@ -379,7 +392,7 @@ th:
YOUROLDPASSWORD: รหัสผ่านเก่าของคุณ
belongs_many_many_Groups: กลุ่ม
db_LastVisited: วันที่เยี่ยมชมล่าสุด
db_Locale: ภาษาสำหรับส่วนอินเทอร์เฟซ
db_Locale: 'ภาษาสำหรับส่วนอินเทอร์เฟซ'
db_LockedOutUntil: ออกจากระบบจนกว่า
db_NumVisit: จำนวนการเข้าชม
db_Password: รหัสผ่าน
@ -407,6 +420,7 @@ th:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ th:
ModelAdmin:
DELETE: ลบ
DELETEDRECORDS: 'ลบแล้ว {count} รายการ'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'นำเข้าจากไฟล์ CSV'
IMPORTEDRECORDS: 'นำเข้าแล้ว {count} รายการ'
NOCSVFILE: 'กรุณาเปิดดูเพื่อเลือกไฟล์ CSV สำหรับนำเข้าข้อมูล'
@ -503,7 +517,7 @@ th:
IMPORTGROUPS: นำเข้ากลุ่ม
IMPORTUSERS: นำเข้าผู้ใช้งาน
MEMBERS: สมาชิก
MENUTITLE: ความปลอดภัย
MENUTITLE: 'ความปลอดภัย'
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
NEWGROUP: สร้างกลุ่มใหม่
PERMISSIONS: สิทธิ์อนุญาต
@ -515,9 +529,22 @@ th:
BtnImport: นำเข้า
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: แก้ไข
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: ยังไม่มีรูปภาพที่ถูกอัพโหลด
NOUPLOAD: 'ยังไม่มีรูปภาพที่ถูกอัพโหลด'
SiteTree:
TABMAIN: หลัก
TableField:
@ -551,6 +578,8 @@ th:
ATTACHFILE: แนบไฟล์
ATTACHFILES: แนบไฟล์
AttachFile: แนบไฟล์
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: ลบจากไฟล์
DELETEINFO: ลบไฟล์นี้ออกจากพื้นที่จัดเก็บไฟล์อย่างถาวร
DOEDIT: บันทึก
@ -565,12 +594,15 @@ th:
FROMFILES: จากไฟล์
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: ลบออก
REMOVEERROR: พบข้อผิดพลาดในระหว่างการลบไฟล์
REMOVEINFO: 'ลบไฟล์นี้จากที่นี่ แต่ไม่ต้องลบไฟล์ดังกล่าวจากพื้นที่จัดเก็บไฟล์'
STARTALL: เริ่มทั้งหมด
STARTALLINFO: เริ่มการอัพโหลดทั้งหมด
Saved: บันทึกแล้ว
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: เวอร์ชั่น

View File

@ -2,6 +2,7 @@ tr:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: YeniKlasör
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Yüklenme tarihi'
DIM: Boyutları
@ -59,9 +60,9 @@ tr:
ERRORNOTADMIN: 'O kullanıcı, yönetici değildir'
ERRORNOTREC: 'Kullanıcı adı / şifre hatalı'
Boolean:
0: Yanlış
ANY: Herhangi
1: Doğru
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ tr:
ACCESSALLINTERFACES: 'Tüm İYS arayüzlerine erişim'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Kaydet
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ tr:
HELLO: Merhaba
PASSWORD: Parola
CheckboxField:
- Yanlış
- Doğru
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Açılır Pancereyi Kapat'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ tr:
PLURALNAME: 'Data Nesneleri'
SINGULARNAME: 'Data Nesnesi'
Date:
DAY: gün
DAYS: gün
HOUR: saat
HOURS: saat
MIN: dakika
MINS: dakika
MONTH: ay
MONTHS: ay
SEC: saniye
SECS: saniye
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: yıl
YEARS: yıl
YEAR: year
YEARS: years
DateField:
NOTSET: ayarlanmamış
TODAY: bugün
@ -198,7 +202,8 @@ tr:
TEXT2: 'şifre sıfırlama linki'
TEXT3: için
Form:
FIELDISREQUIRED: '%s alanının girilmesi zorunludur'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Girilen değer benzersiz olmalıdır'
@ -208,6 +213,7 @@ tr:
VALIDATOR: 'Geçerlilik tespiti'
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: hiç
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ tr:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ tr:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Bu gruba rol ekleyin'
@ -267,6 +276,7 @@ tr:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor(çapa)
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Bağlantı ekle'
BUTTONREMOVELINK: 'Bağlantıyı sil'
@ -331,7 +341,10 @@ tr:
PreviewButton: Önizleme
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Kaydedilmiş.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ tr:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ tr:
ModelAdmin:
DELETE: Sil
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'CSV''den içer aktar'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'CSV dosyası ekleme'
@ -515,7 +529,20 @@ tr:
BtnImport: Aktar
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Henüz Resim Yüklenmemiş'
SiteTree:
@ -551,6 +578,8 @@ tr:
ATTACHFILE: 'Dosya ekle'
ATTACHFILES: 'Dosya ekle'
AttachFile: 'Dosyalar ekle'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Kaydet
@ -565,12 +594,15 @@ tr:
FROMFILES: 'Kimden dosyaları'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Tümünü başlat'
STARTALLINFO: 'Start all uploads'
Saved: Kaydedilmiş
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versiyonlar

View File

@ -2,6 +2,7 @@ uk:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 'Нова Тека'
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'Вперше завантажено'
DIM: Виміри
@ -9,7 +10,7 @@ uk:
FOLDER: Folder
LASTEDIT: 'Востаннє змінено'
OWNER: Власник
SIZE: Розмір
SIZE: 'Розмір'
TITLE: Назва
TYPE: Тип
URL: URL
@ -59,9 +60,9 @@ uk:
ERRORNOTADMIN: 'Цей користувач не є адміністратором.'
ERRORNOTREC: 'Таке ім''я користувача / пароль не існує'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ uk:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Зберегти
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ uk:
HELLO: Привіт
PASSWORD: Пароль
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Закрити Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ uk:
PLURALNAME: 'Об’єкти даних'
SINGULARNAME: 'Об’єкт даних'
Date:
DAY: день
DAYS: дні
HOUR: година
HOURS: годин
MIN: хв
MINS: хв
MONTH: місяць
MONTHS: місяці
SEC: сек
SECS: сек
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: рік
YEARS: роки
YEAR: year
YEARS: years
DateField:
NOTSET: 'не встановлено'
TODAY: сьогодні
@ -198,7 +202,8 @@ uk:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s є необхідним'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'Введене значання не унікальне'
@ -208,6 +213,7 @@ uk:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ uk:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ uk:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Додати роль до цієї групи'
@ -267,6 +276,7 @@ uk:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Якір
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Вставити посилання'
BUTTONREMOVELINK: 'Вмдалити посилання'
@ -288,7 +298,7 @@ uk:
IMAGEALT: 'Alternative text (alt)'
IMAGEALTTEXT: 'Альтернативний текст (alt) - відображається якщо зображення не відображається'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEDIMENSIONS: Розміри
IMAGEDIMENSIONS: 'Розміри'
IMAGEHEIGHTPX: Висота
IMAGETITLE: 'Текст заголовку (tooltip) - для додаткової інформації про зображення'
IMAGETITLETEXT: 'Title text (tooltip)'
@ -331,7 +341,10 @@ uk:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ uk:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ uk:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Імпортувати з CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -507,15 +521,28 @@ uk:
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
NEWGROUP: 'Нова Група'
PERMISSIONS: Дозволи
ROLES: Ролі
ROLES: 'Ролі'
ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.<br />They are inherited from parent groups if required.'
TABROLES: Ролі
TABROLES: 'Ролі'
Users: Користувачі
SecurityAdmin_MemberImportForm:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'Не завантажено жодного зображення'
SiteTree:
@ -551,6 +578,8 @@ uk:
ATTACHFILE: 'Прикріпити файл'
ATTACHFILES: 'Прикріпити файли'
AttachFile: 'Прикріпити файл(и)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Зберегти
@ -565,12 +594,15 @@ uk:
FROMFILES: 'З файлів'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Помилка видалення файла'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Версіїї

View File

@ -2,6 +2,7 @@ uz:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ uz:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ uz:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Saqlash
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ uz:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ uz:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,7 +202,8 @@ uz:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ uz:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ uz:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ uz:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ uz:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ uz:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ uz:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ uz:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ uz:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ uz:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ uz:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,6 +2,7 @@ vi_VN:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
@ -59,9 +60,9 @@ vi_VN:
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,6 +71,8 @@ vi_VN:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Lưu
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
@ -79,8 +82,8 @@ vi_VN:
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ vi_VN:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ngày
DAYS: ngày
HOUR: giờ
HOURS: giờ
MIN: phút
MINS: phút
MONTH: tháng
MONTHS: tháng
SEC: giây
SECS: giây
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: năm
YEARS: năm
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: 'hôm nay'
@ -198,7 +202,8 @@ vi_VN:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
@ -208,6 +213,7 @@ vi_VN:
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ vi_VN:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ vi_VN:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,6 +276,7 @@ vi_VN:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
@ -331,7 +341,10 @@ vi_VN:
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -407,6 +420,7 @@ vi_VN:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ vi_VN:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -515,7 +529,20 @@ vi_VN:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
@ -551,6 +578,8 @@ vi_VN:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ vi_VN:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,13 +2,14 @@ zh_CN:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 新建文件夹
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 第一次被上传
CREATED: '第一次被上传'
DIM: 尺寸
FILENAME: 文件名
FOLDER: Folder
LASTEDIT: 上一次被更改
OWNER: 拥有者
OWNER: '拥有者'
SIZE: 大小
TITLE: 文件名称
TYPE: 类型
@ -55,13 +56,13 @@ zh_CN:
BackLink_Button.ss:
Back: Back
BasicAuth:
ENTERINFO: 请输入用户名和密码
ENTERINFO: '请输入用户名和密码'
ERRORNOTADMIN: 此用户没有管理员权限。
ERRORNOTREC: 没有找到此用户名/密码
ERRORNOTREC: '没有找到此用户名/密码'
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,23 +71,25 @@ zh_CN:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 保存
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 您已更改了登陆%s的密码
CHANGEPASSWORDTEXT1: '您已更改了登陆%s的密码'
CHANGEPASSWORDTEXT2: 您现在可以用下列权限信息进行登路:
EMAIL: Email
HELLO:
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
SUCCESSEDIT: 'Saved %s %s %s'
ComplexTableField.ss:
ADDITEM: 新加
ADDITEM: '新加'
NOITEMSFOUND: 'No items found'
SORTASC: 正序排列
SORTDESC: 倒序排列
@ -97,7 +100,7 @@ zh_CN:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
MAXIMUM: 'Passwords must be at most {max} characters long.'
SHOWONCLICKTITLE: 更改密码
SHOWONCLICKTITLE: '更改密码'
CreditCardField:
FIRST: first
FOURTH: fourth
@ -109,20 +112,21 @@ zh_CN:
PLURALNAME: 数据对象
SINGULARNAME: 数据对象
Date:
DAY:
DAYS:
HOUR: 个小时
HOURS: 个小时
MIN: 分钟
MINS: 分钟
MONTH: 个月
MONTHS: 个月
SEC:
SECS:
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR:
YEARS:
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,16 +202,18 @@ zh_CN:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s是必需填写的'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 输入值已被他人占用
VALIDATIONPASSWORDSDONTMATCH: (密码相互不匹配)
VALIDATIONPASSWORDSNOTEMPTY: 密码不能空白
VALIDATIONNOTUNIQUE: '输入值已被他人占用'
VALIDATIONPASSWORDSDONTMATCH: '(密码相互不匹配)'
VALIDATIONPASSWORDSNOTEMPTY: '密码不能空白'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ zh_CN:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,11 +244,13 @@ zh_CN:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
Code: 团队代码
Code: '团队代码'
DefaultGroupTitleAdministrators: Administrators
DefaultGroupTitleContentAuthors: 'Content Authors'
Description: Description
@ -267,13 +276,14 @@ zh_CN:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 插入链接
BUTTONREMOVELINK: 删除链接
BUTTONINSERTLINK: '插入链接'
BUTTONREMOVELINK: '删除链接'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
CSSCLASS: 对齐/样式
CSSCLASSCENTER: 自居中
CSSCLASS: '对齐/样式'
CSSCLASSCENTER: '自居中'
CSSCLASSLEFT: 左端自动换行
CSSCLASSLEFTALONE: 'On the left, on its own.'
CSSCLASSRIGHT: 右端自动换行
@ -289,17 +299,17 @@ zh_CN:
IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEDIMENSIONS: 尺寸
IMAGEHEIGHTPX: 高(像素)
IMAGEHEIGHTPX: '高(像素)'
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: 宽(像素)
IMAGEWIDTHPX: '宽(像素)'
INSERTMEDIA: 'Insert Media'
LINK: 对所选文字插入/编辑链接
LINK: '对所选文字插入/编辑链接'
LINKANCHOR: 'Anchor on this page'
LINKDESCR: 链接描述
LINKEMAIL: 电子邮件地址
LINKEXTERNAL: 其它网站
LINKEXTERNAL: '其它网站'
LINKFILE: 下载文件
LINKINTERNAL: 本站网页
LINKOPENNEWWIN: 在新窗口打开链接?
@ -317,21 +327,24 @@ zh_CN:
PLURALNAME: Files
SINGULARNAME: File
Image_iframe.ss:
TITLE: 图象上传内嵌框架Iframe
TITLE: '图象上传内嵌框架Iframe'
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
HELP: 帮助
PAGETYPE: 网页类型
PERMAGAIN: 您于CMS的登录已被注销请在下面输入用户名和密码重新登录。
PERMALREADY: 对不起您无权登录CMS的这一部分。如果您要用另外的帐号请在下面登录。
PERMDEFAULT: 请先选择一种验证方法并输入您的权限信息以登录CMS。
PLEASESAVE: 请先保存:因为该网页还未保存,所以该页无法更新。
PERMAGAIN: '您于CMS的登录已被注销请在下面输入用户名和密码重新登录。'
PERMALREADY: '对不起您无权登录CMS的这一部分。如果您要用另外的帐号请在下面登录。'
PERMDEFAULT: '请先选择一种验证方法并输入您的权限信息以登录CMS。'
PLEASESAVE: '请先保存:因为该网页还未保存,所以该页无法更新。'
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -343,13 +356,13 @@ zh_CN:
Status: Status
Member:
ADDGROUP: 'Add group'
BUTTONCHANGEPASSWORD: 更改密码
BUTTONCHANGEPASSWORD: '更改密码'
BUTTONLOGIN: 登录
BUTTONLOGINOTHER: 使用其他帐户登录
BUTTONLOSTPASSWORD: 忘记密码
BUTTONLOGINOTHER: '使用其他帐户登录'
BUTTONLOSTPASSWORD: '忘记密码'
CANTEDIT: 'You don''t have permission to do that'
CONFIRMNEWPASSWORD: 确认新密码
CONFIRMPASSWORD: 确认密码
CONFIRMNEWPASSWORD: '确认新密码'
CONFIRMPASSWORD: '确认密码'
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 'Default Admin'
DefaultDateTime: default
@ -357,35 +370,35 @@ zh_CN:
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
ENTEREMAIL: 'Please enter an email address to get a password reset link.'
ERRORLOCKEDOUT: 'Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes.'
ERRORNEWPASSWORD: 您输入了一个不同的新密码,请重新输入
ERRORPASSWORDNOTMATCH: 您当前的密码不正确,请再次输入
ERRORWRONGCRED: 电邮地址或密码似乎不对。请重新输入。
ERRORNEWPASSWORD: '您输入了一个不同的新密码,请重新输入'
ERRORPASSWORDNOTMATCH: '您当前的密码不正确,请再次输入'
ERRORWRONGCRED: '电邮地址或密码似乎不对。请重新输入。'
FIRSTNAME:
INTERFACELANG: 界面语言
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: 新密码
PASSWORD: 密码
NEWPASSWORD: '新密码'
PASSWORD: '密码'
PLURALNAME: 成员
REMEMBERME: 记住我的信息?
SINGULARNAME: 成员
SUBJECTPASSWORDCHANGED: 您的密码已更改
SUBJECTPASSWORDRESET: 重设您的密码链接
SUBJECTPASSWORDCHANGED: '您的密码已更改'
SUBJECTPASSWORDRESET: '重设您的密码链接'
SURNAME:
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: 已经存在用这个电子邮件的会员
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
YOUROLDPASSWORD: 您的旧密码
YOUROLDPASSWORD: '您的旧密码'
belongs_many_many_Groups: 团队
db_LastVisited: 'Last Visited Date'
db_Locale: 'Interface Locale'
db_LockedOutUntil: 禁止直至
db_NumVisit: 'Number of Visits'
db_Password: Password
db_PasswordExpiry: 密码过期日期
db_PasswordExpiry: '密码过期日期'
MemberAuthenticator:
TITLE: 电邮地址和密码
TITLE: '电邮地址和密码'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
'APPLY FILTER': 'Apply Filter'
@ -407,6 +420,7 @@ zh_CN:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -419,9 +433,9 @@ zh_CN:
SINGULARNAME: 'Member Password'
MemberTableField: null
ModelAdmin:
DELETE: 删除
DELETE: '删除'
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -474,23 +488,23 @@ zh_CN:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: 请输入有效电话号码
VALIDATION: '请输入有效电话号码'
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: 您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。
BUTTONSEND: 给我发送密码重设链接
CHANGEPASSWORDBELOW: 您可在下面更改您的密码
CHANGEPASSWORDHEADER: 更改您的密码
ENTERNEWPASSWORD: 请输入新密码
ERRORPASSWORDPERMISSION: 您必需登录以更改您的密码
LOGGEDOUT: 您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。
ALREADYLOGGEDIN: '您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。'
BUTTONSEND: '给我发送密码重设链接'
CHANGEPASSWORDBELOW: '您可在下面更改您的密码'
CHANGEPASSWORDHEADER: '更改您的密码'
ENTERNEWPASSWORD: '请输入新密码'
ERRORPASSWORDPERMISSION: '您必需登录以更改您的密码'
LOGGEDOUT: '您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。'
LOGIN: 登录
NOTEPAGESECURED: 此页是受安全保护的。输入您的登录信息,我们会将您送达。
NOTEPAGESECURED: '此页是受安全保护的。输入您的登录信息,我们会将您送达。'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: 输入您的电邮地址,我们会给您发送一个您可重设密码的链接
NOTERESETPASSWORD: '输入您的电邮地址,我们会给您发送一个您可重设密码的链接'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:
@ -515,9 +529,22 @@ zh_CN:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 没有上传的图像
NOUPLOAD: '没有上传的图像'
SiteTree:
TABMAIN: 主要部分
TableField:
@ -551,6 +578,8 @@ zh_CN:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ zh_CN:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -2,13 +2,14 @@ zh_TW:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 新資料夾
SHOWALLOWEDEXTS: 'Show allowed extensions'
AssetTableField:
CREATED: 第一次上傳
DIM: 尺寸
FILENAME: 檔案名稱
FOLDER: Folder
LASTEDIT: 最後一次更新
OWNER: 擁有者
OWNER: '擁有者'
SIZE: 大小
TITLE: 標題
TYPE: 類型
@ -55,13 +56,13 @@ zh_TW:
BackLink_Button.ss:
Back: Back
BasicAuth:
ENTERINFO: 請輸入帳號密碼。
ERRORNOTADMIN: 那個使用者不是管理員。
ENTERINFO: '請輸入帳號密碼。'
ERRORNOTADMIN: '那個使用者不是管理員。'
ERRORNOTREC: 那組帳號密碼不對。
Boolean:
0: 'False'
ANY: Any
1: 'True'
NOANSWER: 'False'
YESANSWER: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -70,17 +71,19 @@ zh_TW:
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 儲存
CMSPageHistoryController_versions.ss:
PREVIEW: 'Website preview'
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 您為這個帳戶改密碼:
CHANGEPASSWORDTEXT2: 您可以用下列的帳號密碼登入:
CHANGEPASSWORDTEXT2: '您可以用下列的帳號密碼登入:'
EMAIL: Email
HELLO: 您好
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
NOANSWER: 'False'
YESANSWER: 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
@ -109,20 +112,21 @@ zh_TW:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY:
DAYS:
HOUR: 小時
HOURS: 小時
MIN: 分鐘
MINS: 分鐘
MONTH:
MONTHS:
SEC:
SECS:
DAY: day
DAYS: days
HOUR: hour
HOURS: hours
LessThanMinuteAgo: 'less than a minute'
MIN: min
MINS: mins
MONTH: month
MONTHS: months
SEC: sec
SECS: secs
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR:
YEARS:
YEAR: year
YEARS: years
DateField:
NOTSET: 'not set'
TODAY: today
@ -198,16 +202,18 @@ zh_TW:
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '必須要填 %s'
CSRF_FAILED_MESSAGE: 'There seems to have been a technical problem. Please click the back button, refresh your browser, and try again.'
FIELDISREQUIRED: '{name} is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 您輸入的數值並不是獨特的。
VALIDATIONPASSWORDSDONTMATCH: 密碼不相配
VALIDATIONNOTUNIQUE: '您輸入的數值並不是獨特的。'
VALIDATIONPASSWORDSDONTMATCH: '密碼不相配'
VALIDATIONPASSWORDSNOTEMPTY: 密碼不能是空的
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
Example: 'e.g. %s'
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
@ -230,6 +236,7 @@ zh_TW:
ResetFilter: Reset
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
EditPermissionsFailure: 'No permission to unlink record'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
@ -237,7 +244,9 @@ zh_TW:
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
Saved: 'Saved {name} {link}'
GridFieldEditButton.ss:
EDIT: Edit
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
@ -267,16 +276,17 @@ zh_TW:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONADDURL: 'Add url'
BUTTONINSERT: Insert
BUTTONINSERTLINK: 插入連結
BUTTONINSERTLINK: '插入連結'
BUTTONREMOVELINK: 移除連結
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
CSSCLASS: 對齊/樣式
CSSCLASSCENTER: 獨立置中
CSSCLASSLEFT: 靠左被字包圍。
CSSCLASSLEFT: '靠左被字包圍。'
CSSCLASSLEFTALONE: 'On the left, on its own.'
CSSCLASSRIGHT: 靠右被字包圍。
CSSCLASSRIGHT: '靠右被字包圍。'
DETAILS: Details
EMAIL: 電子郵件地址
FILE: 檔案
@ -295,7 +305,7 @@ zh_TW:
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX:
INSERTMEDIA: 'Insert Media'
LINK: 插入或編輯選取的連結
LINK: '插入或編輯選取的連結'
LINKANCHOR: 'Anchor on this page'
LINKDESCR: 連結敘述
LINKEMAIL: 電子郵件地址
@ -304,7 +314,7 @@ zh_TW:
LINKINTERNAL: 此網站
LINKOPENNEWWIN: 在新視窗打開連結
LINKTO: 連結至
PAGE: 網頁
PAGE: '網頁'
URL: 網址
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
@ -323,15 +333,18 @@ zh_TW:
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
HELP: 說明
PAGETYPE: 網頁類型:
PERMAGAIN: 您已被登出,請在下面重新登入。
PERMALREADY: 抱歉,您沒有權力使用這個部分。您可以用別的帳號登入。
PERMDEFAULT: 請選擇一個認證方法並登入。
PLEASESAVE: 請儲存:這個網頁沒有被更新因為尚未被儲存。
PAGETYPE: '網頁類型:'
PERMAGAIN: '您已被登出,請在下面重新登入。'
PERMALREADY: '抱歉,您沒有權力使用這個部分。您可以用別的帳號登入。'
PERMDEFAULT: '請選擇一個認證方法並登入。'
PLEASESAVE: '請儲存:這個網頁沒有被更新因為尚未被儲存。'
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
VersionUnknown: unknown
ShowAsList: 'show as list'
TooManyPages: 'Too many pages'
ValidationError: 'Validation error'
VersionUnknown: Unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
@ -344,8 +357,8 @@ zh_TW:
Member:
ADDGROUP: 'Add group'
BUTTONCHANGEPASSWORD: 更改密碼
BUTTONLOGIN: 登入
BUTTONLOGINOTHER: 用別的帳戶登入
BUTTONLOGIN: '登入'
BUTTONLOGINOTHER: '用別的帳戶登入'
BUTTONLOSTPASSWORD: 忘記密碼
CANTEDIT: 'You don''t have permission to do that'
CONFIRMNEWPASSWORD: 確認新密碼
@ -357,7 +370,7 @@ zh_TW:
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
ENTEREMAIL: 'Please enter an email address to get a password reset link.'
ERRORLOCKEDOUT: 'Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes.'
ERRORNEWPASSWORD: 新密碼不相配,請再試一次。
ERRORNEWPASSWORD: '新密碼不相配,請再試一次。'
ERRORPASSWORDNOTMATCH: 舊密碼不對,請再試一次。
ERRORWRONGCRED: 密碼或電子郵件地址錯誤。請再是一次。
FIRSTNAME:
@ -407,6 +420,7 @@ zh_TW:
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
Toggle: 'Show formatting help'
MemberImportForm:
Help1: '<p>Import users in <em>CSV format</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing users are matched by their unique <em>Code</em> property, and updated with any new values from the imported file.</li> <li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, multiple groups can be separated by comma. Existing group memberships are not cleared.</li> </ul></div>'
@ -421,7 +435,7 @@ zh_TW:
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Replace data'
IMPORT: 'Import from CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
NOCSVFILE: 'Please browse for a CSV file to import'
@ -474,23 +488,23 @@ zh_TW:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: 請輸入有效的電話號碼
VALIDATION: '請輸入有效的電話號碼'
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: 你不能瀏覽此頁。請用別的帳戶登入。
ALREADYLOGGEDIN: '你不能瀏覽此頁。請用別的帳戶登入。'
BUTTONSEND: 寄給我密碼重設網址。
CHANGEPASSWORDBELOW: 請在下面更改密碼。
CHANGEPASSWORDHEADER: 更改密碼
ENTERNEWPASSWORD: 請輸入新的密碼。
ERRORPASSWORDPERMISSION: 你必須先登入才能改密碼!
LOGGEDOUT: 你已登出。您在下面再登入一次。
ENTERNEWPASSWORD: '請輸入新的密碼。'
ERRORPASSWORDPERMISSION: '你必須先登入才能改密碼!'
LOGGEDOUT: '你已登出。您在下面再登入一次。'
LOGIN: 'Log in'
NOTEPAGESECURED: 那的網頁是被保護的。請先登入。
NOTEPAGESECURED: '那的網頁是被保護的。請先登入。'
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: 請輸入您的電子郵件。我們將寄給你重設密媽的網址。
NOTERESETPASSWORD: '請輸入您的電子郵件。我們將寄給你重設密媽的網址。'
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:
@ -515,7 +529,20 @@ zh_TW:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Auto: Auto
ChangeViewMode: 'Change view mode'
Desktop: Desktop
DualWindowView: 'Dual Window'
Edit: Edit
EditView: 'Edit mode'
Mobile: Mobile
PreviewState: 'Preview State'
PreviewView: 'Preview mode'
Responsive: Responsive
SplitView: 'Split mode'
Tablet: Tablet
ViewDeviceWidth: 'Select a preview width'
Width: width
SimpleImageField:
NOUPLOAD: 沒有上傳圖片
SiteTree:
@ -551,6 +578,8 @@ zh_TW:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
CHOOSEANOTHERFILE: 'Choose another file'
CHOOSEANOTHERINFO: 'Replace this file with another one from the file store'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
@ -565,12 +594,15 @@ zh_TW:
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESONE: 'Can only upload one file'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
OVERWRITEWARNING: 'File with the same name already exists'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
UPLOADSINTO: 'saves into /{path}'
Versioned:
has_many_Versions: Versions

View File

@ -426,10 +426,13 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
}
/**
* Translates a Object relation name to a Database name and apply the relation join to
* the query. Throws an InvalidArgumentException if the $field doesn't correspond to a relation
* Translates a {@link Object} relation name to a Database name and apply
* the relation join to the query. Throws an InvalidArgumentException if
* the $field doesn't correspond to a relation.
*
* @throws InvalidArgumentException
* @param string $field
*
* @return string
*/
public function getRelationName($field) {
@ -445,9 +448,11 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
if(strpos($field,'.') === false) {
return '"'.$field.'"';
}
$relations = explode('.', $field);
$fieldName = array_pop($relations);
$relationModelName = $this->dataQuery->applyRelation($field);
return '"'.$relationModelName.'"."'.$fieldName.'"';
}
@ -466,10 +471,13 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
} else {
$className = 'ExactMatchFilter';
}
if(!class_exists($className)) {
$className = 'ExactMatchFilter';
array_unshift($modifiers, $filter);
}
$t = new $className($field, $value, $modifiers);
return $this->alterDataQuery(array($t, 'apply'));

View File

@ -499,7 +499,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
}
}
} else { //one-to-one relation
$destinationObject->$name = $relations;
$destinationObject->{"{$name}ID"} = $relations->ID;
}
}
}
@ -2568,7 +2568,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
$results = $this->extend($methodName, $member);
if($results && is_array($results)) {
// Remove NULLs
$results = array_filter($results, array($this,'isNotNull'));
$results = array_filter($results, function($v) {return !is_null($v);});
// If there are any non-NULL responses, then return the lowest one of them.
// If any explicitly deny the permission, then we don't get access
if($results) return min($results);
@ -2576,16 +2576,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
return null;
}
/**
* Helper functon for extendedCan
*
* @param Mixed $value
* @return boolean
*/
private function isNotNull($value) {
return !is_null($value);
}
/**
* @param Member $member
* @return boolean
@ -2743,12 +2733,20 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
$relations = explode('.', $fieldName);
$fieldName = array_pop($relations);
foreach($relations as $relation) {
// Bail if any of the below sets a $component to a null object
if($component instanceof SS_List && !method_exists($component, $relation)) {
$component = $component->relation($relation);
// Just call the method and hope for the best
} else {
// Inspect $component for element $relation
if($component->hasMethod($relation)) {
// Check nested method
$component = $component->$relation();
} elseif($component instanceof SS_List) {
// Select adjacent relation from DataList
$component = $component->relation($relation);
} elseif($component instanceof DataObject
&& ($dbObject = $component->dbObject($relation))
) {
// Select db object
$component = $dbObject;
} else {
user_error("$relation is not a relation/field on ".get_class($component), E_USER_ERROR);
}
}
}

View File

@ -350,7 +350,7 @@ class Image extends File {
* @param integer $height The height to size to
* @return Image
*/
public function PaddedImage($width, $height, $backgroundColor=null) {
public function PaddedImage($width, $height, $backgroundColor='FFFFFF') {
return $this->isSize($width, $height)
? $this
: $this->getFormattedImage('PaddedImage', $width, $height, $backgroundColor);
@ -364,7 +364,7 @@ class Image extends File {
* @param integer $height The height to size to
* @return Image_Backend
*/
public function generatePaddedImage(Image_Backend $backend, $width, $height, $backgroundColor=null) {
public function generatePaddedImage(Image_Backend $backend, $width, $height, $backgroundColor='FFFFFF') {
return $backend->paddedResize($width, $height, $backgroundColor);
}

View File

@ -12,19 +12,19 @@ class MySQLDatabase extends SS_Database {
* Connection to the DBMS.
* @var resource
*/
private $dbConn;
protected $dbConn;
/**
* True if we are connected to a database.
* @var boolean
*/
private $active;
protected $active;
/**
* The name of the database.
* @var string
*/
private $database;
protected $database;
/**
* @config
@ -32,7 +32,7 @@ class MySQLDatabase extends SS_Database {
*/
private static $connection_charset = null;
private $supportsTransactions = true;
protected $supportsTransactions = true;
/**
* Sets the character set for the MySQL database connection.
@ -931,7 +931,7 @@ class MySQLDatabase extends SS_Database {
$list = new PaginatedList(new ArrayList($objects));
$list->setPageStart($start);
$list->setPageLEngth($pageLength);
$list->setPageLength($pageLength);
$list->setTotalItems($totalCount);
// The list has already been limited by the query above
@ -1221,13 +1221,13 @@ class MySQLQuery extends SS_Query {
* The MySQLDatabase object that created this result set.
* @var MySQLDatabase
*/
private $database;
protected $database;
/**
* The internal MySQL handle that points to the result set.
* @var resource
*/
private $handle;
protected $handle;
/**
* Hook the result-set given into a Query class, suitable for use by SilverStripe.

View File

@ -450,6 +450,7 @@ class SQLQuery {
* Internally, limit will always be stored as a map containing the keys 'start' and 'limit'
*
* @param int|string|array $limit If passed as a string or array, assumes SQL escaped data.
* Only applies for positive values, or if an $offset is set as well.
* @param int $offset
*
* @throws InvalidArgumentException
@ -461,7 +462,7 @@ class SQLQuery {
throw new InvalidArgumentException("SQLQuery::setLimit() only takes positive values");
}
if($limit && is_numeric($limit)) {
if(is_numeric($limit) && ($limit || $offset)) {
$this->limit = array(
'start' => $offset,
'limit' => $limit,

View File

@ -79,6 +79,14 @@ class Versioned extends DataExtension {
'Version' => 'Int'
);
/**
* Used to enable or disable the prepopulation of the version number cache.
* Defaults to true.
*
* @var boolean
*/
private static $prepopulate_versionnumber_cache = true;
/**
* Keep track of the archive tables that have been created.
*
@ -1095,6 +1103,9 @@ class Versioned extends DataExtension {
* @param array $idList
*/
public static function prepopulate_versionnumber_cache($class, $stage, $idList = null) {
if (!Config::inst()->get('Versioned', 'prepopulate_versionnumber_cache')) {
return;
}
$filter = "";
if($idList) {

View File

@ -134,7 +134,6 @@ body.cms.ss-uploadfield-edit-iframe, .composite.ss-assetuploadfield .details fie
.ss-uploadfield-item-info {
position: relative;
line-height: 30px;
font-size: 14px;
overflow: hidden;
background-color: #5db4df;
@include background-image(linear-gradient(top, #5db4df 0%,#5db1dd 8%,#439bcb 50%,#3f99cd 54%,#207db6 96%,#1e7cba 100%));

View File

@ -1,151 +1,121 @@
/**
* Fields
*/
form * {
font-size: 12px;
}
form fieldset {
margin: 0;
padding: 0;
border-style: none;
}
form .field {
clear: both;
padding: 0.2em;
margin: 0 0 0 10em;
vertical-align: middle;
}
form p.checkbox {
margin: 0 0 0 8.5em;
}
form .field.nolabel {
margin-left: 0;
}
form label.left {
float: left;
width: 10em;
margin-left: -10em;
}
form input.maxlength {
width: auto;
}
form .actions{
float : right;
}
form .validation,
form .error,
form .required
{
border: 1px solid #f00;
background: #fcc;
padding: 0.5em;
width: 50%;
}
form .field span.readonly {
border: 1px #CCC dotted;
background-color: #F7F7F7;
display: block;
width: 98%;
padding: 3px;
margin:5px 0;
}
form .indicator.inline {
display: inline;
margin-left: 5px;
vertical-align: middle;
}
form .indicator.block {
display: inline;
}
/* Emulating link styling for actions requiring lesser attention, e.g. "cancel" FormActions */
form button.minorAction {
background: none;
padding: 0;
border: 0;
color: #0074C6;
text-decoration: underline;
}
/**
* Composite Fields - raw concatenation of fields for programmatic purposes.
*/
.right form div.CompositeField {
margin-left: 7.5em;
}
.right form div.CompositeField div.field {
font-size: 1em;
}
.right form div.CompositeField {
clear: both;
}
.right form div.CompositeField label.left {
float: left;
width: 10em;
margin-left: -10em;
}
.right form div.column2 {
float: left;
width: 45%;
margin-right: 4%;
}
.right form div.multicolumn {
width: 100%;
float: left;
clear: left;
}
/**
* Messages
*/
form .message.notice {
background-color: #FCFFDF;
border-color: #FF9300;
}
form .message {
margin: 1em 0;
padding: 0.5em;
font-weight: bold;
border: 1px black solid;
background-color: #B9FFB9;
border-color: #00FF00;
}
form .message.warning {
background-color: #FFD2A6;
border-color: #FF9300;
form {
* {
font-size: 12px;
}
form .message.bad {
background-color: #FF8080;
border-color: #FF0000;
fieldset {
margin: 0;
padding: 0;
border-style: none;
}
form .message.required,
form .message.validation {
display:block;
margin-top:5px;
color:#FF9300;
width:240px;
border-color: #FF9300;
.field {
clear: both;
padding: 0.2em;
margin: 0 0 0 10em;
vertical-align: middle;
}
form .message.validation {
color:#FF4040;
width:240px;
border-color: #FF4040;
p.checkbox {
margin: 0 0 0 8.5em;
}
.field.nolabel {
margin-left: 0;
}
label.left {
float: left;
width: 10em;
margin-left: -10em;
}
input.maxlength {
width: auto;
}
.actions{
float : right;
}
.validation, .error, .required {
border: 1px solid #f00;
background: #fcc;
padding: 0.5em;
width: 50%;
}
.field span.readonly {
border: 1px #CCC dotted;
background-color: #F7F7F7;
display: block;
width: 98%;
padding: 3px;
margin:5px 0;
}
.indicator.inline {
display: inline;
margin-left: 5px;
vertical-align: middle;
}
.indicator.block {
display: inline;
}
// Emulating link styling for actions requiring lesser attention, e.g. "cancel" FormActions
button.minorAction {
background: none;
padding: 0;
border: 0;
color: #0074C6;
text-decoration: underline;
}
/**
* Messages
*/
.message {
margin: 1em 0;
padding: 0.5em;
font-weight: bold;
border: 1px black solid;
background-color: #B9FFB9;
border-color: #00FF00;
&.notice {
background-color: #FCFFDF;
border-color: #FF9300;
}
&.warning {
background-color: #FFD2A6;
border-color: #FF9300;
}
&.bad {
background-color: #FF8080;
border-color: #FF0000;
}
&.required, &.validation {
display:block;
margin-top:5px;
color:#FF9300;
width:240px;
border-color: #FF9300;
}
&.validation {
color:#FF4040;
width:240px;
border-color: #FF4040;
}
}
}
.typography .ss-tabset ul {
margin: 0;
}

View File

@ -127,7 +127,6 @@ $gf_grid_x: 16px;
border-collapse: separate;
border-bottom: 0 none;
width: 100%;
margin-bottom:$gf_grid_y;
thead {
color: darken($color-base, 50%);
@ -583,6 +582,7 @@ $gf_grid_x: 16px;
margin-left:-116px; //half the width of .datagrid-pagination - centers pagination
.pagination-page-number {
color:$color-text-light;
text-align: center;
@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
input {
width:35px; //exact width so that a four digit number can be entered
@ -641,4 +641,8 @@ $gf_grid_x: 16px;
border-right: 1px solid $gf_colour_border;
}
}
.grid-bottom-button {
margin-top:$gf_grid_y;
}
}

View File

@ -62,20 +62,7 @@ div.TreeDropdownField {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
background: #ccc;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
border-left: 1px solid #aaa;
&.treedropdownfield-open-tree {
background: transparent;
border: none;

View File

@ -10,20 +10,6 @@
clear: both;
}
.ss-insert-media &{
margin-top:20px;
h4{
float:left;
}
// Stop nolabel from resetting margin on tree dropdown
&.from-CMS .nolabel.treedropdown .middleColumn{
margin-left:184px;
}
}
.middleColumn {
// TODO .middleColumn styling should probably be theme specific (eg cms ui will look different than blackcandy)
// so we should move this style into the cms and black candy files
@ -104,7 +90,7 @@
display: block;
float: left;
margin: 0 10px 6px 0;
&.ss-uploadfield-fromcomputer {
position: relative;
overflow: hidden;

View File

@ -52,6 +52,7 @@ abstract class SearchFilter extends Object {
*/
public function __construct($fullName, $value = false, array $modifiers = array()) {
$this->fullName = $fullName;
// sets $this->name and $this->relation
$this->addRelation($fullName);
$this->value = $value;
@ -161,20 +162,28 @@ abstract class SearchFilter extends Object {
*/
public function getDbName() {
// Special handler for "NULL" relations
if($this->name == "NULL") return $this->name;
if($this->name == "NULL") {
return $this->name;
}
// SRM: This code finds the table where the field named $this->name lives
// Todo: move to somewhere more appropriate, such as DataMapper, the magical class-to-be?
// This code finds the table where the field named $this->name lives
// Todo: move to somewhere more appropriate, such as DataMapper, the
// magical class-to-be?
$candidateClass = $this->model;
while($candidateClass != 'DataObject') {
if(DataObject::has_own_table($candidateClass)
&& singleton($candidateClass)->hasOwnTableDatabaseField($this->name)) {
break;
}
$candidateClass = get_parent_class($candidateClass);
}
if($candidateClass == 'DataObject') {
user_error("Couldn't find field $this->name in any of $this->model's tables.", E_USER_ERROR);
// fallback to the provided name in the event of a joined column
// name (as the candidate class doesn't check joined records)
return $this->fullName;
}
return "\"$candidateClass\".\"$this->name\"";

View File

@ -25,7 +25,7 @@ class ChangePasswordForm extends Form {
} else {
$backURL = Session::get('BackURL');
}
if(!$fields) {
$fields = new FieldList();
@ -67,7 +67,8 @@ class ChangePasswordForm extends Form {
_t('Member.ERRORPASSWORDNOTMATCH', "Your current password does not match, please try again"),
"bad"
);
$this->controller->redirectBack();
// redirect back to the form, instead of using redirectBack() which could send the user elsewhere.
$this->controller->redirect($this->controller->Link('changepassword'));
return;
}
}
@ -91,7 +92,9 @@ class ChangePasswordForm extends Form {
$this->sessionMessage(
_t('Member.EMPTYNEWPASSWORD', "The new password can't be empty, please try again"),
"bad");
$this->controller->redirectBack();
// redirect back to the form, instead of using redirectBack() which could send the user elsewhere.
$this->controller->redirect($this->controller->Link('changepassword'));
return;
}
else if($data['NewPassword1'] == $data['NewPassword2']) {
@ -127,7 +130,9 @@ class ChangePasswordForm extends Form {
),
"bad"
);
$this->controller->redirectBack();
// redirect back to the form, instead of using redirectBack() which could send the user elsewhere.
$this->controller->redirect($this->controller->Link('changepassword'));
}
} else {
@ -135,7 +140,9 @@ class ChangePasswordForm extends Form {
$this->sessionMessage(
_t('Member.ERRORNEWPASSWORD', "You have entered your new password differently, try again"),
"bad");
$this->controller->redirectBack();
// redirect back to the form, instead of using redirectBack() which could send the user elsewhere.
$this->controller->redirect($this->controller->Link('changepassword'));
}
}

View File

@ -210,6 +210,11 @@ class Member extends DataObject implements TemplateGlobalProvider {
public function checkPassword($password) {
$result = $this->canLogIn();
if(empty($this->Password) && $this->exists()) {
$result->error(_t('Member.NoPassword','There is no password on this member.'));
return $result;
}
$e = PasswordEncryptor::create_for_algorithm($this->PasswordEncryption);
if(!$e->check($this->Password, $password, $this->Salt, $this)) {
$result->error(_t (

View File

@ -60,12 +60,18 @@ class PasswordValidator extends Object {
*/
public function validate($password, $member) {
$valid = new ValidationResult();
if($this->minLength) {
if(strlen($password) < $this->minLength) {
$valid->error(
sprintf("Password is too short, it must be %s or more characters long.", $this->minLength),
"TOO_SHORT"
sprintf(
_t(
'PasswordValidator.TOOSHORT',
'Password is too short, it must be %s or more characters long'
),
$this->minLength
),
'TOO_SHORT'
);
}
}
@ -74,32 +80,47 @@ class PasswordValidator extends Object {
$score = 0;
$missedTests = array();
foreach($this->testNames as $name) {
if(preg_match(self::config()->character_strength_tests[$name], $password)) $score++;
else $missedTests[] = $name;
if(preg_match(self::config()->character_strength_tests[$name], $password)) {
$score++;
} else {
$missedTests[] = _t(
'PasswordValidator.STRENGTHTEST' . strtoupper($name),
$name,
'The user needs to add this to their password for more complexity'
);
}
}
if($score < $this->minScore) {
$valid->error(
"You need to increase the strength of your passwords by adding some of the following characters: "
. implode(", ", $missedTests),
"LOW_CHARACTER_STRENGTH"
sprintf(
_t(
'PasswordValidator.LOWCHARSTRENGTH',
'Please increase password strength by adding some of the following characters: %s'
),
implode(', ', $missedTests)
),
'LOW_CHARACTER_STRENGTH'
);
}
}
if($this->historicalPasswordCount) {
$previousPasswords = DataObject::get(
"MemberPassword",
"\"MemberID\" = $member->ID",
"\"Created\" DESC, \"ID\" Desc",
"\"Created\" DESC, \"ID\" DESC",
"",
$this->historicalPasswordCount
);
if($previousPasswords) foreach($previousPasswords as $previousPasswords) {
if($previousPasswords->checkPassword($password)) {
$valid->error(
"You've already used that password in the past, please choose a new password",
"PREVIOUS_PASSWORD"
_t(
'PasswordValidator.PREVPASSWORD',
'You\'ve already used that password in the past, please choose a new password'
),
'PREVIOUS_PASSWORD'
);
break;
}

View File

View File

View File

@ -5,6 +5,7 @@ namespace SilverStripe\Framework\Test\Behaviour;
use SilverStripe\BehatExtension\Context\SilverStripeContext,
SilverStripe\BehatExtension\Context\BasicContext,
SilverStripe\BehatExtension\Context\LoginContext,
SilverStripe\BehatExtension\Context\FixtureContext,
SilverStripe\Framework\Test\Behaviour\CmsFormsContext,
SilverStripe\Framework\Test\Behaviour\CmsUiContext;
@ -20,6 +21,12 @@ require_once 'PHPUnit/Framework/Assert/Functions.php';
*/
class FeatureContext extends SilverStripeContext
{
/**
* @var FixtureFactory
*/
protected $fixtureFactory;
/**
* Initializes context.
* Every scenario gets it's own context object.
@ -28,11 +35,46 @@ class FeatureContext extends SilverStripeContext
*/
public function __construct(array $parameters)
{
parent::__construct($parameters);
$this->useContext('BasicContext', new BasicContext($parameters));
$this->useContext('LoginContext', new LoginContext($parameters));
$this->useContext('CmsFormsContext', new CmsFormsContext($parameters));
$this->useContext('CmsUiContext', new CmsUiContext($parameters));
parent::__construct($parameters);
$fixtureContext = new FixtureContext($parameters);
$fixtureContext->setFixtureFactory($this->getFixtureFactory());
$this->useContext('FixtureContext', $fixtureContext);
// Use blueprints to set user name from identifier
$factory = $fixtureContext->getFixtureFactory();
$blueprint = \Injector::inst()->create('FixtureBlueprint', 'Member');
$blueprint->addCallback('beforeCreate', function($identifier, &$data, &$fixtures) {
if(!isset($data['FirstName'])) $data['FirstName'] = $identifier;
});
$factory->define('Member', $blueprint);
}
public function setMinkParameters(array $parameters)
{
parent::setMinkParameters($parameters);
if(isset($parameters['files_path'])) {
$this->getSubcontext('FixtureContext')->setFilesPath($parameters['files_path']);
}
}
/**
* @return FixtureFactory
*/
public function getFixtureFactory() {
if(!$this->fixtureFactory) {
$this->fixtureFactory = \Injector::inst()->create('BehatFixtureFactory');
}
return $this->fixtureFactory;
}
public function setFixtureFactory(FixtureFactory $factory) {
$this->fixtureFactory = $factory;
}
}

View File

@ -6,8 +6,9 @@ use Behat\Behat\Context\ClosuredContextInterface,
Behat\Behat\Context\TranslatedContextInterface,
Behat\Behat\Context\BehatContext,
Behat\Behat\Context\Step,
Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
Behat\Behat\Exception\PendingException,
Behat\Mink\Exception\ElementHtmlException,
Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode;
// PHPUnit
@ -88,15 +89,25 @@ class CmsFormsContext extends BehatContext
}
/**
* @Then /^the "(?P<field>([^"]*))" HTML field should contain "(?P<value>([^"]*))"$/
* @Then /^the "(?P<locator>([^"]*))" HTML field should contain "(?P<html>([^"]*))"$/
*/
public function theHtmlFieldShouldContain($field, $value)
public function theHtmlFieldShouldContain($locator, $html)
{
$page = $this->getSession()->getPage();
$inputField = $page->findField($field);
assertNotNull($inputField, sprintf('HTML field "%s" not found', $field));
$element = $page->findField($locator);
assertNotNull($element, sprintf('HTML field "%s" not found', $locator));
$this->getMainContext()->assertElementContains('#' . $inputField->getAttribute('id'), $value);
$actual = $element->getAttribute('value');
$regex = '/'.preg_quote($html, '/').'/ui';
if (!preg_match($regex, $actual)) {
$message = sprintf(
'The string "%s" was not found in the HTML of the element matching %s "%s".',
$html,
'named',
$locator
);
throw new ElementHtmlException($message, $this->getSession(), $element);
}
}
/**
@ -105,7 +116,26 @@ class CmsFormsContext extends BehatContext
public function iShouldSeeAButton($text)
{
$page = $this->getSession()->getPage();
$element = $page->find('named', array('link_or_button', "'$text'"));
assertNotNull($element, sprintf('%s button not found', $text));
$els = $page->findAll('named', array('link_or_button', "'$text'"));
$matchedEl = null;
foreach($els as $el) {
if($el->isVisible()) $matchedEl = $el;
}
assertNotNull($matchedEl, sprintf('%s button not found', $text));
}
/**
* @Given /^I should not see a "([^"]*)" button$/
*/
public function iShouldNotSeeAButton($text)
{
$page = $this->getSession()->getPage();
$els = $page->findAll('named', array('link_or_button', "'$text'"));
$matchedEl = null;
foreach($els as $el) {
if($el->isVisible()) $matchedEl = $el;
}
assertNull($matchedEl, sprintf('%s button found', $text));
}
}

View File

@ -7,9 +7,10 @@ use Behat\Behat\Context\ClosuredContextInterface,
Behat\Behat\Context\BehatContext,
Behat\Behat\Context\Step,
Behat\Behat\Exception\PendingException,
Behat\Mink\Exception\ElementNotFoundException;
use Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode;
Behat\Mink\Exception\ElementNotFoundException,
Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode,
Behat\Mink\Element\NodeElement;
// PHPUnit
@ -310,7 +311,7 @@ class CmsUiContext extends BehatContext
}
/**
* Workaround for chosen.js dropdowns which hide the original dropdown field.
* Workaround for chosen.js dropdowns or tree dropdowns which hide the original dropdown field.
*
* @When /^(?:|I )fill in the "(?P<field>(?:[^"]|\\")*)" dropdown with "(?P<value>(?:[^"]|\\")*)"$/
* @When /^(?:|I )fill in "(?P<value>(?:[^"]|\\")*)" for the "(?P<field>(?:[^"]|\\")*)" dropdown$/
@ -320,6 +321,12 @@ class CmsUiContext extends BehatContext
$field = $this->fixStepArgument($field);
$value = $this->fixStepArgument($value);
$nativeField = $this->getSession()->getPage()->findField($field);
if($nativeField) {
$nativeField->selectOption($value);
return;
}
// Given the fuzzy matching, we might get more than one matching field.
$formFields = array();
@ -338,50 +345,56 @@ class CmsUiContext extends BehatContext
);
}
// Find by name (incl. hidden fields)
if(!$formFields) {
$formFields = $this->getSession()->getPage()->findAll('xpath', "//*[@name='$field']");
}
assertGreaterThan(0, count($formFields), sprintf(
'Chosen.js dropdown named "%s" not found',
$field
));
'Chosen.js dropdown named "%s" not found',
$field
));
$containers = array();
// Traverse up to field holder
$container = null;
foreach($formFields as $formField) {
// Traverse up to field holder
$containerCandidate = $formField;
do {
$containerCandidate = $containerCandidate->getParent();
} while($containerCandidate && !preg_match('/field/', $containerCandidate->getAttribute('class')));
if(
$containerCandidate
&& $containerCandidate->isVisible()
&& preg_match('/field/', $containerCandidate->getAttribute('class'))
) {
$containers[] = $containerCandidate;
}
$container = $this->findParentByClass($formField, 'field');
if($container) break; // Default to first visible container
}
assertGreaterThan(0, count($containers), 'Chosen.js field container not found');
// Default to first visible container
$container = $containers[0];
assertNotNull($container, 'Chosen.js field container not found');
// Click on newly expanded list element, indirectly setting the dropdown value
$linkEl = $container->find('xpath', './/a[./@href]');
assertNotNull($linkEl, 'Chosen.js link element not found');
$this->getSession()->wait(100); // wait for dropdown overlay to appear
$linkEl->click();
if(in_array('treedropdown', explode(' ', $container->getAttribute('class')))) {
// wait for ajax dropdown to load
$this->getSession()->wait(
5000,
"jQuery('#" . $container->getAttribute('id') . " .treedropdownfield-panel li').length > 0"
);
} else {
// wait for dropdown overlay to appear (might be animated)
$this->getSession()->wait(300);
}
$listEl = $container->find('xpath', sprintf('.//li[contains(normalize-space(string(.)), \'%s\')]', $value));
assertNotNull($listEl, sprintf(
if(null === $listEl) {
throw new \InvalidArgumentException(sprintf(
'Chosen.js list element with title "%s" not found',
$value
));
}
// Dropdown flyout might be animated
// $this->getSession()->wait(1000, 'jQuery(":animated").length == 0');
$this->getSession()->wait(300);
$listEl->click();
$listLinkEl = $listEl->find('xpath', './/a');
if($listLinkEl) {
$listLinkEl->click();
} else {
$listEl->click();
}
}
/**
@ -395,4 +408,24 @@ class CmsUiContext extends BehatContext
{
return str_replace('\\"', '"', $argument);
}
/**
* Returns the closest parent element having a specific class attribute.
*
* @param NodeElement $el
* @param String $class
* @return Element|null
*/
protected function findParentByClass(NodeElement $el, $class) {
$container = $el->getParent();
while($container && $container->getTagName() != 'body'
) {
if($container->isVisible() && in_array($class, explode(' ', $container->getAttribute('class')))) {
return $container;
}
$container = $container->getParent();
}
return null;
}
}

View File

@ -0,0 +1,26 @@
Feature: Insert an image into a page
As a cms author
I want to insert an image into a page
So that I can insert them into my content efficiently
Background:
Given a "page" "About Us"
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
Then I should see "About Us" in CMS Tree
@javascript
Scenario: I can insert images into the content
When I follow "About Us"
Then I should see an edit page form
When I press the "Insert Media" button
Then I should see "Choose files to upload..."
When I press the "From the web" button
And I fill in "RemoteURL" with "http://www.silverstripe.com/themes/sscom/images/silverstripe_logo_web.png"
And I press the "Add url" button
Then I should see "silverstripe_logo_web.png (www.silverstripe.com)" in the ".ss-assetuploadfield span.name" element
When I press the "Update" button
Then the "Content" HTML field should contain "silverstripe_logo_web.png"

View File

@ -5,37 +5,10 @@ Feature: Manage files
So that I can insert them into my content efficiently
Background:
# Idea: We could weave the database reset into this through
# saying 'Given there are ONLY the following...'.
Given there are the following Folder records
"""
folder1:
Filename: assets/folder1
folder1.1:
Filename: assets/folder1/folder1.1
Parent: =>Folder.folder1
folder2:
Filename: assets/folder2
Name: folder2
"""
And there are the following File records
"""
file1:
Filename: assets/folder1/file1.jpg
Name: file1.jpg
Parent: =>Folder.folder1
file2:
Filename: assets/folder1/folder1.1/file2.jpg
Name: file2.jpg
Parent: =>Folder.folder1.1
"""
Given a "file" "assets/folder1/file1.jpg"
And a "file" "assets/folder1/folder1.1/file2.jpg"
And a "folder" "assets/folder2"
And I am logged in with "ADMIN" permissions
# Alternative fixture shortcuts, with their titles
# as shown in admin/security rather than technical permission codes.
# Just an idea for now, could be handled by YAML fixtures as well
# And I am logged in with the following permissions
# - Access to 'Pages' section
# - Access to 'Files' section
And I go to "/admin/assets"
@modal
@ -76,7 +49,7 @@ Feature: Manage files
Scenario: I can change the folder of a file
Given I click on "folder1" in the "Files" table
And I click on "file1" in the "folder1" table
And I fill in =>Folder.folder2 for "ParentID"
And I fill in "folder2" for the "ParentID" dropdown
And I press the "Save" button
# /show/0 is to ensure that we are on top level folder
And I go to "/admin/assets/show/0"
@ -86,4 +59,4 @@ Feature: Manage files
Scenario: I can see allowed extensions help
When I go to "/admin/assets/add"
And I follow "Show allowed extensions"
Then I should see "png,"
Then I should see "png,"

View File

@ -1,48 +1,21 @@
@database-defaults
@javascript
Feature: Manage users
As a site administrator
I want to create and manage user accounts on my site
So that I can control access to the CMS
Background:
Given there are the following Permission records
"""
admin:
Code: ADMIN
security-admin:
Code: CMS_ACCESS_SecurityAdmin
"""
And there are the following Group records
"""
admingroup:
Title: Admin Group
Code: admin
Permissions: =>Permission.admin
staffgroup:
Title: Staff Group
Code: staffgroup
"""
And there are the following Member records
"""
admin:
FirstName: Admin
Email: admin@test.com
Groups: =>Group.admingroup
staffmember:
FirstName: Staff
Email: staffmember@test.com
Groups: =>Group.staffgroup
"""
Given a "member" "Admin" belonging to "Admin Group" with "Email"="admin@test.com"
And a "member" "Staff" belonging to "Staff Group" with "Email"="staffmember@test.com"
And the "group" "Admin Group" has permissions "Full administrative rights"
And I am logged in with "ADMIN" permissions
And I go to "/admin/security"
@javascript
Scenario: I can list all users regardless of group
When I click the "Users" CMS tab
Then I should see "admin@test.com" in the "#Root_Users" element
And I should see "staffmember@test.com" in the "#Root_Users" element
@javascript
Scenario: I can list all users in a specific group
When I click the "Groups" CMS tab
# TODO Please check how performant this is
@ -50,7 +23,6 @@ Feature: Manage users
Then I should see "admin@test.com" in the "#Root_Members" element
And I should not see "staffmember@test.com" in the "#Root_Members" element
@javascript
Scenario: I can add a user to the system
When I click the "Users" CMS tab
And I press the "Add Member" button
@ -64,12 +36,10 @@ Feature: Manage users
When I go to "admin/security/"
Then I should see "john.doe@test.com" in the "#Root_Users" element
@javascript
Scenario: I can edit an existing user and add him to an existing group
When I click the "Users" CMS tab
And I click "staffmember@test.com" in the "#Root_Users" element
And I select "Admin Group" from "Groups"
And I additionally select "Administrators" from "Groups"
And I press the "Save" button
Then I should see a "Saved Member" message
@ -78,7 +48,6 @@ Feature: Manage users
And I click "Admin Group" in the "#Root_Groups" element
Then I should see "staffmember@test.com"
@javascript
Scenario: I can delete an existing user
When I click the "Users" CMS tab
And I click "staffmember@test.com" in the "#Root_Users" element

View File

@ -1,4 +1,3 @@
@database-defaults
Feature: My Profile
As a CMS user
I want to be able to change personal settings

View File

@ -100,10 +100,24 @@ class ControllerTest extends FunctionalTest {
$response = $this->get("ControllerTest_AccessSecuredController/method2");
$this->assertEquals(200, $response->getStatusCode(),
'Access grante on action originally defined with empty $allowed_actions on parent controller, ' .
'Access granted on action originally defined with empty $allowed_actions on parent controller, ' .
'because it has been redefined in the subclass'
);
$response = $this->get("ControllerTest_AccessSecuredController/templateaction");
$this->assertEquals(403, $response->getStatusCode(),
'Access denied on action with $allowed_actions on defining controller, ' .
'if action is not a method but rather a template discovered by naming convention'
);
$this->session()->inst_set('loggedInAs', $adminUser->ID);
$response = $this->get("ControllerTest_AccessSecuredController/templateaction");
$this->assertEquals(200, $response->getStatusCode(),
'Access granted for logged in admin on action with $allowed_actions on defining controller, ' .
'if action is not a method but rather a template discovered by naming convention'
);
$this->session()->inst_set('loggedInAs', null);
$response = $this->get("ControllerTest_AccessSecuredController/adminonly");
$this->assertEquals(403, $response->getStatusCode(),
'Access denied on action with $allowed_actions on defining controller, ' .
@ -349,8 +363,9 @@ class ControllerTest_Controller extends Controller implements TestOnly {
'methodaction',
'stringaction',
'redirectbacktest',
'templateaction'
);
public function methodaction() {
return array(
"Content" => "methodaction content"
@ -395,7 +410,7 @@ class ControllerTest_AccessSecuredController extends ControllerTest_AccessBaseCo
"method1", // denied because only defined in parent
"method2" => true, // granted because its redefined
"adminonly" => "ADMIN",
"protectedmethod" => true, // denied because its protected
'templateaction' => 'ADMIN'
);
public function method2() {}

View File

@ -309,6 +309,8 @@ class DirectorTest extends SapphireTest {
'HTTP_X_FORWARDED_PROTOCOL', 'HTTPS', 'SSL'
);
$origServer = $_SERVER;
foreach($headers as $header) {
if(isset($_SERVER[$header])) {
unset($_SERVER['HTTP_X_FORWARDED_PROTOCOL']);
@ -339,6 +341,8 @@ class DirectorTest extends SapphireTest {
// https via SSL
$_SERVER['SSL'] = '';
$this->assertTrue(Director::is_https());
$_SERVER = $origServer;
}
}

View File

@ -1,5 +1,9 @@
<?php
/**
* @package framework
* @subpackage tests
*/
class DataListTest extends SapphireTest {
// Borrow the model from DataObjectTest
@ -207,11 +211,7 @@ class DataListTest extends SapphireTest {
$this->assertEquals($list->Count(), $count);
}
public function testFilter() {
$this->markTestIncomplete();
}
public function testWhere() {
// We can use raw SQL queries with where. This is only recommended for advanced uses;
// if you can, you should use filter().
@ -576,6 +576,18 @@ class DataListTest extends SapphireTest {
);
}
public function testFilterOnJoin() {
$list = DataObjectTest_TeamComment::get()
->leftJoin('DataObjectTest_Team',
'"DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"'
)->filter(array(
'Title' => 'Team 1'
));
$this->assertEquals(2, $list->count());
$this->assertEquals(array('Joe', 'Bob'), $list->column('Name'));
}
public function testFilterAndExcludeById() {
$id = $this->idFromFixture('DataObjectTest_SubTeam', 'subteam1');
$list = DataObjectTest_SubTeam::get()->filter('ID', $id);

View File

@ -1,6 +1,8 @@
<?php
class DataObjectDuplicationTest extends SapphireTest {
protected $usesDatabase = true;
protected $extraDataObjects = array(
'DataObjectDuplicateTestClass1',
@ -28,6 +30,29 @@ class DataObjectDuplicationTest extends SapphireTest {
);
}
public function testDuplicateHasOne() {
$relationObj = new DataObjectDuplicateTestClass1();
$relationObj->text = 'class1';
$relationObj->write();
$orig = new DataObjectDuplicateTestClass2();
$orig->text = 'class2';
$orig->oneID = $relationObj->ID;
$orig->write();
$duplicate = $orig->duplicate();
$this->assertEquals($relationObj->ID, $duplicate->oneID,
'Copies has_one relationship'
);
$this->assertEquals(2, DataObjectDuplicateTestClass2::get()->Count(),
'Only creates a single duplicate'
);
$this->assertEquals(1, DataObjectDuplicateTestClass1::get()->Count(),
'Does not create duplicate of has_one relationship'
);
}
public function testDuplicateManyManyClasses() {
//create new test classes below
$one = new DataObjectDuplicateTestClass1();

View File

@ -1103,6 +1103,10 @@ class DataObjectTest extends SapphireTest {
$newPlayer = new DataObjectTest_Player();
$this->assertNull($newPlayer->relField('Teams.First.Title'));
// Test that relField works on db field manipulations
$comment = $this->objFromFixture('DataObjectTest_TeamComment', 'comment3');
$this->assertEquals("PHIL IS A UNIQUE GUY, AND COMMENTS ON TEAM2" , $comment->relField('Comment.UpperCase'));
}
public function testRelObject() {

View File

@ -20,7 +20,6 @@ DataObjectTest_Player:
player2:
FirstName: Player 2
Teams: =>DataObjectTest_Team.team1,=>DataObjectTest_Team.team2
DataObjectTest_SubTeam:
subteam1:
Title: Subteam 1
@ -33,12 +32,11 @@ DataObjectTest_SubTeam:
ExtendedHasOneRelationship: =>DataObjectTest_Player.player1
subteam3_with_empty_fields:
Title: Subteam 3
DataObjectTest_TeamComment:
comment1:
Name: Joe
Comment: This is a team comment by Joe
Team: =>DataObjectTest_Team.team1
Name: Joe
Comment: This is a team comment by Joe
Team: =>DataObjectTest_Team.team1
comment2:
Name: Bob
Comment: This is a team comment by Bob

View File

@ -138,6 +138,39 @@ class SQLQueryTest extends SapphireTest {
$query->sql());
}
public function testNullLimit() {
$query = new SQLQuery();
$query->setFrom("MyTable");
$query->setLimit(null);
$this->assertEquals(
'SELECT * FROM MyTable',
$query->sql()
);
}
public function testZeroLimit() {
$query = new SQLQuery();
$query->setFrom("MyTable");
$query->setLimit(0);
$this->assertEquals(
'SELECT * FROM MyTable',
$query->sql()
);
}
public function testZeroLimitWithOffset() {
$query = new SQLQuery();
$query->setFrom("MyTable");
$query->setLimit(0, 99);
$this->assertEquals(
'SELECT * FROM MyTable LIMIT 0 OFFSET 99',
$query->sql()
);
}
/**
* @expectedException InvalidArgumentException
*/

View File

@ -1,14 +1,16 @@
<?php
/**
* This test class will focus on the when an search filter contains relational component,
* such as has_one, has_many, many_many, the SearchFilter::applyRelation($query) will add
* the right "join" clauses to $query without the component parent class missing from
* "join" chain.
* This test class will focus on the when an search filter contains relational
* component such as has_one, has_many, many_many, the {@link SearchFilter::applyRelation($query)}
* will add the right "join" clauses to $query without the component parent
* class missing from "join" chain.
*
* @package framework
* @subpackage testing
* @subpackage tests
*/
class SearchFilterApplyRelationTest extends SapphireTest{
class SearchFilterApplyRelationTest extends SapphireTest {
protected static $fixture_file = 'SearchFilterApplyRelationTest.yml';
protected $extraDataObjects = array(
@ -109,7 +111,12 @@ class SearchFilterApplyRelationTest extends SapphireTest{
}
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_DO extends DataObject implements TestOnly {
private static $has_one = array(
'SearchFilterApplyRelationTest_HasOneGrantChild' => 'SearchFilterApplyRelationTest_HasOneGrantChild'
);
@ -123,12 +130,20 @@ class SearchFilterApplyRelationTest_DO extends DataObject implements TestOnly {
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasOneParent extends DataObject implements TestOnly {
private static $db = array(
"Title" => "Varchar"
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasOneChild extends SearchFilterApplyRelationTest_HasOneParent
implements TestOnly {
// This is to create an seperate Table only.
@ -137,6 +152,10 @@ class SearchFilterApplyRelationTest_HasOneChild extends SearchFilterApplyRelatio
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasOneGrantChild extends SearchFilterApplyRelationTest_HasOneChild
implements TestOnly {
// This is to create an seperate Table only.
@ -148,12 +167,20 @@ class SearchFilterApplyRelationTest_HasOneGrantChild extends SearchFilterApplyRe
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasManyParent extends DataObject implements TestOnly {
private static $db = array(
"Title" => "Varchar"
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasManyChild extends SearchFilterApplyRelationTest_HasManyParent
implements TestOnly {
// This is to create an separate Table only.
@ -162,12 +189,20 @@ class SearchFilterApplyRelationTest_HasManyChild extends SearchFilterApplyRelati
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_HasManyGrantChild extends SearchFilterApplyRelationTest_HasManyChild{
private static $has_one = array(
"SearchFilterApplyRelationTest_DO" => "SearchFilterApplyRelationTest_DO"
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_ManyManyParent extends DataObject implements TestOnly{
private static $db = array(
"Title" => "Varchar"
@ -182,6 +217,10 @@ class SearchFilterApplyRelationTest_ManyManyChild extends SearchFilterApplyRelat
);
}
/**
* @package framework
* @subpackage tests
*/
class SearchFilterApplyRelationTest_ManyManyGrantChild extends SearchFilterApplyRelationTest_ManyManyChild
implements TestOnly {
// This is to create an seperate Table only.

View File

@ -408,6 +408,14 @@ class Requirements_Backend {
*/
public $combine_js_with_jsmin = true;
/**
* Setting for whether or not a file header should be written when
* combining files.
*
* @var boolean
*/
public $write_header_comment = true;
/**
* @var string By default, combined files are stored in assets/_combinedfiles.
* Set this by calling Requirements::set_combined_files_folder()
@ -1052,17 +1060,15 @@ class Requirements_Backend {
$combinedData = "";
foreach(array_diff($fileList, $this->blocked) as $file) {
$fileContent = file_get_contents($base . $file);
// if we have a javascript file and jsmin is enabled, minify the content
$isJS = stripos($file, '.js');
if($isJS && $this->combine_js_with_jsmin) {
require_once('thirdparty/jsmin/jsmin.php');
$fileContent = $this->minifyFile($file, $fileContent);
increase_time_limit_to();
$fileContent = JSMin::minify($fileContent);
if ($this->write_header_comment) {
// write a header comment for each file for easier identification and debugging
// also the semicolon between each file is required for jQuery to be combinable properly
$combinedData .= "/****** FILE: $file *****/\n";
}
// write a header comment for each file for easier identification and debugging
// also the semicolon between each file is required for jQuery to be combinable properly
$combinedData .= "/****** FILE: $file *****/\n" . $fileContent . "\n".($isJS ? ';' : '')."\n";
$combinedData .= $fileContent . "\n";
}
$successfulWrite = false;
@ -1087,6 +1093,19 @@ class Requirements_Backend {
$this->css = $newCSSRequirements;
}
protected function minifyFile($filename, $content) {
// if we have a javascript file and jsmin is enabled, minify the content
$isJS = stripos($filename, '.js');
if($isJS && $this->combine_js_with_jsmin) {
require_once('thirdparty/jsmin/jsmin.php');
increase_time_limit_to();
$content = JSMin::minify($content);
}
$content .= ($isJS ? ';' : '') . "\n";
return $content;
}
public function get_custom_scripts() {
$requirements = "";

View File

@ -717,8 +717,14 @@ class SSViewer {
public static function hasTemplate($templates) {
$manifest = SS_TemplateLoader::instance()->getManifest();
if(Config::inst()->get('SSViewer', 'theme_enabled')) {
$theme = Config::inst()->get('SSViewer', 'theme');
} else {
$theme = null;
}
foreach ((array) $templates as $template) {
if ($manifest->getTemplate($template)) return true;
if ($manifest->getCandidateTemplate($template, $theme)) return true;
}
return false;