mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge remote-tracking branch 'origin/3.1'
This commit is contained in:
commit
94b4237372
40
admin/code/CMSForm.php
Normal file
40
admin/code/CMSForm.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
@ -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'))
|
||||
|
@ -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) {
|
||||
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) {
|
||||
|
||||
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) {
|
||||
|
||||
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');
|
||||
|
@ -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');
|
||||
|
@ -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
|
||||
|
@ -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 |
@ -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;
|
||||
}
|
||||
|
@ -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')) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
@ -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 {
|
||||
|
@ -253,6 +253,7 @@
|
||||
@include box-sizing('border-box');
|
||||
width: 100%;
|
||||
height:100%;
|
||||
background-color: #FFF;
|
||||
iframe {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
|
@ -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,7 +917,15 @@ body.cms {
|
||||
}
|
||||
}
|
||||
|
||||
.cms-batch-actions .Actions .ss-ui-button {
|
||||
|
||||
.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;
|
||||
@ -906,6 +939,7 @@ body.cms {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Form_BatchActionsForm select {
|
||||
width: 200px;
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.htmleditorfield-from-web, .htmleditorfield-from-cms {
|
||||
.ss-uploadfield {
|
||||
&.from-web, &.from-CMS{
|
||||
margin-bottom:48px;
|
||||
.middleColumn {
|
||||
width:auto;
|
||||
background:none;
|
||||
@ -1459,22 +1513,26 @@ body.cms-dialog {
|
||||
margin-top:13px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.from-CMS{
|
||||
margin-top:33px;
|
||||
.htmleditorfield-from-cms {
|
||||
.ss-uploadfield {
|
||||
h4 {
|
||||
margin-top:3px;
|
||||
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 {
|
||||
display: none;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package cms
|
||||
* @package framework
|
||||
* @subpackage tests
|
||||
*/
|
||||
class LeftAndMainTest extends FunctionalTest {
|
||||
@ -9,12 +10,47 @@ 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");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -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
2
cache/Cache.php
vendored
@ -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>
|
||||
|
@ -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 {
|
||||
@ -319,6 +321,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.
|
||||
*
|
||||
|
@ -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",
|
||||
|
@ -372,6 +372,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.
|
||||
* It will interrogate {@link self::$allowed_actions} to determine this.
|
||||
@ -382,17 +398,9 @@ 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);
|
||||
|
||||
// check if specific action is set
|
||||
@ -405,8 +413,7 @@ class RequestHandler extends ViewableData {
|
||||
} 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);
|
||||
$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);
|
||||
@ -432,10 +439,6 @@ class RequestHandler extends ViewableData {
|
||||
if(!$isDefined && ($action == 'index' || empty($action))) {
|
||||
$isAllowed = true;
|
||||
}
|
||||
} else {
|
||||
// Doesn't have method, set to true so that a template can handle this action
|
||||
$isAllowed = true;
|
||||
}
|
||||
|
||||
return $isAllowed;
|
||||
}
|
||||
|
@ -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()]);
|
||||
|
@ -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';
|
||||
|
@ -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); }
|
||||
|
37
css/Form.css
37
css/Form.css
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
23
dev/BehatFixtureFactory.php
Normal file
23
dev/BehatFixtureFactory.php
Normal 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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -286,7 +286,17 @@ 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();
|
||||
|
@ -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());`
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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
|
@ -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)
|
@ -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
|
||||
|
||||
|
@ -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')
|
||||
)
|
||||
);
|
||||
)
|
||||
// JS and CSS use this identifier
|
||||
->setHTMLID('Form_EditForm')
|
||||
// Render correct responses on validation errors
|
||||
->setResponseNegotiator($this->getResponseNegotiator());
|
||||
// Required for correct CMS layout
|
||||
$form->addExtraClass('cms-edit-form');
|
||||
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
|
||||
return $form;
|
||||
->addExtraClass('cms-edit-form')
|
||||
->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ Example: Simple Definition
|
||||
}
|
||||
|
||||
|
||||
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'
|
||||
'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,
|
||||
|
@ -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');
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -208,7 +208,7 @@ like this:
|
||||
'Description' => 'Text'
|
||||
);
|
||||
|
||||
public static $belongs_many_many = array(
|
||||
private static $belongs_many_many = array(
|
||||
'GalleryPage' => 'GalleryPage'
|
||||
);
|
||||
}
|
||||
|
@ -98,9 +98,14 @@ This code provides a good template:
|
||||
|
||||
:::php
|
||||
class MyProcess extends Controller {
|
||||
public static $allowed_actions = array('index');
|
||||
|
||||
private static $allowed_actions = array(
|
||||
'index'
|
||||
);
|
||||
|
||||
function index() {
|
||||
set_time_limit(0);
|
||||
|
||||
while(memory_get_usage() < 32*1024*1024) {
|
||||
if($this->somethingToDo()) {
|
||||
$this->doSomething();
|
||||
@ -112,8 +117,6 @@ This code provides a good template:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
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
|
||||
```
|
||||
|
@ -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'
|
||||
);
|
||||
|
||||
|
@ -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\"");
|
||||
|
||||
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
|
||||
$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
|
||||
`[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
|
||||
|
@ -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,17 +328,20 @@ 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()
|
||||
@ -336,8 +353,9 @@ or set on a form field instance via anyone of these methods:
|
||||
|
||||
### 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);
|
||||
|
||||
|
@ -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 {
|
||||
@ -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
|
||||
|
@ -106,4 +106,3 @@ and comes with the same caveats.
|
||||
## Related
|
||||
|
||||
* [Modules Development](/topics/module-developement)
|
||||
* [Module Release Process](/misc/module-release-process)
|
@ -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(
|
||||
$message = _t(
|
||||
'File.INVALIDEXTENSION',
|
||||
'Extension is not allowed (valid: %s)',
|
||||
|
||||
'Argument 1: Comma-separated list of valid extensions'
|
||||
),
|
||||
wordwrap(implode(', ',$exts))
|
||||
'Extension is not allowed (valid: {extensions})',
|
||||
'Argument 1: Comma-separated list of valid extensions',
|
||||
array('extensions' => wordwrap(implode(', ',$exts)))
|
||||
);
|
||||
return new ValidationResult(false, $message);
|
||||
}
|
||||
|
@ -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
|
||||
@ -389,19 +416,6 @@ class Form extends RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fields can have action to, let's check if anyone of the responds to $funcname them
|
||||
*
|
||||
|
@ -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 & 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')
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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>',
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
});
|
||||
ed.onChange.add(function(ed, l) {
|
||||
jQuery(ed.getBody()).on('blur', function() {
|
||||
clearInterval(interval);
|
||||
});
|
||||
});
|
||||
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');
|
||||
|
@ -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}));
|
||||
|
70
lang/af.yml
70
lang/af.yml
@ -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 & 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
|
||||
|
106
lang/ar.yml
106
lang/ar.yml
@ -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 & 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: الإصدارات
|
||||
|
72
lang/ast.yml
72
lang/ast.yml
@ -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 & 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
|
||||
|
72
lang/az.yml
72
lang/az.yml
@ -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 & 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
|
||||
|
92
lang/bg.yml
92
lang/bg.yml
@ -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: Версии
|
||||
|
78
lang/bs.yml
78
lang/bs.yml
@ -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 & 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
|
||||
|
74
lang/ca.yml
74
lang/ca.yml
@ -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 & 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
|
||||
|
74
lang/cs.yml
74
lang/cs.yml
@ -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 & 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
|
||||
|
72
lang/da.yml
72
lang/da.yml
@ -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 & 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å Gennemse for at væ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
|
||||
|
72
lang/de.yml
72
lang/de.yml
@ -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 & 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
|
||||
|
74
lang/el.yml
74
lang/el.yml
@ -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 & 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
|
||||
|
63
lang/en.yml
63
lang/en.yml
@ -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
|
||||
|
@ -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 & 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
|
||||
|
70
lang/eo.yml
70
lang/eo.yml
@ -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 & 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
|
||||
|
624
lang/es.yml
624
lang/es.yml
@ -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 & dimensions'
|
||||
ADDURL: 'Añadir URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Detalles & 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 & 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
|
||||
|
@ -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: Sí
|
||||
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 & 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
|
||||
|
@ -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 & 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
|
||||
|
586
lang/et_EE.yml
586
lang/et_EE.yml
@ -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 & 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 (00–23)'
|
||||
TWODIGITMINUTE: 'Minutid kahe numbrina (00–59)'
|
||||
TWODIGITMONTH: 'Kuu kahe numbrina (nt 01=jaanuar jne)'
|
||||
TWODIGITSECOND: 'Sekundid kahe numbrina (00–59)'
|
||||
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
|
||||
|
@ -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 & 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: 'نسخه ها'
|
||||
|
70
lang/fi.yml
70
lang/fi.yml
@ -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: '» {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 & 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 (00–59)'
|
||||
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
|
||||
|
72
lang/fo.yml
72
lang/fo.yml
@ -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 & 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
|
||||
|
72
lang/fr.yml
72
lang/fr.yml
@ -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 n’avez pas les autorisations pour supprimer'
|
||||
EditPermissionsFailure: 'No permission to unlink record'
|
||||
GridFieldDetailForm:
|
||||
CancelBtn: Annuler
|
||||
Create: Créer
|
||||
@ -237,7 +244,9 @@ fr:
|
||||
DeletePermissionsFailure: 'Vous n’avez 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 & 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: 'L’arbre 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: 'L’anné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 : <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 à l’aide 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. L’appartenance actuelle aux groupes n’est 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 d’importer'
|
||||
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 : *.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 d’avoir l’autorisation des ayant-droits du site web d’origine.'
|
||||
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 n’a pas pu être supprimé'
|
||||
REMOVEINFO: 'Supprimer ce fichier ici sans l’effacer 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
|
||||
|
@ -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 & 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
|
||||
|
@ -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 & 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: גירסאות
|
||||
|
74
lang/hi.yml
74
lang/hi.yml
@ -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 & 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
|
||||
|
74
lang/hr.yml
74
lang/hr.yml
@ -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 & 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
|
||||
|
72
lang/hu.yml
72
lang/hu.yml
@ -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 & 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
|
||||
|
@ -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 & 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
|
||||
|
72
lang/id.yml
72
lang/id.yml
@ -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 & 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
|
||||
|
72
lang/is.yml
72
lang/is.yml
@ -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: Já
|
||||
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: Hæ
|
||||
PASSWORD: Lykilorð
|
||||
CheckboxField:
|
||||
- Nei
|
||||
- Já
|
||||
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 & 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
|
||||
|
66
lang/it.yml
66
lang/it.yml
@ -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
|
||||
|
198
lang/ja_JP.yml
198
lang/ja_JP.yml
@ -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 & 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: バージョン
|
||||
|
82
lang/km.yml
82
lang/km.yml
@ -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 & 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 & 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: ជំនាន់
|
||||
|
72
lang/lt.yml
72
lang/lt.yml
@ -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 & 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
|
||||
|
72
lang/lv.yml
72
lang/lv.yml
@ -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: Nē
|
||||
ANY: Jebkurš
|
||||
1: Jā
|
||||
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:
|
||||
- Nē
|
||||
- Jā
|
||||
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 & 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
|
||||
|
@ -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: Hē
|
||||
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:
|
||||
- Hē
|
||||
- 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: rā
|
||||
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: mā
|
||||
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 & 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'
|
||||
|
72
lang/ms.yml
72
lang/ms.yml
@ -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 & 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
|
||||
|
70
lang/nb.yml
70
lang/nb.yml
@ -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 & 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
|
||||
|
72
lang/ne.yml
72
lang/ne.yml
@ -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 & 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
|
||||
|
64
lang/nl.yml
64
lang/nl.yml
@ -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
|
||||
|
74
lang/pa.yml
74
lang/pa.yml
@ -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 & 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
|
||||
|
72
lang/pl.yml
72
lang/pl.yml
@ -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
|
||||
|
68
lang/pt.yml
68
lang/pt.yml
@ -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 & 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
|
||||
|
@ -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 & 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
|
||||
|
72
lang/ro.yml
72
lang/ro.yml
@ -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 & 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
|
||||
|
106
lang/ru.yml
106
lang/ru.yml
@ -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: Версии
|
||||
|
78
lang/si.yml
78
lang/si.yml
@ -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 & 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: වෙලුම
|
||||
|
72
lang/sk.yml
72
lang/sk.yml
@ -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 & 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
|
||||
|
438
lang/sl.yml
438
lang/sl.yml
@ -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 & 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
|
||||
|
74
lang/sr.yml
74
lang/sr.yml
@ -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 & 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
|
||||
|
70
lang/sv.yml
70
lang/sv.yml
@ -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 & 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
|
||||
|
88
lang/th.yml
88
lang/th.yml
@ -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: 'รายละเอียด & ขนาดสัดส่วน'
|
||||
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: เวอร์ชั่น
|
||||
|
72
lang/tr.yml
72
lang/tr.yml
@ -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 & 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
|
||||
|
80
lang/uk.yml
80
lang/uk.yml
@ -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 & 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: Версіїї
|
||||
|
72
lang/uz.yml
72
lang/uz.yml
@ -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 & 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
|
||||
|
@ -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 & 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
|
||||
|
174
lang/zh_CN.yml
174
lang/zh_CN.yml
@ -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 & 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
|
||||
|
124
lang/zh_TW.yml
124
lang/zh_TW.yml
@ -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 & 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
|
||||
|
@ -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'));
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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,
|
||||
|
@ -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) {
|
||||
|
@ -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%));
|
||||
|
@ -1,55 +1,52 @@
|
||||
/**
|
||||
* Fields
|
||||
*/
|
||||
form * {
|
||||
form {
|
||||
|
||||
* {
|
||||
font-size: 12px;
|
||||
}
|
||||
form fieldset {
|
||||
|
||||
fieldset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
form .field {
|
||||
.field {
|
||||
clear: both;
|
||||
padding: 0.2em;
|
||||
margin: 0 0 0 10em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
form p.checkbox {
|
||||
p.checkbox {
|
||||
margin: 0 0 0 8.5em;
|
||||
}
|
||||
|
||||
form .field.nolabel {
|
||||
.field.nolabel {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
form label.left {
|
||||
label.left {
|
||||
float: left;
|
||||
width: 10em;
|
||||
margin-left: -10em;
|
||||
}
|
||||
|
||||
form input.maxlength {
|
||||
input.maxlength {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
form .actions{
|
||||
.actions{
|
||||
float : right;
|
||||
}
|
||||
|
||||
form .validation,
|
||||
form .error,
|
||||
form .required
|
||||
{
|
||||
.validation, .error, .required {
|
||||
border: 1px solid #f00;
|
||||
background: #fcc;
|
||||
padding: 0.5em;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
form .field span.readonly {
|
||||
.field span.readonly {
|
||||
border: 1px #CCC dotted;
|
||||
background-color: #F7F7F7;
|
||||
display: block;
|
||||
@ -58,18 +55,18 @@ form .field span.readonly {
|
||||
margin:5px 0;
|
||||
}
|
||||
|
||||
form .indicator.inline {
|
||||
.indicator.inline {
|
||||
display: inline;
|
||||
margin-left: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
form .indicator.block {
|
||||
.indicator.block {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* Emulating link styling for actions requiring lesser attention, e.g. "cancel" FormActions */
|
||||
form button.minorAction {
|
||||
// Emulating link styling for actions requiring lesser attention, e.g. "cancel" FormActions
|
||||
button.minorAction {
|
||||
background: none;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
@ -77,74 +74,47 @@ form button.minorAction {
|
||||
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 {
|
||||
.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;
|
||||
}
|
||||
form .message.warning {
|
||||
|
||||
&.warning {
|
||||
background-color: #FFD2A6;
|
||||
border-color: #FF9300;
|
||||
}
|
||||
form .message.bad {
|
||||
|
||||
&.bad {
|
||||
background-color: #FF8080;
|
||||
border-color: #FF0000;
|
||||
}
|
||||
form .message.required,
|
||||
form .message.validation {
|
||||
|
||||
&.required, &.validation {
|
||||
display:block;
|
||||
margin-top:5px;
|
||||
color:#FF9300;
|
||||
width:240px;
|
||||
border-color: #FF9300;
|
||||
}
|
||||
form .message.validation {
|
||||
|
||||
&.validation {
|
||||
color:#FF4040;
|
||||
width:240px;
|
||||
border-color: #FF4040;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.typography .ss-tabset ul {
|
||||
margin: 0;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -62,19 +62,6 @@ 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;
|
||||
|
@ -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
|
||||
|
@ -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\"";
|
||||
|
@ -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'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 (
|
||||
|
@ -64,8 +64,14 @@ class PasswordValidator extends Object {
|
||||
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,15 +80,27 @@ 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'
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -91,15 +109,18 @@ class PasswordValidator extends Object {
|
||||
$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;
|
||||
}
|
||||
|
0
tests/assets/LeftAndMainTest.css
Normal file
0
tests/assets/LeftAndMainTest.css
Normal file
0
tests/assets/LeftAndMainTest.js
Normal file
0
tests/assets/LeftAndMainTest.js
Normal 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;
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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,32 +345,24 @@ 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
|
||||
));
|
||||
|
||||
$containers = array();
|
||||
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 = null;
|
||||
foreach($formFields as $formField) {
|
||||
$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]');
|
||||
@ -371,18 +370,32 @@ class CmsUiContext extends BehatContext
|
||||
$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);
|
||||
|
||||
$listLinkEl = $listEl->find('xpath', './/a');
|
||||
if($listLinkEl) {
|
||||
$listLinkEl->click();
|
||||
} else {
|
||||
$listEl->click();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns fixed step argument (with \\" replaced back to ").
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
26
tests/behat/features/insert-an-image.feature
Normal file
26
tests/behat/features/insert-an-image.feature
Normal 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"
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,3 @@
|
||||
@database-defaults
|
||||
Feature: My Profile
|
||||
As a CMS user
|
||||
I want to be able to change personal settings
|
||||
|
@ -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,6 +363,7 @@ class ControllerTest_Controller extends Controller implements TestOnly {
|
||||
'methodaction',
|
||||
'stringaction',
|
||||
'redirectbacktest',
|
||||
'templateaction'
|
||||
);
|
||||
|
||||
public function methodaction() {
|
||||
@ -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() {}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package framework
|
||||
* @subpackage tests
|
||||
*/
|
||||
class DataListTest extends SapphireTest {
|
||||
|
||||
// Borrow the model from DataObjectTest
|
||||
@ -208,10 +212,6 @@ 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);
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
class DataObjectDuplicationTest extends SapphireTest {
|
||||
|
||||
protected $usesDatabase = true;
|
||||
|
||||
protected $extraDataObjects = array(
|
||||
'DataObjectDuplicateTestClass1',
|
||||
'DataObjectDuplicateTestClass2',
|
||||
@ -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();
|
||||
|
@ -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() {
|
||||
|
@ -20,7 +20,6 @@ DataObjectTest_Player:
|
||||
player2:
|
||||
FirstName: Player 2
|
||||
Teams: =>DataObjectTest_Team.team1,=>DataObjectTest_Team.team2
|
||||
|
||||
DataObjectTest_SubTeam:
|
||||
subteam1:
|
||||
Title: Subteam 1
|
||||
@ -33,7 +32,6 @@ DataObjectTest_SubTeam:
|
||||
ExtendedHasOneRelationship: =>DataObjectTest_Player.player1
|
||||
subteam3_with_empty_fields:
|
||||
Title: Subteam 3
|
||||
|
||||
DataObjectTest_TeamComment:
|
||||
comment1:
|
||||
Name: Joe
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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 {
|
||||
|
||||
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.
|
||||
|
@ -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" . $fileContent . "\n".($isJS ? ';' : '')."\n";
|
||||
$combinedData .= "/****** FILE: $file *****/\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 = "";
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user