mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge remote-tracking branch 'origin/3.0'
This commit is contained in:
commit
3ae8b0b665
@ -358,6 +358,17 @@ class LeftAndMain extends Controller implements PermissionProvider {
|
||||
if($this->request->getHeader('X-Pjax') && !$this->response->getHeader('X-Pjax')) {
|
||||
$this->response->addHeader('X-Pjax', $this->request->getHeader('X-Pjax'));
|
||||
}
|
||||
$oldResponse = $this->response;
|
||||
$newResponse = new LeftAndMain_HTTPResponse(
|
||||
$oldResponse->getBody(),
|
||||
$oldResponse->getStatusCode(),
|
||||
$oldResponse->getStatusDescription()
|
||||
);
|
||||
foreach($oldResponse->getHeaders() as $k => $v) {
|
||||
$newResponse->addHeader($k, $v);
|
||||
}
|
||||
$newResponse->setIsFinished(true);
|
||||
$this->response = $newResponse;
|
||||
return ''; // Actual response will be re-requested by client
|
||||
} else {
|
||||
parent::redirect($url, $code);
|
||||
@ -579,7 +590,8 @@ class LeftAndMain extends Controller implements PermissionProvider {
|
||||
* @return ArrayList
|
||||
*/
|
||||
public function Breadcrumbs($unlinked = false) {
|
||||
$title = self::menu_title_for_class($this->class);
|
||||
$defaultTitle = LeftAndMain::menu_title_for_class($this->class);
|
||||
$title = _t("{$this->class}.MENUTITLE", $defaultTitle);
|
||||
$items = new ArrayList(array(
|
||||
new ArrayData(array(
|
||||
'Title' => $title,
|
||||
@ -1471,3 +1483,19 @@ class LeftAndMainMarkingFilter {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow overriding finished state for faux redirects.
|
||||
*/
|
||||
class LeftAndMain_HTTPResponse extends SS_HTTPResponse {
|
||||
|
||||
protected $isFinished = false;
|
||||
|
||||
function isFinished() {
|
||||
return (parent::isFinished() || $this->isFinished);
|
||||
}
|
||||
|
||||
function setIsFinished($bool) {
|
||||
$this->isFinished = $bool;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
abstract class LeftAndMainDecorator extends LeftAndMainExtension {
|
||||
|
||||
public function __construct() {
|
||||
Deprecation::notice('3.0', 'Use LeftAndMainExtension instead.');
|
||||
Deprecation::notice('3.0', 'Use LeftAndMainExtension instead.', Deprecation::SCOPE_CLASS);
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
|
@ -40,8 +40,8 @@
|
||||
|
||||
.filter-buttons button.ss-gridfield-button-filter { background-position: -18px 4px !important; }
|
||||
|
||||
.cms-panel .cms-panel-content-collapsed { width: 40px; }
|
||||
.cms-panel .cms-panel-content-collapsed h2, .cms-panel .cms-panel-content-collapsed h3 { display: none; }
|
||||
.cms-panel .cms-panel-content-collapsed { position: relative; width: 40px; }
|
||||
.cms-panel .cms-panel-content-collapsed h2.cms-panel-header, .cms-panel .cms-panel-content-collapsed h3.cms-panel-header { zoom: 1; position: absolute; top: 10px; right: 10px; writing-mode: tb-rl; float: right; z-index: 5000; }
|
||||
|
||||
.cms-content-toolbar .cms-tree-view-modes .checkboxAboveTree { margin-right: 1px; }
|
||||
|
||||
@ -52,3 +52,6 @@
|
||||
.filter-buttons button.ss-gridfield-button-close { margin-right: -7px !important; }
|
||||
|
||||
.col-buttons { width: 18px; }
|
||||
|
||||
/* fix for actions buttons on edit page content overlapping */
|
||||
.cms-content-actions .ss-ui-buttonset button { margin-right: 0; }
|
||||
|
@ -364,17 +364,18 @@ body.cms { overflow: hidden; }
|
||||
.cms-add-form .step-label .title { padding-top: 5px; font-weight: bold; text-shadow: 1px 1px 0 white; }
|
||||
.cms-add-form ul.SelectionGroup { padding-left: 28px; }
|
||||
.cms-add-form .parent-mode { padding: 8px; overflow: auto; }
|
||||
.cms-add-form #PageType li { float: none; width: 100%; padding: 9px 0 9px 15px; overflow: hidden; border-bottom-width: 2px; border-bottom: 2px groove rgba(255, 255, 255, 0.8); -webkit-border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; }
|
||||
.cms-add-form #PageType li:last-child { border-bottom: none; }
|
||||
.cms-add-form #PageType li:hover, .cms-add-form #PageType li.selected { background-color: rgba(255, 255, 102, 0.3); }
|
||||
.cms-add-form #PageType li.disabled { color: #aaaaaa; }
|
||||
.cms-add-form #PageType li.disabled:hover { background: none; }
|
||||
.cms-add-form #PageType li input { margin: inherit; }
|
||||
.cms-add-form #PageType li label { padding-left: 0; padding-bottom: 0; }
|
||||
.cms-add-form #PageType li input, .cms-add-form #PageType li label, .cms-add-form #PageType li .page-icon, .cms-add-form #PageType li .title { float: left; line-height: 1.3em; }
|
||||
.cms-add-form #PageType li .page-icon { margin: 0 4px; }
|
||||
.cms-add-form #PageType li .title { width: 120px; font-weight: bold; padding-right: 10px; }
|
||||
.cms-add-form #PageType li .description { font-style: italic; }
|
||||
.cms-add-form #PageType ul { padding-left: 20px; }
|
||||
.cms-add-form #PageType ul li { float: none; width: 100%; padding: 9px 0 9px 15px; overflow: hidden; border-bottom-width: 2px; border-bottom: 2px groove rgba(255, 255, 255, 0.8); -webkit-border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch; }
|
||||
.cms-add-form #PageType ul li:last-child { border-bottom: none; }
|
||||
.cms-add-form #PageType ul li:hover, .cms-add-form #PageType ul li.selected { background-color: rgba(255, 255, 102, 0.3); }
|
||||
.cms-add-form #PageType ul li.disabled { color: #aaaaaa; }
|
||||
.cms-add-form #PageType ul li.disabled:hover { background: none; }
|
||||
.cms-add-form #PageType ul li input { margin: inherit; }
|
||||
.cms-add-form #PageType ul li label { padding-left: 0; padding-bottom: 0; }
|
||||
.cms-add-form #PageType ul li input, .cms-add-form #PageType ul li label, .cms-add-form #PageType ul li .page-icon, .cms-add-form #PageType ul li .title { float: left; line-height: 1.3em; }
|
||||
.cms-add-form #PageType ul li .page-icon { margin: 0 4px; }
|
||||
.cms-add-form #PageType ul li .title { width: 120px; font-weight: bold; padding-right: 10px; }
|
||||
.cms-add-form #PageType ul li .description { font-style: italic; }
|
||||
|
||||
/** -------------------------------------------- Content toolbar -------------------------------------------- */
|
||||
.cms-content-toolbar { display: block; margin: 0 0 15px 0; 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); -o-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); *zoom: 1; /* smaller treedropdown */ }
|
||||
|
@ -67,7 +67,7 @@
|
||||
if(this.is('.is-collapsed')) return;
|
||||
|
||||
// var url = ui.xmlhttp.getResponseHeader('x-frontend-url');
|
||||
var url = $('.cms-edit-form').find(':input[name=StageURLSegment]').val();
|
||||
var url = $('.cms-edit-form').find(':input[name=PreviewURL],:input[name=StageURLSegment]').val();
|
||||
if(url) {
|
||||
this.loadUrl(url);
|
||||
this.unblock();
|
||||
@ -286,7 +286,7 @@
|
||||
onclick: function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var preview = $('.cms-preview'), url = $('.cms-edit-form').find(':input[name=StageURLSegment]').val();
|
||||
var preview = $('.cms-preview'), url = $('.cms-edit-form').find(':input[name=PreviewURL],:input[name=StageURLSegment]').val();
|
||||
if(url) {
|
||||
preview.loadUrl(url);
|
||||
preview.unblock();
|
||||
@ -295,4 +295,4 @@
|
||||
}
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
||||
}(jQuery));
|
@ -162,6 +162,9 @@ jQuery.noConflict();
|
||||
|
||||
if(abort) return;
|
||||
}
|
||||
|
||||
// Save tab selections so we can restore them later
|
||||
this.saveTabState();
|
||||
|
||||
if(window.History.enabled) {
|
||||
// Active menu item is set based on X-Controller ajax header,
|
||||
@ -209,12 +212,6 @@ jQuery.noConflict();
|
||||
return false;
|
||||
}
|
||||
|
||||
// save tab selections in order to reconstruct them later
|
||||
var selectedTabs = [];
|
||||
form.find('.cms-tabset').each(function(i, el) {
|
||||
if($(el).attr('id')) selectedTabs.push({id:$(el).attr('id'), selected:$(el).tabs('option', 'selected')});
|
||||
});
|
||||
|
||||
// get all data from the form
|
||||
var formData = form.serializeArray();
|
||||
// add button action
|
||||
@ -224,6 +221,9 @@ jQuery.noConflict();
|
||||
// as automatic browser ajax response redirects seem to discard the hash/fragment.
|
||||
formData.push({name: 'BackURL', value:History.getPageUrl()});
|
||||
|
||||
// Save tab selections so we can restore them later
|
||||
this.saveTabState();
|
||||
|
||||
// Standard Pjax behaviour is to replace the submitted form with new content.
|
||||
// The returned view isn't always decided upon when the request
|
||||
// is fired, so the server might decide to change it based on its own logic,
|
||||
@ -243,24 +243,13 @@ jQuery.noConflict();
|
||||
var newContentEls = self.handleAjaxResponse(data, status, xhr);
|
||||
if(!newContentEls) return;
|
||||
|
||||
var newForm = newContentEls.filter('form');
|
||||
|
||||
// Re-init tabs (in case the form tag itself is a tabset)
|
||||
if(newForm.hasClass('cms-tabset')) newForm.removeClass('cms-tabset').addClass('cms-tabset');
|
||||
|
||||
// re-select previously saved tabs
|
||||
$.each(selectedTabs, function(i, selectedTab) {
|
||||
newForm.find('#' + selectedTab.id).tabs('select', selectedTab.selected);
|
||||
});
|
||||
|
||||
newForm.trigger('aftersubmitform', {status: status, xhr: xhr, formData: formData});
|
||||
},
|
||||
dataType: 'json'
|
||||
newContentEls.filter('form').trigger('aftersubmitform', {status: status, xhr: xhr, formData: formData});
|
||||
}
|
||||
}, ajaxOptions));
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Handles ajax loading of new panels through the window.History object.
|
||||
* To trigger loading, pass a new URL to window.History.pushState().
|
||||
@ -289,7 +278,8 @@ jQuery.noConflict();
|
||||
|
||||
var self = this, h = window.History, state = h.getState(),
|
||||
fragments = state.data.pjax || 'Content', headers = {},
|
||||
contentEls = this._findFragments(fragments.split(','));
|
||||
fragmentsArr = fragments.split(','),
|
||||
contentEls = this._findFragments(fragmentsArr);
|
||||
|
||||
// For legacy IE versions (IE7 and IE8), reload without ajax
|
||||
// as a crude way to fix memory leaks through whole window refreshes.
|
||||
@ -299,6 +289,14 @@ jQuery.noConflict();
|
||||
document.location.href = state.url;
|
||||
return;
|
||||
}
|
||||
|
||||
// If any of the requested Pjax fragments don't exist in the current view,
|
||||
// fetch the "Content" view instead, which is the "outermost" fragment
|
||||
// that can be reloaded without reloading the whole window.
|
||||
if(contentEls.length < fragmentsArr.length) {
|
||||
fragments = 'Content', fragmentsArr = ['Content'];
|
||||
contentEls = this._findFragments(fragmentsArr);
|
||||
}
|
||||
|
||||
this.trigger('beforestatechange', {state: state, element: contentEls});
|
||||
|
||||
@ -330,7 +328,7 @@ jQuery.noConflict();
|
||||
* Can be hooked into an ajax 'success' callback.
|
||||
*/
|
||||
handleAjaxResponse: function(data, status, xhr) {
|
||||
var self = this;
|
||||
var self = this, url, selectedTabs;
|
||||
|
||||
// Pseudo-redirects via X-ControllerURL might return empty data, in which
|
||||
// case we'll ignore the response
|
||||
@ -394,8 +392,14 @@ jQuery.noConflict();
|
||||
if(origVisible) newContentEl.css('visibility', 'visible');
|
||||
});
|
||||
|
||||
// Re-init tabs (in case the form tag itself is a tabset)
|
||||
var newForm = newContentEls.filter('form');
|
||||
if(newForm.hasClass('cms-tabset')) newForm.removeClass('cms-tabset').addClass('cms-tabset');
|
||||
|
||||
this.redraw();
|
||||
|
||||
this.restoreTabState();
|
||||
|
||||
return newContentEls;
|
||||
},
|
||||
|
||||
@ -428,6 +432,50 @@ jQuery.noConflict();
|
||||
$(window).trigger('statechange');
|
||||
|
||||
$(this).redraw();
|
||||
},
|
||||
|
||||
/**
|
||||
* Save tab selections in order to reconstruct them later.
|
||||
* Requires HTML5 sessionStorage support.
|
||||
*/
|
||||
saveTabState: function() {
|
||||
if(typeof(window.sessionStorage)=="undefined") return;
|
||||
|
||||
var selectedTabs = [], url = this._tabStateUrl();
|
||||
this.find('.cms-tabset,.ss-tabset').each(function(i, el) {
|
||||
var id = $(el).attr('id');
|
||||
if(!id) return; // we need a unique reference
|
||||
if(!$(el).data('tabs')) return; // don't act on uninit'ed controls
|
||||
if($(el).data('ignoreTabState')) return; // allow opt-out
|
||||
selectedTabs.push({id:id, selected:$(el).tabs('option', 'selected')});
|
||||
});
|
||||
if(selectedTabs) window.sessionStorage.setItem('tabs-' + url, JSON.stringify(selectedTabs));
|
||||
},
|
||||
|
||||
/**
|
||||
* Re-select previously saved tabs.
|
||||
* Requires HTML5 sessionStorage support.
|
||||
*/
|
||||
restoreTabState: function() {
|
||||
if(typeof(window.sessionStorage)=="undefined") return;
|
||||
|
||||
var self = this, url = this._tabStateUrl(),
|
||||
data = window.sessionStorage.getItem('tabs-' + url),
|
||||
selectedTabs = data ? JSON.parse(data) : false;
|
||||
if(selectedTabs) {
|
||||
$.each(selectedTabs, function(i, selectedTab) {
|
||||
var el = self.find('#' + selectedTab.id);
|
||||
if(!el.data('tabs')) return; // don't act on uninit'ed controls
|
||||
el.tabs('select', selectedTab.selected);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
_tabStateUrl: function() {
|
||||
return History.getState().url
|
||||
.replace(/\?.*/, '')
|
||||
.replace(/#.*/, '')
|
||||
.replace($('base').attr('href'), '');
|
||||
}
|
||||
});
|
||||
|
||||
@ -671,7 +719,8 @@ jQuery.noConflict();
|
||||
showDetailView: function(url) {
|
||||
// Include any GET parameters from the current URL, as the view state might depend on it.
|
||||
// For example, a list prefiltered through external search criteria might be passed to GridField.
|
||||
url = $.path.addSearchParams(url, window.location.search.replace(/^\?/, ''));
|
||||
var params = window.location.search.replace(/^\?/, '');
|
||||
if(params) url = $.path.addSearchParams(url, params);
|
||||
$('.cms-container').loadPanel(url);
|
||||
}
|
||||
});
|
||||
|
@ -528,59 +528,63 @@ body.cms {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#PageType li {
|
||||
float: none;
|
||||
width: 100%;
|
||||
padding: 9px 0 9px 15px;
|
||||
overflow: hidden;
|
||||
border-bottom-width: 2px;
|
||||
border-bottom: 2px groove lighten($color-shadow-light, 95%);
|
||||
-webkit-border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch;
|
||||
border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch;
|
||||
#PageType {
|
||||
ul {
|
||||
padding-left: 20px;
|
||||
li {
|
||||
float: none;
|
||||
width: 100%;
|
||||
padding: 9px 0 9px 15px;
|
||||
overflow: hidden;
|
||||
border-bottom-width: 2px;
|
||||
border-bottom: 2px groove lighten($color-shadow-light, 95%);
|
||||
-webkit-border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch;
|
||||
border-image: url(../images/textures/bg_fieldset_elements_border.png) 2 stretch stretch;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&:hover, &.selected {
|
||||
background-color: $color-highlight-opacity;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
color: $color-text-disabled;
|
||||
&:hover {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
margin: inherit;
|
||||
}
|
||||
|
||||
label {
|
||||
padding-left: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
&:hover, &.selected {
|
||||
background-color: $color-highlight-opacity;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
color: $color-text-disabled;
|
||||
&:hover {
|
||||
background: none;
|
||||
input, label, .page-icon, .title {
|
||||
float: left;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.page-icon {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 120px;
|
||||
font-weight: bold;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
margin: inherit;
|
||||
}
|
||||
|
||||
label {
|
||||
padding-left: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
input, label, .page-icon, .title {
|
||||
float: left;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.page-icon {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 120px;
|
||||
font-weight: bold;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,4 +39,13 @@
|
||||
|
||||
.col-buttons{
|
||||
width:18px;
|
||||
}
|
||||
|
||||
/* fix for actions buttons on edit page content overlapping */
|
||||
.cms-content-actions {
|
||||
.ss-ui-buttonset {
|
||||
button {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
@ -325,6 +325,7 @@ Copyright (c) 2011 by Harvest
|
||||
this.container_id = this.form_field.id.length ? this.form_field.id.replace(/(:|\.)/g, '_') : this.generate_field_id();
|
||||
this.container_id += "_chzn";
|
||||
this.f_width = this.form_field_jq.outerWidth();
|
||||
if (this.f_width==0) this.f_width = this.form_field_jq.css("width");
|
||||
this.default_text = this.form_field_jq.data('placeholder') ? this.form_field_jq.data('placeholder') : this.default_text_default;
|
||||
container_div = $("<div />", {
|
||||
id: this.container_id,
|
||||
|
@ -42,7 +42,7 @@ class Director implements TemplateGlobalProvider {
|
||||
*/
|
||||
static function addRules($priority, $rules) {
|
||||
if ($priority != 100) {
|
||||
Deprecation::notice('3.0', 'Priority argument is now ignored - use the default of 100. You should really be setting routes via _config yaml fragments though.');
|
||||
Deprecation::notice('3.0', 'Priority argument is now ignored - use the default of 100. You should really be setting routes via _config yaml fragments though.', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
|
||||
Config::inst()->update('Director', 'rules', $rules);
|
||||
|
@ -332,7 +332,7 @@ abstract class Object {
|
||||
* @return mixed
|
||||
*/
|
||||
public static function get_static($class, $name, $uncached = false) {
|
||||
Deprecation::notice('3.1.0', 'get_static is deprecated, replaced by Config#get');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#get');
|
||||
return Config::inst()->get($class, $name, Config::FIRST_SET);
|
||||
}
|
||||
|
||||
@ -344,7 +344,7 @@ abstract class Object {
|
||||
* @param mixed $value
|
||||
*/
|
||||
public static function set_static($class, $name, $value) {
|
||||
Deprecation::notice('3.1.0', 'set_static is deprecated, replaced by Config#update');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#update');
|
||||
Config::inst()->update($class, $name, $value);
|
||||
}
|
||||
|
||||
@ -356,7 +356,7 @@ abstract class Object {
|
||||
* @return mixed
|
||||
*/
|
||||
public static function uninherited_static($class, $name, $uncached = false) {
|
||||
Deprecation::notice('3.1.0', 'uninherited_static is deprecated, replaced by Config#get');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#get');
|
||||
return Config::inst()->get($class, $name, Config::UNINHERITED);
|
||||
}
|
||||
|
||||
@ -373,7 +373,7 @@ abstract class Object {
|
||||
public static function combined_static($class, $name, $ceiling = false) {
|
||||
if ($ceiling) throw new Exception('Ceiling argument to combined_static is no longer supported');
|
||||
|
||||
Deprecation::notice('3.1.0', 'combined_static is deprecated, replaced by Config#get');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#get');
|
||||
return Config::inst()->get($class, $name);
|
||||
}
|
||||
|
||||
@ -385,7 +385,7 @@ abstract class Object {
|
||||
* @param bool $replace replace existing static vars
|
||||
*/
|
||||
public static function addStaticVars($class, $properties, $replace = false) {
|
||||
Deprecation::notice('3.1.0', 'addStaticVars is deprecated, replaced by Config#update');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#update');
|
||||
foreach($properties as $prop => $value) self::add_static_var($class, $prop, $value, $replace);
|
||||
}
|
||||
|
||||
@ -406,7 +406,7 @@ abstract class Object {
|
||||
* @param bool $replace completely replace existing static values
|
||||
*/
|
||||
public static function add_static_var($class, $name, $value, $replace = false) {
|
||||
Deprecation::notice('3.1.0', 'add_static_var is deprecated, replaced by Config#remove and Config#update');
|
||||
Deprecation::notice('3.1.0', 'Replaced by Config#remove and Config#update');
|
||||
|
||||
if ($replace) Config::inst()->remove($class, $name);
|
||||
Config::inst()->update($class, $name, $value);
|
||||
|
@ -172,8 +172,9 @@ class PaginatedList extends SS_ListDecorator {
|
||||
*/
|
||||
public function getIterator() {
|
||||
if($this->limitItems) {
|
||||
$tmptList = clone $this->list;
|
||||
return new IteratorIterator(
|
||||
$this->list->limit($this->pageLength, $this->getPageStart())
|
||||
$tmptList->limit($this->pageLength, $this->getPageStart())
|
||||
);
|
||||
} else {
|
||||
return new IteratorIterator($this->list);
|
||||
|
@ -45,7 +45,7 @@
|
||||
.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.deletedonlive { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; }
|
||||
.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.removedfromdraft { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; }
|
||||
.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.workflow-approval { color: #56660C; border: 1px solid #7C8816; background-color: #DAE79A; }
|
||||
.cms table.ss-gridfield-table tbody td button { border: none; background: none; margin: 0 0 0 2px; padding: 6px 0; width: auto; text-shadow: none; }
|
||||
.cms table.ss-gridfield-table tbody td button { border: none; background: none; margin: 0 0 0 2px; padding: 1px 0; width: auto; text-shadow: none; }
|
||||
.cms table.ss-gridfield-table tbody td button.ui-state-hover { background: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
|
||||
.cms table.ss-gridfield-table tbody td button.ui-state-active { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
|
||||
.cms table.ss-gridfield-table tbody td button.gridfield-button-delete { width: 20px; margin: 0; }
|
||||
|
@ -32,6 +32,10 @@
|
||||
*/
|
||||
class Deprecation {
|
||||
|
||||
const SCOPE_METHOD = 1;
|
||||
const SCOPE_CLASS = 2;
|
||||
const SCOPE_GLOBAL = 4;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
@ -119,9 +123,10 @@ class Deprecation {
|
||||
* @static
|
||||
* @param $string - The notice to raise
|
||||
* @param $atVersion - The version at which this notice should start being raised
|
||||
* @param Boolean $scope - Notice relates to the method or class context its called in.
|
||||
* @return void
|
||||
*/
|
||||
public static function notice($atVersion, $string = '') {
|
||||
public static function notice($atVersion, $string = '', $scope = Deprecation::SCOPE_METHOD) {
|
||||
// Never raise deprecation notices in a live environment
|
||||
if(Director::isLive()) return;
|
||||
|
||||
@ -139,9 +144,16 @@ class Deprecation {
|
||||
|
||||
// Check the version against the notice version
|
||||
if ($checkVersion && version_compare($checkVersion, $atVersion, '>=')) {
|
||||
// Get the calling method
|
||||
if (!$backtrace) $backtrace = debug_backtrace(0);
|
||||
$caller = self::get_called_method_from_trace($backtrace);
|
||||
// Get the calling scope
|
||||
if($scope == Deprecation::SCOPE_METHOD) {
|
||||
if (!$backtrace) $backtrace = debug_backtrace(0);
|
||||
$caller = self::get_called_method_from_trace($backtrace);
|
||||
} elseif($scope == Deprecation::SCOPE_CLASS) {
|
||||
if (!$backtrace) $backtrace = debug_backtrace(0);
|
||||
$caller = isset($backtrace[1]['class']) ? $backtrace[1]['class'] : '(unknown)';
|
||||
} else {
|
||||
$caller = false;
|
||||
}
|
||||
|
||||
// Get the level to raise the notice as
|
||||
$level = self::$notice_level;
|
||||
@ -152,7 +164,12 @@ class Deprecation {
|
||||
|
||||
$string .= " Called from " . self::get_called_method_from_trace($backtrace, 2) . '.';
|
||||
|
||||
user_error($caller.' is deprecated.'.($string ? ' '.$string : ''), $level);
|
||||
if($caller) {
|
||||
user_error($caller.' is deprecated.'.($string ? ' '.$string : ''), $level);
|
||||
} else {
|
||||
user_error($string, $level);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,14 @@ class TestRunner extends Controller {
|
||||
if(!PhpUnitWrapper::has_php_unit()) {
|
||||
die("Please install PHPUnit using pear");
|
||||
}
|
||||
|
||||
if(!isset($_GET['flush']) || !$_GET['flush']) {
|
||||
Debug::message(
|
||||
"WARNING: Manifest not flushed. " .
|
||||
"Add flush=1 as an argument to discover new classes or files.\n",
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function Link() {
|
||||
|
@ -85,9 +85,9 @@ Create a new file called `zzz_admin/code/BookmarkedPageExtension.php` and insert
|
||||
:::php
|
||||
<?php
|
||||
class BookmarkedPageExtension extends DataExtension {
|
||||
static $db = array('IsBookmarked' => 'Boolean');
|
||||
public static $db = array('IsBookmarked' => 'Boolean');
|
||||
|
||||
public function updateCMSFields(&$fields) {
|
||||
public function updateCMSFields(FieldList $fields) {
|
||||
$fields->addFieldToTab('Root.Main',
|
||||
new CheckboxField('IsBookmarked', "Show in CMS bookmarks?")
|
||||
);
|
||||
|
@ -88,6 +88,23 @@ and merge it back manually to your 'master' as required.
|
||||
cp build.properties # Add your own getlocalization config to 'build.properties'
|
||||
phing -Dmodule=<yourmodule> -propertyfile build.properties translations-sync
|
||||
|
||||
### Merge back existing translations
|
||||
|
||||
Since the latest translations are downloaded into a "translations-staging"
|
||||
branch, you need to get them back into your main project repository.
|
||||
This depends on your release strategy: For simpler modules,
|
||||
just merge back to master:
|
||||
|
||||
git checkout master
|
||||
git merge translations-staging
|
||||
|
||||
In case you are maintaining release branches, its a bit more complicated:
|
||||
The "translations-staging" branch is (correctly) based off master,
|
||||
but you don't want to merge all other master changes into your release branch.
|
||||
Use the following task to copy & commit the specific files instead:
|
||||
|
||||
phing -Dmodule=<yourmodule> translations-mergeback
|
||||
|
||||
### Converting your language files from 2.4 PHP format
|
||||
|
||||
The conversion from PHP format to YML is taken care of by a module
|
||||
@ -107,9 +124,9 @@ Special characters (such as german umlauts) need to be entered in their native f
|
||||
|
||||
Currently translated entities are not directly factored into code (for security reasons and release/review-control), so you can't see them straight away.
|
||||
|
||||
|
||||
It is strongly encouraged that you check your translation this way, as its a good way to doublecheck your translation works in the right context.
|
||||
Please use our [daily-builds](http://www.silverstripe.org/daily-builds/) for your local installation, to ensure you're looking at the most up to date interface.
|
||||
Please use our [daily-builds](http://www.silverstripe.org/daily-builds/) for your local installation, to ensure you're looking at the most up to date interface. See "Download Translations" above
|
||||
to find out how to retrieve the latest translation files.
|
||||
|
||||
### Can I change a translation just for one SilverStripe version?
|
||||
|
||||
|
@ -204,7 +204,7 @@ will return all members whose first name or surname contain the string 'sam'.
|
||||
|
||||
:::php
|
||||
$members = Member::get()->filter(array(
|
||||
'FirstName,Surname:Contains' => 'sam'
|
||||
'FirstName,Surname:PartialMatch' => 'sam'
|
||||
));
|
||||
|
||||
If you wish to match against any of a number of values, you can pass an array as the value. This will return all
|
||||
|
@ -41,7 +41,7 @@ class Folder extends File {
|
||||
* @deprecated in favor of the correct name find_or_make
|
||||
*/
|
||||
public static function findOrMake($folderPath) {
|
||||
Deprecation::notice('3.0', "Folder::findOrMake() is deprecated in favor of Folder::find_or_make()");
|
||||
Deprecation::notice('3.0', "Use Folder::find_or_make() instead.");
|
||||
return self::find_or_make($folderPath);
|
||||
}
|
||||
|
||||
|
@ -118,10 +118,10 @@ class DropdownField extends FormField {
|
||||
$this->setSource($source);
|
||||
|
||||
if($emptyString === true) {
|
||||
Deprecation::notice('3.1', 'Please use setHasEmptyDefault(true) instead of passing a boolean true $emptyString argument');
|
||||
Deprecation::notice('3.1', 'Please use setHasEmptyDefault(true) instead of passing a boolean true $emptyString argument', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
if(is_string($emptyString)) {
|
||||
Deprecation::notice('3.1', 'Please use setEmptyString() instead of passing a string $emptyString argument.');
|
||||
Deprecation::notice('3.1', 'Please use setEmptyString() instead of passing a string $emptyString argument.', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
|
||||
if($emptyString) $this->setHasEmptyDefault(true);
|
||||
|
@ -605,11 +605,14 @@ class FieldList extends ArrayList {
|
||||
foreach($this->getTabPathRewrites() as $regex => $replace) {
|
||||
if(preg_match($regex, $name)) {
|
||||
$newName = preg_replace($regex, $replace, $name);
|
||||
Deprecation::notice('3.0.0', sprintf(
|
||||
'Using outdated tab path "%s", please use the new location "%s" instead',
|
||||
$name,
|
||||
$newName
|
||||
));
|
||||
Deprecation::notice('3.0.0',
|
||||
sprintf(
|
||||
'Using outdated tab path "%s", please use the new location "%s" instead',
|
||||
$name,
|
||||
$newName
|
||||
),
|
||||
Deprecation::SCOPE_GLOBAL
|
||||
);
|
||||
return $newName;
|
||||
}
|
||||
}
|
||||
|
@ -102,7 +102,13 @@ class FileField extends FormField {
|
||||
* @param int $value The value of the field.
|
||||
*/
|
||||
function __construct($name, $title = null, $value = null) {
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRightTitle() and setFolderName() instead of constructor arguments');
|
||||
if(count(func_get_args()) > 3) {
|
||||
Deprecation::notice(
|
||||
'3.0',
|
||||
'Use setRightTitle() and setFolderName() instead of constructor arguments',
|
||||
Deprecation::SCOPE_GLOBAL
|
||||
);
|
||||
}
|
||||
|
||||
$this->upload = new Upload();
|
||||
|
||||
|
@ -51,7 +51,7 @@ class HasManyComplexTableField extends ComplexTableField {
|
||||
function __construct($controller, $name, $sourceClass, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") {
|
||||
parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin);
|
||||
|
||||
Deprecation::notice('3.0', 'Use GridField with GridFieldConfig_RelationEditor');
|
||||
Deprecation::notice('3.0', 'Use GridField with GridFieldConfig_RelationEditor', Deprecation::SCOPE_CLASS);
|
||||
|
||||
$this->Markable = true;
|
||||
|
||||
|
@ -46,7 +46,7 @@ class HtmlEditorField extends TextareaField {
|
||||
* @see TextareaField::__construct()
|
||||
*/
|
||||
public function __construct($name, $title = null, $value = '') {
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRows() and setCols() instead of constructor arguments');
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRows() and setCols() instead of constructor arguments', Deprecation::SCOPE_GLOBAL);
|
||||
|
||||
parent::__construct($name, $title, $value);
|
||||
|
||||
@ -63,14 +63,14 @@ class HtmlEditorField extends TextareaField {
|
||||
if($links = $value->getElementsByTagName('a')) foreach($links as $link) {
|
||||
$matches = array();
|
||||
|
||||
if(preg_match('/\[sitetree_link id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||
if(preg_match('/\[sitetree_link(?:\s*|%20|,)?id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||
if(!DataObject::get_by_id('SiteTree', $matches[1])) {
|
||||
$class = $link->getAttribute('class');
|
||||
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
||||
}
|
||||
}
|
||||
|
||||
if(preg_match('/\[file_link id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||
if(preg_match('/\[file_link(?:\s*|%20|,)?id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||
if(!DataObject::get_by_id('File', $matches[1])) {
|
||||
$class = $link->getAttribute('class');
|
||||
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
||||
@ -114,7 +114,7 @@ class HtmlEditorField extends TextareaField {
|
||||
$href = Director::makeRelative($link->getAttribute('href'));
|
||||
|
||||
if($href) {
|
||||
if(preg_match('/\[sitetree_link id=([0-9]+)\]/i', $href, $matches)) {
|
||||
if(preg_match('/\[sitetree_link,id=([0-9]+)\]/i', $href, $matches)) {
|
||||
$ID = $matches[1];
|
||||
|
||||
// clear out any broken link classes
|
||||
@ -365,11 +365,14 @@ class HtmlEditorField_Toolbar extends RequestHandler {
|
||||
// TODO Handle through GridState within field - currently this state set too late to be useful here (during request handling)
|
||||
$parentID = $this->controller->getRequest()->requestVar('ParentID');
|
||||
|
||||
$fileFieldConfig = GridFieldConfig::create();
|
||||
$fileFieldConfig->addComponent(new GridFieldSortableHeader());
|
||||
$fileFieldConfig->addComponent(new GridFieldFilterHeader());
|
||||
$fileFieldConfig->addComponent(new GridFieldDataColumns());
|
||||
$fileFieldConfig->addComponent(new GridFieldPaginator(5));
|
||||
$fileFieldConfig = GridFieldConfig::create()->addComponents(
|
||||
new GridFieldFilterHeader(),
|
||||
new GridFieldSortableHeader(),
|
||||
new GridFieldDataColumns(),
|
||||
new GridFieldPaginator(5),
|
||||
new GridFieldDeleteAction(),
|
||||
new GridFieldDetailForm()
|
||||
);
|
||||
$fileField = new GridField('Files', false, null, $fileFieldConfig);
|
||||
$fileField->setList($this->getFiles($parentID));
|
||||
$fileField->setAttribute('data-selectable', true);
|
||||
|
@ -45,7 +45,7 @@ class ImageField extends FileIFrameField {
|
||||
* @return Form
|
||||
*/
|
||||
public function EditFileForm() {
|
||||
Deprecation::notice('3.0', 'Use UploadField');
|
||||
Deprecation::notice('3.0', 'Use UploadField', Deprecation::SCOPE_CLASS);
|
||||
|
||||
$filter = create_function('$item', 'return (in_array("Folder", ClassInfo::ancestry($item->ClassName)) || in_array("Image", ClassInfo::ancestry($item->ClassName)));');
|
||||
|
||||
|
@ -18,7 +18,7 @@ class ImageFormAction extends FormAction {
|
||||
* @param form The parent form, auto-set when the field is placed inside a form
|
||||
*/
|
||||
function __construct($action, $title = "", $image = "", $hoverImage = null, $className = null, $form = null) {
|
||||
Deprecation::notice('3.0', "Use FormAction with setAttribute('src', 'myimage.png') and custom JavaScript to achieve hover effect");
|
||||
Deprecation::notice('3.0', "Use FormAction with setAttribute('src', 'myimage.png') and custom JavaScript to achieve hover effect", Deprecation::SCOPE_CLASS);
|
||||
|
||||
$this->image = $image;
|
||||
$this->hoverImage = $hoverImage;
|
||||
|
@ -43,7 +43,7 @@ class ManyManyComplexTableField extends HasManyComplexTableField {
|
||||
|
||||
function __construct($controller, $name, $sourceClass, $fieldList = null, $detailFormFields = null, $sourceFilter = "", $sourceSort = "", $sourceJoin = "") {
|
||||
|
||||
Deprecation::notice('3.0', 'Use GridField with GridFieldConfig_RelationEditor');
|
||||
Deprecation::notice('3.0', 'Use GridField with GridFieldConfig_RelationEditor', Deprecation::SCOPE_CLASS);
|
||||
|
||||
parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin);
|
||||
|
||||
|
@ -11,7 +11,7 @@ class PasswordField extends TextField {
|
||||
* maxlength
|
||||
*/
|
||||
function __construct($name, $title = null, $value = "") {
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setMaxLength() instead of constructor arguments');
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setMaxLength() instead of constructor arguments', Deprecation::SCOPE_GLOBAL);
|
||||
|
||||
parent::__construct($name, $title, $value);
|
||||
}
|
||||
|
@ -69,9 +69,9 @@
|
||||
class SimpleImageField extends FileField {
|
||||
|
||||
function __construct($name, $title = null, $value = null) {
|
||||
Deprecation::notice('3.0', "Use UploadField with \$myField->allowedExtensions = array('jpg', 'gif', 'png')");
|
||||
Deprecation::notice('3.0', "SimpleImageField is deprecated. Use UploadField with \$myField->allowedExtensions = array('jpg', 'gif', 'png')", Deprecation::SCOPE_CLASS);
|
||||
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRightTitle() and setFolderName() instead of constructor arguments');
|
||||
if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRightTitle() and setFolderName() instead of constructor arguments', Deprecation::SCOPE_GLOBAL);
|
||||
|
||||
parent::__construct($name, $title, $value);
|
||||
|
||||
|
@ -72,7 +72,7 @@ class TabSet extends CompositeField {
|
||||
Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-ui/jquery-ui.js');
|
||||
Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-cookie/jquery.cookie.js');
|
||||
|
||||
Requirements::css(FRAMEWORK_DIR . '/thirdparty/jquery-ui-themes/smoothness/jquery.ui.css');
|
||||
Requirements::css(FRAMEWORK_DIR . '/thirdparty/jquery-ui-themes/smoothness/jquery-ui.css');
|
||||
|
||||
Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-entwine/dist/jquery.entwine-dist.js');
|
||||
|
||||
|
@ -66,6 +66,7 @@ class ToggleCompositeField extends CompositeField {
|
||||
*/
|
||||
public function setStartClosed($bool) {
|
||||
$this->startClosed = (bool) $bool;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -80,6 +81,7 @@ class ToggleCompositeField extends CompositeField {
|
||||
*/
|
||||
public function setHeadingLevel($level) {
|
||||
$this->headingLevel = $level;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
32
forms/gridfield/GridFieldAddExistingAutocompleter.php
Executable file → Normal file
32
forms/gridfield/GridFieldAddExistingAutocompleter.php
Executable file → Normal file
@ -40,7 +40,12 @@ class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridF
|
||||
* @var String Text shown on the search field, instructing what to search for.
|
||||
*/
|
||||
protected $placeholderText;
|
||||
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $resultsLimit = 20;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $searchFields Which fields on the object in the list should be searched
|
||||
@ -69,7 +74,7 @@ class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridF
|
||||
// Apparently the data-* needs to be double qouted for the jQuery.meta data plugin
|
||||
$searchField->setAttribute('data-search-url', '\''.Controller::join_links($gridField->Link('search').'\''));
|
||||
$searchField->setAttribute('placeholder', $this->getPlaceholderText($dataClass));
|
||||
$searchField->addExtraClass('relation-search');
|
||||
$searchField->addExtraClass('relation-search no-change-track');
|
||||
|
||||
$findAction = new GridField_FormAction($gridField, 'gridfield_relationfind', _t('GridField.Find', "Find"), 'find', 'find');
|
||||
$findAction->setAttribute('data-icon', 'relationfind');
|
||||
@ -151,7 +156,7 @@ class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridF
|
||||
*/
|
||||
public function getURLHandlers($gridField) {
|
||||
return array(
|
||||
'search/$ID' => 'doSearch',
|
||||
'search' => 'doSearch',
|
||||
);
|
||||
}
|
||||
|
||||
@ -176,10 +181,11 @@ class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridF
|
||||
|
||||
// TODO Replace with DataList->filterAny() once it correctly supports OR connectives
|
||||
foreach($searchFields as $searchField) {
|
||||
$stmts[] .= sprintf('"%s" LIKE \'%s%%\'', $searchField, $request->param('ID'));
|
||||
$stmts[] .= sprintf('"%s" LIKE \'%s%%\'', $searchField, Convert::raw2sql($request->getVar('gridfield_relationsearch')));
|
||||
}
|
||||
$results = $allList->where(implode(' OR ', $stmts))->subtract($gridField->getList());
|
||||
$results = $results->sort($searchFields[0], 'ASC');
|
||||
$results = $results->limit($this->getResultsLimit());
|
||||
|
||||
$json = array();
|
||||
foreach($results as $result) {
|
||||
@ -271,7 +277,23 @@ class GridFieldAddExistingAutocompleter implements GridField_HTMLProvider, GridF
|
||||
public function setPlaceholderText($text) {
|
||||
$this->placeholderText = $text;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the maximum number of autocomplete results to display.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getResultsLimit() {
|
||||
return $this->resultsLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $limit
|
||||
*/
|
||||
public function setResultsLimit($limit) {
|
||||
$this->resultsLimit = $limit;
|
||||
}
|
||||
|
||||
/**
|
||||
* This will provide a StartsWith search that only returns a value if we are
|
||||
* matching ONE object only. We wouldn't want to attach used any object to
|
||||
|
@ -328,11 +328,15 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
$form->addExtraClass('cms-content cms-edit-form center ss-tabset');
|
||||
$form->setAttribute('data-pjax-fragment', 'CurrentForm Content');
|
||||
if($form->Fields()->hasTabset()) $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
|
||||
// TODO Link back to controller action (and edited root record) rather than index,
|
||||
// which requires more URL knowledge than the current link to this field gives us.
|
||||
// The current root record is held in session only,
|
||||
// e.g. page/edit/show/6/ vs. page/edit/EditForm/field/MyGridField/....
|
||||
$form->Backlink = $toplevelController->hasMethod('Backlink') ? $toplevelController->Backlink() : $toplevelController->Link();
|
||||
|
||||
if($toplevelController->hasMethod('Backlink')) {
|
||||
$form->Backlink = $toplevelController->Backlink();
|
||||
} elseif($this->popupController->hasMethod('Breadcrumbs')) {
|
||||
$parents = $this->popupController->Breadcrumbs(false)->items;
|
||||
$form->Backlink = array_pop($parents)->Link;
|
||||
} else {
|
||||
$form->Backlink = $toplevelController->Link();
|
||||
}
|
||||
}
|
||||
|
||||
$cb = $this->component->getItemEditFormCallback();
|
||||
|
@ -91,12 +91,13 @@ class GridFieldFilterHeader implements GridField_HTMLProvider, GridField_DataMan
|
||||
}
|
||||
|
||||
$filterArguments = $state->Columns->toArray();
|
||||
$dataListClone = null;
|
||||
foreach($filterArguments as $columnName => $value ) {
|
||||
if($dataList->canFilterBy($columnName) && $value) {
|
||||
$dataList->filter($columnName.':PartialMatch', $value);
|
||||
$dataListClone = $dataList->filter($columnName.':PartialMatch', $value);
|
||||
}
|
||||
}
|
||||
return $dataList;
|
||||
return ($dataListClone) ? $dataListClone : $dataList;
|
||||
}
|
||||
|
||||
public function getHTMLFragments($gridField) {
|
||||
@ -120,6 +121,7 @@ class GridFieldFilterHeader implements GridField_HTMLProvider, GridField_DataMan
|
||||
}
|
||||
$field = new TextField('filter['.$columnField.']', '', $value);
|
||||
$field->addExtraClass('ss-gridfield-sort');
|
||||
$field->addExtraClass('no-change-track');
|
||||
|
||||
$field->setAttribute('placeholder', _t('GridField.FilterBy', "Filter by ") . _t('GridField.'.$metadata['title'], $metadata['title']));
|
||||
|
||||
@ -144,6 +146,7 @@ class GridFieldFilterHeader implements GridField_HTMLProvider, GridField_DataMan
|
||||
->setAttribute('id', 'action_reset_' . $gridField->getModelClass() . '_' . $columnField)
|
||||
);
|
||||
$field->addExtraClass('filter-buttons');
|
||||
$field->addExtraClass('no-change-track');
|
||||
}else{
|
||||
$field = new LiteralField('', '');
|
||||
}
|
||||
|
@ -444,7 +444,7 @@ class i18n extends Object implements TemplateGlobalProvider {
|
||||
'mfe_MU' => 'Morisyen (Mauritius)',
|
||||
'mg_MG' => 'Malagasy (Madagascar)',
|
||||
'mh_MH' => 'Marshallese (Marshall Islands)',
|
||||
'mi_NZ' => 'Maori (New Zealand)',
|
||||
'mi_NZ' => 'Māori (New Zealand)',
|
||||
'min_ID' => 'Minangkabau (Indonesia)',
|
||||
'mk_MK' => 'Macedonian (Macedonia)',
|
||||
'ml_IN' => 'Malayalam (India)',
|
||||
@ -685,7 +685,7 @@ class i18n extends Object implements TemplateGlobalProvider {
|
||||
'lt' => array('Lithuanian', 'lietuviškai'),
|
||||
'lmo' => array('Lombard', 'Lombardo'),
|
||||
'mk' => array('Macedonian', 'македонски'),
|
||||
'mi' => array('Maori', 'Maori'),
|
||||
'mi' => array('Maori', 'Māori'),
|
||||
'ms' => array('Malay', 'Bahasa melayu'),
|
||||
'mt' => array('Maltese', 'Malti'),
|
||||
'mr' => array('Marathi', 'मराठी'),
|
||||
@ -777,7 +777,7 @@ class i18n extends Object implements TemplateGlobalProvider {
|
||||
'lv_LV' => array('Latvian', 'latviešu'),
|
||||
'lt_LT' => array('Lithuanian', 'lietuviškai'),
|
||||
'mk_MK' => array('Macedonian', 'македонски'),
|
||||
'mi_NZ' => array('Maori', 'Maori'),
|
||||
'mi_NZ' => array('Maori', 'Māori'),
|
||||
'ms_MY' => array('Malay', 'Bahasa melayu'),
|
||||
'mt_MT' => array('Maltese', 'Malti'),
|
||||
'mr_IN' => array('Marathi', 'मराठी'),
|
||||
@ -1465,7 +1465,8 @@ class i18n extends Object implements TemplateGlobalProvider {
|
||||
if(is_numeric($context) && in_array($context, array(PR_LOW, PR_MEDIUM, PR_HIGH))) {
|
||||
Deprecation::notice(
|
||||
'3.0',
|
||||
'The $priority argument to _t() is deprecated, please use module inclusion priorities instead'
|
||||
'The $priority argument to _t() is deprecated, please use module inclusion priorities instead',
|
||||
Deprecation::SCOPE_GLOBAL
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -310,9 +310,9 @@ class i18nTextCollector extends Object {
|
||||
|
||||
// use the old method of getting _t() style translatable entities
|
||||
// Collect in actual template
|
||||
if(preg_match_all('/<%\s*(_t\(.*)%>/ms', $content, $matches)) {
|
||||
foreach($matches as $match) {
|
||||
$entities = array_merge($entities, $this->collectFromCode($match[0], $module));
|
||||
if(preg_match_all('/(_t\([^\)]*?\))/ms', $content, $matches)) {
|
||||
foreach($matches[1] as $match) {
|
||||
$entities = array_merge($entities, $this->collectFromCode($match, $module));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -301,7 +301,7 @@
|
||||
"X-Pjax" : 'Partial'
|
||||
},
|
||||
type: "GET",
|
||||
url: suggestionUrl+'/'+request.term,
|
||||
url: suggestionUrl,
|
||||
data: form.serialize()+'&'+escape(searchField.attr('name'))+'='+escape(searchField.val()),
|
||||
success: function(data) {
|
||||
response( $.map(JSON.parse(data), function( name, id ) {
|
||||
|
@ -283,7 +283,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
onbeforestatechange: function(){
|
||||
this.css('visibility', 'hidden');
|
||||
|
||||
var ed = this.getEditor(), container = ed.getInstance() ? ed.getContainer() : null;
|
||||
var ed = this.getEditor(), container = (ed && ed.getInstance()) ? ed.getContainer() : null;
|
||||
if(container && container.length) container.remove();
|
||||
}
|
||||
},
|
||||
@ -468,7 +468,6 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
* which are toggled through a type dropdown. Variations share fields, so there's only one "title" field in the form.
|
||||
*/
|
||||
$('form.htmleditorfield-linkform').entwine({
|
||||
|
||||
// TODO Entwine doesn't respect submits triggered by ENTER key
|
||||
onsubmit: function(e) {
|
||||
this.insertLink();
|
||||
@ -477,36 +476,27 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
},
|
||||
resetFields: function() {
|
||||
this._super();
|
||||
this.find('fieldset :input:not(:radio)').val('').change();
|
||||
|
||||
// Reset the form using a native call. This will also correctly reset checkboxes and radio buttons.
|
||||
this[0].reset();
|
||||
},
|
||||
redraw: function(setDefaults) {
|
||||
redraw: function() {
|
||||
this._super();
|
||||
|
||||
var linkType = this.find(':input[name=LinkType]:checked').val(), list = ['internal', 'external', 'file', 'email'];
|
||||
|
||||
// If we haven't selected an existing link, then just make sure we default to "internal" for the link type.
|
||||
if(!linkType) {
|
||||
this.find(':input[name=LinkType]').val(['internal']);
|
||||
linkType = 'internal';
|
||||
}
|
||||
|
||||
this.addAnchorSelector();
|
||||
|
||||
// Toggle field visibility and state based on type selection
|
||||
// Toggle field visibility depending on the link type.
|
||||
this.find('div.content .field').hide();
|
||||
this.find('.field#LinkType').show();
|
||||
this.find('.field#' + linkType).show();
|
||||
if(linkType == 'internal' || linkType == 'anchor') this.find('.field#Anchor').show();
|
||||
if(linkType !== 'email') this.find('.field#TargetBlank').show();
|
||||
if(linkType == 'anchor') {
|
||||
this.find('.field#AnchorSelector').show();
|
||||
this.find('.field#AnchorRefresh').show();
|
||||
}
|
||||
|
||||
this.find(':input[name=TargetBlank]').attr('disabled', (linkType == 'email'));
|
||||
|
||||
if(typeof setDefaults == 'undefined' || setDefaults) {
|
||||
this.find(':input[name=TargetBlank]').attr('checked', (linkType == 'file'));
|
||||
}
|
||||
},
|
||||
insertLink: function() {
|
||||
var href, target = null, anchor = this.find(':input[name=Anchor]').val();
|
||||
@ -614,16 +604,24 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
selector.append($('<option value="'+anchors[j]+'">'+anchors[j]+'</option>'));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Updates the state of the dialog inputs to match the editor selection.
|
||||
* If selection does not contain a link, resets the fields.
|
||||
*/
|
||||
updateFromEditor: function() {
|
||||
var htmlTagPattern = /<\S[^><]*>/g, fieldName, data = this.getCurrentLink();
|
||||
|
||||
|
||||
if(data) {
|
||||
for(fieldName in data) {
|
||||
var el = this.find(':input[name=' + fieldName + ']'), selected = data[fieldName];
|
||||
// Remove html tags in the selected text that occurs on IE browsers
|
||||
if(typeof(selected) == 'string') selected = selected.replace(htmlTagPattern, '');
|
||||
if(el.is(':radio')) {
|
||||
el.val([selected]).change(); // setting as an arry due to jQuery quirks
|
||||
|
||||
// Set values and invoke the triggers (e.g. for TreeDropdownField).
|
||||
if(el.is(':checkbox')) {
|
||||
el.prop('checked', selected).change();
|
||||
} else if(el.is(':radio')) {
|
||||
el.val([selected]).change();
|
||||
} else {
|
||||
el.val(selected).change();
|
||||
}
|
||||
@ -631,8 +629,9 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Return information about the currently selected link, suitable for population of the link
|
||||
* form.
|
||||
* Return information about the currently selected link, suitable for population of the link form.
|
||||
*
|
||||
* Returns null if no link was currently selected.
|
||||
*/
|
||||
getCurrentLink: function() {
|
||||
var selectedEl = this.getSelection(),
|
||||
@ -682,7 +681,8 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
return {
|
||||
LinkType: 'file',
|
||||
file: RegExp.$1,
|
||||
Description: title
|
||||
Description: title,
|
||||
TargetBlank: target ? true : false
|
||||
};
|
||||
} else if(href.match(/^#(.*)$/)) {
|
||||
return {
|
||||
@ -691,7 +691,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
Description: title,
|
||||
TargetBlank: target ? true : false
|
||||
};
|
||||
} else if(href.match(/^\[sitetree_link\s*(?:%20)?id=([0-9]+)\]?(#.*)?$/)) {
|
||||
} else if(href.match(/^\[sitetree_link(?:\s*|%20|,)?id=([0-9]+)\]?(#.*)?$/i)) {
|
||||
return {
|
||||
LinkType: 'internal',
|
||||
internal: RegExp.$1,
|
||||
@ -707,9 +707,8 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
||||
TargetBlank: target ? true : false
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
LinkType: 'internal'
|
||||
};
|
||||
// No link/invalid link selected.
|
||||
return null;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -2,10 +2,10 @@
|
||||
$.entwine('ss', function($){
|
||||
$('.ss-toggle').entwine({
|
||||
onadd: function() {
|
||||
opts = {collapsible: true};
|
||||
if (this.hasClass("ss-toggle-start-closed")) opts.active = false;
|
||||
|
||||
this.accordion({ collapsible: true });
|
||||
this.accordion({
|
||||
collapsible: true,
|
||||
active: !this.hasClass("ss-toggle-start-closed")
|
||||
});
|
||||
|
||||
this._super();
|
||||
},
|
||||
|
@ -29,7 +29,7 @@
|
||||
* @todo Expand title height to fit all elements
|
||||
*/
|
||||
$('.TreeDropdownField').entwine({
|
||||
onmatch: function() {
|
||||
onadd: function() {
|
||||
this.append(
|
||||
'<span class="treedropdownfield-title"></span>' +
|
||||
'<div class="treedropdownfield-toggle-panel-link"><a href="#" class="ui-icon ui-icon-triangle-1-s"></a></div>' +
|
||||
@ -43,9 +43,6 @@
|
||||
this.getPanel().hide();
|
||||
this._super();
|
||||
},
|
||||
onunmatch: function() {
|
||||
this._super();
|
||||
},
|
||||
getPanel: function() {
|
||||
return this.find('.treedropdownfield-panel');
|
||||
},
|
||||
@ -260,7 +257,7 @@
|
||||
});
|
||||
|
||||
$('.TreeDropdownField.searchable').entwine({
|
||||
onmatch: function() {
|
||||
onadd: function() {
|
||||
this._super();
|
||||
|
||||
var title = this.data('title');
|
||||
@ -270,9 +267,6 @@
|
||||
|
||||
this.setTitle(title ? title : strings.searchFieldTitle);
|
||||
},
|
||||
onunmatch: function() {
|
||||
this._super();
|
||||
},
|
||||
setTitle: function(title) {
|
||||
if(!title && title !== '') title = strings.fieldTitle;
|
||||
|
||||
@ -372,8 +366,13 @@
|
||||
});
|
||||
|
||||
$('.TreeDropdownField input[type=hidden]').entwine({
|
||||
onchange: function() {
|
||||
this.getField().updateTitle();
|
||||
onadd: function() {
|
||||
this.bind('change.TreeDropdownField', function() {
|
||||
$(this).getField().updateTitle();
|
||||
});
|
||||
},
|
||||
onremove: function() {
|
||||
this.unbind('.TreeDropdownField');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
42
lang/ar.yml
42
lang/ar.yml
@ -7,8 +7,8 @@ ar:
|
||||
FILENAME: 'اسم الملف'
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 'آخر التعديلات'
|
||||
OWNER: 'المالك'
|
||||
SIZE: 'الحجم'
|
||||
OWNER: المالك
|
||||
SIZE: الحجم
|
||||
TITLE: العنوان
|
||||
TYPE: النوع
|
||||
URL: الرابط
|
||||
@ -24,7 +24,7 @@ ar:
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADOR: OR
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: 'المحاذاة'
|
||||
ALIGNEMENT: المحاذاة
|
||||
ALIGNEMENTEXAMPLE: 'محاذاة إلى اليمين'
|
||||
BOLD: 'خط عريض'
|
||||
BOLDEXAMPLE: عريض
|
||||
@ -38,7 +38,7 @@ ar:
|
||||
IMAGE: الصورة
|
||||
IMAGEDESCRIPTION: 'عرض الصورة في الموضوع'
|
||||
ITALIC: 'خط مائل'
|
||||
ITALICEXAMPLE: 'مائل'
|
||||
ITALICEXAMPLE: مائل
|
||||
LINK: 'رابط الموقع'
|
||||
LINKDESCRIPTION: 'رابط إلى موقع آخر'
|
||||
STRUCK: 'خط في المنتصف'
|
||||
@ -56,7 +56,7 @@ ar:
|
||||
ANY: أي
|
||||
0: لا
|
||||
LOGOUT: 'Log out'
|
||||
1: 'نعم'
|
||||
1: نعم
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
ACCESSALLINTERFACES: 'الدخول إلى جميع واجهات إدارة المحتوى'
|
||||
@ -66,7 +66,7 @@ ar:
|
||||
MENUTITLE: CMSProfileController
|
||||
CheckboxField:
|
||||
- لا
|
||||
- 'نعم'
|
||||
- نعم
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'إغلاق النافذة'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
@ -87,8 +87,8 @@ ar:
|
||||
PLURALNAME: 'بيانات كائن'
|
||||
SINGULARNAME: 'بيانات كائن'
|
||||
Date:
|
||||
DAY: 'اليوم'
|
||||
DAYS: 'الأيام'
|
||||
DAY: اليوم
|
||||
DAYS: الأيام
|
||||
HOUR: ساعة
|
||||
HOURS: ساعات
|
||||
MIN: دقيقة
|
||||
@ -103,7 +103,7 @@ ar:
|
||||
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})'
|
||||
@ -121,15 +121,15 @@ ar:
|
||||
ANY: أي
|
||||
LOADING: Loading...
|
||||
File:
|
||||
Content: 'المحتوى'
|
||||
Content: المحتوى
|
||||
Filename: 'اسم الملف'
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
NOFILESIZE: 'حجم الملف 0 بايت'
|
||||
NOVALIDUPLOAD: 'نوع الملف غير قابل للرفع'
|
||||
Name: 'الاسم'
|
||||
PLURALNAME: 'الملفات'
|
||||
SINGULARNAME: 'الملف'
|
||||
Name: الاسم
|
||||
PLURALNAME: الملفات
|
||||
SINGULARNAME: الملف
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
Title: العنوان
|
||||
@ -139,7 +139,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: 'الرجاء اختيارمصدر ملف المرفق'
|
||||
@ -156,7 +156,7 @@ ar:
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'رقم المرور غير صحيح'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'أرقام المرور لا يمكن أن تكون فارغة'
|
||||
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
|
||||
VALIDATOR: 'المحقق'
|
||||
VALIDATOR: المحقق
|
||||
VALIDCURRENCY: 'Please enter a valid currency'
|
||||
FormField:
|
||||
NONE: لايوجد
|
||||
@ -238,8 +238,8 @@ ar:
|
||||
CSSCLASSRIGHT: 'إلى اليمين ، مع التفاف النص'
|
||||
DETAILS: Details
|
||||
EMAIL: 'بريد إلكتروني'
|
||||
FILE: 'ملف'
|
||||
FOLDER: 'المجلد'
|
||||
FILE: ملف
|
||||
FOLDER: المجلد
|
||||
FROMCMS: 'From the CMS'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMWEB: 'From the web'
|
||||
@ -275,7 +275,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: 'عذراً , لكن لا يمكنك الوصول لهذا القسم من النظام. يتوجب عليك الدخول بصلاحية أخرى'
|
||||
@ -323,7 +323,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: 'مغلق حتى تاريخ'
|
||||
@ -371,8 +371,8 @@ ar:
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: 'الكمية'
|
||||
FIELDLABELCURRENCY: 'العملة'
|
||||
FIELDLABELAMOUNT: الكمية
|
||||
FIELDLABELCURRENCY: العملة
|
||||
NullableField:
|
||||
IsNullLabel: باطل
|
||||
NumericField:
|
||||
|
10
lang/bg.yml
10
lang/bg.yml
@ -212,7 +212,7 @@ bg:
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: Сортиране
|
||||
TITLE: 'Качване на изображението Iрамка'
|
||||
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>'
|
||||
@ -247,7 +247,7 @@ bg:
|
||||
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'
|
||||
IMAGEDIMENSIONS: 'Размери'
|
||||
IMAGEDIMENSIONS: Размери
|
||||
IMAGEHEIGHTPX: Височина
|
||||
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
@ -421,10 +421,10 @@ bg:
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Внимание: изтривайки потребители от този списък, ще ги премахне от всички групи и от базата данни.'
|
||||
NEWGROUP: 'New Group'
|
||||
PERMISSIONS: 'Разрешения'
|
||||
ROLES: 'Роли'
|
||||
PERMISSIONS: Разрешения
|
||||
ROLES: Роли
|
||||
ROLESDESCRIPTION: 'Ролите са предварително зададени сетове от разрешения и могат да бъдат присвоявани на групи.<br />Ако е нужно, те се наследяват от родителските групи.'
|
||||
TABROLES: 'Роли'
|
||||
TABROLES: Роли
|
||||
Users: Users
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Import from CSV'
|
||||
|
@ -252,7 +252,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'
|
||||
@ -311,7 +311,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
|
||||
PROFILESAVESUCCESS: 'Successfully saved.'
|
||||
REMEMBERME: 'Zapamti me slijedeći put'
|
||||
@ -448,8 +448,8 @@ bs:
|
||||
SORTDESC: 'Sort in descending order'
|
||||
TableListField:
|
||||
CSVEXPORT: 'Izvezi u CSV'
|
||||
PRINT: 'Štampaj'
|
||||
Print: 'Štampaj'
|
||||
PRINT: Štampaj
|
||||
Print: Štampaj
|
||||
SELECT: 'Select:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
|
@ -263,7 +263,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'
|
||||
|
@ -252,7 +252,7 @@ cs:
|
||||
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: 'Šířka'
|
||||
IMAGEWIDTHPX: Šířka
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
LINK: 'Vložit nebo upravit odkaz'
|
||||
LINKANCHOR: 'Záložka (kotva) na stránce'
|
||||
|
164
lang/de.yml
164
lang/de.yml
@ -5,7 +5,7 @@ de:
|
||||
CREATED: 'Erstmalig hochgeladen'
|
||||
DIM: Dimensionen
|
||||
FILENAME: Dateiname
|
||||
FOLDER: Folder
|
||||
FOLDER: Ordner
|
||||
LASTEDIT: 'Letztmals geändert'
|
||||
OWNER: Eigentümer
|
||||
SIZE: Größe
|
||||
@ -13,14 +13,14 @@ de:
|
||||
TYPE: Typ
|
||||
URL: URL
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Choose files'
|
||||
DRAGFILESHERE: 'Drag files here'
|
||||
DROPAREA: 'Drop Area'
|
||||
EDITALL: 'Edit all'
|
||||
EDITANDORGANIZE: 'Edit & organize'
|
||||
FILES: Files
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
ChooseFiles: 'Dateien auswählen'
|
||||
DRAGFILESHERE: 'Dateien hier ablegen'
|
||||
DROPAREA: Dateiablage
|
||||
EDITALL: 'Alle Bearbeiten'
|
||||
EDITANDORGANIZE: Bearbeiten
|
||||
FILES: Dateien
|
||||
TOTAL: Gesamt
|
||||
TOUPLOAD: 'Datei(en) zum Hochladen auswählen'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADOR: ODER
|
||||
BBCodeParser:
|
||||
@ -55,7 +55,7 @@ de:
|
||||
Boolean:
|
||||
ANY: alle
|
||||
0: Nein
|
||||
LOGOUT: 'Log out'
|
||||
LOGOUT: Ausloggen
|
||||
1: Ja
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
@ -69,7 +69,7 @@ de:
|
||||
- Ja
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Popup schließen'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: '{name} hinzugefügt'
|
||||
SUCCESSEDIT: 'Gespeichert %s %s %s'
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Passwords must be at least {min} characters long.'
|
||||
@ -97,7 +97,7 @@ de:
|
||||
MONTHS: Monat
|
||||
SEC: Sekunden
|
||||
SECS: Sekunden
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFAGO: 'vor {difference}'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
YEAR: Jahr
|
||||
YEARS: Jahre
|
||||
@ -109,17 +109,17 @@ de:
|
||||
VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})'
|
||||
Director:
|
||||
ADD: Hinzufügen
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
INVALID_REQUEST: 'Ungültige Anfrage'
|
||||
DropdownField:
|
||||
CHOOSE: (Auswahl)
|
||||
EmailField:
|
||||
VALIDATION: 'Please enter an email address'
|
||||
VALIDATION: 'Bitte geben Sie eine E-Mail Adresse ein'
|
||||
Email_BounceRecord:
|
||||
PLURALNAME: 'E-Mail Rückläufer'
|
||||
SINGULARNAME: 'E-Mail Rückläufer'
|
||||
Enum:
|
||||
ANY: alle
|
||||
LOADING: Loading...
|
||||
LOADING: 'Lade Daten ...'
|
||||
File:
|
||||
Content: Inhalt
|
||||
Filename: Dateiname
|
||||
@ -134,7 +134,7 @@ de:
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
Title: Titel
|
||||
FileIFrameField:
|
||||
ATTACH: 'Attach {type}'
|
||||
ATTACH: '{type} anhängen'
|
||||
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}'
|
||||
@ -143,11 +143,11 @@ de:
|
||||
FROMCOMPUTER: 'Von Ihrem Computer'
|
||||
FROMFILESTORE: 'Aus dem Datei-Storage'
|
||||
NOSOURCE: 'Bitte wählen Sie eine Datei aus'
|
||||
REPLACE: 'Replace {type}'
|
||||
REPLACE: '{type} ersetzen'
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Import
|
||||
SEARCHLISTINGS: Search
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
IMPORT_TAB_HEADER: Importieren
|
||||
SEARCHLISTINGS: Suche
|
||||
SYNCRESULTS: 'Synchronisation beendet: {createdcount} Objekte erstellt, {deletedcount} Objekte gelöscht'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s wird benötigt'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
@ -161,41 +161,41 @@ de:
|
||||
FormField:
|
||||
NONE: keine
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Delete
|
||||
Delete: Delete
|
||||
UnlinkRelation: Unlink
|
||||
DELETE_DESCRIPTION: Löschen
|
||||
Delete: Löschen
|
||||
UnlinkRelation: 'Verbindung entfernen'
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Add: '{name} Hinzufügen'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filter by '
|
||||
Find: Find
|
||||
FilterBy: 'Filter nach'
|
||||
Find: Suchen
|
||||
LEVELUP: 'Level up'
|
||||
LinkExisting: 'Link Existing'
|
||||
NewRecord: 'New %s'
|
||||
NoItemsFound: 'No items found'
|
||||
NewRecord: 'Neue(r) %s'
|
||||
NoItemsFound: 'Keine Elemente gefunden.'
|
||||
PRINTEDAT: 'Printed at'
|
||||
PRINTEDBY: 'Printed by'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolder: '{type} Suchen'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
RelationSearch: 'Relation search'
|
||||
ResetFilter: Reset
|
||||
ResetFilter: Zurücksetzen
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
NEXT: nächste
|
||||
PREVIOUS: vorherige
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
Create: Erstellen
|
||||
Delete: Löschen
|
||||
DeletePermissionsFailure: 'Keine Berechtigungen zum löschen'
|
||||
Deleted: 'Gelöscht %s %s'
|
||||
HELLO: Hallo
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
Save: Speichern
|
||||
Saved: 'Gespeichert %s %s'
|
||||
TEXT1: 'Hier ist Ihr'
|
||||
TEXT2: 'Link zum Zurücksetzen des Passworts'
|
||||
TEXT3: für
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
AddRole: 'Rolle für die Gruppe hinzufügen'
|
||||
CHANGEPASSWORDTEXT1: 'Sie haben ihr Passwort geändert für'
|
||||
CHANGEPASSWORDTEXT2: 'Sie können nun folgende Angaben benutzen um sich einzuloggen'
|
||||
Code: 'Gruppen Code'
|
||||
@ -203,10 +203,10 @@ de:
|
||||
DefaultGroupTitleContentAuthors: Inhaltsautoren
|
||||
Description: Beschreibung
|
||||
EMAIL: E-Mail
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
GroupReminder: 'Bei Zuweisung einer Übergruppe werden alle ihre Rollen übernommen'
|
||||
HELLO: Hi
|
||||
Locked: 'Gesperrt?'
|
||||
NoRoles: 'No roles found'
|
||||
NoRoles: 'Keine Rollen gefunden'
|
||||
PASSWORD: Passwort
|
||||
Parent: Elterngruppe
|
||||
RolesAddEditLink: 'Rollen hinzufügen/editieren'
|
||||
@ -223,13 +223,13 @@ de:
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ADDURL: 'URL hinzufügen'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & Dimensionen'
|
||||
ANCHORVALUE: Anker
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERT: Einfügen
|
||||
BUTTONINSERTLINK: 'Verweis einfügen'
|
||||
BUTTONREMOVELINK: 'Verweise entfernen'
|
||||
BUTTONUpdate: Update
|
||||
BUTTONUpdate: Aktualisieren
|
||||
CAPTIONTEXT: Beschriftungstext
|
||||
CSSCLASS: Ausrichtung/Stil
|
||||
CSSCLASSCENTER: 'Zentriert, selbstständig'
|
||||
@ -241,10 +241,10 @@ de:
|
||||
FILE: Datei
|
||||
FOLDER: Ordner
|
||||
FROMCMS: 'From the CMS'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
FROMCOMPUTER: 'Von Ihrem Computer'
|
||||
FROMWEB: 'Aus dem Internet'
|
||||
FindInFolder: 'In Ordner suchen'
|
||||
IMAGEALT: 'Alternativer Text (alt)'
|
||||
IMAGEALTTEXT: 'Alternativer Text (alt) - angezeigt, wenn das Bild nicht dargestellt werden kann'
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEDIMENSIONS: Dimensionen
|
||||
@ -269,28 +269,28 @@ de:
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: Bild
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Filter anwenden" GridFieldItemEditView.ss: Go back: "Zurück" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Eine neue Zeile hinzufügen'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
DropdownBatchActionsDefault: Aktionen
|
||||
HELP: Hilfe
|
||||
PAGETYPE: 'Seitentyp:'
|
||||
PERMAGAIN: 'Sie wurden aus dem System ausgeloggt. Falls Sie sich wieder einloggen möchten, geben Sie bitte Benutzernamen und Passwort im untenstehenden Formular an.'
|
||||
PERMALREADY: 'Leider dürfen Sie diesen Teil des CMS nicht aufrufen. Wenn Sie sich als jemand anderes einloggen wollen, benutzen Sie bitte das nachstehende Formular.'
|
||||
PERMDEFAULT: 'Bitte wählen Sie eine Authentifizierungsmethode und geben Sie Ihre Benutzerdaten für den Zugang zum CMS ein.'
|
||||
PLEASESAVE: 'Diese Seite konnte nicht aktualisiert werden weil sie noch nicht gespeichert wurde - bitte speichern.'
|
||||
PreviewButton: Preview
|
||||
PreviewButton: Vorschau
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
VersionUnknown: unknown
|
||||
SAVEDUP: Gespeichert.
|
||||
VersionUnknown: unbekannt
|
||||
LoginAttempt:
|
||||
Email: E-Mail-Adresse
|
||||
IP: IP-Adresse
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Gruppe hinzufügen'
|
||||
BUTTONCHANGEPASSWORD: 'Passwort ändern'
|
||||
BUTTONLOGIN: Einloggen
|
||||
BUTTONLOGINOTHER: 'Als jemand anders einloggen'
|
||||
@ -334,23 +334,23 @@ de:
|
||||
TITLE: 'E-Mail & Passwort'
|
||||
MemberDatetimeOptionsetField:
|
||||
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
|
||||
Custom: Custom
|
||||
DATEFORMATBAD: 'Date format is invalid'
|
||||
Custom: Benutzerdefiniert
|
||||
DATEFORMATBAD: 'Ungültiges Datumsformat'
|
||||
DAYNOLEADING: 'Day of month without leading zero'
|
||||
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
|
||||
FOURDIGITYEAR: 'Four-digit year'
|
||||
FOURDIGITYEAR: Jahr
|
||||
FULLNAMEMONTH: 'Full name of month (e.g. June)'
|
||||
HOURNOLEADING: 'Hour without leading zero'
|
||||
MINUTENOLEADING: 'Minute without leading zero'
|
||||
MINUTENOLEADING: Minute
|
||||
MONTHNOLEADING: 'Month digit without leading zero'
|
||||
Preview: Preview
|
||||
Preview: Vorschau
|
||||
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)'
|
||||
TWODIGITSECOND: Sekunde
|
||||
TWODIGITYEAR: 'Two-digit year'
|
||||
MemberImportForm:
|
||||
Help1: '<p>Mitglieder im <em>CSV</em>-Format (kommaseparierte Werte) importieren. <small><a href="#" class="toggle-advanced">Erweiterte Nutzung</a></small></p>'
|
||||
@ -362,14 +362,14 @@ de:
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
DELETE: Löschen
|
||||
DELETEDRECORDS: 'Deleted {count} records.'
|
||||
DELETEDRECORDS: '{count} Datensätze wurden gelöscht.'
|
||||
IMPORT: 'CSV Import'
|
||||
IMPORTEDRECORDS: 'Imported {count} records.'
|
||||
IMPORTEDRECORDS: '{count} Datensätze wurden importiert.'
|
||||
NOCSVFILE: 'Wählen sie eine CSV-Datei zum Importieren'
|
||||
NOIMPORT: 'Kein Import notwendig.'
|
||||
RESET: Reset
|
||||
RESET: Zurücksetzen
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
UPDATEDRECORDS: '{count} Datensätze wurden aktualisiert.'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Betrag
|
||||
FIELDLABELCURRENCY: Währung
|
||||
@ -385,14 +385,14 @@ de:
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
PermissionCheckboxSetField:
|
||||
AssignedTo: 'assigned to "{title}"'
|
||||
FromGroup: 'inherited from group "{title}"'
|
||||
FromRole: 'inherited from role "{title}"'
|
||||
AssignedTo: 'Zugewiesen an "{title}"'
|
||||
FromGroup: 'abgeleited von Gruppe "{title}"'
|
||||
FromRole: 'abgeleited von Rolle "{title}"'
|
||||
FromRoleOnGroup: 'geerbt von Rolle "%s" für die Gruppe "%s"'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Rollen und Zugriffsberechtigungen'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Zurück
|
||||
VALIDATION: 'Bitte geben Sie eine gültige Telefonnummer ein'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Sie haben keinen Zugriff auf diese Seite. Wenn Sie ein anderes Konto besitzen, mit dem Sie auf diese Seite zugreifen können, melden Sie sich bitte unten an.'
|
||||
@ -415,8 +415,8 @@ de:
|
||||
EDITPERMISSIONS: 'Bearbeiten der Rechte und IP-Adressen für jede Gruppe'
|
||||
EDITPERMISSIONS_HELP: 'Möglichkeit Berechtigungen und IP-Adressen einer Gruppen zu editieren. Erfordert Zugriff auf den Bereich "Sicherheit".'
|
||||
GROUPNAME: Gruppenname
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
IMPORTUSERS: 'Import users'
|
||||
IMPORTGROUPS: 'Gruppen importieren'
|
||||
IMPORTUSERS: 'Benutzer importieren'
|
||||
MEMBERS: Mitglieder
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Achtung: Das Entfernen von Mitgliedern aus dieser Liste löscht diese auch aus der Datenbank sowie die entsprechenden Gruppenzuweisungen.'
|
||||
@ -425,14 +425,14 @@ de:
|
||||
ROLES: Rollen
|
||||
ROLESDESCRIPTION: 'Hier können Sie der Gruppe Rollen zuweisen. Rollen sind logische Gruppierungen von Berechtigungen.'
|
||||
TABROLES: Rollen
|
||||
Users: Users
|
||||
Users: Benutzer
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: Import
|
||||
FileFieldLabel: 'CSV Datei <small>(Erlaubte Dateierweiterung: *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: Edit
|
||||
Edit: Bearbeiten
|
||||
FILTER: Filter
|
||||
IMPORT: Import
|
||||
IMPORT: Importieren
|
||||
VIEWFIRST: 'Ersten anzeigen'
|
||||
VIEWLAST: 'Letzten anzeigen'
|
||||
VIEWNEXT: 'Nächsten anzeigen'
|
||||
@ -443,7 +443,7 @@ de:
|
||||
TABMAIN: Hauptteil
|
||||
TableField:
|
||||
ADDITEM: '%s hinzufügen'
|
||||
ISREQUIRED: 'In %s ''%s'' is required'
|
||||
ISREQUIRED: 'In %s wird ''%s'' benötigt'
|
||||
SORTASC: 'Aufsteigend sortieren'
|
||||
SORTDESC: 'Absteigend sortieren'
|
||||
TableListField:
|
||||
@ -457,21 +457,21 @@ de:
|
||||
LESS: weniger
|
||||
MORE: mehr
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
ATTACHFILE: 'Datei anhängen'
|
||||
ATTACHFILES: 'Dateien anhängen'
|
||||
AttachFile: 'Datei anhängen'
|
||||
DELETEINFO: 'Löscht die Datei dauerhaft aus dem Dateisystem'
|
||||
DOEDIT: Speichern
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
Dimensions: Dimensions
|
||||
DROPFILE: 'Datei hier ablegen'
|
||||
DROPFILES: 'Dateien hier ablegen'
|
||||
Dimensions: Dimensionen
|
||||
EDITINFO: 'Diese Datei bearbeiten'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FIELDNOTSET: 'Dateiinformationen nicht gefunden'
|
||||
FROMCOMPUTER: 'Von Ihrem Computer'
|
||||
FROMFILES: 'From files'
|
||||
FROMFILES: 'Von "Dateien"'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
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'
|
||||
|
@ -61,7 +61,7 @@ el:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
ACCESSALLINTERFACES: 'Access to all CMS sections'
|
||||
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
|
||||
SAVE: 'Αποθήκευση'
|
||||
SAVE: Αποθήκευση
|
||||
CMSProfileController:
|
||||
MENUTITLE: CMSProfileController
|
||||
CheckboxField:
|
||||
|
222
lang/es_MX.yml
222
lang/es_MX.yml
@ -5,7 +5,7 @@ es_MX:
|
||||
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
|
||||
@ -13,16 +13,16 @@ es_MX:
|
||||
TYPE: Tipo
|
||||
URL: URL
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Choose files'
|
||||
DRAGFILESHERE: 'Drag files here'
|
||||
DROPAREA: 'Drop Area'
|
||||
EDITALL: 'Edit all'
|
||||
EDITANDORGANIZE: 'Edit & organize'
|
||||
FILES: Files
|
||||
ChooseFiles: 'Seleccionar archivos'
|
||||
DRAGFILESHERE: 'Arrastrar archivos acá'
|
||||
DROPAREA: 'Área de arrastre'
|
||||
EDITALL: 'Editar todos'
|
||||
EDITANDORGANIZE: 'Editar y organizar'
|
||||
FILES: Archivos
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADOR: OR
|
||||
TOUPLOAD: 'Seleccionar archivos para subir'
|
||||
UPLOADINPROGRESS: 'Por favor espera, subida de archivos en progreso'
|
||||
UPLOADOR: o
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Alineación
|
||||
ALIGNEMENTEXAMPLE: 'alineado a la derecha'
|
||||
@ -63,7 +63,7 @@ es_MX:
|
||||
ACCESSALLINTERFACESHELP: 'Anula la configuració de acceso más específica.'
|
||||
SAVE: Guardar
|
||||
CMSProfileController:
|
||||
MENUTITLE: CMSProfileController
|
||||
MENUTITLE: 'Controladores de perfil del CMS'
|
||||
CheckboxField:
|
||||
- No
|
||||
- Sí
|
||||
@ -97,19 +97,19 @@ es_MX:
|
||||
MONTHS: meses
|
||||
SEC: segundo
|
||||
SECS: segundos
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
TIMEDIFFAGO: '{difference} atrás'
|
||||
TIMEDIFFIN: 'en {difference}'
|
||||
YEAR: año
|
||||
YEARS: años
|
||||
DateField:
|
||||
NOTSET: 'no especificada'
|
||||
TODAY: ahora
|
||||
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 ingresar un formato válido de fecha ({format})'
|
||||
VALIDDATEMAXDATE: 'Tu fecha tiene que ser más antigua o al menos coincidir con la fecha mínima permitida ({date})'
|
||||
VALIDDATEMINDATE: 'Tu fecha tiene que ser nueva o al menos coincidir con la fecha mínima permitida ({date})'
|
||||
Director:
|
||||
ADD: Agregar
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
INVALID_REQUEST: 'Solicitud no válida'
|
||||
DropdownField:
|
||||
CHOOSE: (Seleccione)
|
||||
EmailField:
|
||||
@ -119,7 +119,7 @@ es_MX:
|
||||
SINGULARNAME: 'Correo electrónico devuelto'
|
||||
Enum:
|
||||
ANY: Cualquiera
|
||||
LOADING: Loading...
|
||||
LOADING: Cargando...
|
||||
File:
|
||||
Content: Contenido
|
||||
Filename: 'Nombre de Archivo'
|
||||
@ -138,7 +138,7 @@ es_MX:
|
||||
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'
|
||||
DISALLOWEDFILETYPE: 'Este tipo de archivo no se puede subir'
|
||||
FILE: Archivo
|
||||
FROMCOMPUTER: 'Desde su Ordenador'
|
||||
FROMFILESTORE: 'Desde el almacén de archivos'
|
||||
@ -150,7 +150,7 @@ es_MX:
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s es obligatorio'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
TITLE: 'Subidor de imágenes por iFrame'
|
||||
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
|
||||
VALIDATIONNOTUNIQUE: 'El valor ingresado no es único'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Las contraeñas no son iguales'
|
||||
@ -162,25 +162,25 @@ es_MX:
|
||||
NONE: ninguno
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Delete
|
||||
Delete: Delete
|
||||
UnlinkRelation: Unlink
|
||||
Delete: Eliminar
|
||||
UnlinkRelation: Desvincular
|
||||
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: 'Agregar {name}'
|
||||
Filter: Filtro
|
||||
FilterBy: 'Filtrar por'
|
||||
Find: Buscar
|
||||
LEVELUP: 'Subir de nivel'
|
||||
LinkExisting: 'Enlazar existente'
|
||||
NewRecord: 'Nuevo %s'
|
||||
NoItemsFound: 'No hay ítems encontrados'
|
||||
PRINTEDAT: 'Impreso en'
|
||||
PRINTEDBY: 'Imprimir por'
|
||||
PlaceHolder: 'Buscar {type}'
|
||||
PlaceHolderWithLabels: 'Buscar {type} por {name}'
|
||||
RelationSearch: 'Buscar relación'
|
||||
ResetFilter: Resetear
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
DeletePermissionsFailure: 'No borrar permisos'
|
||||
NEXT: Siguiente
|
||||
PREVIOUS: Anterior
|
||||
GridFieldDetailForm:
|
||||
@ -195,7 +195,7 @@ es_MX:
|
||||
TEXT2: 'vínculo para restablecer la contraseña'
|
||||
TEXT3: para
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
AddRole: 'Agrega un rol para este grupo'
|
||||
CHANGEPASSWORDTEXT1: 'Usted ha cambiado su contraseña'
|
||||
CHANGEPASSWORDTEXT2: 'Ahora puedes utilizar las siguientes credenciales para ingresar:'
|
||||
Code: 'Código del grupo'
|
||||
@ -203,10 +203,10 @@ es_MX:
|
||||
DefaultGroupTitleContentAuthors: 'Autores de Contenido'
|
||||
Description: Descripción
|
||||
EMAIL: 'Correo Electrónico'
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
GroupReminder: 'Si eliges el grupo superior, este grupo tomará todos sus roles'
|
||||
HELLO: Hey
|
||||
Locked: '¿Bloqueado?'
|
||||
NoRoles: 'No roles found'
|
||||
NoRoles: 'No se encontraron roles'
|
||||
PASSWORD: Contraseña
|
||||
Parent: 'Grupo ascendente'
|
||||
RolesAddEditLink: 'Agregar/modificar roles'
|
||||
@ -215,8 +215,8 @@ es_MX:
|
||||
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>'
|
||||
Help1: "<p>Importar usuarios en <em>formato CSV</em> (valores separados por comas). <small><a href=\"#\" class=\"toggle-advanced\">Mostrar uso avanzado</a></small></p>\\n"
|
||||
Help2: '<div class="advanced"><h4>Uso Avanzado</h4><ul><li>Columnas permitidas: <em>%s</em></li><li>Usuarios existents son relacionados por su <em>Código</em> único, y actualizados con cualquier valor nuevo desde el archivo importado.</li><li>Grupos pueden see asignados por la columna Grupos. Los grupos son identificados por su <em>código</em>, multiples grupos pueden ser separados por comas. Grupos existentes no son eliminados.</li></ul></div>'
|
||||
ResultCreated: 'Created {count} groups'
|
||||
ResultDeleted: '%d grupos eliminados'
|
||||
ResultUpdated: '%d grupos actualizados'
|
||||
@ -226,7 +226,7 @@ es_MX:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: Anclar
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERT: Insertar
|
||||
BUTTONINSERTLINK: 'Insertar enlace'
|
||||
BUTTONREMOVELINK: 'Quitar enlace'
|
||||
BUTTONUpdate: Update
|
||||
@ -236,12 +236,12 @@ es_MX:
|
||||
CSSCLASSLEFT: 'A la izquierda, justificando texto.'
|
||||
CSSCLASSLEFTALONE: 'A la izquierda, en él mismo.'
|
||||
CSSCLASSRIGHT: 'A la derecha, justificando texto.'
|
||||
DETAILS: Details
|
||||
DETAILS: Detalles
|
||||
EMAIL: 'Dirección de correo-e'
|
||||
FILE: Archivo
|
||||
FOLDER: Carpeta
|
||||
FROMCMS: 'From the CMS'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMCMS: 'Desde el CMS'
|
||||
FROMCOMPUTER: 'Desde tu computador'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
@ -249,7 +249,7 @@ es_MX:
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEDIMENSIONS: Dimensiones
|
||||
IMAGEHEIGHTPX: Alto
|
||||
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
|
||||
IMAGETITLE: 'Título del tooltip - para información adicional acerca de la imagen'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: Ancho
|
||||
@ -269,12 +269,12 @@ es_MX:
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: Imagen
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Filtro" GridFieldItemEditView.ss: Go back: "Volver" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Agregar un nuevo renglón'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
DropdownBatchActionsDefault: Acciones
|
||||
HELP: Ayuda
|
||||
PAGETYPE: 'Tipo de página:'
|
||||
PERMAGAIN: 'Usted ha sido desconectado del CMS. Si quiere volver a entrar, introduzca su nombre de usuario y contraseña.'
|
||||
@ -284,13 +284,13 @@ es_MX:
|
||||
PreviewButton: Preview
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
VersionUnknown: unknown
|
||||
VersionUnknown: desconocido
|
||||
LoginAttempt:
|
||||
Email: 'Dirección de Correo Electrónico'
|
||||
IP: 'Dirección IP'
|
||||
Status: Estado
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Agregar grupo'
|
||||
BUTTONCHANGEPASSWORD: 'Cambiar Contraseña'
|
||||
BUTTONLOGIN: Ingresar
|
||||
BUTTONLOGINOTHER: 'Ingresar como alguien más'
|
||||
@ -298,7 +298,7 @@ es_MX:
|
||||
CONFIRMNEWPASSWORD: 'Confirmar Nueva Contraseña'
|
||||
CONFIRMPASSWORD: 'Confirmar contraseña'
|
||||
DefaultAdminFirstname: 'Administrador Predeterminado'
|
||||
DefaultDateTime: default
|
||||
DefaultDateTime: 'Por defecto'
|
||||
EMAIL: 'Correo electrónico'
|
||||
EMPTYNEWPASSWORD: 'La nueva contraseña no puede estar vacía, por favor, inténtelo de nuevo'
|
||||
ENTEREMAIL: 'Por favor ingresa una dirección de correo electrónico para conseguir una contraseña y reiniciar el enlace.'
|
||||
@ -308,8 +308,8 @@ es_MX:
|
||||
ERRORWRONGCRED: 'No parece correcta la dirección de correo-e o la contraseña. Por favor inténtalo de nuevo.'
|
||||
FIRSTNAME: 'Primer Nombre'
|
||||
INTERFACELANG: 'Lenguaje de la interfaz'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'No podemos acceptar see pasword: {password}'
|
||||
LOGGEDINAS: 'Conectado como {name}.'
|
||||
NEWPASSWORD: 'Nueva contraseña'
|
||||
PASSWORD: Contraseña
|
||||
PLURALNAME: Miembros
|
||||
@ -320,8 +320,8 @@ es_MX:
|
||||
SUBJECTPASSWORDRESET: 'Enlace para reasignar su contraseña'
|
||||
SURNAME: Apellido
|
||||
VALIDATIONMEMBEREXISTS: 'Ya existe un miembro con el mismo %s'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
ValidationIdentifierFailed: 'No se puede sobreescribir el miembro existente #{id} con el identificador idéntico ({name} = {value}))'
|
||||
WELCOMEBACK: 'Bienvenido nuevamente, {firstname}'
|
||||
YOUROLDPASSWORD: 'Contraseña anterior'
|
||||
belongs_many_many_Groups: Grupos
|
||||
db_LastVisited: 'Fecha de Última Visita'
|
||||
@ -333,28 +333,28 @@ es_MX:
|
||||
MemberAuthenticator:
|
||||
TITLE: 'Correo-e y Contraseña'
|
||||
MemberDatetimeOptionsetField:
|
||||
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
|
||||
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 (ante meridian) o PM (post meridiano)'
|
||||
Custom: 'A medida'
|
||||
DATEFORMATBAD: 'El formato de fecha es invalido'
|
||||
DAYNOLEADING: 'Dia del mes sin cero a la izquierda'
|
||||
DIGITSDECFRACTIONSECOND: 'Uno o más dígitos representando una fracción decimal de un segundo'
|
||||
FOURDIGITYEAR: 'Año de 4 dígitos'
|
||||
FULLNAMEMONTH: 'Nombre completo del mes (ej: Junio)'
|
||||
HOURNOLEADING: 'Hora sin cero a la izquierda'
|
||||
MINUTENOLEADING: 'Minuto sin cero a la izquierda'
|
||||
MONTHNOLEADING: 'Dígito del mes sin cero'
|
||||
Preview: Previo
|
||||
SHORTMONTH: 'Nombre corto del mes (ej: Jun)'
|
||||
TOGGLEHELP: 'Mostrar la ayuda de formato'
|
||||
TWODIGITDAY: 'Dia del mes de dos dígitos'
|
||||
TWODIGITHOUR: 'Dos dígitos de la hora (00 a 23)'
|
||||
TWODIGITMINUTE: 'Dos dígitos de los minutos (00 a 59)'
|
||||
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'
|
||||
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>'
|
||||
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\">\\n<h4>Uso Avanzado</h4>\\n<ul>\\n<li>Columnas permitidas: <em>%s</em></li>\\n<li>Usuarios existents son relacionados por su <em>Código</em> único, y actualizados con cualquier valor nuevo desde el archivo importado.</li>\\n<li>Grupos pueden see asignados por la column Grupos. Los grupos son identificados por su <em>código</em>, multiples grupos pueden ser separados por comas. Grupos existentes no son eliminados.</li>\\n</ul>\\n</div>"
|
||||
ResultCreated: 'Created {count} members'
|
||||
ResultDeleted: '%d miembros eliminados'
|
||||
ResultNone: 'Sin cambios'
|
||||
@ -362,21 +362,21 @@ es_MX:
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
DELETE: Eliminar
|
||||
DELETEDRECORDS: 'Deleted {count} records.'
|
||||
DELETEDRECORDS: 'Borrados {count} registros'
|
||||
IMPORT: 'Importar desde CSV'
|
||||
IMPORTEDRECORDS: 'Imported {count} records.'
|
||||
IMPORTEDRECORDS: 'Importados {count} registros'
|
||||
NOCSVFILE: 'Por favor navegue hasta el archivo CSV a importar'
|
||||
NOIMPORT: 'Nada por Importar'
|
||||
RESET: Reset
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
RESET: Reiniciar
|
||||
Title: 'Modelo de datos'
|
||||
UPDATEDRECORDS: 'Actualizados {count} registros'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Importe
|
||||
FIELDLABELCURRENCY: Moneda
|
||||
NullableField:
|
||||
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, solo números son aceptados por este campo'
|
||||
Permission:
|
||||
AdminGroup: Administrador
|
||||
CMS_ACCESS_CATEGORY: 'Acceder al CMS'
|
||||
@ -392,7 +392,7 @@ es_MX:
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Roles y permisos de acceso'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Volver
|
||||
VALIDATION: 'Por favor ingresa un número telefónico válido'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Usted no tiene acceso a esta página. Si tiene otra cuenta que pueda tener acceso a ésta página, puede <a href="%s">abrir una sesión abajo</a>.'
|
||||
@ -409,23 +409,23 @@ es_MX:
|
||||
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: 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.'
|
||||
ACCESS_HELP: 'Permitir la visualización, agregar y editar usuarios, así como asignar permisos y roles a ellos'
|
||||
APPLY_ROLES: 'Aplicar roles a grupos'
|
||||
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
|
||||
APPLY_ROLES_HELP: 'Habilidad para editar los roles asignados a un grupo. Requiere el permiso "acceso a la sección de usuarios"'
|
||||
EDITPERMISSIONS: 'Editar permisos para grupos'
|
||||
EDITPERMISSIONS_HELP: 'Habilidad para modificar Permisos y Direcciones IP para un grupo. Requiere permiso para "Acceder a la sección de ''Seguridad´".'
|
||||
GROUPNAME: 'Nombre de grupo'
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
IMPORTUSERS: 'Import users'
|
||||
IMPORTGROUPS: 'Importar grupos'
|
||||
IMPORTUSERS: 'Importar usuarios'
|
||||
MEMBERS: Miembros
|
||||
MENUTITLE: Security
|
||||
MENUTITLE: Seguridad
|
||||
MemberListCaution: 'Precaución: Al remover miembros de esta lista, debe eliminarlos de todos los grupos y de 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.'
|
||||
ROLESDESCRIPTION: 'Los roles son sets de permisos predefinidos y pueden ser asignados a grupos. <br/> Ellos son heredados desde los grupos superiores si es requerido.'
|
||||
TABROLES: Roles
|
||||
Users: Users
|
||||
Users: Usuarios
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: Importar
|
||||
FileFieldLabel: 'Archivo CSV <small>(Extensiones permitidas: *.csv)'
|
||||
@ -452,29 +452,29 @@ es_MX:
|
||||
Print: Imprimir
|
||||
SELECT: 'Seleccione:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
VALIDATEFORMAT: 'Por favor ingresar un formato válido de fecha ({format})'
|
||||
ToggleField:
|
||||
LESS: menos
|
||||
MORE: más
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
DELETEINFO: 'Permanently delete this file from the file store'
|
||||
DOEDIT: Save
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
Dimensions: Dimensions
|
||||
EDITINFO: 'Edit this file'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMFILES: 'From files'
|
||||
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'
|
||||
Saved: Saved
|
||||
ATTACHFILE: 'Adjuntar un archivo'
|
||||
ATTACHFILES: 'Adjuntar archivos'
|
||||
AttachFile: 'Adjuntar un archivo'
|
||||
DELETEINFO: 'Eliminar permanentemente este archivo desde el almacén'
|
||||
DOEDIT: Guardar
|
||||
DROPFILE: 'Arrastrar un archivo'
|
||||
DROPFILES: 'arrastrar archivo aquí'
|
||||
Dimensions: Dimensiones
|
||||
EDITINFO: 'Editar este archivo'
|
||||
FIELDNOTSET: 'Información acerca del archivo no encontrada'
|
||||
FROMCOMPUTER: 'Desde tu computador'
|
||||
FROMFILES: 'Desde archivos'
|
||||
MAXNUMBEROFFILES: 'Máximo número {count} de archivos sobrepasado'
|
||||
MAXNUMBEROFFILESSHORT: 'Solo puedes subir {count} archivos'
|
||||
REMOVE: Remover
|
||||
REMOVEERROR: 'Error removiendo archivo'
|
||||
REMOVEINFO: 'Remover este archivo de aquí, pero no borrarlo del almacén de archivos'
|
||||
STARTALL: 'Comenzar todas'
|
||||
Saved: Guardado
|
||||
Versioned:
|
||||
has_many_Versions: Versiones
|
||||
|
@ -8,7 +8,7 @@ fa_IR:
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 'آخرین تغییرات'
|
||||
OWNER: دارنده
|
||||
SIZE: 'حجم'
|
||||
SIZE: حجم
|
||||
TITLE: عنوان
|
||||
TYPE: نوع
|
||||
URL: نشانی
|
||||
@ -78,9 +78,9 @@ fa_IR:
|
||||
SHOWONCLICKTITLE: 'تغيير كلمه عبور'
|
||||
CreditCardField:
|
||||
FIRST: نخست
|
||||
FOURTH: 'چهارم'
|
||||
SECOND: 'دوم'
|
||||
THIRD: 'سوم'
|
||||
FOURTH: چهارم
|
||||
SECOND: دوم
|
||||
THIRD: سوم
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: $
|
||||
DataObject:
|
||||
@ -93,7 +93,7 @@ fa_IR:
|
||||
HOURS: ساعت
|
||||
MIN: دقیقه
|
||||
MINS: دقیقه
|
||||
MONTH: 'ماه'
|
||||
MONTH: ماه
|
||||
MONTHS: 'ماه ها'
|
||||
SEC: ثانیه
|
||||
SECS: ثانیه
|
||||
@ -103,7 +103,7 @@ fa_IR:
|
||||
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})'
|
||||
@ -121,13 +121,13 @@ fa_IR:
|
||||
ANY: Any
|
||||
LOADING: Loading...
|
||||
File:
|
||||
Content: 'محتوا'
|
||||
Content: محتوا
|
||||
Filename: 'نام پرونده'
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
NOFILESIZE: 'Filesize is zero bytes.'
|
||||
NOVALIDUPLOAD: 'File is not a valid upload'
|
||||
Name: 'نام'
|
||||
Name: نام
|
||||
PLURALNAME: 'فايل ها'
|
||||
SINGULARNAME: فايل
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
@ -202,7 +202,7 @@ fa_IR:
|
||||
DefaultGroupTitleAdministrators: 'مدیران کل'
|
||||
DefaultGroupTitleContentAuthors: 'نویسندگان مطالب'
|
||||
Description: توضحیات
|
||||
EMAIL: 'ايميل'
|
||||
EMAIL: ايميل
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
HELLO: درود
|
||||
Locked: 'بسته شده است؟'
|
||||
@ -212,7 +212,7 @@ fa_IR:
|
||||
RolesAddEditLink: 'اضافه/ویرایش وظیفه'
|
||||
Sort: 'تربیت چیدن'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
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>'
|
||||
@ -275,7 +275,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: 'من متاسفم، شما نمی توانید به آن قسمت از سیستم مدیریت محتوا دسترسی پیدا کنید. اگر میخواهید به عنوان شخص دیگری وارد شوید از قسمت زیر تلاش کنید'
|
||||
@ -306,7 +306,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}.'
|
||||
|
194
lang/fi.yml
194
lang/fi.yml
@ -16,12 +16,12 @@ fi:
|
||||
ChooseFiles: 'Valitse tiedostot'
|
||||
DRAGFILESHERE: 'Raahaa tiedotot tähän'
|
||||
DROPAREA: Pudotusalue
|
||||
EDITALL: 'Edit all'
|
||||
EDITALL: 'Muokkaa kaikkia'
|
||||
EDITANDORGANIZE: 'Muokkaa & järjestele'
|
||||
FILES: Files
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
FILES: Tiedostot
|
||||
TOTAL: Yhteensä
|
||||
TOUPLOAD: 'Valitse siirrettävä(t) tiedosto(t)...'
|
||||
UPLOADINPROGRESS: 'Ole hyvä ja odota... siirto käynnissä'
|
||||
UPLOADOR: TAI
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Tasaus
|
||||
@ -55,10 +55,10 @@ fi:
|
||||
Boolean:
|
||||
ANY: Yhtään
|
||||
0: Ei
|
||||
LOGOUT: 'Log out'
|
||||
LOGOUT: 'Kirjaudu ulos'
|
||||
1: Kyllä
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
ACCESS: 'Pääsy ''{title}'' -osioon'
|
||||
ACCESSALLINTERFACES: 'Pääsy kaikkiin CMS-osioihin'
|
||||
ACCESSALLINTERFACESHELP: 'Ohittaa tarkemmat käyttöoikeudet.'
|
||||
SAVE: Tallenna
|
||||
@ -69,12 +69,12 @@ fi:
|
||||
- Kyllä
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Sulje ponnahdusikkuna'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: 'Lisättiin {name}'
|
||||
SUCCESSEDIT: 'Tallennettu %s %s %s'
|
||||
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: 'Salasanan on oltava vähintään {min} merkkiä pitkä.'
|
||||
BETWEEN: 'Salasanan on oltava väh. {min} ja enintään {max} merkkiä pitkä.'
|
||||
MAXIMUM: 'Salasanan voi olla enintään {max} merkkiä pitkä.'
|
||||
SHOWONCLICKTITLE: 'Vaihda salasana'
|
||||
CreditCardField:
|
||||
FIRST: ensimmäinen
|
||||
@ -97,86 +97,86 @@ fi:
|
||||
MONTHS: kuukaudet
|
||||
SEC: sek.
|
||||
SECS: sek.
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
TIMEDIFFAGO: '{difference} sitten'
|
||||
TIMEDIFFIN: '» {difference}'
|
||||
YEAR: vuosi
|
||||
YEARS: vuodet
|
||||
DateField:
|
||||
NOTSET: 'ei asetettu'
|
||||
TODAY: tänään
|
||||
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: 'Ole hyvä ja kirjaa päivämäärä sallitussa muodossa ({format})'
|
||||
VALIDDATEMAXDATE: 'Päivämäärän on oltava vanhempi tai sovittava asetettuun maksimiin ({date})'
|
||||
VALIDDATEMINDATE: 'Päivämäärän on oltava uudempi tai sovittava vähintään asetettuun minimiin ({date})'
|
||||
Director:
|
||||
ADD: Lisää
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
INVALID_REQUEST: 'Pyyntö on virheellinen'
|
||||
DropdownField:
|
||||
CHOOSE: (Valitse)
|
||||
EmailField:
|
||||
VALIDATION: 'Please enter an email address'
|
||||
VALIDATION: 'Anna sähköpostiosoite, ole hyvä.'
|
||||
Email_BounceRecord:
|
||||
PLURALNAME: 'Palautetut sähköpostiviestit'
|
||||
SINGULARNAME: 'Palautettu sähköpostiviesti'
|
||||
Enum:
|
||||
ANY: Yhtään
|
||||
LOADING: Loading...
|
||||
LOADING: Ladataan...
|
||||
File:
|
||||
Content: Sisältö
|
||||
Filename: Tiedostonimi
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
INVALIDEXTENSION: 'Tiedostopääte ei ole sallittu (sallitut muodot: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Tiedostopääte ei ole sallittu'
|
||||
NOFILESIZE: 'Tiedostokoko on nolla tavua.'
|
||||
NOVALIDUPLOAD: 'Tiedosto ei ole kelvollinen ladattavaksi'
|
||||
Name: Nimi
|
||||
PLURALNAME: Tiedostot
|
||||
SINGULARNAME: Tiedosto
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
TOOLARGE: 'Tiedostokoko on liian suuri: maks. sallittu koko on {size}'
|
||||
TOOLARGESHORT: 'Sallittu tiedostokoko ylitetty {size}'
|
||||
Title: Otsikko
|
||||
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}'
|
||||
ATTACH: 'Liitä {type}'
|
||||
ATTACHONCESAVED: '{type} voidaan liittää, kun olet tallentanut tietueen ensimmäistä kertaa.'
|
||||
ATTACHONCESAVED2: 'Tiedostoja voidaan liittää, kun olet tallentanut tietueen ensimmäisen kerran.'
|
||||
DELETE: 'Poista {type}'
|
||||
DISALLOWEDFILETYPE: 'Tiedostotyyppin siirtoa ei ole sallittu'
|
||||
FILE: Tiedosto
|
||||
FROMCOMPUTER: tietokoneeltasi
|
||||
FROMFILESTORE: Tiedostovarastosta
|
||||
NOSOURCE: 'Valitse lähdetiedosto liitettäväksi'
|
||||
REPLACE: 'Replace {type}'
|
||||
REPLACE: 'Korvaa {type}'
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Import
|
||||
SEARCHLISTINGS: Search
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
IMPORT_TAB_HEADER: Tuo
|
||||
SEARCHLISTINGS: Etsi
|
||||
SYNCRESULTS: 'Synkronointi valmis: {createdcount} kohdetta luotu, {deletedcount} kohdetta poistettu'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s on pakollinen.'
|
||||
TITLE: 'Kuvansiirtoikkuna (iFrame)'
|
||||
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
|
||||
VALIDATIONCREDITNUMBER: 'Tarkista, ovatko antamasi luottokortin numerot ({number}) oikein'
|
||||
VALIDATIONNOTUNIQUE: 'Syötetty arvo ei ole yksilöllinen'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Salasanat eivät täsmää'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'Salasana ei voi olla tyhjä'
|
||||
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
|
||||
VALIDATIONSTRONGPASSWORD: 'Salasanassa on oltava vähintään yksi numero ja yksi kirjain'
|
||||
VALIDATOR: Tarkistin
|
||||
VALIDCURRENCY: 'Please enter a valid currency'
|
||||
VALIDCURRENCY: 'Ole hyvä ja valitse voimassa oleva valuutta'
|
||||
FormField:
|
||||
NONE: 'Ei yhtään'
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Delete
|
||||
DELETE_DESCRIPTION: Poista
|
||||
Delete: Poista
|
||||
UnlinkRelation: 'Pura linkitys'
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Add: 'Lisää {name}'
|
||||
Filter: Suodatin
|
||||
FilterBy: 'Filter by '
|
||||
FilterBy: 'Suodata »'
|
||||
Find: Etsi
|
||||
LEVELUP: 'Level up'
|
||||
LEVELUP: 'Taso ylös'
|
||||
LinkExisting: 'Linkitä olemassaoleva'
|
||||
NewRecord: 'Uusi %s'
|
||||
NoItemsFound: 'Ei kohteita'
|
||||
PRINTEDAT: Tulostettu
|
||||
PRINTEDBY: Tulostaja
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
PlaceHolder: 'Etsi {type}'
|
||||
PlaceHolderWithLabels: 'Etsi {type} » {name}'
|
||||
RelationSearch: Relaatiohaku
|
||||
ResetFilter: Nollaa
|
||||
GridFieldAction_Delete:
|
||||
@ -184,13 +184,13 @@ fi:
|
||||
NEXT: Seuraava
|
||||
PREVIOUS: Edellinen
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
Create: Luo
|
||||
Delete: Poista
|
||||
DeletePermissionsFailure: 'Ei oikeuksia poistamiseen'
|
||||
Deleted: 'Poistettiin %s %s'
|
||||
HELLO: Hei
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
Save: Tallenna
|
||||
Saved: 'Tallennettu %s %s'
|
||||
TEXT1: 'Tässä on sinun'
|
||||
TEXT2: 'salasanan tyhjäys -linkki'
|
||||
TEXT3: henkilölle
|
||||
@ -206,7 +206,7 @@ fi:
|
||||
GroupReminder: 'Valitessasi isäntäryhmän, roolit periytyvät tähän ryhmään'
|
||||
HELLO: Hei
|
||||
Locked: 'Lukittu?'
|
||||
NoRoles: 'Roolia ei löytynyt'
|
||||
NoRoles: 'Rooleja ei löytynyt'
|
||||
PASSWORD: Salasana
|
||||
Parent: Yliryhmä
|
||||
RolesAddEditLink: 'Lisää/muokkaa rooleja'
|
||||
@ -217,19 +217,19 @@ fi:
|
||||
GroupImportForm:
|
||||
Help1: '<p>Tuo yksi tai useampi ryhmä <em>CSV</em>-muotoisena (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 ryhmät kohdistetaan niiden uniikin <em>Code</em>-arvolla, ja päivitetään uudet arvot tuodusta tiedostosta.</li>\\n<li>Ryhmien hierarkiat voidaan luoda <em>ParentCode</em>-palstalla.</li>\\n<li>Oikeustasot voidaan kohdistaa <em>PermissionCode</em>-palstalla. Olemassa olevia oikeustasoja ei poisteta.</li>\\n</ul>\\n</div>"
|
||||
ResultCreated: 'Created {count} groups'
|
||||
ResultCreated: 'Luotiin {count} ryhmä(ä)'
|
||||
ResultDeleted: 'Poistettu %d ryhmää'
|
||||
ResultUpdated: 'Päivitetty %d ryhmää'
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
InfiniteLoopNotAllowed: '"{type}" -hierarkiasta löytyi loputon silmukka. Ole hyvä ja muuta isäntää korjataksesi ongelman.'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ADDURL: 'Lisää URL-osoite'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Tarkat tiedot & mitat'
|
||||
ANCHORVALUE: Ankkuri
|
||||
BUTTONINSERT: Liitä
|
||||
BUTTONINSERTLINK: 'Lisää linkki'
|
||||
BUTTONREMOVELINK: 'Poista linkki'
|
||||
BUTTONUpdate: Update
|
||||
BUTTONUpdate: Päivitä
|
||||
CAPTIONTEXT: Kuvateksti
|
||||
CSSCLASS: Tasaus/tyyli
|
||||
CSSCLASSCENTER: 'Keskellä omillaan.'
|
||||
@ -242,18 +242,18 @@ fi:
|
||||
FOLDER: Kansio
|
||||
FROMCMS: CMS-järjestelmästä
|
||||
FROMCOMPUTER: 'Omalta tietokoneeltasi'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
FROMWEB: Webistä
|
||||
FindInFolder: 'Etsi kansiosta'
|
||||
IMAGEALT: 'Vaihtoehtoinen teksti (alt)'
|
||||
IMAGEALTTEXT: 'Vaihtoehtoinen teksti (alt) - näytetään jos kuvaa ei voida näyttää'
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEALTTEXTDESC: 'Näytetään ruudunlukuohjelmille tai jos kuvia ei voi näyttää'
|
||||
IMAGEDIMENSIONS: Mitat
|
||||
IMAGEHEIGHTPX: Korkeus
|
||||
IMAGETITLE: 'Otsikko (tooltip) - kuvan lisätietoja varten'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGETITLETEXT: 'Otsikkoteksti (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'Kuvan lisätiedot'
|
||||
IMAGEWIDTHPX: Leveys
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
INSERTMEDIA: 'Liitä media'
|
||||
LINK: 'Lisää/muokkaa linkki(ä) valittuun tekstiin'
|
||||
LINKANCHOR: 'Ankkuroi tähän sivuun'
|
||||
LINKDESCR: 'Linkin kuvaus'
|
||||
@ -265,15 +265,15 @@ fi:
|
||||
LINKTO: Linkki
|
||||
PAGE: Sivu
|
||||
URL: URL-osoite
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
URLNOTANOEMBEDRESOURCE: 'URL-osoitetteesta ''{url}'' ei voitu liittää mediaa'
|
||||
UpdateMEDIA: 'Päivitä media'
|
||||
ImageField:
|
||||
IMAGE: Kuva
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Suodata" GridFieldItemEditView.ss: Go back: "Takaisin" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Lisää uusi rivi'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
CANT_REORGANISE: 'Sinulla ei ole oikeuksia mennä ylemmän tason sivuille. Muutoksiasi ei tallennettu.'
|
||||
DELETED: Poistettu.
|
||||
DropdownBatchActionsDefault: Toimenpiteet
|
||||
HELP: Ohje
|
||||
PAGETYPE: 'Sivun tyyppi:'
|
||||
@ -281,16 +281,16 @@ fi:
|
||||
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.'
|
||||
PLEASESAVE: 'Tätä sivua ei voitu päivittää, koska sitä ei ole vielä tallennettu. Tallenna sivu.'
|
||||
PreviewButton: Preview
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
PreviewButton: Esikatselu
|
||||
REORGANISATIONSUCCESSFUL: 'Hakemistopuu järjestettiin uudelleen onnistuneesti.'
|
||||
SAVEDUP: Tallennettu.
|
||||
VersionUnknown: tuntematon
|
||||
LoginAttempt:
|
||||
Email: Sähköpostiosoite
|
||||
IP: IP-osoite
|
||||
Status: Tila
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Lisää ryhmä'
|
||||
BUTTONCHANGEPASSWORD: 'Vaihda salasana'
|
||||
BUTTONLOGIN: 'Kirjaudu sisään'
|
||||
BUTTONLOGINOTHER: 'Kirjaudu jonain muuna'
|
||||
@ -308,8 +308,8 @@ fi:
|
||||
ERRORWRONGCRED: 'Tämä ei näytä oikealta sähköpostiosoitteelta tai salasanalta. Yritä uudelleen.'
|
||||
FIRSTNAME: Etunimi
|
||||
INTERFACELANG: 'Käyttöliittymän kieli'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'Salasana ({password}) ei ole kelvollinen'
|
||||
LOGGEDINAS: 'Olet kirjautuneena nimellä {name}.'
|
||||
NEWPASSWORD: 'Uusi salasana'
|
||||
PASSWORD: Salasana
|
||||
PLURALNAME: Jäsenet
|
||||
@ -320,8 +320,8 @@ fi:
|
||||
SUBJECTPASSWORDRESET: 'Salasanasi palautuslinkki'
|
||||
SURNAME: Sukunimi
|
||||
VALIDATIONMEMBEREXISTS: 'Rekisteröityneellä käyttäjällä on jo käytössä tämä sähköpostiosoite.'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
ValidationIdentifierFailed: 'Olemassa olevan käyttäjän id:n #{id} päälle ei voida kirjoittaa samalla tunnisteella ({name} = {value}))'
|
||||
WELCOMEBACK: 'Tervetuloa takaisin, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vanha salasanasi'
|
||||
belongs_many_many_Groups: Ryhmät
|
||||
db_LastVisited: 'Viimeisin vierailu:'
|
||||
@ -355,44 +355,44 @@ fi:
|
||||
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>"
|
||||
ResultCreated: 'Created {count} members'
|
||||
ResultCreated: 'Luotiin {count} käyttäjä(ä)'
|
||||
ResultDeleted: 'Poistettu %d jäsentä'
|
||||
ResultNone: 'Ei muutoksia'
|
||||
ResultUpdated: 'Updated {count} members'
|
||||
ResultUpdated: 'Päivitettiin {count} käyttäjä(ä)'
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
DELETE: Poista
|
||||
DELETEDRECORDS: 'Deleted {count} records.'
|
||||
DELETEDRECORDS: 'Poistettiin {count} tietuetta'
|
||||
IMPORT: 'Tuo CSV:stä'
|
||||
IMPORTEDRECORDS: 'Imported {count} records.'
|
||||
IMPORTEDRECORDS: 'Tuotiin {count} tietuetta'
|
||||
NOCSVFILE: 'Selaa ja tuo CSV-tiedosto'
|
||||
NOIMPORT: 'Ei tuotavia'
|
||||
RESET: Nollaa
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
Title: Datamallit
|
||||
UPDATEDRECORDS: 'Päivitettiin {count} tietuetta'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Määrä
|
||||
FIELDLABELCURRENCY: Valuutta
|
||||
NullableField:
|
||||
IsNullLabel: 'On nolla'
|
||||
NumericField:
|
||||
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
|
||||
VALIDATION: '''{value}'' ei ole numero: tähän kenttään hyväksytään vain numeroita'
|
||||
Permission:
|
||||
AdminGroup: Järjestelmänvalvoja
|
||||
CMS_ACCESS_CATEGORY: CMS-pääsy
|
||||
FULLADMINRIGHTS: 'Täydet ylläpitäjän oikeudet'
|
||||
FULLADMINRIGHTS_HELP: 'Merkitsee ja ohittaa kaikki muut määritellyt käyttöoikeudet.'
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
IMPORTSPECFIELDS: 'Tietokannan sarakkeet'
|
||||
IMPORTSPECRELATIONS: Yhteydet
|
||||
PermissionCheckboxSetField:
|
||||
AssignedTo: 'assigned to "{title}"'
|
||||
FromGroup: 'inherited from group "{title}"'
|
||||
FromRole: 'inherited from role "{title}"'
|
||||
AssignedTo: 'valittiin "{title}"'
|
||||
FromGroup: 'periytyivät ryhmästä "{title}"'
|
||||
FromRole: 'periytyivät roolista "{title}"'
|
||||
FromRoleOnGroup: 'periytynyt roolista "%s" ryhmässä "%s"'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Roolit ja käyttöoikeudet'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Takaisin
|
||||
VALIDATION: 'Kirjoita pätevä puhelinnumero'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Sinulla ei ole oikeuksia tälle sivulle. Jos sinulla on toinen tili, jolla on oikeudet tälle sivulle, voit kirjautua niillä sisään.'
|
||||
@ -404,10 +404,10 @@ fi:
|
||||
LOGGEDOUT: 'Kirjauduit ulos. Jos haluat kirjautua sisään, syötä tietosi alle.'
|
||||
LOGIN: 'Kirjaudu sisään'
|
||||
NOTEPAGESECURED: 'Tämä sivu on suojattu. Syötä tunnistetietosi alle ja annamme sinulle oikeat oikeudet.'
|
||||
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>Salasanan nollauslinkki on virheellinen tai vanhentunut.</p><p>Voit pyytää uuden <a href="{link1}">napsauttamalla tästä</a> tai vaihtaa salasanasi <a href="{link2}">kirjautumisen jälkeen</a>.</p>'
|
||||
NOTERESETPASSWORD: 'Syötä sähköpostiosoitteesi ja lähetämme sinulle linkin, jonka avulla saat palautettua salasanasi'
|
||||
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: 'Salasanan palautuslinkki lähetettiin osoitteeseen ''{email}'''
|
||||
PASSWORDSENTTEXT: 'Kiitos! Salasanan palautuslinkki lähetettiin osoitteeseen ''{email}'', joka on liitettynä tähän käyttäjätiliin.'
|
||||
SecurityAdmin:
|
||||
ACCESS_HELP: 'Oikeuttaa käyttäjien katselun, lisäämisen ja muokkaamisen, kuten myös käyttöoikeuksien ja roolien määrittämisen heille.'
|
||||
APPLY_ROLES: 'Aseta roolit ryhmille'
|
||||
@ -418,7 +418,7 @@ fi:
|
||||
IMPORTGROUPS: 'Tuo ryhmiä'
|
||||
IMPORTUSERS: 'Tuo käyttäjiä'
|
||||
MEMBERS: Jäsenet
|
||||
MENUTITLE: Security
|
||||
MENUTITLE: Tietosuoja
|
||||
MemberListCaution: 'Varoitus: Jäsenten poistaminen listalta poistaa ne kaikista ryhmistä ja tietokannasta'
|
||||
NEWGROUP: 'Uusi ryhmä'
|
||||
PERMISSIONS: Oikeudet
|
||||
@ -430,9 +430,9 @@ fi:
|
||||
BtnImport: Tuonti
|
||||
FileFieldLabel: 'CSV-tiedosto <small>(Sallitut päätteet: *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: Edit
|
||||
FILTER: Filter
|
||||
IMPORT: Import
|
||||
Edit: Muokkaa
|
||||
FILTER: Suodin
|
||||
IMPORT: Tuo
|
||||
VIEWFIRST: 'Näytä ensimmäinen'
|
||||
VIEWLAST: 'Näytä viimeinen'
|
||||
VIEWNEXT: 'Näytä seuraava'
|
||||
@ -443,7 +443,7 @@ fi:
|
||||
TABMAIN: Yleiset
|
||||
TableField:
|
||||
ADDITEM: 'Lisää %s'
|
||||
ISREQUIRED: 'In %s ''%s'' is required'
|
||||
ISREQUIRED: 'Kohteessa %s on ''%s'' pakollinen'
|
||||
SORTASC: 'Järjestä nousevasti'
|
||||
SORTDESC: 'Järjestä laskevasti'
|
||||
TableListField:
|
||||
@ -452,7 +452,7 @@ fi:
|
||||
Print: Tulosta
|
||||
SELECT: 'Valitse:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
VALIDATEFORMAT: 'Ole hyvä ja kirjaa päivämäärä sallitussa muodossa ({format})'
|
||||
ToggleField:
|
||||
LESS: vähemmän
|
||||
MORE: lisää
|
||||
@ -464,14 +464,14 @@ fi:
|
||||
DOEDIT: Tallenna
|
||||
DROPFILE: 'Pudota tiedosto'
|
||||
DROPFILES: 'pudota tiedostot'
|
||||
Dimensions: Dimensions
|
||||
Dimensions: Mitat
|
||||
EDITINFO: 'Muokkaa tätä tiedostoa'
|
||||
FIELDNOTSET: 'Tietoja tiedostosta ei löytynyt'
|
||||
FROMCOMPUTER: 'Omalta tietokoneeltasi'
|
||||
FROMFILES: Tiedostoista
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
MAXNUMBEROFFILES: 'Suurin sallittu määrä ({count}) tiedostoja ylitetty.'
|
||||
MAXNUMBEROFFILESSHORT: 'Voidaan siirtää vain {count} tiedostoa'
|
||||
REMOVE: Poista
|
||||
REMOVEERROR: 'Virhe poistettaessa tiedostoa'
|
||||
REMOVEINFO: 'Poista tiedosto, mutta säilytä se tiedostovarastossa'
|
||||
STARTALL: 'Aloita kaikki'
|
||||
|
98
lang/fr.yml
98
lang/fr.yml
@ -21,7 +21,7 @@ fr:
|
||||
FILES: Fichiers
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choisissez les fichiers à télécharger'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADINPROGRESS: 'Patientez s''il vous plaît… téléchargement en cours '
|
||||
UPLOADOR: OU
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Alignement
|
||||
@ -69,7 +69,7 @@ fr:
|
||||
- Oui
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Ferme Popup'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: '{name} ajouté'
|
||||
SUCCESSEDIT: 'Sauvegardé %s %s %s'
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Passwords must be at least {min} characters long.'
|
||||
@ -97,16 +97,16 @@ fr:
|
||||
MONTHS: mois
|
||||
SEC: seconde
|
||||
SECS: secondes
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
TIMEDIFFAGO: 'Il y a {difference}'
|
||||
TIMEDIFFIN: 'Dans {difference}'
|
||||
YEAR: année
|
||||
YEARS: années
|
||||
DateField:
|
||||
NOTSET: 'pas d''ensemble'
|
||||
TODAY: 'aujourd''hui'
|
||||
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: 'Saisissez la date au format valide ({format})'
|
||||
VALIDDATEMAXDATE: 'La date doit être antérieure ou égale à celle qui a été autorisée ({date})'
|
||||
VALIDDATEMINDATE: 'La date doit être plus récente ou égale à celle qui a été autorisée ({date})'
|
||||
Director:
|
||||
ADD: Ajouter
|
||||
INVALID_REQUEST: 'Requête non valide'
|
||||
@ -123,7 +123,7 @@ fr:
|
||||
File:
|
||||
Content: Contenu
|
||||
Filename: 'Nom du fichier'
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSION: 'Cette extension n’est pas autorisée (les valides sont : {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
NOFILESIZE: 'La taille du fichier est de zéro bytes.'
|
||||
NOVALIDUPLOAD: 'Le fichier n’est pas valide pour le téléversement'
|
||||
@ -147,7 +147,7 @@ fr:
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Importer
|
||||
SEARCHLISTINGS: Rechercher
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
SYNCRESULTS: 'Synchronisation terminée : {createdcount} éléments créés, {deletedcount} éléments supprimés '
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s est requis'
|
||||
TITLE: 'Iframe de chargement d’images'
|
||||
@ -169,14 +169,14 @@ fr:
|
||||
Filter: Filtrer
|
||||
FilterBy: 'Filtrer par'
|
||||
Find: Trouver
|
||||
LEVELUP: 'Level up'
|
||||
LEVELUP: 'Monter d’un niveau'
|
||||
LinkExisting: 'Lien existant'
|
||||
NewRecord: 'Nouveau %s'
|
||||
NoItemsFound: 'Aucun élément n’a été trouvé.'
|
||||
PRINTEDAT: 'Imprimé le'
|
||||
PRINTEDBY: 'Imprimé par'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
PlaceHolder: 'Rechercher {type}'
|
||||
PlaceHolderWithLabels: 'Rechercher {type} par {name}'
|
||||
RelationSearch: 'Rechercher relations'
|
||||
ResetFilter: Réinitialiser
|
||||
GridFieldAction_Delete:
|
||||
@ -186,8 +186,8 @@ fr:
|
||||
GridFieldDetailForm:
|
||||
Create: Créer
|
||||
Delete: Supprimer
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
DeletePermissionsFailure: 'Vous n’avez pas les autorisations pour supprimer'
|
||||
Deleted: '%s %s supprimés'
|
||||
HELLO: Salut
|
||||
Save: Enregistrer
|
||||
Saved: '%s %s sauvegardés'
|
||||
@ -197,7 +197,7 @@ fr:
|
||||
Group:
|
||||
AddRole: 'Ajouter un rôle à ce groupe '
|
||||
CHANGEPASSWORDTEXT1: 'Vous avez modifié votre mot de passe pour'
|
||||
CHANGEPASSWORDTEXT2: 'Vous pouvez maintenant utiliser les détails suivants pour vous connecter :'
|
||||
CHANGEPASSWORDTEXT2: 'Vous pouvez maintenant utiliser les identifiants suivants pour vous connecter :'
|
||||
Code: 'Code de groupe'
|
||||
DefaultGroupTitleAdministrators: Administrateur
|
||||
DefaultGroupTitleContentAuthors: 'Auteurs du contenu'
|
||||
@ -212,11 +212,11 @@ fr:
|
||||
RolesAddEditLink: 'Ajouter/éditer les rôles'
|
||||
Sort: 'Ordre de tri'
|
||||
TITLE: 'Fenêtre de chargement d''images'
|
||||
has_many_Permissions: Permissions
|
||||
has_many_Permissions: Autorisations
|
||||
many_many_Members: Membres
|
||||
GroupImportForm:
|
||||
Help1: '<p>Importer un ou plusieurs groupe(s) au format <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Montrer l''usage avancé</a></small></p>'
|
||||
Help2: '<div class="advanced"><h4>Advanced usage</h4><ul><li>Colonnes permises : <em>%s</em></li><li>Les groupes existants dont le <em>Code</em> valeur concorde, sont mis à jour avec les nouvelles valeurs du fichier importé.</li><li>Une hiérarchie de groupe peut être créé avec la colonne <em>ParentCode</em>.</li><li>Les codes de permissions peuvent être assignés grâce à la colonne <em>PermissionCode</em>. Les codes permissions ne sont pas effacés. </li></ul></div>'
|
||||
Help2: "<div class=\"advanced\">\\n<h4>Utilisations avancée</h4>\\n<ul>\\n<li>Colonnes autorisées : <em>%s</em></li>\\n<li>Les groupes existants dont la valeur <em>Code</em> concorde seront mis à jour avec les données du fichier importé.</li>\\n<li>Des hiérarchies entre groupes peuvent être créées à l’aide de la colonne <em>ParentCode</em>.</li>\\n<li>Des autorisations peuvent être assignées par la colonne <em>PermissionCode</em>. Les autorisations existantes ne seront pas effacées.</li>\\n</ul>\\n</div>"
|
||||
ResultCreated: 'Created {count} groups'
|
||||
ResultDeleted: '%d groupes supprimés'
|
||||
ResultUpdated: '%d groupes mises à jour'
|
||||
@ -224,7 +224,7 @@ fr:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Détails & dimensions'
|
||||
ANCHORVALUE: Ancre
|
||||
BUTTONINSERT: Insérer
|
||||
BUTTONINSERTLINK: 'Insérer un lien'
|
||||
@ -243,17 +243,17 @@ fr:
|
||||
FROMCMS: 'Depuis le SGC'
|
||||
FROMCOMPUTER: 'Depuis votre ordinateur'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
FindInFolder: 'Trouver dans un dossier'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
IMAGEALTTEXT: 'Texte alternatif (alt) - s''affiche si l''image ne peut être affichée.'
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEDIMENSIONS: Dimensions
|
||||
IMAGEHEIGHTPX: Hauteur
|
||||
IMAGETITLE: 'Texte du titre (tooltip) - informations à propos de l''image'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGETITLETEXT: 'Texte du titre (info-bulle)'
|
||||
IMAGETITLETEXTDESC: 'Autres informations à propos de l’image'
|
||||
IMAGEWIDTHPX: Largeur
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
INSERTMEDIA: 'Insérer un support audiovisuel'
|
||||
LINK: Lien
|
||||
LINKANCHOR: 'Ancre sur cette page'
|
||||
LINKDESCR: 'Description du lien'
|
||||
@ -266,21 +266,21 @@ fr:
|
||||
PAGE: Page
|
||||
URL: URL
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
UpdateMEDIA: 'Mettre à jour le support audiovisuel'
|
||||
ImageField:
|
||||
IMAGE: Image
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Appliquer le filtre" GridFieldItemEditView.ss: Go back: "Revenir en arrière" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Ajouter une nouvelle ligne'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
CANT_REORGANISE: 'Vous n’avez pas l’autorisation de modifier les pages de premier niveau. Vos modifications n’ont pas été enregistrées.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
HELP: Aide
|
||||
PAGETYPE: 'Type de page :'
|
||||
PAGETYPE: 'Type de page :'
|
||||
PERMAGAIN: 'Vous avez été déconnecté du CMS. Si vous voulez vous reconnecter, entrez un nom d''utilisateur et un mot de passe ci-dessous.'
|
||||
PERMALREADY: 'Désolé, mais vous ne pouvez pas accéder à cette partie du CMS. Si vous voulez changer d''identité, faites le ci-dessous'
|
||||
PERMDEFAULT: 'Saisissez votre adresse de courriel et votre mot de passe pour accéder au CMS.'
|
||||
PLEASESAVE: 'Enregistez la page s''il vous plaît : Cette page ne pouvait pas être actualisée, car elle n''a pas encore été enregistrée.'
|
||||
PLEASESAVE: 'Enregistrez la page s’il vous plaît : elle ne pouvait pas être mise à jour car elle n’avait pas encore été sauvegardée.'
|
||||
PreviewButton: Preview
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
@ -308,8 +308,8 @@ fr:
|
||||
ERRORWRONGCRED: 'Il semble que ce ne soit pas le bon email ou mot de passe. Essayez encore s''il vous plaît.'
|
||||
FIRSTNAME: Prénom
|
||||
INTERFACELANG: 'Langue de l''interface'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'Nous ne pouvons pas accepter le mot de passe {password}'
|
||||
LOGGEDINAS: 'Vous êtes connecté comme {name}.'
|
||||
NEWPASSWORD: 'Nouveau mot de passe'
|
||||
PASSWORD: 'Mot de passe'
|
||||
PLURALNAME: Membres
|
||||
@ -320,8 +320,8 @@ fr:
|
||||
SUBJECTPASSWORDRESET: 'Lien pour modifier votre mot de passe'
|
||||
SURNAME: 'Nom de famille'
|
||||
VALIDATIONMEMBEREXISTS: 'Il existe déjà un membre avec cet email'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
ValidationIdentifierFailed: 'On ne peut pas réenregistrer le membre nº {id} avec un identifiant identique ({name} = {value}))'
|
||||
WELCOMEBACK: 'Bienvenue {firstname}'
|
||||
YOUROLDPASSWORD: 'Votre ancien mot de passe'
|
||||
belongs_many_many_Groups: Groupes
|
||||
db_LastVisited: 'Date de la dernière visite'
|
||||
@ -354,7 +354,7 @@ fr:
|
||||
TWODIGITYEAR: 'L’année sur deux chiffres'
|
||||
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"><h4>Advanced usage</h4><ul><li>Colonnes permises : <em>%s</em></li><li>Les membres existants dont le <em>Code</em> valeur concorde, sont mis à jour avec les nouvelles valeurs du fichier importé.</li><li>Les groupes peuvent être assignés par la colonne <em>Groups</em>. Les groupes sont identifiés par <em>Code</em> , les groupes multiples sont séparés par une virgule. Les groupes existants ne sont pas effacés.</li></ul></div>'
|
||||
Help2: "<div class=\"advanced\">\\n<h4>Utilisations avancée</h4>\\n<ul>\\n<li>Colonnes autorisées : <em>%s</em></li>\\n<li>Les membres existants dont la valeur <em>Code</em> concorde seront mis à jour avec les données du fichier importé.</li>\\n<li>Des groupes peuvent être assignés par la colonne <em>Groups</em>. Plusieurs groupes, identifiés par leur <em>Code</em>, peuvent être assignés en les séparant par des virgules. Les groupes existants ne seront pas effacés.</li>\\n</ul>\\n</div>\\n"
|
||||
ResultCreated: 'Created {count} members'
|
||||
ResultDeleted: '%d membres supprimés'
|
||||
ResultNone: 'Aucun changements'
|
||||
@ -376,18 +376,18 @@ fr:
|
||||
NullableField:
|
||||
IsNullLabel: 'Est Null'
|
||||
NumericField:
|
||||
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
|
||||
VALIDATION: '« {value} » n’est pas un chiffre, seule donnée acceptée dans ce champ '
|
||||
Permission:
|
||||
AdminGroup: Administrateur
|
||||
CMS_ACCESS_CATEGORY: 'Accès au CMS'
|
||||
FULLADMINRIGHTS: 'Droits d''administration complets'
|
||||
FULLADMINRIGHTS_HELP: 'Implique et écrase toute les autres permissions assignées.'
|
||||
FULLADMINRIGHTS_HELP: 'Implique et prévaut sur toutes les autres autorisations assignées.'
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
PermissionCheckboxSetField:
|
||||
AssignedTo: 'assigned to "{title}"'
|
||||
FromGroup: 'inherited from group "{title}"'
|
||||
FromRole: 'inherited from role "{title}"'
|
||||
AssignedTo: 'assignée au groupe « {title} »'
|
||||
FromGroup: 'hérité du groupe « {title} »'
|
||||
FromRole: 'héritée du rôle « {title} »'
|
||||
FromRoleOnGroup: 'hérité du rôle "%s" du groupe "%s"'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Rôles et autorisations d’accès'
|
||||
@ -409,26 +409,26 @@ fr:
|
||||
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: 'Permettre la visualisation, l''addition et l''édition des utilisateurs, aussi bien que leur assigner des permissions et des rôles.'
|
||||
ACCESS_HELP: 'Permet de consulter, d’ajouter et d’éditer les utilisateurs, aussi bien que de leur assigner des autorisations et des rôles.'
|
||||
APPLY_ROLES: 'Appliquer des rôles aux groupes'
|
||||
APPLY_ROLES_HELP: 'Possibilité d''éditer les rôles assignés à un groupe. Nécessite "Access to ''Security'' section".'
|
||||
EDITPERMISSIONS: 'Gérer les permissions des groupes'
|
||||
EDITPERMISSIONS_HELP: 'Possibilité d''éditer les permissions et les l''adresses IP pour un groupe. Nécessite "Access to ''Security'' section".'
|
||||
APPLY_ROLES_HELP: 'Possibilité d''éditer les rôle assignés à un groupe. Nécessite l’autorisation « Accès à la section “Utilisateurs” ».'
|
||||
EDITPERMISSIONS: 'Gérer les autorisations des groupes'
|
||||
EDITPERMISSIONS_HELP: 'Possibilité d''éditer les autorisations et les adresses IP pour un groupe. Nécessite l’autorisation « Accès à la section “Securité” ».'
|
||||
GROUPNAME: 'Nom du group'
|
||||
IMPORTGROUPS: 'Importer groupes'
|
||||
IMPORTUSERS: 'Importer utilisateurs'
|
||||
MEMBERS: Membres
|
||||
MENUTITLE: Sécurité
|
||||
MemberListCaution: 'Attention : Enlever des membres de cette liste va les enlever de tous les groupes et de la base de donnée'
|
||||
NEWGROUP: 'Nouveau Groupe'
|
||||
PERMISSIONS: Permissions
|
||||
MemberListCaution: 'Attention : en supprimant des membres de cette liste vous les enlèverez de tous les groupes ainsi que de la base de données'
|
||||
NEWGROUP: 'Nouveau groupe'
|
||||
PERMISSIONS: Autorisations
|
||||
ROLES: Rôles
|
||||
ROLESDESCRIPTION: 'Cette section vous permet d''ajouter des rôles à ce groupe. Les rôles sont des regroupements logiques d''autorisations, qui peuvent être modifiés dans l''onglet Rôles'
|
||||
ROLESDESCRIPTION: 'Les rôles sont des regroupements logiques d’autorisations qui peuvent être assignés à des groupes.<br />Ils peuvent être hérités de groupes parents, si nécessaire.'
|
||||
TABROLES: Rôles
|
||||
Users: Utilisateurs
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: Importer
|
||||
FileFieldLabel: 'Fichier CSV <small>(Extension permise: *.csv)</small>'
|
||||
FileFieldLabel: 'Fichier CSV <small>(extension autorisée : *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: 'Tout modifier'
|
||||
FILTER: Filtrer
|
||||
@ -450,9 +450,9 @@ fr:
|
||||
CSVEXPORT: 'Exporter vers un fichier CSV'
|
||||
PRINT: Imprimer
|
||||
Print: Imprimer
|
||||
SELECT: 'Sélectionner:'
|
||||
SELECT: 'Sélectionner :'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
VALIDATEFORMAT: 'Saisissez l’heure au format valide ({format})'
|
||||
ToggleField:
|
||||
LESS: moins
|
||||
MORE: plus
|
||||
@ -469,8 +469,8 @@ fr:
|
||||
FIELDNOTSET: 'Aucune information sur le fichier n''a été trouvée '
|
||||
FROMCOMPUTER: 'Depuis votre ordinateur'
|
||||
FROMFILES: 'Depuis les fichiers'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
MAXNUMBEROFFILES: 'Le nombre maximal de {count} fichiers a été dépassé.'
|
||||
MAXNUMBEROFFILESSHORT: 'On ne peut pas télécharger plus de {count} fichiers'
|
||||
REMOVE: Supprimer
|
||||
REMOVEERROR: 'Le fichier n’a pas pu être supprimé'
|
||||
REMOVEINFO: 'Supprimer ce fichier ici sans l’effacer des archives'
|
||||
|
@ -95,12 +95,12 @@ he_IL:
|
||||
MINS: דקות
|
||||
MONTH: חודש
|
||||
MONTHS: חודשים
|
||||
SEC: 'שניה'
|
||||
SECS: 'שניות'
|
||||
SEC: שניה
|
||||
SECS: שניות
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
YEAR: 'שנה'
|
||||
YEARS: 'שנים'
|
||||
YEAR: שנה
|
||||
YEARS: שנים
|
||||
DateField:
|
||||
NOTSET: 'not set'
|
||||
TODAY: today
|
||||
@ -231,7 +231,7 @@ he_IL:
|
||||
BUTTONREMOVELINK: 'הסר קישור'
|
||||
BUTTONUpdate: Update
|
||||
CAPTIONTEXT: 'Caption text'
|
||||
CSSCLASS: 'יישור/סגנון'
|
||||
CSSCLASS: יישור/סגנון
|
||||
CSSCLASSCENTER: 'ממורכז, ללא טקסט בצדדים.'
|
||||
CSSCLASSLEFT: 'לשמאל, עם טקסט מסודר מסביב.'
|
||||
CSSCLASSLEFTALONE: 'On the left, on its own.'
|
||||
|
@ -252,7 +252,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'
|
||||
|
@ -40,7 +40,7 @@ ja_JP:
|
||||
ITALIC: テキストを斜体にする
|
||||
ITALICEXAMPLE: 斜体
|
||||
LINK: ウェブサイトのリンク
|
||||
LINKDESCRIPTION: '別のウェブサイトかURLにリンクしてください'
|
||||
LINKDESCRIPTION: 別のウェブサイトかURLにリンクしてください
|
||||
STRUCK: テキストに取り消し線を引く
|
||||
STRUCKEXAMPLE: 取り消し線
|
||||
UNDERLINE: テキストに下線を引く
|
||||
@ -49,8 +49,8 @@ ja_JP:
|
||||
UNORDEREDDESCRIPTION: 不規則なリストです
|
||||
UNORDEREDEXAMPLE1: '不規則なアイテム 1'
|
||||
BasicAuth:
|
||||
ENTERINFO: 'ユーザー名とパスワードを入力してください'
|
||||
ERRORNOTADMIN: 'このユーザーは管理者(アドミニストレーター)ではありません'
|
||||
ENTERINFO: ユーザー名とパスワードを入力してください
|
||||
ERRORNOTADMIN: このユーザーは管理者(アドミニストレーター)ではありません
|
||||
ERRORNOTREC: 'ユーザー名 / パスワードは認識されませんでした'
|
||||
Boolean:
|
||||
ANY: Any
|
||||
@ -108,7 +108,7 @@ ja_JP:
|
||||
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})'
|
||||
Director:
|
||||
ADD: '追加'
|
||||
ADD: 追加
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
DropdownField:
|
||||
CHOOSE: (選択)
|
||||
@ -121,7 +121,7 @@ ja_JP:
|
||||
ANY: Any
|
||||
LOADING: Loading...
|
||||
File:
|
||||
Content: '内容'
|
||||
Content: 内容
|
||||
Filename: ファイル名
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
@ -152,7 +152,7 @@ ja_JP:
|
||||
FIELDISREQUIRED: '%s が必要です'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
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'
|
||||
@ -199,7 +199,7 @@ ja_JP:
|
||||
CHANGEPASSWORDTEXT1: このサイトのパスワードが変更されました。
|
||||
CHANGEPASSWORDTEXT2: '貴方は現在以下の証明書を使ってログインしています:'
|
||||
Code: グループコード
|
||||
DefaultGroupTitleAdministrators: '管理者'
|
||||
DefaultGroupTitleAdministrators: 管理者
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
Description: 説明文
|
||||
EMAIL: メールアドレス
|
||||
@ -208,9 +208,9 @@ ja_JP:
|
||||
Locked: ロックしますか?
|
||||
NoRoles: 'No roles found'
|
||||
PASSWORD: パスワード
|
||||
Parent: '元グループ'
|
||||
Parent: 元グループ
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: '並び順'
|
||||
Sort: 並び順
|
||||
TITLE: イメージアップロード(Iframe)
|
||||
has_many_Permissions: 承認
|
||||
many_many_Members: メンバー
|
||||
@ -227,15 +227,15 @@ ja_JP:
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: アンカー
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERTLINK: 'リンクを追加'
|
||||
BUTTONINSERTLINK: リンクを追加
|
||||
BUTTONREMOVELINK: リンクを削除
|
||||
BUTTONUpdate: Update
|
||||
CAPTIONTEXT: タイトル
|
||||
CSSCLASS: '調整 / スタイル'
|
||||
CSSCLASSCENTER: 中央はテキストのみ
|
||||
CSSCLASSLEFT: '左側にテキストと一緒に処理してください'
|
||||
CSSCLASSLEFT: 左側にテキストと一緒に処理してください
|
||||
CSSCLASSLEFTALONE: 中央はテキストのみ
|
||||
CSSCLASSRIGHT: '右側にテキストと一緒に処理してください'
|
||||
CSSCLASSRIGHT: 右側にテキストと一緒に処理してください
|
||||
DETAILS: Details
|
||||
EMAIL: メールアドレス
|
||||
FILE: ファイル
|
||||
@ -254,7 +254,7 @@ ja_JP:
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: Width
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
LINK: 'ハイライトテキストへのリンクの挿入/削除'
|
||||
LINK: ハイライトテキストへのリンクの挿入/削除
|
||||
LINKANCHOR: このページにアンカーを置く
|
||||
LINKDESCR: リンクの説明
|
||||
LINKEMAIL: メールアドレス
|
||||
@ -271,7 +271,7 @@ ja_JP:
|
||||
IMAGE: 画像
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: '新しい行を追加'
|
||||
ADD: 新しい行を追加
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
@ -300,12 +300,12 @@ ja_JP:
|
||||
DefaultAdminFirstname: 'Default Admin'
|
||||
DefaultDateTime: default
|
||||
EMAIL: メールアドレス
|
||||
EMPTYNEWPASSWORD: 'パスワードが空です。もう一度入力して下さい。'
|
||||
ENTEREMAIL: 'パスワードをリセットするためにメールアドレスを入力してください。'
|
||||
ERRORLOCKEDOUT: 'あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。'
|
||||
ERRORNEWPASSWORD: '入力されたパスワードが一致しません。再度お試しください'
|
||||
ERRORPASSWORDNOTMATCH: '登録されているパスワードと一致しません、もう一度入力し直してください'
|
||||
ERRORWRONGCRED: 'メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください'
|
||||
EMPTYNEWPASSWORD: パスワードが空です。もう一度入力して下さい。
|
||||
ENTEREMAIL: パスワードをリセットするためにメールアドレスを入力してください。
|
||||
ERRORLOCKEDOUT: あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。
|
||||
ERRORNEWPASSWORD: 入力されたパスワードが一致しません。再度お試しください
|
||||
ERRORPASSWORDNOTMATCH: 登録されているパスワードと一致しません、もう一度入力し直してください
|
||||
ERRORWRONGCRED: メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください
|
||||
FIRSTNAME: 名
|
||||
INTERFACELANG: 画面言語
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
@ -319,7 +319,7 @@ ja_JP:
|
||||
SUBJECTPASSWORDCHANGED: パスワードが変わりました。
|
||||
SUBJECTPASSWORDRESET: パスワード再発行
|
||||
SURNAME: 姓
|
||||
VALIDATIONMEMBEREXISTS: '入力したメールアドレス(%s)は、他のメンバーにすでに使用されています。'
|
||||
VALIDATIONMEMBEREXISTS: 入力したメールアドレス(%s)は、他のメンバーにすでに使用されています。
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
YOUROLDPASSWORD: 古いパスワード
|
||||
@ -327,7 +327,7 @@ ja_JP:
|
||||
db_LastVisited: 最終訪問日
|
||||
db_Locale: インターフェースの言語地域
|
||||
db_LockedOutUntil: DBロックがされています。
|
||||
db_NumVisit: '訪問者数'
|
||||
db_NumVisit: 訪問者数
|
||||
db_Password: パスワード
|
||||
db_PasswordExpiry: パスワードの有効期限
|
||||
MemberAuthenticator:
|
||||
@ -378,9 +378,9 @@ ja_JP:
|
||||
NumericField:
|
||||
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
|
||||
Permission:
|
||||
AdminGroup: '管理者'
|
||||
AdminGroup: 管理者
|
||||
CMS_ACCESS_CATEGORY: 'CMS Access'
|
||||
FULLADMINRIGHTS: '完全な管理権'
|
||||
FULLADMINRIGHTS: 完全な管理権
|
||||
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
@ -393,19 +393,19 @@ ja_JP:
|
||||
PERMISSIONS_CATEGORY: 'Roles and access permissions'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
VALIDATION: '電話番号を入力してください'
|
||||
VALIDATION: 電話番号を入力してください
|
||||
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:
|
||||
@ -455,7 +455,7 @@ ja_JP:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
ToggleField:
|
||||
LESS: 減少
|
||||
MORE: '増加'
|
||||
MORE: 増加
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
|
10
lang/km.yml
10
lang/km.yml
@ -205,10 +205,10 @@ km:
|
||||
EMAIL: Email
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
HELLO: Hi
|
||||
Locked: 'មិនអាចប្រើ'
|
||||
Locked: មិនអាចប្រើ
|
||||
NoRoles: 'No roles found'
|
||||
PASSWORD: Password
|
||||
Parent: 'ចំណាត់ក្រុមដើម'
|
||||
Parent: ចំណាត់ក្រុមដើម
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: 'Sort Order'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
@ -323,13 +323,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:
|
||||
|
@ -89,7 +89,7 @@ lt:
|
||||
Date:
|
||||
DAY: diena
|
||||
DAYS: dienas
|
||||
HOUR: 'valandą'
|
||||
HOUR: valandą
|
||||
HOURS: valandas
|
||||
MIN: minutę
|
||||
MINS: minutes
|
||||
|
130
lang/nb.yml
130
lang/nb.yml
@ -13,16 +13,16 @@ nb:
|
||||
TYPE: 'File type'
|
||||
URL: URL
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Choose files'
|
||||
DRAGFILESHERE: 'Drag files here'
|
||||
DROPAREA: 'Drop Area'
|
||||
EDITALL: 'Edit all'
|
||||
EDITANDORGANIZE: 'Edit & organize'
|
||||
FILES: Files
|
||||
ChooseFiles: 'Velg filer'
|
||||
DRAGFILESHERE: 'Dra filer hit'
|
||||
DROPAREA: Droppunkt
|
||||
EDITALL: 'Endre alle'
|
||||
EDITANDORGANIZE: 'Rediger & organiser'
|
||||
FILES: Filer
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADOR: OR
|
||||
UPLOADOR: ELLER
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Stilling
|
||||
ALIGNEMENTEXAMPLE: 'Stilt til høyre'
|
||||
@ -55,7 +55,7 @@ nb:
|
||||
Boolean:
|
||||
ANY: Any
|
||||
0: 'False'
|
||||
LOGOUT: 'Log out'
|
||||
LOGOUT: 'Logg ut'
|
||||
1: 'True'
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
@ -72,9 +72,9 @@ nb:
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSEDIT: 'Lagret %s %s %s'
|
||||
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: 'Passordet må inneholde minst {min} skrifttegn'
|
||||
BETWEEN: 'Passord må inneholde {min} til {max} skrifttegn'
|
||||
MAXIMUM: 'Passord må inneholde maks {max} skrifttegn'
|
||||
SHOWONCLICKTITLE: 'Endre Passord'
|
||||
CreditCardField:
|
||||
FIRST: første
|
||||
@ -130,16 +130,16 @@ nb:
|
||||
Name: Navn
|
||||
PLURALNAME: Filer
|
||||
SINGULARNAME: Fil
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
TOOLARGE: 'Filstørrelse for stor, maksimum {size} tillatt '
|
||||
TOOLARGESHORT: 'Filstørrelse overstiger {size}'
|
||||
Title: Tittel
|
||||
FileIFrameField:
|
||||
ATTACH: 'Attach {type}'
|
||||
ATTACH: 'Legg ved {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}'
|
||||
DELETE: 'Slett {type}'
|
||||
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
|
||||
FILE: File
|
||||
FILE: Fil
|
||||
FROMCOMPUTER: 'From your Computer'
|
||||
FROMFILESTORE: 'From the File Store'
|
||||
NOSOURCE: 'Please select a source file to attach'
|
||||
@ -151,13 +151,13 @@ nb:
|
||||
Form:
|
||||
FIELDISREQUIRED: 'mangler %s'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
|
||||
VALIDATIONCREDITNUMBER: 'Vennligst sjekk at du har skrevet inn {number} korrekt kortnummer'
|
||||
VALIDATIONNOTUNIQUE: 'Den spesifiserte verdien er ikke unik'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Passordene passer ikke med hverandre'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'Passord kan ikke være tomt'
|
||||
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
|
||||
VALIDATOR: Validator
|
||||
VALIDCURRENCY: 'Please enter a valid currency'
|
||||
VALIDCURRENCY: 'Vennligst skriv inn gyldig valuta'
|
||||
FormField:
|
||||
NONE: ingen
|
||||
GridAction:
|
||||
@ -165,7 +165,7 @@ nb:
|
||||
Delete: Delete
|
||||
UnlinkRelation: Unlink
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Add: 'Legg til {name}'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filter by '
|
||||
Find: Find
|
||||
@ -195,21 +195,21 @@ nb:
|
||||
TEXT2: 'passord resett link'
|
||||
TEXT3: for
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
AddRole: 'Legg en rolle til denne gruppen'
|
||||
CHANGEPASSWORDTEXT1: 'Du har byttet passordet for'
|
||||
CHANGEPASSWORDTEXT2: 'Du kan nå bruke følgende informasjon for å logge deg inn:'
|
||||
Code: 'Gruppe Kode'
|
||||
DefaultGroupTitleAdministrators: Administrators
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
DefaultGroupTitleAdministrators: Administratorer
|
||||
DefaultGroupTitleContentAuthors: Innholdsforfattere
|
||||
Description: Beskrivelse
|
||||
EMAIL: Epost
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
GroupReminder: 'Hvis du velger en overordnet gruppe, vil denne gruppen arve alle rollene'
|
||||
HELLO: Hei
|
||||
Locked: 'Låst?'
|
||||
NoRoles: 'No roles found'
|
||||
NoRoles: 'Ingen roller funnet'
|
||||
PASSWORD: Passord
|
||||
Parent: 'Foreldre Gruppe'
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
RolesAddEditLink: 'Administrer roller'
|
||||
Sort: Sorteringsrekkefølge
|
||||
TITLE: 'Bildeopplasnings ramme'
|
||||
has_many_Permissions: Tillatelser
|
||||
@ -226,17 +226,17 @@ nb:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: Lenke
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERT: 'Sett inn'
|
||||
BUTTONINSERTLINK: 'Sett inn lenke'
|
||||
BUTTONREMOVELINK: 'Fjern lenke'
|
||||
BUTTONUpdate: Update
|
||||
BUTTONUpdate: Oppdater
|
||||
CAPTIONTEXT: 'Caption text'
|
||||
CSSCLASS: 'Stille opp / stil'
|
||||
CSSCLASSCENTER: 'Sentrert, alene.'
|
||||
CSSCLASSLEFT: 'På venstre side, med tekst rundt.'
|
||||
CSSCLASSLEFTALONE: 'På venstre side, alene.'
|
||||
CSSCLASSRIGHT: 'På høyde side, med tekst rundt.'
|
||||
DETAILS: Details
|
||||
DETAILS: Detaljer
|
||||
EMAIL: 'Epost adresse'
|
||||
FILE: Fil
|
||||
FOLDER: Mappe
|
||||
@ -268,37 +268,37 @@ nb:
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: Image
|
||||
IMAGE: Bilde
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Legg til en rad'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
HELP: Help
|
||||
HELP: Hjelp
|
||||
PAGETYPE: 'Page type: '
|
||||
PERMAGAIN: 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.'
|
||||
PERMAGAIN: 'Du har blitt logget ut av CMS. Hvis du vil logge deg på igjen, skriv inn brukernavn og passord under.'
|
||||
PERMALREADY: 'I''m sorry, but you can''t access that part of the CMS. If you want to log in as someone else, do so below'
|
||||
PERMDEFAULT: 'Please choose an authentication method and enter your credentials to access the CMS.'
|
||||
PLEASESAVE: 'Please Save Page: This page could not be upated because it hasn''t been saved yet.'
|
||||
PreviewButton: Preview
|
||||
PreviewButton: Forhåndsvisning
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
VersionUnknown: unknown
|
||||
VersionUnknown: Ukjent
|
||||
LoginAttempt:
|
||||
Email: Epostadresse
|
||||
IP: 'IP adresse'
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Legg til en gruppe'
|
||||
BUTTONCHANGEPASSWORD: 'Bytt Passord'
|
||||
BUTTONLOGIN: 'Logg inn'
|
||||
BUTTONLOGINOTHER: 'Logg inn med en annen brukerkonto'
|
||||
BUTTONLOSTPASSWORD: 'Jeg har mistet passordet'
|
||||
CONFIRMNEWPASSWORD: 'Bekreft Nytt Passord'
|
||||
CONFIRMPASSWORD: 'Bekreft passord'
|
||||
DefaultAdminFirstname: 'Default Admin'
|
||||
DefaultDateTime: default
|
||||
DefaultAdminFirstname: 'Standard admin'
|
||||
DefaultDateTime: Standard
|
||||
EMAIL: Epost
|
||||
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
|
||||
ENTEREMAIL: 'Vennligst skriv inne en epostadresse for å få tilsendt en lenke til å resette passord.'
|
||||
@ -308,8 +308,8 @@ nb:
|
||||
ERRORWRONGCRED: 'Det der ser ikke ut til å være riktig epost adresse eller passord. Vennligst prøv igjen.'
|
||||
FIRSTNAME: Fornavn
|
||||
INTERFACELANG: 'Språk på grensesnitt'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'Vi kunne ikke godkjenne passordet: {password}'
|
||||
LOGGEDINAS: 'Du er logget inn som {name}'
|
||||
NEWPASSWORD: 'Nytt Passord'
|
||||
PASSWORD: Passord
|
||||
PLURALNAME: Medlemmer
|
||||
@ -321,7 +321,7 @@ nb:
|
||||
SURNAME: Etternavn
|
||||
VALIDATIONMEMBEREXISTS: 'Det eksisterer allerede et medlem med denne epost-kontoen.'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
WELCOMEBACK: 'Velkommen tilbake, {firstname}'
|
||||
YOUROLDPASSWORD: 'Ditt gamle passord'
|
||||
belongs_many_many_Groups: Grupper
|
||||
db_LastVisited: 'Siste besøkte dato'
|
||||
@ -343,8 +343,8 @@ nb:
|
||||
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)'
|
||||
Preview: Forhåndsvisning
|
||||
SHORTMONTH: 'Forkortelse av måned (f.eks. jun)'
|
||||
TOGGLEHELP: 'Toggle formatting help'
|
||||
TWODIGITDAY: 'Two-digit day of month'
|
||||
TWODIGITHOUR: 'Two digits of hour (00 through 23)'
|
||||
@ -357,7 +357,7 @@ nb:
|
||||
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'
|
||||
ResultNone: 'Ingen endringer'
|
||||
ResultUpdated: 'Updated {count} members'
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
@ -371,7 +371,7 @@ nb:
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Amount
|
||||
FIELDLABELAMOUNT: Mengde
|
||||
FIELDLABELCURRENCY: Currency
|
||||
NullableField:
|
||||
IsNullLabel: 'Is Null'
|
||||
@ -392,7 +392,7 @@ nb:
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Roles and access permissions'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Tilbake
|
||||
VALIDATION: 'Vennligst skriv inn et gyldig tlf nummer'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Du har ikke adgang til denne siden. Hvis du har en annen konto som har adgang til denne siden, kan du logge inn med den under.'
|
||||
@ -415,17 +415,17 @@ nb:
|
||||
EDITPERMISSIONS: 'Manage permissions for groups'
|
||||
EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.'
|
||||
GROUPNAME: Gruppenavn
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
IMPORTUSERS: 'Import users'
|
||||
IMPORTGROUPS: 'Importer grupper'
|
||||
IMPORTUSERS: 'Importer brukere'
|
||||
MEMBERS: Medlemmer
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
|
||||
NEWGROUP: 'New Group'
|
||||
MemberListCaution: 'Advarsel: Hvis du fjerner medlemmer fra denne listen vil det samtidig fjerne dem fra alle grupper og databasen'
|
||||
NEWGROUP: 'Ny gruppe'
|
||||
PERMISSIONS: Tilganger
|
||||
ROLES: Roles
|
||||
ROLES: Roller
|
||||
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
|
||||
TABROLES: Roller
|
||||
Users: Brukere
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Import from CSV'
|
||||
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
|
||||
@ -450,31 +450,31 @@ nb:
|
||||
CSVEXPORT: 'Eksporter til CSV'
|
||||
PRINT: 'Skriv ut'
|
||||
Print: 'Skriv ut'
|
||||
SELECT: 'Select:'
|
||||
SELECT: 'Velg:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
ToggleField:
|
||||
LESS: mindre
|
||||
MORE: mer
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
ATTACHFILE: 'Legg ved fil'
|
||||
ATTACHFILES: 'Legg ved filer'
|
||||
AttachFile: 'Legg ved fil'
|
||||
DELETEINFO: 'Permanently delete this file from the file store'
|
||||
DOEDIT: Save
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
DOEDIT: Lagre
|
||||
DROPFILE: 'Slipp en fil'
|
||||
DROPFILES: 'Slipp filer'
|
||||
Dimensions: Dimensions
|
||||
EDITINFO: 'Edit this file'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMFILES: 'From files'
|
||||
EDITINFO: 'Rediger denne filen'
|
||||
FIELDNOTSET: 'Filinformasjon ikke funnet'
|
||||
FROMCOMPUTER: 'Fra din pc'
|
||||
FROMFILES: 'Fra filer'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
REMOVEERROR: 'Error removing file'
|
||||
REMOVE: Fjern
|
||||
REMOVEERROR: 'Feil ved fjerning av fil'
|
||||
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
|
||||
STARTALL: 'Start all'
|
||||
Saved: Saved
|
||||
Saved: Lagret
|
||||
Versioned:
|
||||
has_many_Versions: Versjoner
|
||||
|
130
lang/nl.yml
130
lang/nl.yml
@ -13,16 +13,16 @@ nl:
|
||||
TYPE: Type
|
||||
URL: URL
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Choose files'
|
||||
DRAGFILESHERE: 'Drag files here'
|
||||
ChooseFiles: 'Selecteer bestanden'
|
||||
DRAGFILESHERE: 'Sleep bestanden hiernaar toe'
|
||||
DROPAREA: 'Drop Area'
|
||||
EDITALL: 'Edit all'
|
||||
EDITANDORGANIZE: 'Edit & organize'
|
||||
EDITANDORGANIZE: 'Bewerk en beheer'
|
||||
FILES: Files
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
UPLOADOR: OR
|
||||
UPLOADOR: OF
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Uitlijning
|
||||
ALIGNEMENTEXAMPLE: 'rechts uitgelijnd'
|
||||
@ -69,7 +69,7 @@ nl:
|
||||
- Ja
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Sluit Popup'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: 'Toegevoegd {name}'
|
||||
SUCCESSEDIT: '%s %s %s Opgeslagen'
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Passwords must be at least {min} characters long.'
|
||||
@ -138,19 +138,19 @@ nl:
|
||||
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'
|
||||
DISALLOWEDFILETYPE: 'Dit type bestand mag niet worden opgeslagen'
|
||||
FILE: Bestand
|
||||
FROMCOMPUTER: 'Vanaf computer'
|
||||
FROMFILESTORE: 'Vanaf de website''s bestandsopslag'
|
||||
NOSOURCE: 'Selecteer een bron bestand om toe te voegen'
|
||||
REPLACE: 'Replace {type}'
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Import
|
||||
SEARCHLISTINGS: Search
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
IMPORT_TAB_HEADER: Importeer
|
||||
SEARCHLISTINGS: Zoeken
|
||||
SYNCRESULTS: 'Synchroniseren compleet: {createdcount} bestanden aangemaakt, {deletedcount} bestanden verwijderd.'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s is verplicht'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
TITLE: 'Afbeelding uploaden'
|
||||
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
|
||||
VALIDATIONNOTUNIQUE: 'De ingevoerde waarde is niet uniek'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Wachtwoorden komen niet overeen'
|
||||
@ -162,40 +162,40 @@ nl:
|
||||
NONE: geen
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Delete
|
||||
Delete: Delete
|
||||
UnlinkRelation: Unlink
|
||||
Delete: Verwijder
|
||||
UnlinkRelation: Ontkoppelen
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filter by '
|
||||
Find: Find
|
||||
Find: Zoek
|
||||
LEVELUP: 'Level up'
|
||||
LinkExisting: 'Link Existing'
|
||||
NewRecord: 'New %s'
|
||||
NoItemsFound: 'No items found'
|
||||
PRINTEDAT: 'Printed at'
|
||||
PRINTEDBY: 'Printed by'
|
||||
NewRecord: 'Nieuw %s'
|
||||
NoItemsFound: 'Geen items gevonden.'
|
||||
PRINTEDAT: 'Geprint om'
|
||||
PRINTEDBY: 'Geprint door'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
RelationSearch: 'Relation search'
|
||||
ResetFilter: Reset
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
|
||||
NEXT: Volgende
|
||||
PREVIOUS: Vorige
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
Delete: Verwijder
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
HELLO: Hallo
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
Save: Opslaan
|
||||
Saved: '%s %s %s Opgeslagen'
|
||||
TEXT1: 'Hier is uw'
|
||||
TEXT2: 'wachtwoord reset link'
|
||||
TEXT3: voor
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
AddRole: 'Voeg een rol toe aan deze groep'
|
||||
CHANGEPASSWORDTEXT1: 'U heeft het wachtwoord veranderd voor'
|
||||
CHANGEPASSWORDTEXT2: 'U kunt nu onderstaande gegevens gebruiken om in te loggen:'
|
||||
Code: 'Groep code'
|
||||
@ -203,10 +203,10 @@ nl:
|
||||
DefaultGroupTitleContentAuthors: 'Inhoud Auteurs'
|
||||
Description: 'Omschrijving '
|
||||
EMAIL: E-mail
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
GroupReminder: 'Als je de bovenliggende groep selecteert, neemt deze groep alle rollen over'
|
||||
HELLO: Hallo
|
||||
Locked: 'Gesloten?'
|
||||
NoRoles: 'No roles found'
|
||||
NoRoles: 'Geen rollen gevonden'
|
||||
PASSWORD: Wachtwoord
|
||||
Parent: 'Bovenliggende groep'
|
||||
RolesAddEditLink: 'Toevoegen/wijzigingen rollen'
|
||||
@ -223,10 +223,10 @@ nl:
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ADDURL: 'Voeg URL toe'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details $amp; afmeting'
|
||||
ANCHORVALUE: Anker
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERT: Invoegen
|
||||
BUTTONINSERTLINK: 'Link invoegen'
|
||||
BUTTONREMOVELINK: 'Link verwijderen'
|
||||
BUTTONUpdate: Update
|
||||
@ -240,20 +240,20 @@ nl:
|
||||
EMAIL: Emailadres
|
||||
FILE: Bestand
|
||||
FOLDER: Map
|
||||
FROMCMS: 'From the CMS'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
FROMCMS: 'Vanaf CMS'
|
||||
FROMCOMPUTER: 'Vanaf computer'
|
||||
FROMWEB: 'Vanaf een website'
|
||||
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'
|
||||
IMAGEDIMENSIONS: Dimensies
|
||||
IMAGEHEIGHTPX: Hoogte
|
||||
IMAGETITLE: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGETITLETEXT: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding'
|
||||
IMAGETITLETEXTDESC: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding'
|
||||
IMAGEWIDTHPX: Breedte
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
INSERTMEDIA: Invoegen
|
||||
LINK: Link
|
||||
LINKANCHOR: 'Anker op deze pagina'
|
||||
LINKDESCR: 'Link omschrijving'
|
||||
@ -269,12 +269,12 @@ nl:
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: Afbeelding
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Filter toepassen" GridFieldItemEditView.ss: Go back: "Ga terug" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Nieuwe rij toevoegen'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
DropdownBatchActionsDefault: Acties
|
||||
HELP: Help
|
||||
PAGETYPE: 'Pagina type: '
|
||||
PERMAGAIN: 'U bent uitgelogd uit het CMS. Als U weer wilt inloggen vul dan uw gebruikersnaam en wachtwoord hier beneden in.'
|
||||
@ -284,7 +284,7 @@ nl:
|
||||
PreviewButton: Preview
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
VersionUnknown: unknown
|
||||
VersionUnknown: onbekend
|
||||
LoginAttempt:
|
||||
Email: 'Email adres '
|
||||
IP: 'IP Adres'
|
||||
@ -298,7 +298,7 @@ nl:
|
||||
CONFIRMNEWPASSWORD: 'Bevestig het nieuwe wachtwoord'
|
||||
CONFIRMPASSWORD: 'Bevestig wachtwoord'
|
||||
DefaultAdminFirstname: 'Standaard Beheerder'
|
||||
DefaultDateTime: default
|
||||
DefaultDateTime: Standaard
|
||||
EMAIL: Email
|
||||
EMPTYNEWPASSWORD: 'Het nieuwe wachtwoord mag niet leeg zijn, probeer opnieuw'
|
||||
ENTEREMAIL: 'Typ uw e-mailadres om een link te ontvangen waarmee u uw wachtwoord kunt resetten.'
|
||||
@ -334,24 +334,24 @@ nl:
|
||||
TITLE: 'Email & Wachtwoord'
|
||||
MemberDatetimeOptionsetField:
|
||||
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
|
||||
Custom: Custom
|
||||
DATEFORMATBAD: 'Date format is invalid'
|
||||
DAYNOLEADING: 'Day of month without leading zero'
|
||||
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'
|
||||
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
|
||||
Preview: Voorbeeld
|
||||
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)'
|
||||
TWODIGITHOUR: 'Twee cijfer van het uur (00 tot 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'
|
||||
TWODIGITYEAR: 'Twee-cijferig jaar'
|
||||
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>Geavanceerd gebruik</h4><ul><li>Toegestane kolommen: <em>%s</em></li><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><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></ul></div></ul></div>'
|
||||
@ -415,8 +415,8 @@ nl:
|
||||
EDITPERMISSIONS: 'Bewerk rechten en IP-adressen bij elke groep'
|
||||
EDITPERMISSIONS_HELP: 'Bewerkingsmogelijkheid van Rechten en IP adressen voor groepen. Heeft rechten voor "Beveiligingsectie" nodig.'
|
||||
GROUPNAME: 'Groep naam'
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
IMPORTUSERS: 'Import users'
|
||||
IMPORTGROUPS: Groepen
|
||||
IMPORTUSERS: 'Importeer gebruikers'
|
||||
MEMBERS: Leden
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Let op: Verwijderen van leden van deze lijst heeft als gevolg dat deze uit alle groepen en de database worden verwijderd'
|
||||
@ -425,14 +425,14 @@ nl:
|
||||
ROLES: Rollen
|
||||
ROLESDESCRIPTION: 'In deze sectie kan je rollen toevoegen aan deze groep. Rollen zijn logische groeperingen van rechten die in het Rollen tapblad gewijzigd kunnen worden.'
|
||||
TABROLES: Rollen
|
||||
Users: Users
|
||||
Users: Gebruikers
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: Importeer
|
||||
FileFieldLabel: 'CSV Bestand <small>(Toegestane extensies: *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: Edit
|
||||
Edit: Bewerken
|
||||
FILTER: Filter
|
||||
IMPORT: Import
|
||||
IMPORT: Importeer
|
||||
VIEWFIRST: 'Bekijk eerste'
|
||||
VIEWLAST: 'Bekijk laatste'
|
||||
VIEWNEXT: 'Bekijk volgende'
|
||||
@ -457,24 +457,24 @@ nl:
|
||||
LESS: minder
|
||||
MORE: meer
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
DELETEINFO: 'Permanently delete this file from the file store'
|
||||
DOEDIT: Save
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
ATTACHFILE: 'Voeg een bestand toe'
|
||||
ATTACHFILES: 'Voeg bestanden toe'
|
||||
AttachFile: 'Voeg een bestand toe'
|
||||
DELETEINFO: 'Verwijder dit bestand uit bestandsopslag van de website.'
|
||||
DOEDIT: Bewaar
|
||||
DROPFILE: 'Bestand hiernaar toe slepen'
|
||||
DROPFILES: 'Sleep hier je bestanden'
|
||||
Dimensions: Dimensions
|
||||
EDITINFO: 'Edit this file'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMFILES: 'From files'
|
||||
EDITINFO: 'Bewerk dit bestand'
|
||||
FIELDNOTSET: 'Bestandsinformatie niet gevonden'
|
||||
FROMCOMPUTER: 'Vanaf computer'
|
||||
FROMFILES: 'Bestaande bestanden'
|
||||
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'
|
||||
Saved: Saved
|
||||
REMOVEERROR: 'Fout bij verwijderen'
|
||||
REMOVEINFO: 'Verwijder (ontkoppel) dit bestand, maar behoud het in bestandsopslag van de website.'
|
||||
STARTALL: 'Start alles'
|
||||
Saved: 'Succesvol opgeslagen'
|
||||
Versioned:
|
||||
has_many_Versions: Versies
|
||||
|
@ -181,7 +181,7 @@ pa:
|
||||
ResetFilter: Reset
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
NEXT: 'ਅਗਲਾ'
|
||||
NEXT: ਅਗਲਾ
|
||||
PREVIOUS: ਪਿਛਲਾ
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
|
326
lang/pl.yml
326
lang/pl.yml
@ -1,27 +1,27 @@
|
||||
pl:
|
||||
AssetAdmin:
|
||||
NEWFOLDER: NewFolder
|
||||
NEWFOLDER: NowyFolder
|
||||
AssetTableField:
|
||||
CREATED: 'First uploaded'
|
||||
DIM: Dimensions
|
||||
FILENAME: Filename
|
||||
CREATED: 'Po raz pierwszy wgrany'
|
||||
DIM: Rozmiar
|
||||
FILENAME: 'Nazwa pliku'
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 'Last changed'
|
||||
OWNER: Owner
|
||||
SIZE: 'File size'
|
||||
TITLE: Title
|
||||
TYPE: 'File type'
|
||||
URL: URL
|
||||
LASTEDIT: 'Ostatnio zmieniony'
|
||||
OWNER: Właściciel
|
||||
SIZE: 'Rozmiar pliku'
|
||||
TITLE: Tytuł
|
||||
TYPE: 'Typ pliku'
|
||||
URL: 'Adres URL'
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Wybierz pliki'
|
||||
DRAGFILESHERE: 'Przeciągnij tu pliki'
|
||||
DROPAREA: 'Obszar upuszczania'
|
||||
EDITALL: 'Edit all'
|
||||
EDITALL: 'Edytuj wszystkie'
|
||||
EDITANDORGANIZE: 'Edytuj i organizuj'
|
||||
FILES: Files
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
FILES: Pliki
|
||||
TOTAL: Razem
|
||||
TOUPLOAD: 'Wybierz pliki do przesłania...'
|
||||
UPLOADINPROGRESS: 'Pliki są przesyłane... proszę czekać'
|
||||
UPLOADOR: LUB
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Wyrównanie
|
||||
@ -55,12 +55,12 @@ pl:
|
||||
Boolean:
|
||||
ANY: Jakikolwiek
|
||||
0: Nie
|
||||
LOGOUT: 'Log out'
|
||||
LOGOUT: 'Wyloguj się'
|
||||
1: Tak
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
ACCESSALLINTERFACES: 'Access to all CMS sections'
|
||||
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
|
||||
ACCESS: 'Dostęp do sekcji ''{title}'''
|
||||
ACCESSALLINTERFACES: 'Dostęp do wszystkich sekcji CMSa'
|
||||
ACCESSALLINTERFACESHELP: 'Nadpisuje bardziej specyficzne ustawienia dostępu.'
|
||||
SAVE: Zapisz
|
||||
CMSProfileController:
|
||||
MENUTITLE: CMSProfileController
|
||||
@ -69,12 +69,12 @@ pl:
|
||||
- Tak
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Zamknij Okienko'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: 'Dodano {name}'
|
||||
SUCCESSEDIT: 'Zapisano %s %s %s'
|
||||
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: 'Hasła muszą mieć przynajmniej {min} znaków.'
|
||||
BETWEEN: 'Hasła muszą mieć długość pomiędzy {min} a {max} znaków.'
|
||||
MAXIMUM: 'Hasła mogą mieć co najwyżej {max} znaków.'
|
||||
SHOWONCLICKTITLE: 'Zmiana Hasła'
|
||||
CreditCardField:
|
||||
FIRST: pierwszy
|
||||
@ -84,8 +84,8 @@ pl:
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: $
|
||||
DataObject:
|
||||
PLURALNAME: 'Data Objects'
|
||||
SINGULARNAME: 'Data Object'
|
||||
PLURALNAME: 'Obiekty danych'
|
||||
SINGULARNAME: 'Obiekt danych'
|
||||
Date:
|
||||
DAY: dzień
|
||||
DAYS: dni
|
||||
@ -93,90 +93,90 @@ pl:
|
||||
HOURS: godziny
|
||||
MIN: min
|
||||
MINS: minuty
|
||||
MONTH: 'miesiąc'
|
||||
MONTHS: 'miesiące'
|
||||
MONTH: miesiąc
|
||||
MONTHS: miesiące
|
||||
SEC: sekunda
|
||||
SECS: sekundy
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
TIMEDIFFAGO: '{difference} temu'
|
||||
TIMEDIFFIN: 'w {difference}'
|
||||
YEAR: rok
|
||||
YEARS: lata
|
||||
DateField:
|
||||
NOTSET: 'nie ustawiono'
|
||||
TODAY: dzisiaj
|
||||
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: 'Proszę wprowadź prawidłowy format daty ({format})'
|
||||
VALIDDATEMAXDATE: 'Twoja data musi być wcześniejsza lub taka sama, jak maksymalna dozwolona data ({date})'
|
||||
VALIDDATEMINDATE: 'Twoja data musi być późniejsza lub taka sama, jak minimalna dozwolona data ({date})'
|
||||
Director:
|
||||
ADD: Dodaj
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
INVALID_REQUEST: 'Nieprawidłowe żądanie'
|
||||
DropdownField:
|
||||
CHOOSE: (wybierz)
|
||||
EmailField:
|
||||
VALIDATION: 'Please enter an email address'
|
||||
VALIDATION: 'Proszę podaj adres e-mail'
|
||||
Email_BounceRecord:
|
||||
PLURALNAME: 'Email Bounce Records'
|
||||
SINGULARNAME: 'Email Bounce Record'
|
||||
PLURALNAME: 'Historia odrzuconych e-maili'
|
||||
SINGULARNAME: 'Odrzucony e-mail'
|
||||
Enum:
|
||||
ANY: Jakikolwiek
|
||||
LOADING: Loading...
|
||||
LOADING: Wczytywanie...
|
||||
File:
|
||||
Content: Zawartość
|
||||
Filename: 'Nazwa pliku'
|
||||
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
|
||||
INVALIDEXTENSION: 'Rozszerzenie niedozwolone (dozwolone: {extensions})'
|
||||
INVALIDEXTENSIONSHORT: 'Rozszerzenie niedozwolone'
|
||||
NOFILESIZE: 'Rozmiar pliku to zero bajtów.'
|
||||
NOVALIDUPLOAD: 'File is not a valid upload'
|
||||
NOVALIDUPLOAD: 'Plik nie został poprawnie przesłany'
|
||||
Name: Nazwa
|
||||
PLURALNAME: Pliki
|
||||
SINGULARNAME: Plik
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
TOOLARGE: 'Plik jest za duży, maksymalnie dozwolone jest {size}'
|
||||
TOOLARGESHORT: 'Rozmiar pliku przekracza {size}'
|
||||
Title: Tytuł
|
||||
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'
|
||||
ATTACH: 'Dołącz {type}'
|
||||
ATTACHONCESAVED: 'Element {type} może zostać dołączony dopiero po pierwszym zapisaniu rekordu.'
|
||||
ATTACHONCESAVED2: 'Pliki mogą zostać dołączone dopiero po pierwszym zapisaniu rekordu.'
|
||||
DELETE: 'Usuń {type}'
|
||||
DISALLOWEDFILETYPE: 'Wgrywanie plików tego typu nie jest dozwolone'
|
||||
FILE: Plik
|
||||
FROMCOMPUTER: 'From your Computer'
|
||||
FROMFILESTORE: 'From the File Store'
|
||||
FROMCOMPUTER: 'Z Twojego Komputera'
|
||||
FROMFILESTORE: 'Ze Składnicy Plików'
|
||||
NOSOURCE: 'Wybierz źródło pliku do załaczenia'
|
||||
REPLACE: 'Replace {type}'
|
||||
REPLACE: 'Zastąp {type}'
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Import
|
||||
SEARCHLISTINGS: Search
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
SEARCHLISTINGS: Znajdź
|
||||
SYNCRESULTS: 'Synchronizacja zakończona: stworzono {createdcount} i usunięto {deletedcount} pozycji'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s jest wymagane'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
|
||||
TITLE: 'Iframe wgrywania zdjęć'
|
||||
VALIDATIONCREDITNUMBER: 'Proszę upewnij się, że wprowadzony numer karty kredytowej {number} jest prawidłowy'
|
||||
VALIDATIONNOTUNIQUE: 'Wprowadzona wartość nie jest unikalna'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Hasła nie są takie same'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'Hasło nie może być puste'
|
||||
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
|
||||
VALIDATIONSTRONGPASSWORD: 'Hasła muszą mieć przynajmniej jedną cyfrę oraz jeden znak alfanumeryczny.'
|
||||
VALIDATOR: Walidator
|
||||
VALIDCURRENCY: 'Please enter a valid currency'
|
||||
VALIDCURRENCY: 'Proszę podaj prawidłową walutę'
|
||||
FormField:
|
||||
NONE: brak
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Delete
|
||||
Delete: Delete
|
||||
UnlinkRelation: Unlink
|
||||
DELETE_DESCRIPTION: Usuń
|
||||
Delete: Usuń
|
||||
UnlinkRelation: 'Usuń łącze'
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Add: 'Dodaj {name}'
|
||||
Filter: Filtr
|
||||
FilterBy: 'Filter by '
|
||||
FilterBy: 'Filtruj wg'
|
||||
Find: Wyszukaj
|
||||
LEVELUP: 'Level up'
|
||||
LinkExisting: 'Link Existing'
|
||||
LEVELUP: 'W górę'
|
||||
LinkExisting: 'Linkuj istniejący'
|
||||
NewRecord: 'Nowy %s'
|
||||
NoItemsFound: 'Nie znaleziono elementów'
|
||||
PRINTEDAT: 'Wydrukowane na'
|
||||
PRINTEDBY: 'Wydrukowane przez'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
PlaceHolder: 'Znajdź {type}'
|
||||
PlaceHolderWithLabels: 'Znajdź {type} wg {name}'
|
||||
RelationSearch: 'Wyszukiwanie powiązań'
|
||||
ResetFilter: Resetuj
|
||||
GridFieldAction_Delete:
|
||||
@ -184,13 +184,13 @@ pl:
|
||||
NEXT: Następny
|
||||
PREVIOUS: Poprzedni
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
Create: Stwórz
|
||||
Delete: Usuń
|
||||
DeletePermissionsFailure: 'Brak uprawnień do usuwania'
|
||||
Deleted: 'Usunięto %s %s'
|
||||
HELLO: Cześć
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
Save: Zapisz
|
||||
Saved: 'Zapisano %s %s'
|
||||
TEXT1: 'Oto twój'
|
||||
TEXT2: 'link zmiany hasła'
|
||||
TEXT3: dla
|
||||
@ -215,21 +215,21 @@ pl:
|
||||
has_many_Permissions: Zezwolenia
|
||||
many_many_Members: Członkowie
|
||||
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'
|
||||
ResultDeleted: 'Deleted %d groups'
|
||||
ResultUpdated: 'Updated %d groups'
|
||||
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\">\\n\\n<h4>Zaawansowane użycie</h4>\\n\\n<ul>\\n\\n<li>Dozwolone kolumny: <em>%s</em></li>\\n\\n<li>Istniejące grupy są dopasowywane poprzez ich unikalną wartość <em>Kod</em> i aktualizowane nowymi wartościami z zaimportowanego pliku.</li>\\n\\n<li>Można tworzyć hierarchie Grup za pomocą kolumny <em>KodNadrzędny</em>.</li>\\n\\n<li>Kody uprawnień mogą być przypisywane za pomocą kolumny <em>KodUprawnienia</em>. Istniejące kody uprawnień nie są usuwane.</li>\\n\\n</ul>\\n\\n</div>"
|
||||
ResultCreated: 'Stworzono grup: {count}'
|
||||
ResultDeleted: 'Usunięto grup: %d'
|
||||
ResultUpdated: 'Zaktualizowano grup: %d'
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
InfiniteLoopNotAllowed: 'Znaleziono nieskończoną pętlę wewnątrz hierarchii "{type}". Proszę zmień rodzica by to rozwiązać.'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ADDURL: 'Dodaj adres URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Szczegóły i rozmiar'
|
||||
ANCHORVALUE: Odnośnik
|
||||
BUTTONINSERT: Wstaw
|
||||
BUTTONINSERTLINK: 'Wstaw link'
|
||||
BUTTONREMOVELINK: 'Zmień link'
|
||||
BUTTONUpdate: Update
|
||||
BUTTONUpdate: Aktualizuj
|
||||
CAPTIONTEXT: Tekst
|
||||
CSSCLASS: Wyrównanie/styl
|
||||
CSSCLASSCENTER: Wyśrodkowane
|
||||
@ -242,18 +242,18 @@ pl:
|
||||
FOLDER: Folder
|
||||
FROMCMS: 'Z systemu CMS'
|
||||
FROMCOMPUTER: 'Z komputera'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
FROMWEB: 'Z WWW'
|
||||
FindInFolder: 'Znajdź w Folderze'
|
||||
IMAGEALT: 'Tekst alternatywny (alt)'
|
||||
IMAGEALTTEXT: 'Tekst alternatywny (alt) - pokazywany gdy obrazek nie może być wyświetlony'
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEALTTEXTDESC: 'Używane przez czytniki dla niewidomych oraz gdy nie można pobrać obrazu'
|
||||
IMAGEDIMENSIONS: Rozmiar
|
||||
IMAGEHEIGHTPX: 'Wysokość (px)'
|
||||
IMAGETITLE: 'Tytuł (tooltip) - dodatkowe informacje o obrazku'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGETITLETEXT: 'Tytuł (wyskakujący dymek)'
|
||||
IMAGETITLETEXTDESC: 'Po dodatkowe informacje o obrazku'
|
||||
IMAGEWIDTHPX: 'Szerokość (px)'
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
INSERTMEDIA: 'Wstaw Media'
|
||||
LINK: 'Wstaw/edytuj link z podświetlonego tekstu '
|
||||
LINKANCHOR: 'Odnośnik na tej stronie'
|
||||
LINKDESCR: 'Opis linku'
|
||||
@ -265,32 +265,32 @@ pl:
|
||||
LINKTO: 'Linkuj do'
|
||||
PAGE: Strona
|
||||
URL: URL
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
URLNOTANOEMBEDRESOURCE: 'Adres URL ''{url}'' nie mógł zostać przekształcony w zasób medialny'
|
||||
UpdateMEDIA: 'Zaktualizuj Media'
|
||||
ImageField:
|
||||
IMAGE: Obraz
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Zastosuj filtr" GridFieldItemEditView.ss: Go back: "Wstecz" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Dodaj nowy rząd'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: Actions
|
||||
HELP: Help
|
||||
PAGETYPE: 'Page type: '
|
||||
PERMAGAIN: 'You have been logged out of the CMS. If you would like to log in again, enter a username and password below.'
|
||||
PERMALREADY: 'I''m sorry, but you can''t access that part of the CMS. If you want to log in as someone else, do so below'
|
||||
PERMDEFAULT: 'Please choose an authentication method and enter your credentials to access the CMS.'
|
||||
PLEASESAVE: 'Please Save Page: This page could not be upated because it hasn''t been saved yet.'
|
||||
PreviewButton: Preview
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
VersionUnknown: unknown
|
||||
CANT_REORGANISE: 'Nie masz uprawnień by zmieniać strony na najwyższym poziomie. Twoje zmiany nie zostały zapisane.'
|
||||
DELETED: Usunięto.
|
||||
DropdownBatchActionsDefault: Akcje
|
||||
HELP: Pomoc
|
||||
PAGETYPE: 'Rodzaj strony:'
|
||||
PERMAGAIN: 'Zostałeś wylogowany z CMSa. Jeśli chcesz zalogować się ponownie, wpisz login i hasło poniżej.'
|
||||
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ę Zapisz Stronę: Ta strona nie mogła zostać uaktualniona ponieważ nie została jeszcze zapisana.'
|
||||
PreviewButton: Podgląd
|
||||
REORGANISATIONSUCCESSFUL: 'Pomyślnie zreorganizowano drzewo serwisu.'
|
||||
SAVEDUP: Zapisano.
|
||||
VersionUnknown: nieznany
|
||||
LoginAttempt:
|
||||
Email: 'Adres E-mail'
|
||||
IP: 'Adres IP'
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Dodaj grupę'
|
||||
BUTTONCHANGEPASSWORD: 'Zmień hasło'
|
||||
BUTTONLOGIN: Zaloguj
|
||||
BUTTONLOGINOTHER: 'Zaloguj jako ktoś inny'
|
||||
@ -308,8 +308,8 @@ pl:
|
||||
ERRORWRONGCRED: 'E-mail lub hasło są nieprawidłowe, Spróbuj ponownie'
|
||||
FIRSTNAME: Imię
|
||||
INTERFACELANG: 'Język interfejsu'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'Nie możesz użyć takiego hasła: {password}'
|
||||
LOGGEDINAS: 'Zostałeś zalogowany jako {name}.'
|
||||
NEWPASSWORD: 'Nowe hasło'
|
||||
PASSWORD: Hasło
|
||||
PLURALNAME: Członkowie
|
||||
@ -320,8 +320,8 @@ pl:
|
||||
SUBJECTPASSWORDRESET: 'Twój link do zmiany hasła'
|
||||
SURNAME: Nazwisko
|
||||
VALIDATIONMEMBEREXISTS: 'Użytkownik z tym adresem już istnieje'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
ValidationIdentifierFailed: 'Nie można nadpisać istniejącego członka #{id} identycznym identyfikatorem ({name} = {value})'
|
||||
WELCOMEBACK: 'Witaj ponownie, {firstname}'
|
||||
YOUROLDPASSWORD: 'Twoje stare hasło'
|
||||
belongs_many_many_Groups: Grupy
|
||||
db_LastVisited: 'Data Ostatniej Wizyty'
|
||||
@ -333,66 +333,66 @@ pl:
|
||||
MemberAuthenticator:
|
||||
TITLE: 'E-mail i Hasło'
|
||||
MemberDatetimeOptionsetField:
|
||||
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
|
||||
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 (przed południem) lub PM (po południu)'
|
||||
Custom: Własny
|
||||
DATEFORMATBAD: 'Nieprawidłowy format daty'
|
||||
DAYNOLEADING: 'Dzień miesiąca bez wiodącego zera'
|
||||
DIGITSDECFRACTIONSECOND: 'Jedna lub więcej cyfr reprezentujących ułamek sekundy'
|
||||
FOURDIGITYEAR: 'Czterocyfrowy rok'
|
||||
FULLNAMEMONTH: 'Pełna nazwa miesiąca (np. Czerwiec)'
|
||||
HOURNOLEADING: 'Godzina bez wiodącego zera'
|
||||
MINUTENOLEADING: 'Minuta bez wiodącego zera'
|
||||
MONTHNOLEADING: 'Miesiąc bez wiodącego zera'
|
||||
Preview: Podgląd
|
||||
SHORTMONTH: 'Skrócona nazwa miesiąca (np. Cze)'
|
||||
TOGGLEHELP: 'Przełącz pomoc formatowania'
|
||||
TWODIGITDAY: 'Dwucyfrowy dzień miesiąca'
|
||||
TWODIGITHOUR: 'Dwucyfrowa godzina (od 00 do 23)'
|
||||
TWODIGITMINUTE: 'Dwucyfrowa minuta (od 00 do 59)'
|
||||
TWODIGITMONTH: 'Dwucyfrowy miesiąc (01=Styczeń, itd.)'
|
||||
TWODIGITSECOND: 'Dwucyfrowa sekunda (od 00 do 59)'
|
||||
TWODIGITYEAR: 'Dwucyfrowy rok'
|
||||
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'
|
||||
ResultDeleted: 'Deleted %d members'
|
||||
ResultNone: 'No changes'
|
||||
ResultUpdated: 'Updated {count} members'
|
||||
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\">\\n<h4>Zaawansowane użycie</h4>\\n<ul>\\n<li>Dozwolone kolumny: <em>%s</em></li>\\n<li>Istniejący użytkownicy są dopasowani poprzez unikalną właściwość <em>Kod</em> i uaktualniani nowymi wartościami z zaimportowanego pliku.</li>\\n<li>Grupy mogą być przypisane poprzez kolumnę <em>Grupy</em>. Grupy identyfikowane są poprzez unikalną właściwość <em>Kod</em>, grupy mogą być oddzielone od siebie przecinkiem. Przypisania użytkowników do grup nie są usuwane.</li>\\n</ul>\\n</div>"
|
||||
ResultCreated: 'Stworzono członków: {count}'
|
||||
ResultDeleted: 'Usunięto %d użytkowników'
|
||||
ResultNone: 'Bez zmian'
|
||||
ResultUpdated: 'Zaktualizowano członków: {count}'
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
DELETE: Delete
|
||||
DELETEDRECORDS: 'Deleted {count} records.'
|
||||
IMPORT: 'Import from CSV'
|
||||
IMPORTEDRECORDS: 'Imported {count} records.'
|
||||
NOCSVFILE: 'Please browse for a CSV file to import'
|
||||
NOIMPORT: 'Nothing to import'
|
||||
RESET: Reset
|
||||
Title: 'Data Models'
|
||||
UPDATEDRECORDS: 'Updated {count} records.'
|
||||
DELETE: Usuń
|
||||
DELETEDRECORDS: 'Usunięto rekordów: {count}'
|
||||
IMPORT: 'Import z CSV'
|
||||
IMPORTEDRECORDS: 'Zaimportowano rekordów: {count}'
|
||||
NOCSVFILE: 'Wybierz plik CSV do zaimportowania'
|
||||
NOIMPORT: 'Nie ma niczego do zaimportowania'
|
||||
RESET: Zresetuj
|
||||
Title: 'Modele danych'
|
||||
UPDATEDRECORDS: 'Zaktualizowano {count} rekordów.'
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Ilość
|
||||
FIELDLABELCURRENCY: waluta
|
||||
NullableField:
|
||||
IsNullLabel: 'Jest Pusty'
|
||||
NumericField:
|
||||
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
|
||||
VALIDATION: '''{value}'' nie jest liczbą, to pole przyjmuje tylko liczby'
|
||||
Permission:
|
||||
AdminGroup: Administrator
|
||||
CMS_ACCESS_CATEGORY: 'CMS Access'
|
||||
CMS_ACCESS_CATEGORY: 'Dostęp do CMSa'
|
||||
FULLADMINRIGHTS: 'Pełne prawa administracyjne'
|
||||
FULLADMINRIGHTS_HELP: 'Zatwierdza i nadpisuje wszystkie istniejące uprawnienia'
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
IMPORTSPECFIELDS: 'Kolumny bazy danych'
|
||||
IMPORTSPECRELATIONS: Relacje
|
||||
PermissionCheckboxSetField:
|
||||
AssignedTo: 'assigned to "{title}"'
|
||||
FromGroup: 'inherited from group "{title}"'
|
||||
FromRole: 'inherited from role "{title}"'
|
||||
AssignedTo: 'przypisany do "{title}"'
|
||||
FromGroup: 'odziedziczone z grupy "{title}"'
|
||||
FromRole: 'odziedziczone z roli "{title}"'
|
||||
FromRoleOnGroup: 'odziedziczone z roli "%s" w grupie "%s"'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Uprawnienia ról i dostępu'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Wstecz
|
||||
VALIDATION: 'Wprowadź poprawny numer telefonu'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Nie masz dostępu do tej strony. Jeśli posiadasz inne konto, które umożliwi Ci dostęp do tej strony, możesz się zalogować poniżej'
|
||||
@ -404,10 +404,10 @@ pl:
|
||||
LOGGEDOUT: 'Zostałeś wylogowany. Jeśli chcesz się zalogować ponownie wpisz dane poniżej'
|
||||
LOGIN: Logowanie
|
||||
NOTEPAGESECURED: 'Ta strona jest zabezpieczona. Wpisz swoje dane a my wyślemy Ci potwierdzenie niebawem'
|
||||
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>Link resetujący hasło wygasł lub jest nieprawidłowy.</p><p>Możesz poprosić o nowy <a href="{link1}">tutaj</a> lub zmień swoje hasło po <a href="{link2}">zalogowaniu się</a>.</p>'
|
||||
NOTERESETPASSWORD: 'Wpisz adres e-mail, na który mamy wysłać link gdzie możesz zresetować swoje hasło'
|
||||
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: 'Link resetujący hasła został wysłany do ''{email}'''
|
||||
PASSWORDSENTTEXT: 'Dziękujemy! Link resetujący hasło został wysłany do ''{email}'', o ile konto użytkownika dla takiego e-maila istnieje.'
|
||||
SecurityAdmin:
|
||||
ACCESS_HELP: 'Pozwala na przeglądanie, dodawanie i edycję użytkowników, jak również przypisywanie im uprawnień i ról.'
|
||||
APPLY_ROLES: 'Zatwierdź role dla grup'
|
||||
@ -418,7 +418,7 @@ pl:
|
||||
IMPORTGROUPS: 'Importuj grupy'
|
||||
IMPORTUSERS: 'Importuj użytkowników'
|
||||
MEMBERS: Użytkownicy
|
||||
MENUTITLE: Security
|
||||
MENUTITLE: Bezpieczeństwo
|
||||
MemberListCaution: 'Uwaga: Usunięcie użytkowników z tej listy spowoduje również usunięcie ich ze wszystkich grup oraz z bazy danych'
|
||||
NEWGROUP: 'Nowa grupa'
|
||||
PERMISSIONS: Zezwolenia
|
||||
@ -427,11 +427,11 @@ pl:
|
||||
TABROLES: Role
|
||||
Users: Użytkownicy
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Import from CSV'
|
||||
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
|
||||
BtnImport: 'Import z CSV'
|
||||
FileFieldLabel: 'Plik CSV <small>(Dozwolone rozszerzenia: *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: Edit
|
||||
FILTER: Filter
|
||||
Edit: Edycja
|
||||
FILTER: Filtr
|
||||
IMPORT: Import
|
||||
VIEWFIRST: 'Zobacz pierwsze'
|
||||
VIEWLAST: 'Zobacz ostatnie'
|
||||
@ -443,7 +443,7 @@ pl:
|
||||
TABMAIN: Główny
|
||||
TableField:
|
||||
ADDITEM: 'Dodaj %s'
|
||||
ISREQUIRED: 'In %s ''%s'' is required'
|
||||
ISREQUIRED: 'W %s ''%s'' jest wymagany'
|
||||
SORTASC: 'Sortuj w porządku rosnącym'
|
||||
SORTDESC: 'Sortuj w porządku malejącym'
|
||||
TableListField:
|
||||
@ -452,7 +452,7 @@ pl:
|
||||
Print: Drukuj
|
||||
SELECT: 'Wybierz:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
VALIDATEFORMAT: 'Proszę wprowadź prawidłowy format czasu ({format})'
|
||||
ToggleField:
|
||||
LESS: mniej
|
||||
MORE: więcej
|
||||
@ -464,14 +464,14 @@ pl:
|
||||
DOEDIT: Zapisz
|
||||
DROPFILE: 'upuść plik'
|
||||
DROPFILES: 'upuść pliki'
|
||||
Dimensions: Dimensions
|
||||
Dimensions: Rozmiar
|
||||
EDITINFO: 'Edytuj plik'
|
||||
FIELDNOTSET: 'Nie znaleziono informacji o pliku'
|
||||
FROMCOMPUTER: 'Z komputera'
|
||||
FROMFILES: 'Z plików'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
MAXNUMBEROFFILES: 'Osiągnięto maksymalną liczbę {count} plików.'
|
||||
MAXNUMBEROFFILESSHORT: 'Można wgrać tylko {count} plik(ów/i)'
|
||||
REMOVE: Usuń
|
||||
REMOVEERROR: 'Błąd podczas usuwania pliku'
|
||||
REMOVEINFO: 'Usuń pliki z tego miejsca, ale nie usuwaj ich z magazynu'
|
||||
STARTALL: 'Rozpocznij wszystko'
|
||||
|
128
lang/ro.yml
128
lang/ro.yml
@ -13,7 +13,7 @@ ro:
|
||||
TYPE: 'File type'
|
||||
URL: URL
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Choose files'
|
||||
ChooseFiles: 'Alegeti fisierele'
|
||||
DRAGFILESHERE: 'Drag files here'
|
||||
DROPAREA: 'Drop Area'
|
||||
EDITALL: 'Edit all'
|
||||
@ -31,8 +31,8 @@ ro:
|
||||
CODE: 'Code Block'
|
||||
CODEDESCRIPTION: 'Unformatted code block'
|
||||
CODEEXAMPLE: 'Code block'
|
||||
COLORED: 'Colored text'
|
||||
COLOREDEXAMPLE: 'blue text'
|
||||
COLORED: 'Text colorat'
|
||||
COLOREDEXAMPLE: 'Text albastru'
|
||||
EMAILLINK: 'Email link'
|
||||
EMAILLINKDESCRIPTION: 'Create link to an email address'
|
||||
IMAGE: Image
|
||||
@ -44,13 +44,13 @@ ro:
|
||||
STRUCK: 'Struck-out Text'
|
||||
STRUCKEXAMPLE: Struck-out
|
||||
UNDERLINE: 'Underlined Text'
|
||||
UNDERLINEEXAMPLE: Underlined
|
||||
UNDERLINEEXAMPLE: Subliniat
|
||||
UNORDERED: 'Unordered list'
|
||||
UNORDEREDDESCRIPTION: 'Unordered list'
|
||||
UNORDEREDEXAMPLE1: 'unordered item 1'
|
||||
BasicAuth:
|
||||
ENTERINFO: 'Va rugam introduceţi un user si o parolă.'
|
||||
ERRORNOTADMIN: 'That user is not an administrator.'
|
||||
ERRORNOTADMIN: 'Acest utilizator nu este un administrator.'
|
||||
ERRORNOTREC: 'That username / password isn''t recognised'
|
||||
Boolean:
|
||||
ANY: Any
|
||||
@ -77,10 +77,10 @@ ro:
|
||||
MAXIMUM: 'Passwords must be at most {max} characters long.'
|
||||
SHOWONCLICKTITLE: 'Schimba Parola'
|
||||
CreditCardField:
|
||||
FIRST: first
|
||||
FOURTH: fourth
|
||||
SECOND: second
|
||||
THIRD: third
|
||||
FIRST: primul
|
||||
FOURTH: 'al patrulea'
|
||||
SECOND: 'al doilea'
|
||||
THIRD: 'al treilea'
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: $
|
||||
DataObject:
|
||||
@ -103,12 +103,12 @@ ro:
|
||||
YEARS: ani
|
||||
DateField:
|
||||
NOTSET: 'not set'
|
||||
TODAY: today
|
||||
TODAY: astazi
|
||||
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})'
|
||||
Director:
|
||||
ADD: Add
|
||||
ADD: Adauga
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
DropdownField:
|
||||
CHOOSE: (Alege)
|
||||
@ -118,7 +118,7 @@ ro:
|
||||
PLURALNAME: 'Email Bounce Records'
|
||||
SINGULARNAME: 'Email Bounce Record'
|
||||
Enum:
|
||||
ANY: Any
|
||||
ANY: Oricare
|
||||
LOADING: Loading...
|
||||
File:
|
||||
Content: Content
|
||||
@ -166,23 +166,23 @@ ro:
|
||||
UnlinkRelation: Unlink
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Filter: Filter
|
||||
Filter: Filtru
|
||||
FilterBy: 'Filter by '
|
||||
Find: Find
|
||||
Find: Gaseste
|
||||
LEVELUP: 'Level up'
|
||||
LinkExisting: 'Link Existing'
|
||||
NewRecord: 'New %s'
|
||||
NoItemsFound: 'No items found'
|
||||
PRINTEDAT: 'Printed at'
|
||||
PRINTEDBY: 'Printed by'
|
||||
PRINTEDAT: 'Imprimat la'
|
||||
PRINTEDBY: 'Imprimat de'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
RelationSearch: 'Relation search'
|
||||
ResetFilter: Reset
|
||||
ResetFilter: Reseteaza
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
NEXT: Next
|
||||
PREVIOUS: Previous
|
||||
NEXT: Urmatorul
|
||||
PREVIOUS: Anteriorul
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
@ -192,25 +192,25 @@ ro:
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
TEXT1: 'Here is your'
|
||||
TEXT2: 'password reset link'
|
||||
TEXT3: for
|
||||
TEXT2: 'link de resetare a parolei'
|
||||
TEXT3: pentru
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
CHANGEPASSWORDTEXT1: 'Ti-ai schimbat parola in'
|
||||
CHANGEPASSWORDTEXT2: 'You can now use the following credentials to log in:'
|
||||
Code: 'Cod Grup'
|
||||
DefaultGroupTitleAdministrators: Administrators
|
||||
DefaultGroupTitleAdministrators: Administratori
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
Description: Description
|
||||
Description: Descriere
|
||||
EMAIL: Email
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
HELLO: Salut
|
||||
Locked: 'Blocat?'
|
||||
NoRoles: 'No roles found'
|
||||
PASSWORD: Password
|
||||
PASSWORD: Parola
|
||||
Parent: 'Grup de Baza'
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: 'Sort Order'
|
||||
Sort: 'Ordine de sortare'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
has_many_Permissions: Permisiuni
|
||||
many_many_Members: Membri
|
||||
@ -268,8 +268,8 @@ ro:
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: Image
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
IMAGE: Imagine
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Aplica filtru" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Add a new row'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
@ -287,7 +287,7 @@ ro:
|
||||
VersionUnknown: unknown
|
||||
LoginAttempt:
|
||||
Email: 'Email Address'
|
||||
IP: 'IP Address'
|
||||
IP: 'Adresa IP'
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
@ -295,40 +295,40 @@ ro:
|
||||
BUTTONLOGIN: Autentificare
|
||||
BUTTONLOGINOTHER: 'Log in as someone else'
|
||||
BUTTONLOSTPASSWORD: 'Am uitat parola'
|
||||
CONFIRMNEWPASSWORD: 'Confirm New Password'
|
||||
CONFIRMPASSWORD: 'Confirm Password'
|
||||
DefaultAdminFirstname: 'Default Admin'
|
||||
DefaultDateTime: default
|
||||
CONFIRMNEWPASSWORD: 'Confirmati noua parola'
|
||||
CONFIRMPASSWORD: 'Confirmati parola'
|
||||
DefaultAdminFirstname: 'Administrator implicit'
|
||||
DefaultDateTime: implicit
|
||||
EMAIL: Email
|
||||
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
|
||||
ENTEREMAIL: 'Please enter an email address to get a password reset link.'
|
||||
ENTEREMAIL: 'Va rog introduceti o adresa de email pentru a obtine un link de resetare a parolei'
|
||||
ERRORLOCKEDOUT: 'Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes.'
|
||||
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: 'First Name'
|
||||
FIRSTNAME: Prenume
|
||||
INTERFACELANG: 'Limba interfetei'
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
NEWPASSWORD: 'New Password'
|
||||
PASSWORD: Password
|
||||
NEWPASSWORD: 'Noua parola'
|
||||
PASSWORD: Parola
|
||||
PLURALNAME: Membri
|
||||
PROFILESAVESUCCESS: 'Successfully saved.'
|
||||
REMEMBERME: 'Remember me next time?'
|
||||
REMEMBERME: 'Tine-ma minte?'
|
||||
SINGULARNAME: Membru
|
||||
SUBJECTPASSWORDCHANGED: 'Parola dumneavoastra a fost schimbata'
|
||||
SUBJECTPASSWORDRESET: 'Link-ul de resetare a parolei'
|
||||
SURNAME: Surname
|
||||
SURNAME: Nume
|
||||
VALIDATIONMEMBEREXISTS: 'A member already exists with the same %s'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
YOUROLDPASSWORD: 'Your old password'
|
||||
YOUROLDPASSWORD: 'Vechea parola'
|
||||
belongs_many_many_Groups: Grupuri
|
||||
db_LastVisited: 'Last Visited Date'
|
||||
db_LastVisited: 'Data ultimei vizite'
|
||||
db_Locale: 'Interface Locale'
|
||||
db_LockedOutUntil: 'Blocat pana cand'
|
||||
db_NumVisit: 'Number of Visits'
|
||||
db_Password: Password
|
||||
db_LockedOutUntil: 'Blocat pana la'
|
||||
db_NumVisit: 'Numarul de vizite'
|
||||
db_Password: Parola
|
||||
db_PasswordExpiry: 'Data de Expirare a Parolei'
|
||||
MemberAuthenticator:
|
||||
TITLE: 'E-mail si Parolă'
|
||||
@ -414,18 +414,18 @@ ro:
|
||||
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
|
||||
EDITPERMISSIONS: 'Manage permissions for groups'
|
||||
EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.'
|
||||
GROUPNAME: 'Group name'
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
IMPORTUSERS: 'Import users'
|
||||
MEMBERS: Members
|
||||
GROUPNAME: 'Numele grupului'
|
||||
IMPORTGROUPS: 'Importati grupuri'
|
||||
IMPORTUSERS: 'Importa utilizatori'
|
||||
MEMBERS: Membri
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
|
||||
NEWGROUP: 'New Group'
|
||||
NEWGROUP: 'Grup nou'
|
||||
PERMISSIONS: 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: Roles
|
||||
Users: Users
|
||||
Users: Utilizatori
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Import from CSV'
|
||||
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
|
||||
@ -433,12 +433,12 @@ ro:
|
||||
Edit: Edit
|
||||
FILTER: Filter
|
||||
IMPORT: Import
|
||||
VIEWFIRST: 'View first'
|
||||
VIEWLAST: 'View last'
|
||||
VIEWNEXT: 'View next'
|
||||
VIEWPREVIOUS: 'View previous'
|
||||
VIEWFIRST: 'Vezi primul'
|
||||
VIEWLAST: 'Vezi ultimul'
|
||||
VIEWNEXT: 'Vezi urmator'
|
||||
VIEWPREVIOUS: 'Vezi anterior'
|
||||
SimpleImageField:
|
||||
NOUPLOAD: 'No Image Uploaded'
|
||||
NOUPLOAD: 'Nici o imagine incarcata'
|
||||
SiteTree:
|
||||
TABMAIN: Pincipal
|
||||
TableField:
|
||||
@ -447,27 +447,27 @@ ro:
|
||||
SORTASC: 'Sort in ascending order'
|
||||
SORTDESC: 'Sort in descending order'
|
||||
TableListField:
|
||||
CSVEXPORT: 'Export to CSV'
|
||||
PRINT: Print
|
||||
Print: Print
|
||||
SELECT: 'Select:'
|
||||
CSVEXPORT: 'Exportati ca CSV'
|
||||
PRINT: Imprima
|
||||
Print: Imprima
|
||||
SELECT: Selecteaza
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
ToggleField:
|
||||
LESS: 'mai puţin '
|
||||
MORE: 'mai mult'
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILE: 'Atasati un fisier'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
AttachFile: 'Atasati un fisier'
|
||||
DELETEINFO: 'Permanently delete this file from the file store'
|
||||
DOEDIT: Save
|
||||
DOEDIT: Salveaza
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
Dimensions: Dimensions
|
||||
EDITINFO: 'Edit this file'
|
||||
EDITINFO: 'Editeaza acest fisier'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMCOMPUTER: 'Din calculatorul dumneavoastra'
|
||||
FROMFILES: 'From files'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
@ -475,6 +475,6 @@ ro:
|
||||
REMOVEERROR: 'Error removing file'
|
||||
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
|
||||
STARTALL: 'Start all'
|
||||
Saved: Saved
|
||||
Saved: Salvat
|
||||
Versioned:
|
||||
has_many_Versions: Versiune
|
||||
|
10
lang/ru.yml
10
lang/ru.yml
@ -3,12 +3,12 @@ ru:
|
||||
NEWFOLDER: 'Новая папка'
|
||||
AssetTableField:
|
||||
CREATED: 'Первая загрузка'
|
||||
DIM: 'Размеры'
|
||||
DIM: Размеры
|
||||
FILENAME: 'Имя файла'
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 'Последнее изменение'
|
||||
OWNER: Владелец
|
||||
SIZE: 'Размер'
|
||||
SIZE: Размер
|
||||
TITLE: Название
|
||||
TYPE: Тип
|
||||
URL: URL
|
||||
@ -61,7 +61,7 @@ ru:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS'
|
||||
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
|
||||
SAVE: 'Сохранить'
|
||||
SAVE: Сохранить
|
||||
CMSProfileController:
|
||||
MENUTITLE: CMSProfileController
|
||||
CheckboxField:
|
||||
@ -247,7 +247,7 @@ ru:
|
||||
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'
|
||||
IMAGEDIMENSIONS: 'Размеры'
|
||||
IMAGEDIMENSIONS: Размеры
|
||||
IMAGEHEIGHTPX: Высота
|
||||
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
@ -402,7 +402,7 @@ ru:
|
||||
ENTERNEWPASSWORD: 'Пожалуйста, введите новый пароль.'
|
||||
ERRORPASSWORDPERMISSION: 'Вы должны войти в систему, чтобы изменить Ваш пароль!'
|
||||
LOGGEDOUT: 'Вы вышли. Если Вы хотите войти снова, введите ваши учетные данные ниже.'
|
||||
LOGIN: 'Вход'
|
||||
LOGIN: Вход
|
||||
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: 'Введите Ваш адрес email, и Вам будет отправлена ссылка, по которой Вы сможете переустановить свой пароль'
|
||||
|
10
lang/si.yml
10
lang/si.yml
@ -77,7 +77,7 @@ si:
|
||||
MAXIMUM: 'Passwords must be at most {max} characters long.'
|
||||
SHOWONCLICKTITLE: 'මුර පදය වෙනස් කිරීම'
|
||||
CreditCardField:
|
||||
FIRST: 'පළමු'
|
||||
FIRST: පළමු
|
||||
FOURTH: fourth
|
||||
SECOND: දෙවන
|
||||
THIRD: third
|
||||
@ -99,8 +99,8 @@ si:
|
||||
SECS: 'තත්පර '
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
YEAR: 'අවුරුද්ද'
|
||||
YEARS: 'අවුරුදු'
|
||||
YEAR: අවුරුද්ද
|
||||
YEARS: අවුරුදු
|
||||
DateField:
|
||||
NOTSET: 'not set'
|
||||
TODAY: today
|
||||
@ -212,7 +212,7 @@ si:
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: 'Sort Order'
|
||||
TITLE: 'පිංතූර අප්ලෝඩ් කරන Iframe ඵක'
|
||||
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>'
|
||||
@ -454,7 +454,7 @@ si:
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
ToggleField:
|
||||
LESS: 'අඩු'
|
||||
LESS: අඩු
|
||||
MORE: වැඩි
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
|
@ -252,7 +252,7 @@ sk:
|
||||
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: 'Šírka'
|
||||
IMAGEWIDTHPX: Šírka
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
LINK: 'Vložiť/upraviť odkaz na zvýraznený text'
|
||||
LINKANCHOR: 'Odkaz na tejto stranke'
|
||||
|
@ -252,7 +252,7 @@ sl:
|
||||
IMAGETITLE: 'Naslov (tooltip) bo izpisan kot dopolnitev k vsebini slike'
|
||||
IMAGETITLETEXT: 'Title text (tooltip)'
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: 'Širina'
|
||||
IMAGEWIDTHPX: Širina
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
LINK: Povezava
|
||||
LINKANCHOR: 'Sidro na tej strani'
|
||||
|
@ -182,7 +182,7 @@ sr:
|
||||
GridFieldAction_Delete:
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
NEXT: Следеће
|
||||
PREVIOUS: 'Претходно'
|
||||
PREVIOUS: Претходно
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
|
124
lang/sv.yml
124
lang/sv.yml
@ -16,12 +16,12 @@ sv:
|
||||
ChooseFiles: 'Välj filer'
|
||||
DRAGFILESHERE: 'Dra filer hit'
|
||||
DROPAREA: 'Släpp här'
|
||||
EDITALL: 'Edit all'
|
||||
EDITALL: 'Redigera alla'
|
||||
EDITANDORGANIZE: 'Redigera och organisera'
|
||||
FILES: Files
|
||||
TOTAL: Total
|
||||
TOUPLOAD: 'Choose file(s) to upload...'
|
||||
UPLOADINPROGRESS: 'Please wait… upload in progress'
|
||||
FILES: Filer
|
||||
TOTAL: Totalt
|
||||
TOUPLOAD: 'Välj fil(er) att ladda upp...'
|
||||
UPLOADINPROGRESS: 'Var god dröj... uppladdning pågår'
|
||||
UPLOADOR: ELLER
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Justering
|
||||
@ -55,7 +55,7 @@ sv:
|
||||
Boolean:
|
||||
ANY: 'Vilken som helst'
|
||||
0: Falskt
|
||||
LOGOUT: 'Log out'
|
||||
LOGOUT: 'Logga ut'
|
||||
1: Sant
|
||||
CMSMain:
|
||||
ACCESS: 'Access to ''{title}'' section'
|
||||
@ -69,7 +69,7 @@ sv:
|
||||
- Sant
|
||||
ComplexTableField:
|
||||
CLOSEPOPUP: 'Stäng popup'
|
||||
SUCCESSADD2: 'Added {name}'
|
||||
SUCCESSADD2: 'Lade till {name}'
|
||||
SUCCESSEDIT: 'Sparade %s %s %s'
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Passwords must be at least {min} characters long.'
|
||||
@ -97,29 +97,29 @@ sv:
|
||||
MONTHS: 'månader '
|
||||
SEC: sek
|
||||
SECS: sekunder
|
||||
TIMEDIFFAGO: '{difference} ago'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
TIMEDIFFAGO: '{difference} sen'
|
||||
TIMEDIFFIN: 'om {difference}'
|
||||
YEAR: år
|
||||
YEARS: år
|
||||
DateField:
|
||||
NOTSET: 'inte angivet'
|
||||
TODAY: 'i dag'
|
||||
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: 'Var god att ange datumet i ett giltigt format ({format})'
|
||||
VALIDDATEMAXDATE: 'Angivet datum måste vara tidigare eller samma som det senaste godkända datumet ({date})'
|
||||
VALIDDATEMINDATE: 'Angivet datum måste vara senare eller samma som det tidigaste godkända datumet ({date})'
|
||||
Director:
|
||||
ADD: 'Lägg till'
|
||||
INVALID_REQUEST: 'Invalid request'
|
||||
INVALID_REQUEST: 'Ogiltig förfrågan'
|
||||
DropdownField:
|
||||
CHOOSE: (Välj)
|
||||
EmailField:
|
||||
VALIDATION: 'Please enter an email address'
|
||||
VALIDATION: 'Var snäll och ange en epostadress'
|
||||
Email_BounceRecord:
|
||||
PLURALNAME: 'Studsade e-brev'
|
||||
SINGULARNAME: 'Studsade e-brev'
|
||||
Enum:
|
||||
ANY: 'Vilken som helst'
|
||||
LOADING: Loading...
|
||||
LOADING: Laddar...
|
||||
File:
|
||||
Content: Innehåll
|
||||
Filename: Filnamn
|
||||
@ -131,22 +131,22 @@ sv:
|
||||
PLURALNAME: Filer
|
||||
SINGULARNAME: Fil
|
||||
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
|
||||
TOOLARGESHORT: 'Filesize exceeds {size}'
|
||||
TOOLARGESHORT: 'Filstorlek överskriden {size}'
|
||||
Title: Titel
|
||||
FileIFrameField:
|
||||
ATTACH: 'Attach {type}'
|
||||
ATTACH: 'Bifoga {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}'
|
||||
DELETE: 'Radera {type}'
|
||||
DISALLOWEDFILETYPE: 'Filtypen är inte tillåten för uppladdning'
|
||||
FILE: Fil
|
||||
FROMCOMPUTER: 'Från din dator'
|
||||
FROMFILESTORE: 'Från filarkivet'
|
||||
NOSOURCE: 'Välj filen du vill bifoga'
|
||||
REPLACE: 'Replace {type}'
|
||||
REPLACE: 'Ersätt {type}'
|
||||
Filesystem:
|
||||
IMPORT_TAB_HEADER: Import
|
||||
SEARCHLISTINGS: Search
|
||||
IMPORT_TAB_HEADER: Importera
|
||||
SEARCHLISTINGS: Sök
|
||||
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
|
||||
Form:
|
||||
FIELDISREQUIRED: '%s är obligatorisk'
|
||||
@ -165,18 +165,18 @@ sv:
|
||||
Delete: Radera
|
||||
UnlinkRelation: Avlänka
|
||||
GridField:
|
||||
Add: 'Add {name}'
|
||||
Add: 'Lägg till {name}'
|
||||
Filter: Filtrera
|
||||
FilterBy: 'Filter by '
|
||||
FilterBy: 'Filtrera på'
|
||||
Find: Hitta
|
||||
LEVELUP: 'Level up'
|
||||
LEVELUP: 'Upp en nivå'
|
||||
LinkExisting: 'Länk finns'
|
||||
NewRecord: 'Ny %s'
|
||||
NoItemsFound: 'Inget hittades'
|
||||
PRINTEDAT: Utskrivet
|
||||
PRINTEDBY: 'Utskrivet av'
|
||||
PlaceHolder: 'Find {type}'
|
||||
PlaceHolderWithLabels: 'Find {type} by {name}'
|
||||
PlaceHolder: 'Hitta {type}'
|
||||
PlaceHolderWithLabels: 'Hitta {type} efter {name}'
|
||||
RelationSearch: Relationssökning
|
||||
ResetFilter: Rensa
|
||||
GridFieldAction_Delete:
|
||||
@ -184,13 +184,13 @@ sv:
|
||||
NEXT: Nästa
|
||||
PREVIOUS: Föregående
|
||||
GridFieldDetailForm:
|
||||
Create: Create
|
||||
Delete: Delete
|
||||
DeletePermissionsFailure: 'No delete permissions'
|
||||
Deleted: 'Deleted %s %s'
|
||||
Create: Skapa
|
||||
Delete: Radera
|
||||
DeletePermissionsFailure: 'Rättighet för att radera saknas'
|
||||
Deleted: 'Raderade %s %s'
|
||||
HELLO: Hej
|
||||
Save: Save
|
||||
Saved: 'Saved %s %s'
|
||||
Save: Spara
|
||||
Saved: 'Sparade %s %s'
|
||||
TEXT1: 'Här är din'
|
||||
TEXT2: 'Återställningslänk för lösenord'
|
||||
TEXT3: för
|
||||
@ -223,13 +223,13 @@ sv:
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Add URL'
|
||||
ADDURL: 'Lägg till URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: Ankare
|
||||
BUTTONINSERT: Infoga
|
||||
BUTTONINSERTLINK: 'Infoga länk'
|
||||
BUTTONREMOVELINK: 'Ta bort länk'
|
||||
BUTTONUpdate: Update
|
||||
BUTTONUpdate: Uppdatera
|
||||
CAPTIONTEXT: Rubriktext
|
||||
CSSCLASS: 'Placering / stil'
|
||||
CSSCLASSCENTER: 'Centrerad, för sig själv'
|
||||
@ -242,9 +242,9 @@ sv:
|
||||
FOLDER: Mapp
|
||||
FROMCMS: 'Från CMSet'
|
||||
FROMCOMPUTER: 'Från din dator'
|
||||
FROMWEB: 'From the web'
|
||||
FindInFolder: 'Find in Folder'
|
||||
IMAGEALT: 'Alternative text (alt)'
|
||||
FROMWEB: 'Från webben'
|
||||
FindInFolder: 'Hitta i mapp'
|
||||
IMAGEALT: 'Alternativ text (alt)'
|
||||
IMAGEALTTEXT: 'Alternativ text (alt) - visas om bilden inte kan visas'
|
||||
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
|
||||
IMAGEDIMENSIONS: Dimensioner
|
||||
@ -266,31 +266,31 @@ sv:
|
||||
PAGE: Sida
|
||||
URL: URL
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
UpdateMEDIA: 'Uppdatera media'
|
||||
ImageField:
|
||||
IMAGE: Bild
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Använd filter" GridFieldItemEditView.ss: Go back: "Gå tillbaka" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: 'Lägg till ny rad'
|
||||
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
|
||||
DELETED: Deleted.
|
||||
DropdownBatchActionsDefault: 'Åtgärder'
|
||||
DELETED: Raderad
|
||||
DropdownBatchActionsDefault: Åtgärder
|
||||
HELP: Hjälp
|
||||
PAGETYPE: Sidtyp
|
||||
PERMAGAIN: 'Du har blivit utloggad. Om du vill logga in igen anger du dina uppgifter nedan.'
|
||||
PERMALREADY: 'Tyvärr så har du inte tillträde till den delen av CMSet. Om du vill logga in med en annan användare kan du göra det nedan'
|
||||
PERMDEFAULT: 'Var god välj en inloggningsmetod och fyll i dina uppgifter för att logga in i CMSet.'
|
||||
PLEASESAVE: 'Var god spara sidan. Den kan inte uppdateras för att den har inte sparats ännu.'
|
||||
PreviewButton: Preview
|
||||
PreviewButton: Förhandsgranska
|
||||
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
|
||||
SAVEDUP: Saved.
|
||||
SAVEDUP: Sparad.
|
||||
VersionUnknown: okänd
|
||||
LoginAttempt:
|
||||
Email: E-postadress
|
||||
IP: IP-adress
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
ADDGROUP: 'Lägg till grupp'
|
||||
BUTTONCHANGEPASSWORD: 'Ändra lösenord'
|
||||
BUTTONLOGIN: 'Logga in'
|
||||
BUTTONLOGINOTHER: 'Logga in som annan användare'
|
||||
@ -308,8 +308,8 @@ sv:
|
||||
ERRORWRONGCRED: 'Antingen e-postadressen eller lösenordet är fel. Försök igen.'
|
||||
FIRSTNAME: Förnamn
|
||||
INTERFACELANG: Gränssnittsspråk
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
INVALIDNEWPASSWORD: 'Vi kunde inte godkänna det lösenordet: {password}'
|
||||
LOGGEDINAS: 'Du är inloggad som {name}.'
|
||||
NEWPASSWORD: 'Nytt lösenord'
|
||||
PASSWORD: Lösenord
|
||||
PLURALNAME: Medlemmar
|
||||
@ -320,8 +320,8 @@ sv:
|
||||
SUBJECTPASSWORDRESET: 'Din återställningslänk'
|
||||
SURNAME: Efternamn
|
||||
VALIDATIONMEMBEREXISTS: 'Det finns redan en medlem med samma %s'
|
||||
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
ValidationIdentifierFailed: 'Kan inte skriva över medlem #{id} med samma identifierare ({name} = {value}))'
|
||||
WELCOMEBACK: 'Välkommen tillbaka, {firstname}'
|
||||
YOUROLDPASSWORD: 'Ditt gamla lösenord'
|
||||
belongs_many_many_Groups: Grupper
|
||||
db_LastVisited: 'Datum för senaste besöket'
|
||||
@ -376,23 +376,23 @@ sv:
|
||||
NullableField:
|
||||
IsNullLabel: 'Är NULL'
|
||||
NumericField:
|
||||
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
|
||||
VALIDATION: '''{value}'' är inget nummer, bara nummer kan accepteras för det här fältet'
|
||||
Permission:
|
||||
AdminGroup: Administratör
|
||||
CMS_ACCESS_CATEGORY: CMS-tillgång
|
||||
FULLADMINRIGHTS: 'Fulla administrativa rättigheter'
|
||||
FULLADMINRIGHTS_HELP: 'Implicerar och gäller över alla andra tillskrivna rättigheter.'
|
||||
IMPORTSPECFIELDS: 'Database columns'
|
||||
IMPORTSPECRELATIONS: Relations
|
||||
IMPORTSPECRELATIONS: Relationer
|
||||
PermissionCheckboxSetField:
|
||||
AssignedTo: 'assigned to "{title}"'
|
||||
FromGroup: 'inherited from group "{title}"'
|
||||
FromRole: 'inherited from role "{title}"'
|
||||
AssignedTo: 'tilldelad till "{title}"'
|
||||
FromGroup: 'ärvde från grupp "{title}"'
|
||||
FromRole: 'ärvde från roll "{title}"'
|
||||
FromRoleOnGroup: 'ärvt från roll "%s" i grupp "%s"'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Roller och tillgångsinställningar'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
Back: Tillbaka
|
||||
VALIDATION: 'Var god ange ett giltigt telefonnummer'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'Du har inte tillträde till den här sidan. Om du har ett annat konto som har rätt behörighet kan du logga in igen nedan.'
|
||||
@ -418,7 +418,7 @@ sv:
|
||||
IMPORTGROUPS: 'Importera grupper'
|
||||
IMPORTUSERS: 'Importera användare'
|
||||
MEMBERS: Medlemmar
|
||||
MENUTITLE: Security
|
||||
MENUTITLE: Säkerhet
|
||||
MemberListCaution: 'Varning: Att radera medlemmar från den här listan kommer också att radera dem från alla grupper och från databasen helt och hållet'
|
||||
NEWGROUP: 'Ny grupp'
|
||||
PERMISSIONS: Tillstånd
|
||||
@ -430,9 +430,9 @@ sv:
|
||||
BtnImport: 'Importera från CSV'
|
||||
FileFieldLabel: 'CSV-fil <small>(Tillåtna filtyper: *.csv)</small>'
|
||||
SilverStripeNavigator:
|
||||
Edit: Edit
|
||||
FILTER: Filter
|
||||
IMPORT: Import
|
||||
Edit: Ändra
|
||||
FILTER: 'Filtrera på'
|
||||
IMPORT: Importera
|
||||
VIEWFIRST: 'Visa första'
|
||||
VIEWLAST: 'Visa sista'
|
||||
VIEWNEXT: 'Visa nästa'
|
||||
@ -452,7 +452,7 @@ sv:
|
||||
Print: 'Skriv ut'
|
||||
SELECT: 'Välj:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
VALIDATEFORMAT: 'Var god att ange tid i ett giltigt format ({format})'
|
||||
ToggleField:
|
||||
LESS: mindre
|
||||
MORE: mer
|
||||
@ -464,14 +464,14 @@ sv:
|
||||
DOEDIT: Spara
|
||||
DROPFILE: 'Släpp en fil'
|
||||
DROPFILES: 'släpp filer'
|
||||
Dimensions: Dimensions
|
||||
Dimensions: Dimensioner
|
||||
EDITINFO: 'Redigera filen'
|
||||
FIELDNOTSET: 'Hittade ingen filinformation'
|
||||
FROMCOMPUTER: 'Från din dator'
|
||||
FROMFILES: 'Från filer'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
MAXNUMBEROFFILES: 'Max antal ({count}) filer överstiget.'
|
||||
MAXNUMBEROFFILESSHORT: 'Kan bara ladda upp {count} files'
|
||||
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'
|
||||
|
14
lang/th.yml
14
lang/th.yml
@ -35,8 +35,8 @@ th:
|
||||
COLOREDEXAMPLE: 'blue text'
|
||||
EMAILLINK: 'Email link'
|
||||
EMAILLINKDESCRIPTION: สร้างลิงค์ให้กับที่อยู่อีเมล์
|
||||
IMAGE: 'รูปภาพ'
|
||||
IMAGEDESCRIPTION: 'แสดงรูปภาพในหน้าบทความของคุณ'
|
||||
IMAGE: รูปภาพ
|
||||
IMAGEDESCRIPTION: แสดงรูปภาพในหน้าบทความของคุณ
|
||||
ITALIC: 'Italic Text'
|
||||
ITALICEXAMPLE: Italics
|
||||
LINK: 'Website link'
|
||||
@ -230,7 +230,7 @@ th:
|
||||
BUTTONINSERTLINK: แทรกลิงค์
|
||||
BUTTONREMOVELINK: ลบลิงค์
|
||||
BUTTONUpdate: Update
|
||||
CAPTIONTEXT: 'ข้อความคำอธิบายใต้ภาพ'
|
||||
CAPTIONTEXT: ข้อความคำอธิบายใต้ภาพ
|
||||
CSSCLASS: 'การจัดวาง / รูปแบบ'
|
||||
CSSCLASSCENTER: 'Centered, on its own.'
|
||||
CSSCLASSLEFT: 'On the left, with text wrapping around.'
|
||||
@ -268,7 +268,7 @@ th:
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
ImageField:
|
||||
IMAGE: 'รูปภาพ'
|
||||
IMAGE: รูปภาพ
|
||||
Image_iframe.ss: 'ChangePasswordEmail.ss: BackLink_Button.ss: CMSLoadingScreen.ss: RelationComplexTableField.ss: ForgotPasswordEmail.ss: APPLY FILTER: "Apply Filter" GridFieldItemEditView.ss: Go back: "Go back" ModelSidebar.ss: TableListField_PageControls.ss: ModelAdmin_Tools.ss: ComplexTableField_popup.ss: TableField.ss: FileIFrameField_iframe.ss: ComplexTableField.ss: TableListField.ss: ModelAdmin_ImportSpec.ss: LeftAndMain_Menu.ss:'
|
||||
LeftAndMain:
|
||||
ADD: เพิ่มแถวใหม่
|
||||
@ -307,7 +307,7 @@ th:
|
||||
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: ชื่อจริง
|
||||
INTERFACELANG: 'ภาษาสำหรับหน้าจอติดต่อผู้ใช้'
|
||||
INTERFACELANG: ภาษาสำหรับหน้าจอติดต่อผู้ใช้
|
||||
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
|
||||
LOGGEDINAS: 'You''re logged in as {name}.'
|
||||
NEWPASSWORD: รหัสผ่านใหม่
|
||||
@ -325,7 +325,7 @@ th:
|
||||
YOUROLDPASSWORD: รหัสผ่านเก่าของคุณ
|
||||
belongs_many_many_Groups: กลุ่ม
|
||||
db_LastVisited: วันที่เยี่ยมชมล่าสุด
|
||||
db_Locale: 'ภาษาสำหรับส่วนอินเทอร์เฟซ'
|
||||
db_Locale: ภาษาสำหรับส่วนอินเทอร์เฟซ
|
||||
db_LockedOutUntil: 'Locked out until'
|
||||
db_NumVisit: จำนวนการเข้าชม
|
||||
db_Password: รหัสผ่าน
|
||||
@ -438,7 +438,7 @@ th:
|
||||
VIEWNEXT: เปิดดูหน้าเว็บถัดไป
|
||||
VIEWPREVIOUS: เปิดดูหน้าเว็บก่อนหน้า
|
||||
SimpleImageField:
|
||||
NOUPLOAD: 'ยังไม่มีรูปภาพที่ถูกอัพโหลด'
|
||||
NOUPLOAD: ยังไม่มีรูปภาพที่ถูกอัพโหลด
|
||||
SiteTree:
|
||||
TABMAIN: หลัก
|
||||
TableField:
|
||||
|
60
lang/uk.yml
60
lang/uk.yml
@ -8,7 +8,7 @@ uk:
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 'Востаннє змінено'
|
||||
OWNER: Власник
|
||||
SIZE: 'Розмір'
|
||||
SIZE: Розмір
|
||||
TITLE: Назва
|
||||
TYPE: Тип
|
||||
URL: URL
|
||||
@ -91,8 +91,8 @@ uk:
|
||||
DAYS: дні
|
||||
HOUR: година
|
||||
HOURS: годин
|
||||
MIN: 'хв'
|
||||
MINS: 'хв'
|
||||
MIN: хв
|
||||
MINS: хв
|
||||
MONTH: місяць
|
||||
MONTHS: місяці
|
||||
SEC: сек
|
||||
@ -199,18 +199,18 @@ uk:
|
||||
CHANGEPASSWORDTEXT1: 'Ви змінили свій пароль для'
|
||||
CHANGEPASSWORDTEXT2: 'Тепер Ви можете використовувати наступні дані для входу:'
|
||||
Code: 'Код групи'
|
||||
DefaultGroupTitleAdministrators: Administrators
|
||||
DefaultGroupTitleAdministrators: Адміністратори
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
Description: Description
|
||||
Description: Опис
|
||||
EMAIL: Email
|
||||
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
|
||||
HELLO: Привіт
|
||||
Locked: 'Заблокувати?'
|
||||
NoRoles: 'No roles found'
|
||||
NoRoles: 'Ролі не знайдені'
|
||||
PASSWORD: Password
|
||||
Parent: 'Батьківська група'
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: 'Sort Order'
|
||||
Sort: 'Порядок сортування'
|
||||
TITLE: 'АйФрейм завантаження зображення'
|
||||
has_many_Permissions: Права
|
||||
many_many_Members: Члени
|
||||
@ -247,7 +247,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)'
|
||||
@ -298,10 +298,10 @@ uk:
|
||||
CONFIRMNEWPASSWORD: 'Підтвердіть новий пароль'
|
||||
CONFIRMPASSWORD: 'Підтвердіть пароль'
|
||||
DefaultAdminFirstname: 'Default Admin'
|
||||
DefaultDateTime: default
|
||||
DefaultDateTime: типовий
|
||||
EMAIL: Е-пошта
|
||||
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
|
||||
ENTEREMAIL: 'Please enter an email address to get a password reset link.'
|
||||
EMPTYNEWPASSWORD: 'Новий пароль не може бути порожнім, будь-ласка, спробуйте ще раз'
|
||||
ENTEREMAIL: 'Введіть, будь-ласка, електронну адресу щоб отримати посилання для відновлення паролю.'
|
||||
ERRORLOCKEDOUT: 'Ваш екаунт тимчасово заблоковано, тому що було багато невдалих спроб входу. Будь ласка спробуйте знову через 20 хвилин.'
|
||||
ERRORNEWPASSWORD: 'Ви ввели новий пароль із відмінностями, спробуйте знову'
|
||||
ERRORPASSWORDNOTMATCH: 'Ваш теперішній пароль не збігається, будь ласка, повторіть'
|
||||
@ -313,7 +313,7 @@ uk:
|
||||
NEWPASSWORD: 'Новий пароль'
|
||||
PASSWORD: Пароль
|
||||
PLURALNAME: Члени
|
||||
PROFILESAVESUCCESS: 'Successfully saved.'
|
||||
PROFILESAVESUCCESS: 'Збереження пройшло успішно.'
|
||||
REMEMBERME: 'Пам''ятати мене наступного разу?'
|
||||
SINGULARNAME: Член
|
||||
SUBJECTPASSWORDCHANGED: 'Ваш пароль змінено'
|
||||
@ -324,10 +324,10 @@ uk:
|
||||
WELCOMEBACK: 'Welcome Back, {firstname}'
|
||||
YOUROLDPASSWORD: 'Ваш старий пароль'
|
||||
belongs_many_many_Groups: Групи
|
||||
db_LastVisited: 'Last Visited Date'
|
||||
db_LastVisited: 'Дата останнього відвідування'
|
||||
db_Locale: 'Interface Locale'
|
||||
db_LockedOutUntil: 'Заблоковано поки'
|
||||
db_NumVisit: 'Number of Visits'
|
||||
db_NumVisit: 'Кількість відвідувань'
|
||||
db_Password: Пароль
|
||||
db_PasswordExpiry: 'Дата закінчення терміну дії пароля'
|
||||
MemberAuthenticator:
|
||||
@ -410,22 +410,22 @@ uk:
|
||||
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
|
||||
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: 'Застосувати ролі до груп'
|
||||
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
|
||||
EDITPERMISSIONS: 'Керувати дозволами для груп'
|
||||
EDITPERMISSIONS_HELP: 'Ability to edit Permissions and IP Addresses for a group. Requires the "Access to ''Security'' section" permission.'
|
||||
GROUPNAME: 'Group name'
|
||||
IMPORTGROUPS: 'Import groups'
|
||||
GROUPNAME: 'Назва групи'
|
||||
IMPORTGROUPS: 'Імпортувати групи'
|
||||
IMPORTUSERS: 'Import users'
|
||||
MEMBERS: Members
|
||||
MEMBERS: Члени
|
||||
MENUTITLE: Security
|
||||
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
|
||||
NEWGROUP: 'Нова Група'
|
||||
PERMISSIONS: Permissions
|
||||
ROLES: Roles
|
||||
PERMISSIONS: Дозволи
|
||||
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
|
||||
TABROLES: Ролі
|
||||
Users: Користувачі
|
||||
SecurityAdmin_MemberImportForm:
|
||||
BtnImport: 'Import from CSV'
|
||||
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
|
||||
@ -450,29 +450,29 @@ uk:
|
||||
CSVEXPORT: 'Експортувати в CSV'
|
||||
PRINT: Друкувати
|
||||
Print: Друкувати
|
||||
SELECT: 'Select:'
|
||||
SELECT: 'Вибрати:'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
|
||||
ToggleField:
|
||||
LESS: менше
|
||||
MORE: більше
|
||||
UploadField:
|
||||
ATTACHFILE: 'Attach a file'
|
||||
ATTACHFILES: 'Attach files'
|
||||
AttachFile: 'Attach a file'
|
||||
ATTACHFILE: 'Прикріпити файл'
|
||||
ATTACHFILES: 'Прикріпити файли'
|
||||
AttachFile: 'Прикріпити файл'
|
||||
DELETEINFO: 'Permanently delete this file from the file store'
|
||||
DOEDIT: Save
|
||||
DOEDIT: Зберегти
|
||||
DROPFILE: 'drop a file'
|
||||
DROPFILES: 'drop files'
|
||||
Dimensions: Dimensions
|
||||
EDITINFO: 'Edit this file'
|
||||
EDITINFO: 'Редагувати цей файл'
|
||||
FIELDNOTSET: 'File information not found'
|
||||
FROMCOMPUTER: 'From your computer'
|
||||
FROMFILES: 'From files'
|
||||
FROMFILES: 'З файлів'
|
||||
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
|
||||
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
|
||||
REMOVE: Remove
|
||||
REMOVEERROR: 'Error removing file'
|
||||
REMOVEERROR: 'Помилка видалення файла'
|
||||
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
|
||||
STARTALL: 'Start all'
|
||||
Saved: Saved
|
||||
|
@ -87,8 +87,8 @@ vi_VN:
|
||||
PLURALNAME: 'Data Objects'
|
||||
SINGULARNAME: 'Data Object'
|
||||
Date:
|
||||
DAY: 'ngày'
|
||||
DAYS: 'ngày'
|
||||
DAY: ngày
|
||||
DAYS: ngày
|
||||
HOUR: giờ
|
||||
HOURS: giờ
|
||||
MIN: phút
|
||||
|
102
lang/zh_CN.yml
102
lang/zh_CN.yml
@ -2,12 +2,12 @@ zh_CN:
|
||||
AssetAdmin:
|
||||
NEWFOLDER: 新建文件夹
|
||||
AssetTableField:
|
||||
CREATED: '第一次被上传'
|
||||
CREATED: 第一次被上传
|
||||
DIM: 尺寸
|
||||
FILENAME: 文件名
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 上一次被更改
|
||||
OWNER: '拥有者'
|
||||
OWNER: 拥有者
|
||||
SIZE: 大小
|
||||
TITLE: 文件名称
|
||||
TYPE: 类型
|
||||
@ -49,9 +49,9 @@ zh_CN:
|
||||
UNORDEREDDESCRIPTION: 'Unordered list'
|
||||
UNORDEREDEXAMPLE1: 'unordered item 1'
|
||||
BasicAuth:
|
||||
ENTERINFO: '请输入用户名和密码'
|
||||
ENTERINFO: 请输入用户名和密码
|
||||
ERRORNOTADMIN: 此用户没有管理员权限。
|
||||
ERRORNOTREC: '没有找到此用户名/密码'
|
||||
ERRORNOTREC: 没有找到此用户名/密码
|
||||
Boolean:
|
||||
ANY: Any
|
||||
0: 'False'
|
||||
@ -75,7 +75,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
|
||||
@ -152,9 +152,9 @@ zh_CN:
|
||||
FIELDISREQUIRED: '%s是必需填写的'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
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'
|
||||
@ -196,9 +196,9 @@ zh_CN:
|
||||
TEXT3: for
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
CHANGEPASSWORDTEXT1: '您已更改了登陆%s的密码'
|
||||
CHANGEPASSWORDTEXT1: 您已更改了登陆%s的密码
|
||||
CHANGEPASSWORDTEXT2: 您现在可以用下列权限信息进行登路:
|
||||
Code: '团队代码'
|
||||
Code: 团队代码
|
||||
DefaultGroupTitleAdministrators: Administrators
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
Description: Description
|
||||
@ -211,7 +211,7 @@ zh_CN:
|
||||
Parent: 主团队
|
||||
RolesAddEditLink: 'Manage roles'
|
||||
Sort: 'Sort Order'
|
||||
TITLE: '图象上传内嵌框架(Iframe)'
|
||||
TITLE: 图象上传内嵌框架(Iframe)
|
||||
has_many_Permissions: 权限
|
||||
many_many_Members: 成员
|
||||
GroupImportForm:
|
||||
@ -227,12 +227,12 @@ zh_CN:
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: Anchor
|
||||
BUTTONINSERT: Insert
|
||||
BUTTONINSERTLINK: '插入链接'
|
||||
BUTTONREMOVELINK: '删除链接'
|
||||
BUTTONINSERTLINK: 插入链接
|
||||
BUTTONREMOVELINK: 删除链接
|
||||
BUTTONUpdate: Update
|
||||
CAPTIONTEXT: 'Caption text'
|
||||
CSSCLASS: '对齐/样式'
|
||||
CSSCLASSCENTER: '自居中'
|
||||
CSSCLASS: 对齐/样式
|
||||
CSSCLASSCENTER: 自居中
|
||||
CSSCLASSLEFT: 左端自动换行
|
||||
CSSCLASSLEFTALONE: 'On the left, on its own.'
|
||||
CSSCLASSRIGHT: 右端自动换行
|
||||
@ -248,17 +248,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: 在新窗口打开链接?
|
||||
@ -277,10 +277,10 @@ zh_CN:
|
||||
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.
|
||||
@ -291,47 +291,47 @@ zh_CN:
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
BUTTONCHANGEPASSWORD: '更改密码'
|
||||
BUTTONCHANGEPASSWORD: 更改密码
|
||||
BUTTONLOGIN: 登录
|
||||
BUTTONLOGINOTHER: '使用其他帐户登录'
|
||||
BUTTONLOSTPASSWORD: '忘记密码'
|
||||
CONFIRMNEWPASSWORD: '确认新密码'
|
||||
CONFIRMPASSWORD: '确认密码'
|
||||
BUTTONLOGINOTHER: 使用其他帐户登录
|
||||
BUTTONLOSTPASSWORD: 忘记密码
|
||||
CONFIRMNEWPASSWORD: 确认新密码
|
||||
CONFIRMPASSWORD: 确认密码
|
||||
DefaultAdminFirstname: 'Default Admin'
|
||||
DefaultDateTime: default
|
||||
EMAIL: 电子邮件
|
||||
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: 成员
|
||||
PROFILESAVESUCCESS: 'Successfully saved.'
|
||||
REMEMBERME: 记住我的信息?
|
||||
SINGULARNAME: 成员
|
||||
SUBJECTPASSWORDCHANGED: '您的密码已更改'
|
||||
SUBJECTPASSWORDRESET: '重设您的密码链接'
|
||||
SUBJECTPASSWORDCHANGED: 您的密码已更改
|
||||
SUBJECTPASSWORDRESET: 重设您的密码链接
|
||||
SURNAME: 姓
|
||||
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)'
|
||||
Custom: Custom
|
||||
@ -361,7 +361,7 @@ zh_CN:
|
||||
ResultUpdated: 'Updated {count} members'
|
||||
MemberTableField: null
|
||||
ModelAdmin:
|
||||
DELETE: '删除'
|
||||
DELETE: 删除
|
||||
DELETEDRECORDS: 'Deleted {count} records.'
|
||||
IMPORT: 'Import from CSV'
|
||||
IMPORTEDRECORDS: 'Imported {count} records.'
|
||||
@ -393,19 +393,19 @@ zh_CN:
|
||||
PERMISSIONS_CATEGORY: 'Roles and access permissions'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
VALIDATION: '请输入有效电话号码'
|
||||
VALIDATION: 请输入有效电话号码
|
||||
Security:
|
||||
ALREADYLOGGEDIN: '您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。'
|
||||
BUTTONSEND: '给我发送密码重设链接'
|
||||
CHANGEPASSWORDBELOW: '您可在下面更改您的密码'
|
||||
CHANGEPASSWORDHEADER: '更改您的密码'
|
||||
ENTERNEWPASSWORD: '请输入新密码'
|
||||
ERRORPASSWORDPERMISSION: '您必需登录以更改您的密码'
|
||||
LOGGEDOUT: '您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。'
|
||||
ALREADYLOGGEDIN: 您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。
|
||||
BUTTONSEND: 给我发送密码重设链接
|
||||
CHANGEPASSWORDBELOW: 您可在下面更改您的密码
|
||||
CHANGEPASSWORDHEADER: 更改您的密码
|
||||
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:
|
||||
@ -438,11 +438,11 @@ zh_CN:
|
||||
VIEWNEXT: 'View next'
|
||||
VIEWPREVIOUS: 'View previous'
|
||||
SimpleImageField:
|
||||
NOUPLOAD: '没有上传的图像'
|
||||
NOUPLOAD: 没有上传的图像
|
||||
SiteTree:
|
||||
TABMAIN: 主要部分
|
||||
TableField:
|
||||
ADDITEM: '新加'
|
||||
ADDITEM: 新加
|
||||
ISREQUIRED: 'In %s ''%s'' is required'
|
||||
SORTASC: 'Sort in ascending order'
|
||||
SORTDESC: 'Sort in descending order'
|
||||
|
@ -7,7 +7,7 @@ zh_TW:
|
||||
FILENAME: 檔案名稱
|
||||
FOLDER: Folder
|
||||
LASTEDIT: 最後一次更新
|
||||
OWNER: '擁有者'
|
||||
OWNER: 擁有者
|
||||
SIZE: 大小
|
||||
TITLE: 標題
|
||||
TYPE: 類型
|
||||
@ -49,8 +49,8 @@ zh_TW:
|
||||
UNORDEREDDESCRIPTION: 'Unordered list'
|
||||
UNORDEREDEXAMPLE1: 'unordered item 1'
|
||||
BasicAuth:
|
||||
ENTERINFO: '請輸入帳號密碼。'
|
||||
ERRORNOTADMIN: '那個使用者不是管理員。'
|
||||
ENTERINFO: 請輸入帳號密碼。
|
||||
ERRORNOTADMIN: 那個使用者不是管理員。
|
||||
ERRORNOTREC: 那組帳號密碼不對。
|
||||
Boolean:
|
||||
ANY: Any
|
||||
@ -152,8 +152,8 @@ zh_TW:
|
||||
FIELDISREQUIRED: '必須要填 %s'
|
||||
TITLE: 'Image Uploading Iframe'
|
||||
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
|
||||
@ -197,7 +197,7 @@ zh_TW:
|
||||
Group:
|
||||
AddRole: 'Add a role for this group'
|
||||
CHANGEPASSWORDTEXT1: 您為這個帳戶改密碼:
|
||||
CHANGEPASSWORDTEXT2: '您可以用下列的帳號密碼登入:'
|
||||
CHANGEPASSWORDTEXT2: 您可以用下列的帳號密碼登入:
|
||||
Code: 'Group Code'
|
||||
DefaultGroupTitleAdministrators: Administrators
|
||||
DefaultGroupTitleContentAuthors: 'Content Authors'
|
||||
@ -227,15 +227,15 @@ zh_TW:
|
||||
ADJUSTDETAILSDIMENSIONS: 'Details & dimensions'
|
||||
ANCHORVALUE: Anchor
|
||||
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: 檔案
|
||||
@ -254,7 +254,7 @@ zh_TW:
|
||||
IMAGETITLETEXTDESC: 'For additional information about the image'
|
||||
IMAGEWIDTHPX: 寬
|
||||
INSERTMEDIA: 'Insert Media'
|
||||
LINK: '插入或編輯選取的連結'
|
||||
LINK: 插入或編輯選取的連結
|
||||
LINKANCHOR: 'Anchor on this page'
|
||||
LINKDESCR: 連結敘述
|
||||
LINKEMAIL: 電子郵件地址
|
||||
@ -263,7 +263,7 @@ zh_TW:
|
||||
LINKINTERNAL: 此網站
|
||||
LINKOPENNEWWIN: 在新視窗打開連結
|
||||
LINKTO: 連結至
|
||||
PAGE: '網頁'
|
||||
PAGE: 網頁
|
||||
URL: 網址
|
||||
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
|
||||
UpdateMEDIA: 'Update Media'
|
||||
@ -276,11 +276,11 @@ 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.
|
||||
@ -292,8 +292,8 @@ zh_TW:
|
||||
Member:
|
||||
ADDGROUP: 'Add group'
|
||||
BUTTONCHANGEPASSWORD: 更改密碼
|
||||
BUTTONLOGIN: '登入'
|
||||
BUTTONLOGINOTHER: '用別的帳戶登入'
|
||||
BUTTONLOGIN: 登入
|
||||
BUTTONLOGINOTHER: 用別的帳戶登入
|
||||
BUTTONLOSTPASSWORD: 忘記密碼
|
||||
CONFIRMNEWPASSWORD: 確認新密碼
|
||||
CONFIRMPASSWORD: 確認密碼
|
||||
@ -303,7 +303,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: 名
|
||||
@ -393,19 +393,19 @@ zh_TW:
|
||||
PERMISSIONS_CATEGORY: 'Roles and access permissions'
|
||||
PhoneNumberField:
|
||||
Back: Back
|
||||
VALIDATION: '請輸入有效的電話號碼'
|
||||
VALIDATION: 請輸入有效的電話號碼
|
||||
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:
|
||||
|
@ -4,6 +4,6 @@
|
||||
*/
|
||||
class ComponentSet extends DataObjectSet {
|
||||
function setComponentInfo($type, $ownerObj, $ownerClass, $tableName, $childClass, $joinField = null) {
|
||||
Deprecation::notice('3.0', 'Use ManyManyList or HasManyList instead.');
|
||||
Deprecation::notice('3.0', 'ComponentSet is deprecated. Use ManyManyList or HasManyList instead.', Deprecation::SCOPE_CLASS);
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ abstract class DataExtension extends Extension {
|
||||
$statics = Injector::inst()->get($extensionClass, true, $args)->$extraStaticsMethod($class, $extensionClass);
|
||||
|
||||
if ($statics) {
|
||||
Deprecation::notice('3.1.0', "$extraStaticsMethod deprecated. Just define statics on your extension, or use add_to_class");
|
||||
Deprecation::notice('3.1.0', "$extraStaticsMethod deprecated. Just define statics on your extension, or use add_to_class", Deprecation::SCOPE_GLOBAL);
|
||||
|
||||
// TODO: This currently makes extraStatics the MOST IMPORTANT config layer, not the least
|
||||
foreach (self::$extendable_statics as $key => $merge) {
|
||||
|
@ -141,7 +141,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
return $this;
|
||||
}
|
||||
if($limit && !is_numeric($limit)) {
|
||||
Deprecation::notice('3.0', 'Please pass limits as 2 arguments, rather than an array or SQL fragment.');
|
||||
Deprecation::notice('3.0', 'Please pass limits as 2 arguments, rather than an array or SQL fragment.', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
$this->dataQuery->limit($limit, $offset);
|
||||
return $this;
|
||||
@ -599,7 +599,7 @@ class DataList extends ViewableData implements SS_List, SS_Filterable, SS_Sortab
|
||||
* @return DataList
|
||||
*/
|
||||
public function getRange($offset, $length) {
|
||||
Deprecation::notice("3.0", 'getRange($offset, $length) is deprecated. Use limit($length, $offset) instead. Note the new argument order.');
|
||||
Deprecation::notice("3.0", 'Use limit($length, $offset) instead. Note the new argument order.');
|
||||
return $this->limit($length, $offset);
|
||||
}
|
||||
|
||||
|
@ -2596,7 +2596,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
// Todo: Determine if we can deprecate for 3.0.0 and use DI or something instead
|
||||
// Todo: Make the $containerClass method redundant
|
||||
if($containerClass != 'DataList') {
|
||||
Deprecation::notice('3.0', '$containerClass argument is deprecated.');
|
||||
Deprecation::notice('3.0', 'DataObject::get() - $containerClass argument is deprecated.', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
|
||||
$result = DataList::create($callerClass)->where($filter)->sort($sort);
|
||||
|
@ -7,7 +7,7 @@
|
||||
abstract class DataObjectDecorator extends DataExtension {
|
||||
|
||||
public function __construct() {
|
||||
Deprecation::notice('3.0', 'Use DataExtension instead.');
|
||||
Deprecation::notice('3.0', 'DataObjectDecorator is deprecated. Use DataExtension instead.', Deprecation::SCOPE_CLASS);
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ class DataObjectSet extends ArrayList {
|
||||
* @deprecated 3.0
|
||||
*/
|
||||
public function __construct($items = array()) {
|
||||
Deprecation::notice('3.0', 'Use DataList or ArrayList instead');
|
||||
Deprecation::notice('3.0', 'DataObjectSet is deprecated. Use DataList or ArrayList instead', Deprecation::SCOPE_CLASS);
|
||||
|
||||
if ($items) {
|
||||
if (!is_array($items) || func_num_args() > 1) {
|
||||
|
@ -223,7 +223,7 @@ class DataQuery {
|
||||
}
|
||||
|
||||
$query->selectField("\"$baseClass\".\"ID\"", "ID");
|
||||
$query->selectField("CASE WHEN \"$baseClass\".\"ClassName\" IS NOT NULL THEN \"$baseClass\".\"ClassName\" ELSE '$baseClass' END", "RecordClassName");
|
||||
$query->selectField("CASE WHEN \"$baseClass\".\"ClassName\" IS NOT NULL THEN \"$baseClass\".\"ClassName\" ELSE ".DB::getConn()->prepStringForDB($baseClass)." END", "RecordClassName");
|
||||
|
||||
// TODO: Versioned, Translatable, SiteTreeSubsites, etc, could probably be better implemented as subclasses of DataQuery
|
||||
|
||||
|
@ -882,7 +882,15 @@ abstract class SS_Database {
|
||||
* @return string SQL datetime expression to query for the interval between $date1 and $date2 in seconds which is the result of the substraction
|
||||
*/
|
||||
abstract function datetimeDifferenceClause($date1, $date2);
|
||||
|
||||
|
||||
/**
|
||||
* Can the database override timezone as a connection setting,
|
||||
* or does it use the system timezone exclusively?
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
abstract function supportsTimezoneOverride();
|
||||
|
||||
/*
|
||||
* Does this database support transactions?
|
||||
*
|
||||
|
@ -87,6 +87,10 @@ class MySQLDatabase extends SS_Database {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function supportsTimezoneOverride() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the version of MySQL.
|
||||
* @return string
|
||||
|
@ -19,7 +19,7 @@ class SQLMap extends Object implements IteratorAggregate {
|
||||
* @param SQLQuery $query The query to generate this map. THis isn't executed until it's needed.
|
||||
*/
|
||||
public function __construct(SQLQuery $query, $keyField = "ID", $titleField = "Title") {
|
||||
Deprecation::notice('3.0', 'Use SS_Map or DataList::map() instead.');
|
||||
Deprecation::notice('3.0', 'Use SS_Map or DataList::map() instead.', Deprecation::SCOPE_CLASS);
|
||||
|
||||
if(!$query) {
|
||||
user_error('SQLMap constructed with null query.', E_USER_ERROR);
|
||||
|
@ -1,12 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Class Enum represents an enumeration of a set of strings.
|
||||
*
|
||||
* See {@link DropdownField} for a {@link FormField} to select enum values.
|
||||
*
|
||||
* @package framework
|
||||
* @subpackage model
|
||||
*/
|
||||
class Enum extends DBField {
|
||||
class Enum extends StringField {
|
||||
|
||||
protected $enum, $default;
|
||||
|
||||
@ -15,22 +16,28 @@ class Enum extends DBField {
|
||||
/**
|
||||
* Create a new Enum field.
|
||||
*
|
||||
* Example usage in {@link DataObject::$db} with comma-separated string notation ('Val1' is default)
|
||||
* Example usage in {@link DataObject::$db} with comma-separated string
|
||||
* notation ('Val1' is default)
|
||||
*
|
||||
* <code>
|
||||
* "MyField" => "Enum('Val1, Val2, Val3', 'Val1')"
|
||||
* </code>
|
||||
*
|
||||
* Example usage in in {@link DataObject::$db} with array notation ('Val1' is default)
|
||||
* Example usage in in {@link DataObject::$db} with array notation
|
||||
* ('Val1' is default)
|
||||
*
|
||||
* <code>
|
||||
* "MyField" => "Enum(array('Val1', 'Val2', 'Val3'), 'Val1')"
|
||||
* </code>
|
||||
*
|
||||
* @param enum: A string containing a comma separated list of options or an array of Vals.
|
||||
* @param default The default option, which is either NULL or one of the items in the enumeration.
|
||||
* @param enum: A string containing a comma separated list of options or an
|
||||
* array of Vals.
|
||||
* @param string The default option, which is either NULL or one of the
|
||||
* items in the enumeration.
|
||||
*/
|
||||
function __construct($name = null, $enum = NULL, $default = NULL) {
|
||||
public function __construct($name = null, $enum = NULL, $default = NULL) {
|
||||
if($enum) {
|
||||
if(!is_array($enum)){
|
||||
if(!is_array($enum)) {
|
||||
$enum = preg_split("/ *, */", trim($enum));
|
||||
}
|
||||
|
||||
@ -49,19 +56,38 @@ class Enum extends DBField {
|
||||
$this->default = reset($enum);
|
||||
}
|
||||
}
|
||||
|
||||
parent::__construct($name);
|
||||
}
|
||||
|
||||
function requireField(){
|
||||
$parts=Array('datatype'=>'enum', 'enums'=>Convert::raw2sql($this->enum), 'character set'=>'utf8', 'collate'=> 'utf8_general_ci', 'default'=>Convert::raw2sql($this->default), 'table'=>$this->tableName, 'arrayValue'=>$this->arrayValue);
|
||||
$values=Array('type'=>'enum', 'parts'=>$parts);
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function requireField() {
|
||||
$parts = array(
|
||||
'datatype' => 'enum',
|
||||
'enums' => Convert::raw2sql($this->enum),
|
||||
'character set' => 'utf8',
|
||||
'collate' => 'utf8_general_ci',
|
||||
'default' => Convert::raw2sql($this->default),
|
||||
'table' => $this->tableName,
|
||||
'arrayValue' => $this->arrayValue
|
||||
);
|
||||
|
||||
$values = array(
|
||||
'type' => 'enum',
|
||||
'parts' => $parts
|
||||
);
|
||||
|
||||
DB::requireField($this->tableName, $this->name, $values);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a dropdown field suitable for editing this field
|
||||
* Return a dropdown field suitable for editing this field.
|
||||
*
|
||||
* @return DropdownField
|
||||
*/
|
||||
function formField($title = null, $name = null, $hasEmpty = false, $value = "", $form = null, $emptyString = null) {
|
||||
public function formField($title = null, $name = null, $hasEmpty = false, $value = "", $form = null, $emptyString = null) {
|
||||
if(!$title) $title = $this->name;
|
||||
if(!$name) $name = $this->name;
|
||||
|
||||
@ -71,28 +97,32 @@ class Enum extends DBField {
|
||||
return $field;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DropdownField
|
||||
*/
|
||||
public function scaffoldFormField($title = null, $params = null) {
|
||||
return $this->formField($title);
|
||||
}
|
||||
|
||||
function scaffoldSearchField($title = null) {
|
||||
/**
|
||||
* @param string
|
||||
*
|
||||
* @return DropdownField
|
||||
*/
|
||||
public function scaffoldSearchField($title = null) {
|
||||
$anyText = _t('Enum.ANY', 'Any');
|
||||
return $this->formField($title, null, false, '', null, "($anyText)");
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the values of this enum, suitable for insertion into a dropdown field.
|
||||
* Returns the values of this enum as an array, suitable for insertion into
|
||||
* a {@link DropdownField}
|
||||
*
|
||||
* @param boolean
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function enumValues($hasEmpty = false) {
|
||||
public function enumValues($hasEmpty = false) {
|
||||
return ($hasEmpty) ? array_merge(array('' => ''), ArrayLib::valuekey($this->enum)) : ArrayLib::valuekey($this->enum);
|
||||
}
|
||||
|
||||
function Lower() {
|
||||
return StringField::LowerCase();
|
||||
}
|
||||
function Upper() {
|
||||
return StringField::UpperCase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -64,65 +64,67 @@ class BBCodeParser extends TextParser {
|
||||
|
||||
static function usable_tags() {
|
||||
return new ArrayList(
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.BOLD', 'Bold Text'),
|
||||
"Example" => '[b]<b>'._t('BBCodeParser.BOLDEXAMPLE', 'Bold').'</b>[/b]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.ITALIC', 'Italic Text'),
|
||||
"Example" => '[i]<i>'._t('BBCodeParser.ITALICEXAMPLE', 'Italics').'</i>[/i]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.UNDERLINE', 'Underlined Text'),
|
||||
"Example" => '[u]<u>'._t('BBCodeParser.UNDERLINEEXAMPLE', 'Underlined').'</u>[/u]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.STRUCK', 'Struck-out Text'),
|
||||
"Example" => '[s]<s>'._t('BBCodeParser.STRUCKEXAMPLE', 'Struck-out').'</s>[/s]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.COLORED', 'Colored text'),
|
||||
"Example" => '[color=blue]'._t('BBCodeParser.COLOREDEXAMPLE', 'blue text').'[/color]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.ALIGNEMENT', 'Alignment'),
|
||||
"Example" => '[align=right]'._t('BBCodeParser.ALIGNEMENTEXAMPLE', 'right aligned').'[/align]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.CODE', 'Code Block'),
|
||||
"Description" => _t('BBCodeParser.CODEDESCRIPTION', 'Unformatted code block'),
|
||||
"Example" => '[code]'._t('BBCodeParser.CODEEXAMPLE', 'Code block').'[/code]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.EMAILLINK', 'Email link'),
|
||||
"Description" => _t('BBCodeParser.EMAILLINKDESCRIPTION', 'Create link to an email address'),
|
||||
"Example" => "[email]you@yoursite.com[/email]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.EMAILLINK', 'Email link'),
|
||||
"Description" => _t('BBCodeParser.EMAILLINKDESCRIPTION', 'Create link to an email address'),
|
||||
"Example" => "[email=you@yoursite.com]Email[/email]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.UNORDERED', 'Unordered list'),
|
||||
"Description" => _t('BBCodeParser.UNORDEREDDESCRIPTION', 'Unordered list'),
|
||||
"Example" => '[ulist][*]'._t('BBCodeParser.UNORDEREDEXAMPLE1', 'unordered item 1').'[/ulist]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.IMAGE', 'Image'),
|
||||
"Description" => _t('BBCodeParser.IMAGEDESCRIPTION', 'Show an image in your post'),
|
||||
"Example" => "[img]http://www.website.com/image.jpg[/img]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.LINK', 'Website link'),
|
||||
"Description" => _t('BBCodeParser.LINKDESCRIPTION', 'Link to another website or URL'),
|
||||
"Example" => '[url]http://www.website.com/[/url]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.LINK', 'Website link'),
|
||||
"Description" => _t('BBCodeParser.LINKDESCRIPTION', 'Link to another website or URL'),
|
||||
"Example" => "[url=http://www.website.com/]Website[/url]"
|
||||
))
|
||||
array(
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.BOLD', 'Bold Text'),
|
||||
"Example" => '[b]<b>'._t('BBCodeParser.BOLDEXAMPLE', 'Bold').'</b>[/b]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.ITALIC', 'Italic Text'),
|
||||
"Example" => '[i]<i>'._t('BBCodeParser.ITALICEXAMPLE', 'Italics').'</i>[/i]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.UNDERLINE', 'Underlined Text'),
|
||||
"Example" => '[u]<u>'._t('BBCodeParser.UNDERLINEEXAMPLE', 'Underlined').'</u>[/u]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.STRUCK', 'Struck-out Text'),
|
||||
"Example" => '[s]<s>'._t('BBCodeParser.STRUCKEXAMPLE', 'Struck-out').'</s>[/s]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.COLORED', 'Colored text'),
|
||||
"Example" => '[color=blue]'._t('BBCodeParser.COLOREDEXAMPLE', 'blue text').'[/color]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.ALIGNEMENT', 'Alignment'),
|
||||
"Example" => '[align=right]'._t('BBCodeParser.ALIGNEMENTEXAMPLE', 'right aligned').'[/align]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.CODE', 'Code Block'),
|
||||
"Description" => _t('BBCodeParser.CODEDESCRIPTION', 'Unformatted code block'),
|
||||
"Example" => '[code]'._t('BBCodeParser.CODEEXAMPLE', 'Code block').'[/code]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.EMAILLINK', 'Email link'),
|
||||
"Description" => _t('BBCodeParser.EMAILLINKDESCRIPTION', 'Create link to an email address'),
|
||||
"Example" => "[email]you@yoursite.com[/email]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.EMAILLINK', 'Email link'),
|
||||
"Description" => _t('BBCodeParser.EMAILLINKDESCRIPTION', 'Create link to an email address'),
|
||||
"Example" => "[email=you@yoursite.com]Email[/email]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.UNORDERED', 'Unordered list'),
|
||||
"Description" => _t('BBCodeParser.UNORDEREDDESCRIPTION', 'Unordered list'),
|
||||
"Example" => '[ulist][*]'._t('BBCodeParser.UNORDEREDEXAMPLE1', 'unordered item 1').'[/ulist]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.IMAGE', 'Image'),
|
||||
"Description" => _t('BBCodeParser.IMAGEDESCRIPTION', 'Show an image in your post'),
|
||||
"Example" => "[img]http://www.website.com/image.jpg[/img]"
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.LINK', 'Website link'),
|
||||
"Description" => _t('BBCodeParser.LINKDESCRIPTION', 'Link to another website or URL'),
|
||||
"Example" => '[url]http://www.website.com/[/url]'
|
||||
)),
|
||||
new ArrayData(array(
|
||||
"Title" => _t('BBCodeParser.LINK', 'Website link'),
|
||||
"Description" => _t('BBCodeParser.LINKDESCRIPTION', 'Link to another website or URL'),
|
||||
"Example" => "[url=http://www.website.com/]Website[/url]"
|
||||
))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* <b>Inbuilt Shortcodes</b>
|
||||
*
|
||||
* From 2.4 onwards links inserted via the CMS into a content field are in the form ''<a href="[sitetree_link id=n]">''. At runtime this is replaced by a plain link to the page with the ID in question.
|
||||
* From 2.4 onwards links inserted via the CMS into a content field are in the form ''<a href="[sitetree_link id=n]">'', and from 3.0 the comma is used as a separator instead ''<a href="[sitetree_link,id=n]">''. At runtime this is replaced by a plain link to the page with the ID in question.
|
||||
*
|
||||
* <b>Limitations</b>
|
||||
*
|
||||
|
@ -226,7 +226,7 @@ $gf_grid_x: 16px;
|
||||
border: none;
|
||||
background: none;
|
||||
margin: 0 0 0 2px;
|
||||
padding: 6px 0;
|
||||
padding: 1px 0;
|
||||
width: auto;
|
||||
text-shadow: none;
|
||||
&.ui-state-hover {
|
||||
|
@ -42,9 +42,6 @@ if(isset($_SERVER['argv'][2])) {
|
||||
$_REQUEST = array_merge($_REQUEST, $_GET);
|
||||
}
|
||||
|
||||
// Always flush the manifest for phpunit test runs
|
||||
$_GET['flush'] = 1;
|
||||
|
||||
// Connect to database
|
||||
require_once $frameworkPath . '/core/Core.php';
|
||||
require_once $frameworkPath . '/tests/FakeController.php';
|
||||
@ -66,3 +63,11 @@ TestRunner::use_test_manifest();
|
||||
|
||||
// Remove the error handler so that PHPUnit can add its own
|
||||
restore_error_handler();
|
||||
|
||||
if(!isset($_GET['flush']) || !$_GET['flush']) {
|
||||
Debug::message(
|
||||
"WARNING: Manifest not flushed. " .
|
||||
"Add flush=1 as an argument to discover new classes or files.\n",
|
||||
false
|
||||
);
|
||||
}
|
@ -66,13 +66,40 @@ class DeprecationTest extends SapphireTest {
|
||||
$this->callThatOriginatesFromFramework();
|
||||
}
|
||||
|
||||
function testMethodNameCalculation() {
|
||||
$this->assertEquals(DeprecationTest_Deprecation::get_method(), 'DeprecationTest->testMethodNameCalculation');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error
|
||||
* @expectedExceptionMessage DeprecationTest->testScopeMethod is deprecated. Method scope
|
||||
*/
|
||||
function testScopeMethod() {
|
||||
Deprecation::notification_version('2.0.0');
|
||||
Deprecation::notice('2.0.0', 'Method scope', Deprecation::SCOPE_METHOD);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error
|
||||
* @expectedExceptionMessage DeprecationTest is deprecated. Class scope
|
||||
*/
|
||||
function testScopeClass() {
|
||||
Deprecation::notification_version('2.0.0');
|
||||
Deprecation::notice('2.0.0', 'Class scope', Deprecation::SCOPE_CLASS);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error
|
||||
* @expectedExceptionMessage Global scope
|
||||
*/
|
||||
function testScopeGlobal() {
|
||||
Deprecation::notification_version('2.0.0');
|
||||
Deprecation::notice('2.0.0', 'Global scope', Deprecation::SCOPE_GLOBAL);
|
||||
}
|
||||
|
||||
protected function callThatOriginatesFromFramework() {
|
||||
$this->assertEquals(DeprecationTest_Deprecation::get_module(), FRAMEWORK_DIR);
|
||||
Deprecation::notice('2.0', 'Deprecation test passed');
|
||||
}
|
||||
|
||||
function testMethodNameCalculation() {
|
||||
$this->assertEquals(DeprecationTest_Deprecation::get_method(), 'DeprecationTest->testMethodNameCalculation');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ class GridFieldAddExistingAutocompleterTest extends FunctionalTest {
|
||||
$btns = $parser->getBySelector('.ss-gridfield #action_gridfield_relationfind');
|
||||
|
||||
$response = $this->post(
|
||||
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/search/Team 2',
|
||||
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/search/?gridfield_relationsearch=Team 2',
|
||||
array(
|
||||
(string)$btns[0]['name'] => 1
|
||||
)
|
||||
@ -26,7 +26,7 @@ class GridFieldAddExistingAutocompleterTest extends FunctionalTest {
|
||||
$this->assertEquals(array($team2->ID => 'Team 2'), $result);
|
||||
|
||||
$response = $this->post(
|
||||
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/search/Unknown',
|
||||
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/search/?gridfield_relationsearch=Unknown',
|
||||
array(
|
||||
(string)$btns[0]['name'] => 1
|
||||
)
|
||||
|
@ -63,8 +63,8 @@ class GridFieldDetailFormTest extends FunctionalTest {
|
||||
$surname = $parser->getBySelector('#Form_ItemEditForm_Surname');
|
||||
|
||||
$this->assertFalse($response->isError());
|
||||
$this->assertEquals('Joe', (string) $firstName[0]);
|
||||
$this->assertEquals('Bloggs', (string) $surname[0]);
|
||||
$this->assertEquals('Jane', (string) $firstName[0]);
|
||||
$this->assertEquals('Doe', (string) $surname[0]);
|
||||
}
|
||||
|
||||
function testEditForm() {
|
||||
@ -188,6 +188,8 @@ class GridFieldDetailFormTest_Person extends DataObject implements TestOnly {
|
||||
'Categories' => 'GridFieldDetailFormTest_Category'
|
||||
);
|
||||
|
||||
static $default_sort = 'FirstName';
|
||||
|
||||
function getCMSFields() {
|
||||
$fields = parent::getCMSFields();
|
||||
// TODO No longer necessary once FormScaffolder uses GridField
|
||||
@ -209,7 +211,9 @@ class GridFieldDetailFormTest_PeopleGroup extends DataObject implements TestOnly
|
||||
static $has_many = array(
|
||||
'People' => 'GridFieldDetailFormTest_Person'
|
||||
);
|
||||
|
||||
|
||||
static $default_sort = 'Name';
|
||||
|
||||
function getCMSFields() {
|
||||
$fields = parent::getCMSFields();
|
||||
// TODO No longer necessary once FormScaffolder uses GridField
|
||||
@ -232,6 +236,8 @@ class GridFieldDetailFormTest_Category extends DataObject implements TestOnly {
|
||||
'People' => 'GridFieldDetailFormTest_Person'
|
||||
);
|
||||
|
||||
static $default_sort = 'Name';
|
||||
|
||||
function getCMSFields() {
|
||||
$fields = parent::getCMSFields();
|
||||
// TODO No longer necessary once FormScaffolder uses GridField
|
||||
|
@ -76,7 +76,6 @@ class DBFieldTest extends SapphireTest {
|
||||
|
||||
/* Varchar behaviour */
|
||||
$this->assertEquals($db->prepStringForDB("0"), singleton('Varchar')->prepValueForDB(0));
|
||||
$this->assertEquals("'0'", singleton('Varchar')->prepValueForDB(0));
|
||||
$this->assertEquals("null", singleton('Varchar')->prepValueForDB(null));
|
||||
$this->assertEquals("null", singleton('Varchar')->prepValueForDB(false));
|
||||
$this->assertEquals("null", singleton('Varchar')->prepValueForDB(''));
|
||||
|
@ -65,22 +65,25 @@ class DataListTest extends SapphireTest {
|
||||
}
|
||||
|
||||
function testSql() {
|
||||
$db = DB::getConn();
|
||||
$list = DataObjectTest_TeamComment::get();
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE \'DataObjectTest_TeamComment\' END AS "RecordClassName" FROM "DataObjectTest_TeamComment"';
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_TeamComment').' END AS "RecordClassName" FROM "DataObjectTest_TeamComment"';
|
||||
$this->assertEquals($expected, $list->sql());
|
||||
}
|
||||
|
||||
function testInnerJoin() {
|
||||
$db = DB::getConn();
|
||||
$list = DataObjectTest_TeamComment::get();
|
||||
$list->innerJoin('DataObjectTest_Team', '"DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"', 'Team');
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE \'DataObjectTest_TeamComment\' END AS "RecordClassName" FROM "DataObjectTest_TeamComment" INNER JOIN "DataObjectTest_Team" AS "Team" ON "DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"';
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_TeamComment').' END AS "RecordClassName" FROM "DataObjectTest_TeamComment" INNER JOIN "DataObjectTest_Team" AS "Team" ON "DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"';
|
||||
$this->assertEquals($expected, $list->sql());
|
||||
}
|
||||
|
||||
function testLeftJoin() {
|
||||
$db = DB::getConn();
|
||||
$list = DataObjectTest_TeamComment::get();
|
||||
$list->leftJoin('DataObjectTest_Team', '"DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"', 'Team');
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE \'DataObjectTest_TeamComment\' END AS "RecordClassName" FROM "DataObjectTest_TeamComment" LEFT JOIN "DataObjectTest_Team" AS "Team" ON "DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"';
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_TeamComment"."ClassName", "DataObjectTest_TeamComment"."Created", "DataObjectTest_TeamComment"."LastEdited", "DataObjectTest_TeamComment"."Name", "DataObjectTest_TeamComment"."Comment", "DataObjectTest_TeamComment"."TeamID", "DataObjectTest_TeamComment"."ID", CASE WHEN "DataObjectTest_TeamComment"."ClassName" IS NOT NULL THEN "DataObjectTest_TeamComment"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_TeamComment').' END AS "RecordClassName" FROM "DataObjectTest_TeamComment" LEFT JOIN "DataObjectTest_Team" AS "Team" ON "DataObjectTest_Team"."ID" = "DataObjectTest_TeamComment"."TeamID"';
|
||||
$this->assertEquals($expected, $list->sql());
|
||||
}
|
||||
|
||||
|
@ -22,49 +22,53 @@ class DataObjectLazyLoadingTest extends SapphireTest {
|
||||
);
|
||||
|
||||
function testQueriedColumnsID() {
|
||||
$db = DB::getConn();
|
||||
$playerList = new DataList('DataObjectTest_SubTeam');
|
||||
$playerList = $playerList->setQueriedColumns(array('ID'));
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' .
|
||||
'"DataObjectTest_Team"."LastEdited", "DataObjectTest_Team"."ID", CASE WHEN '.
|
||||
'"DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' .
|
||||
'\'DataObjectTest_Team\' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' .
|
||||
'("DataObjectTest_Team"."ClassName" IN (\'DataObjectTest_SubTeam\'))';
|
||||
$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' .
|
||||
'("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))';
|
||||
$this->assertEquals($expected, $playerList->sql());
|
||||
}
|
||||
|
||||
function testQueriedColumnsFromBaseTableAndSubTable() {
|
||||
$db = DB::getConn();
|
||||
$playerList = new DataList('DataObjectTest_SubTeam');
|
||||
$playerList = $playerList->setQueriedColumns(array('Title', 'SubclassDatabaseField'));
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' .
|
||||
'"DataObjectTest_Team"."LastEdited", "DataObjectTest_Team"."Title", ' .
|
||||
'"DataObjectTest_SubTeam"."SubclassDatabaseField", "DataObjectTest_Team"."ID", CASE WHEN ' .
|
||||
'"DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' .
|
||||
'\'DataObjectTest_Team\' END AS "RecordClassName" FROM "DataObjectTest_Team" LEFT JOIN ' .
|
||||
$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" LEFT JOIN ' .
|
||||
'"DataObjectTest_SubTeam" ON "DataObjectTest_SubTeam"."ID" = "DataObjectTest_Team"."ID" WHERE ' .
|
||||
'("DataObjectTest_Team"."ClassName" IN (\'DataObjectTest_SubTeam\'))';
|
||||
'("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))';
|
||||
$this->assertEquals($expected, $playerList->sql());
|
||||
}
|
||||
|
||||
function testQueriedColumnsFromBaseTable() {
|
||||
$db = DB::getConn();
|
||||
$playerList = new DataList('DataObjectTest_SubTeam');
|
||||
$playerList = $playerList->setQueriedColumns(array('Title'));
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' .
|
||||
'"DataObjectTest_Team"."LastEdited", "DataObjectTest_Team"."Title", "DataObjectTest_Team"."ID", ' .
|
||||
'CASE WHEN "DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' .
|
||||
'\'DataObjectTest_Team\' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' .
|
||||
'("DataObjectTest_Team"."ClassName" IN (\'DataObjectTest_SubTeam\'))';
|
||||
$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' .
|
||||
'("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))';
|
||||
$this->assertEquals($expected, $playerList->sql());
|
||||
}
|
||||
|
||||
function testQueriedColumnsFromSubTable() {
|
||||
$db = DB::getConn();
|
||||
$playerList = new DataList('DataObjectTest_SubTeam');
|
||||
$playerList = $playerList->setQueriedColumns(array('SubclassDatabaseField'));
|
||||
$expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' .
|
||||
'"DataObjectTest_Team"."LastEdited", "DataObjectTest_SubTeam"."SubclassDatabaseField", ' .
|
||||
'"DataObjectTest_Team"."ID", CASE WHEN "DataObjectTest_Team"."ClassName" IS NOT NULL THEN ' .
|
||||
'"DataObjectTest_Team"."ClassName" ELSE \'DataObjectTest_Team\' END AS "RecordClassName" FROM ' .
|
||||
'"DataObjectTest_Team"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM ' .
|
||||
'"DataObjectTest_Team" LEFT JOIN "DataObjectTest_SubTeam" ON "DataObjectTest_SubTeam"."ID" = ' .
|
||||
'"DataObjectTest_Team"."ID" WHERE ("DataObjectTest_Team"."ClassName" IN (\'DataObjectTest_SubTeam\'))';
|
||||
'"DataObjectTest_Team"."ID" WHERE ("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))';
|
||||
$this->assertEquals($expected, $playerList->sql());
|
||||
}
|
||||
|
||||
|
@ -6,20 +6,16 @@ class DbDatetimeTest extends FunctionalTest {
|
||||
|
||||
protected $extraDataObjects = array('DbDatetimeTest_Team');
|
||||
|
||||
private static $offset = 0; // number of seconds of php and db time are out of sync
|
||||
private static $offset_thresholds = array( // throw an error if the offset exceeds 30 minutes
|
||||
E_USER_ERROR => 1800,
|
||||
E_USER_NOTICE => 5,
|
||||
);
|
||||
protected $offset;
|
||||
|
||||
protected $adapter;
|
||||
|
||||
private $adapter;
|
||||
|
||||
/**
|
||||
* Check if dates match more or less. This takes into the account the db query
|
||||
* can overflow to the next second giving offset readings.
|
||||
*/
|
||||
private function matchesRoughly($date1, $date2, $comment = '') {
|
||||
$allowedDifference = 5 + abs(self::$offset); // seconds
|
||||
private function matchesRoughly($date1, $date2, $comment = '', $offset) {
|
||||
$allowedDifference = 5 + abs($offset); // seconds
|
||||
|
||||
$time1 = is_numeric($date1) ? $date1 : strtotime($date1);
|
||||
$time2 = is_numeric($date2) ? $date2 : strtotime($date2);
|
||||
@ -31,104 +27,104 @@ class DbDatetimeTest extends FunctionalTest {
|
||||
$query = 'SELECT ' . $this->adapter->formattedDatetimeClause('now', '%U');
|
||||
return DB::query($query)->value();
|
||||
}
|
||||
|
||||
function setUpOnce() {
|
||||
parent::setUpOnce();
|
||||
|
||||
self::$offset = time() - strtotime(DB::query('SELECT ' . DB::getConn()->now())->value());
|
||||
foreach(self::$offset_thresholds as $code => $offset) {
|
||||
if(abs(self::$offset) > $offset) {
|
||||
if($code == E_USER_NOTICE) {
|
||||
Debug::show('The time of the database is out of sync with the webserver by ' . abs(self::$offset) . ' seconds.');
|
||||
} else {
|
||||
trigger_error('The time of the database is out of sync with the webserver by ' . abs(self::$offset) . ' seconds.', $code);
|
||||
}
|
||||
break;
|
||||
}
|
||||
/**
|
||||
* Needs to be run within a test*() context.
|
||||
*
|
||||
* @return Int Offset in seconds
|
||||
*/
|
||||
private function checkPreconditions() {
|
||||
// number of seconds of php and db time are out of sync
|
||||
$offset = time() - strtotime(DB::query('SELECT ' . DB::getConn()->now())->value());
|
||||
$threshold = 5; // seconds
|
||||
|
||||
if($offset > 5) {
|
||||
$this->markTestSkipped('The time of the database is out of sync with the webserver by ' . abs($offset) . ' seconds.');
|
||||
}
|
||||
|
||||
if(method_exists($this->adapter, 'supportsTimezoneOverride') && !$this->adapter->supportsTimezoneOverride()) {
|
||||
$this->markTestSkipped("Database doesn't support timezone overrides");
|
||||
}
|
||||
|
||||
return $offset;
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp();
|
||||
$this->adapter = DB::getConn();
|
||||
$this->supportDbDatetime = method_exists($this->adapter, 'datetimeIntervalClause');
|
||||
}
|
||||
|
||||
function testCorrectNow() {
|
||||
if($this->supportDbDatetime) {
|
||||
$clause = $this->adapter->formattedDatetimeClause('now', '%U');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->assertRegExp('/^\d*$/', (string) $result);
|
||||
$this->assertTrue($result>0);
|
||||
}
|
||||
$offset = $this->checkPreconditions();
|
||||
|
||||
$clause = $this->adapter->formattedDatetimeClause('now', '%U');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->assertRegExp('/^\d*$/', (string) $result);
|
||||
$this->assertTrue($result>0);
|
||||
}
|
||||
|
||||
function testDbDatetimeFormat() {
|
||||
if($this->supportDbDatetime) {
|
||||
$clause = $this->adapter->formattedDatetimeClause('1973-10-14 10:30:00', '%H:%i, %d/%m/%Y');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('H:i, d/m/Y', strtotime('1973-10-14 10:30:00')), 'nice literal time');
|
||||
$offset = $this->checkPreconditions();
|
||||
|
||||
$clause = $this->adapter->formattedDatetimeClause('now', '%d');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('d', $this->getDbNow()), 'todays day');
|
||||
$clause = $this->adapter->formattedDatetimeClause('1973-10-14 10:30:00', '%H:%i, %d/%m/%Y');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('H:i, d/m/Y', strtotime('1973-10-14 10:30:00')), 'nice literal time', $offset);
|
||||
|
||||
$clause = $this->adapter->formattedDatetimeClause('"Created"', '%U') . ' AS test FROM "DbDateTimeTest_Team"';
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, strtotime(DataObject::get_one('DbDateTimeTest_Team')->Created), 'fixture ->Created as timestamp');
|
||||
}
|
||||
$clause = $this->adapter->formattedDatetimeClause('now', '%d');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('d', $this->getDbNow()), 'todays day', $offset);
|
||||
|
||||
$clause = $this->adapter->formattedDatetimeClause('"Created"', '%U') . ' AS test FROM "DbDateTimeTest_Team"';
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, strtotime(DataObject::get_one('DbDateTimeTest_Team')->Created), 'fixture ->Created as timestamp', $offset);
|
||||
}
|
||||
|
||||
function testDbDatetimeInterval() {
|
||||
if($this->supportDbDatetime) {
|
||||
$offset = $this->checkPreconditions();
|
||||
|
||||
$clause = $this->adapter->datetimeIntervalClause('1973-10-14 10:30:00', '+18 Years');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, '1991-10-14 10:30:00', 'add 18 years');
|
||||
$clause = $this->adapter->datetimeIntervalClause('1973-10-14 10:30:00', '+18 Years');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, '1991-10-14 10:30:00', 'add 18 years', $offset);
|
||||
|
||||
$clause = $this->adapter->datetimeIntervalClause('now', '+1 Day');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime('+1 Day', $this->getDbNow())), 'tomorrow');
|
||||
$clause = $this->adapter->datetimeIntervalClause('now', '+1 Day');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime('+1 Day', $this->getDbNow())), 'tomorrow', $offset);
|
||||
|
||||
$query = new SQLQuery();
|
||||
$query->setSelect(array());
|
||||
$query->selectField($this->adapter->datetimeIntervalClause('"Created"', '-15 Minutes'), 'test')
|
||||
->setFrom('"DbDateTimeTest_Team"')
|
||||
->setLimit(1);
|
||||
$query = new SQLQuery();
|
||||
$query->setSelect(array());
|
||||
$query->selectField($this->adapter->datetimeIntervalClause('"Created"', '-15 Minutes'), 'test')
|
||||
->setFrom('"DbDateTimeTest_Team"')
|
||||
->setLimit(1);
|
||||
|
||||
$result = $query->execute()->value();
|
||||
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime(DataObject::get_one('DbDateTimeTest_Team')->Created) - 900), '15 Minutes before creating fixture');
|
||||
|
||||
}
|
||||
$result = $query->execute()->value();
|
||||
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime(DataObject::get_one('DbDateTimeTest_Team')->Created) - 900), '15 Minutes before creating fixture', $offset);
|
||||
}
|
||||
|
||||
function testDbDatetimeDifference() {
|
||||
if($this->supportDbDatetime) {
|
||||
$offset = $this->checkPreconditions();
|
||||
|
||||
$clause = $this->adapter->datetimeDifferenceClause('1974-10-14 10:30:00', '1973-10-14 10:30:00');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result/86400, 365, '1974 - 1973 = 365 * 86400 sec');
|
||||
$clause = $this->adapter->datetimeDifferenceClause('1974-10-14 10:30:00', '1973-10-14 10:30:00');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result/86400, 365, '1974 - 1973 = 365 * 86400 sec', $offset);
|
||||
|
||||
$clause = $this->adapter->datetimeDifferenceClause(date('Y-m-d H:i:s', strtotime('-15 seconds')), 'now');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, -15, '15 seconds ago - now');
|
||||
$clause = $this->adapter->datetimeDifferenceClause(date('Y-m-d H:i:s', strtotime('-15 seconds')), 'now');
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, -15, '15 seconds ago - now', $offset);
|
||||
|
||||
$clause = $this->adapter->datetimeDifferenceClause('now', $this->adapter->datetimeIntervalClause('now', '+45 Minutes'));
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, -45 * 60, 'now - 45 minutes ahead');
|
||||
$clause = $this->adapter->datetimeDifferenceClause('now', $this->adapter->datetimeIntervalClause('now', '+45 Minutes'));
|
||||
$result = DB::query('SELECT ' . $clause)->value();
|
||||
$this->matchesRoughly($result, -45 * 60, 'now - 45 minutes ahead', $offset);
|
||||
|
||||
$query = new SQLQuery();
|
||||
$query->setSelect(array());
|
||||
$query->selectField($this->adapter->datetimeDifferenceClause('"LastEdited"', '"Created"'), 'test')
|
||||
->setFrom('"DbDateTimeTest_Team"')
|
||||
->setLimit(1);
|
||||
$query = new SQLQuery();
|
||||
$query->setSelect(array());
|
||||
$query->selectField($this->adapter->datetimeDifferenceClause('"LastEdited"', '"Created"'), 'test')
|
||||
->setFrom('"DbDateTimeTest_Team"')
|
||||
->setLimit(1);
|
||||
|
||||
$result = $query->execute()->value();
|
||||
$lastedited = Dataobject::get_one('DbDateTimeTest_Team')->LastEdited;
|
||||
$created = Dataobject::get_one('DbDateTimeTest_Team')->Created;
|
||||
$this->matchesRoughly($result, strtotime($lastedited) - strtotime($created), 'age of HomePage record in seconds since unix epoc');
|
||||
|
||||
}
|
||||
$result = $query->execute()->value();
|
||||
$lastedited = Dataobject::get_one('DbDateTimeTest_Team')->LastEdited;
|
||||
$created = Dataobject::get_one('DbDateTimeTest_Team')->Created;
|
||||
$this->matchesRoughly($result, strtotime($lastedited) - strtotime($created), 'age of HomePage record in seconds since unix epoc', $offset);
|
||||
}
|
||||
|
||||
}
|
||||
@ -137,4 +133,4 @@ class DbDateTimeTest_Team extends DataObject implements TestOnly {
|
||||
static $db = array(
|
||||
'Title' => 'Varchar'
|
||||
);
|
||||
}
|
||||
}
|
@ -7,6 +7,14 @@
|
||||
*/
|
||||
class PaginatedListTest extends SapphireTest {
|
||||
|
||||
static $fixture_file = 'DataObjectTest.yml';
|
||||
|
||||
protected $extraDataObjects = array(
|
||||
'DataObjectTest_Team',
|
||||
'DataObjectTest_SubTeam',
|
||||
'DataObjectTest_Player'
|
||||
);
|
||||
|
||||
public function testPageStart() {
|
||||
$list = new PaginatedList(new ArrayList());
|
||||
$this->assertEquals(0, $list->getPageStart(), 'The start defaults to 0.');
|
||||
@ -84,6 +92,12 @@ class PaginatedListTest extends SapphireTest {
|
||||
|
||||
$list->setCurrentPage(999);
|
||||
$this->assertDOSEquals(array(), $list->getIterator());
|
||||
|
||||
$players = DataObjectTest_Player::get();
|
||||
$list = new PaginatedList($players);
|
||||
$list->setPageLength(1);
|
||||
$list->getIterator();
|
||||
$this->assertEquals(4, $list->getTotalItems(), 'Getting an iterator should not trim the list to the page length.');
|
||||
}
|
||||
|
||||
public function testPages() {
|
||||
|
Loading…
Reference in New Issue
Block a user