mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge remote branch 'origin/master' into translation-staging
This commit is contained in:
commit
11db213211
12
CONTRIBUTING.md
Normal file
12
CONTRIBUTING.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Contributing
|
||||
|
||||
Any open source product is only as good as the community behind it. You can participate by sharing code, ideas, or simply helping others. No matter what your skill level is, every contribution counts.
|
||||
|
||||
See our [high level overview](http://silverstripe.org/contributing-to-silverstripe) on silverstripe.org on how you can help out.
|
||||
|
||||
Or, for more detailed guidance, read one of the following pages:
|
||||
|
||||
* [Sharing your opinion and raising issues](http://doc.silverstripe.org/framework/en/trunk/misc/contributing/issues)
|
||||
* [Providing code, whether it's creating a feature or fixing a bug](http://doc.silverstripe.org/framework/en/trunk/misc/contributing/code)
|
||||
* [Writing and translating documentation](http://doc.silverstripe.org/framework/en/trunk/misc/contributing/documentation)
|
||||
* [Translating user-interface elements](http://doc.silverstripe.org/framework/en/trunk/misc/contributing/translation)
|
@ -135,7 +135,7 @@ abstract class BulkLoader extends ViewableData {
|
||||
* @return BulkLoader_Result See {@link self::processAll()}
|
||||
*/
|
||||
public function load($filepath) {
|
||||
ini_set('max_execution_time', 3600);
|
||||
increase_time_limit_to(3600);
|
||||
increase_memory_limit_to('512M');
|
||||
|
||||
//get all instances of the to be imported data object
|
||||
|
@ -148,7 +148,7 @@ Now you need to add the original repository as `upstream`, so you can keep your
|
||||
(cd cms && git remote add upstream git://github.com/silverstripe/silverstripe-cms.git && git fetch upstream)
|
||||
(cd themes/simple && git remote add upstream git://github.com/silverstripe-themes/silverstripe-simple.git)
|
||||
|
||||
Now that you're set up, please read our ["Collaboration on Git"](../misc/collaboration-on-git) guide,
|
||||
Now that you're set up, please read our ["Contributing Code"](../misc/contributing/code) guide,
|
||||
as well as our general ["Contributor guidelines"](../misc/contributing).
|
||||
Please read ["Module installation"](/topics/modules) to find out how to install additional modules like `blog` or `forum` from source.
|
||||
|
||||
@ -271,8 +271,8 @@ See [piston.rubyforge.org](http://piston.rubyforge.org/import.html).
|
||||
|
||||
## Related ##
|
||||
|
||||
* [Contributing: Submitting patches](/misc/contributing)
|
||||
* [Collaboration on Git](/misc/collaboration-on-git)
|
||||
* [Contributing](/misc/contributing)
|
||||
* [Contributing Code](/misc/contributing/code)
|
||||
* [Pro git - free online book](http://progit.org/book/)
|
||||
* [Git cheat sheet - github.com](https://github.com/guides/git-cheat-sheet)
|
||||
* [Git - SVN Crash Course - git.or.cz](http://git.or.cz/course/svn.html)
|
||||
|
131
docs/en/reference/datefield.md
Normal file
131
docs/en/reference/datefield.md
Normal file
@ -0,0 +1,131 @@
|
||||
# DateField
|
||||
|
||||
## Introduction
|
||||
|
||||
This `FormField` subclass lets you display an editable date, either in
|
||||
a single text input field, or in three separate fields for day, month and year.
|
||||
It also provides a calendar datepicker.
|
||||
|
||||
## Adding a DateField
|
||||
|
||||
The following example will add a simple DateField to your Page, allowing you to
|
||||
enter a date manually.
|
||||
|
||||
:::php
|
||||
class Page extends SiteTree {
|
||||
static $db = array(
|
||||
'MyDate' => 'Date',
|
||||
);
|
||||
|
||||
public function getCMSFields() {
|
||||
$fields = parent::getCMSFields();
|
||||
|
||||
$fields->addFieldToTab(
|
||||
'Root.Main',
|
||||
$myDate = new DateField('MyDate', 'Enter a date')
|
||||
);
|
||||
|
||||
return $fields;
|
||||
}
|
||||
}
|
||||
|
||||
## Custom Dateformat
|
||||
|
||||
You can define a custom dateformat for your Datefield based on [Zend_Date constants](http://framework.zend.com/manual/1.12/en/zend.date.constants.html).
|
||||
|
||||
:::php
|
||||
// will display a date in the following format: 31-06-2012
|
||||
DateField::create('MyDate')->setConfig('dateformat', 'dd-MM-yyyy');
|
||||
|
||||
|
||||
## Min and Max Dates
|
||||
|
||||
Set the minimum and maximum allowed datevalues using the `min` and `max`
|
||||
configuration settings (in ISO format or strtotime() compatible). Example:
|
||||
|
||||
:::php
|
||||
DateField::create('MyDate')
|
||||
->setConfig('min', '-7 days')
|
||||
->setConfig('max', '2012-12-31')
|
||||
|
||||
## Separate Day/Month/Year Fields
|
||||
|
||||
The following setting will display your DateField as `three input fields` for
|
||||
day, month and year separately. Any custom dateformat settings will be ignored.
|
||||
HTML5 placeholders 'day', 'month' and 'year' are enabled by default.
|
||||
|
||||
:::php
|
||||
DateField::create('MyDate')
|
||||
->setConfig('dmyfields', true);
|
||||
->setConfig('dmyseparator', '/') // set the separator
|
||||
->setConfig('dmyplaceholders', 'true'); // enable HTML 5 Placeholders
|
||||
|
||||
## Calendar Field
|
||||
|
||||
The following setting will add a Calendar to a single DateField, using the
|
||||
`jQuery UI DatePicker widget`
|
||||
|
||||
:::php
|
||||
DateField::create('MyDate')->setConfig('showcalendar', true);
|
||||
|
||||
|
||||
### 'Safe' Dateformats to Use with the Calendar
|
||||
|
||||
The jQuery DatePicker doesn't support every constant available for Zend_Date.
|
||||
If you choose to use the calendar, the following constants should at least be safe:
|
||||
|
||||
Constant | xxxxx
|
||||
-------- | -----
|
||||
d | numeric day of the month (without leading zero)
|
||||
dd | numeric day of the month (with leading zero)
|
||||
EEE | dayname, abbreviated
|
||||
EEEE | dayname
|
||||
M | numeric month of the year (without leading zero)
|
||||
MM | numeric month of the year (with leading zero)
|
||||
MMM | monthname, abbreviated
|
||||
MMMM | monthname
|
||||
y | year (4 digits)
|
||||
yy | year (2 digits)
|
||||
yyyy | year (4 digits)
|
||||
|
||||
### Calendar localization issues
|
||||
|
||||
Unfortunately the day- and monthname values in Zend Date do not always match
|
||||
those in the existing jQuery UI locale files, so constants like `EEE` or `MMM`,
|
||||
for day and monthnames could break validation. To fix this we had to slightly
|
||||
alter the jQuery locale files, situated in
|
||||
*/framework/thirdparty/jquery-ui/datepicker/i18n/*, to match Zend_Date.
|
||||
|
||||
At this moment not all locale files may be present. If a locale file is
|
||||
missing, the DatePicker calendar will fallback to 'yyyy-MM-dd' whenever day-
|
||||
and/or monthnames are used. After saving, the correct format will be displayed.
|
||||
|
||||
## Contributing jQuery Locale Files
|
||||
|
||||
If you find the jQuery locale file for your chosen locale is missing, the
|
||||
following section will explain how to create one. If you wish to contribute
|
||||
your file to the SilverStripe core, please check out the guide on
|
||||
['contributing code'](http://doc.silverstripe.org/framework/en/trunk/misc/contributing/code).
|
||||
|
||||
### 1. Get the Sourcefile
|
||||
|
||||
You can find a list of locale files for the jQuery UI DatePicker
|
||||
[in the jQuery source code](https://github.com/jquery/jquery-ui/tree/master/ui/i18n).
|
||||
|
||||
### 2. Find your Zend Locale File
|
||||
|
||||
The Zend locale files are located in */framework/thirdparty/Zend/Locale/Data/*.
|
||||
Find the one that has the information for your locale.
|
||||
|
||||
### 3. Find the Date Values
|
||||
|
||||
You're looking for the `Gregorian` date values for monthnames and daynames in
|
||||
the Zend locale file. Edit the DatePicker locale File so your *full day- and
|
||||
monthnames* and *short monthnames* match. For your *short daynames*, use the
|
||||
first three characters of the full name. Note that Zend dates are `case
|
||||
sensitive`!
|
||||
|
||||
### 4. Filename
|
||||
|
||||
Use the original jQuery UI filename 'jquery.ui.datepicker-xx.js', where xx
|
||||
stands for the locale.
|
@ -113,12 +113,26 @@ class DateField extends TextField {
|
||||
}
|
||||
|
||||
public function FieldHolder($properties = array()) {
|
||||
// TODO Replace with properly extensible view helper system
|
||||
$d = DateField_View_JQuery::create($this);
|
||||
$d->onBeforeRender();
|
||||
$html = parent::FieldHolder();
|
||||
$html = $d->onAfterRender($html);
|
||||
if ($this->getConfig('showcalendar')) {
|
||||
// TODO Replace with properly extensible view helper system
|
||||
$d = DateField_View_JQuery::create($this);
|
||||
if(!$d->regionalSettingsExist()) {
|
||||
$dateformat = $this->getConfig('dateformat');
|
||||
|
||||
// if no localefile is present, the jQuery DatePicker
|
||||
// month- and daynames will default to English, so the date
|
||||
// will not pass Zend validatiobn. We provide a fallback
|
||||
if (preg_match('/(MMM+)|(EEE+)/', $dateformat)) {
|
||||
$this->setConfig('dateformat', $this->getConfig('datavalueformat'));
|
||||
}
|
||||
}
|
||||
$d->onBeforeRender();
|
||||
}
|
||||
$html = parent::FieldHolder();
|
||||
|
||||
if(!empty($d)) {
|
||||
$html = $d->onAfterRender($html);
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
@ -207,9 +221,6 @@ class DateField extends TextField {
|
||||
$this->value = null;
|
||||
$this->valueObj = null;
|
||||
} else {
|
||||
// Quick fix for overzealous Zend validation, its case sensitive on month names (see #5990)
|
||||
if(is_string($val)) $val = ucwords(strtolower($val));
|
||||
|
||||
if($this->getConfig('dmyfields')) {
|
||||
// Setting in correct locale
|
||||
if(is_array($val) && $this->validateArrayValue($val)) {
|
||||
@ -488,6 +499,11 @@ class DateField_View_JQuery extends Object {
|
||||
|
||||
protected $field;
|
||||
|
||||
/*
|
||||
* the current jQuery UI DatePicker locale file
|
||||
*/
|
||||
protected $jqueryLocaleFile = '';
|
||||
|
||||
/**
|
||||
* @var array Maps values from {@link i18n::$all_locales()} to
|
||||
* localizations existing in jQuery UI.
|
||||
@ -496,7 +512,7 @@ class DateField_View_JQuery extends Object {
|
||||
'en_GB' => 'en-GB',
|
||||
'en_US' => 'en',
|
||||
'en_NZ' => 'en-GB',
|
||||
'fr_CH' => 'fr-CH',
|
||||
'fr_CH' => 'fr',
|
||||
'pt_BR' => 'pt-BR',
|
||||
'sr_SR' => 'sr-SR',
|
||||
'zh_CN' => 'zh-CN',
|
||||
@ -518,6 +534,23 @@ class DateField_View_JQuery extends Object {
|
||||
return $this->field;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if jQuery UI locale settings exists for the current locale
|
||||
* @return boolean
|
||||
*/
|
||||
function regionalSettingsExist() {
|
||||
$lang = $this->getLang();
|
||||
$localeFile = THIRDPARTY_DIR . "/jquery-ui/datepicker/i18n/jquery.ui.datepicker-{$lang}.js";
|
||||
if (file_exists(Director::baseFolder() . '/' .$localeFile)){
|
||||
$this->jqueryLocaleFile = $localeFile;
|
||||
return true;
|
||||
} else {
|
||||
// file goes before internal en_US settings,
|
||||
// but both will validate
|
||||
return ($lang == 'en');
|
||||
}
|
||||
}
|
||||
|
||||
public function onBeforeRender() {
|
||||
}
|
||||
|
||||
@ -532,16 +565,9 @@ class DateField_View_JQuery extends Object {
|
||||
Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery-ui/jquery-ui.js');
|
||||
|
||||
// Include language files (if required)
|
||||
$lang = $this->getLang();
|
||||
if($lang != 'en') {
|
||||
// TODO Check for existence of locale to avoid unnecessary 404s from the CDN
|
||||
Requirements::javascript(
|
||||
sprintf(
|
||||
THIRDPARTY_DIR . '/jquery-ui/minified/i18n/jquery.ui.datepicker-%s.min.js',
|
||||
// can be a mix between names (e.g. 'de') and combined locales (e.g. 'zh-TW')
|
||||
$lang
|
||||
));
|
||||
}
|
||||
if ($this->jqueryLocaleFile){
|
||||
Requirements::javascript($this->jqueryLocaleFile);
|
||||
}
|
||||
|
||||
Requirements::javascript(FRAMEWORK_DIR . "/javascript/DateField.js");
|
||||
}
|
||||
@ -586,12 +612,12 @@ class DateField_View_JQuery extends Object {
|
||||
'/^d([^d])/' => 'd$1',
|
||||
'/([^d])d$/' => '$1d',
|
||||
'/dd/' => 'dd',
|
||||
'/EEEE/' => 'DD',
|
||||
'/EEE/' => 'D',
|
||||
'/SS/' => '',
|
||||
'/eee/' => 'd',
|
||||
'/e/' => 'N',
|
||||
'/D/' => '',
|
||||
'/EEEE/' => 'DD',
|
||||
'/EEE/' => 'D',
|
||||
'/w/' => '',
|
||||
// make single "M" lowercase
|
||||
'/([^M])M([^M])/' => '$1m$2',
|
||||
|
@ -20,7 +20,7 @@
|
||||
* $myField->setFolderName('myFolder');
|
||||
* </code>
|
||||
*
|
||||
* @deprecated 3.0 Use UploadField with $myField->allowedExtensions = array('jpg', 'gif', 'png')
|
||||
* @deprecated 3.0 Use UploadField with $myField->getValidator()->setAllowedExtensions(array('jpg', 'gif', 'png'));
|
||||
*
|
||||
* @package forms
|
||||
* @subpackage fields-files
|
||||
|
@ -64,14 +64,14 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated 3.0 Use UploadField with $myField->allowedExtensions = array('jpg', 'gif', 'png')
|
||||
* @deprecated 3.0 Use UploadField with $myField->getValidator()->setAllowedExtensions(array('jpg', 'gif', 'png'));
|
||||
*/
|
||||
class SimpleImageField extends FileField {
|
||||
|
||||
public function __construct($name, $title = null, $value = null) {
|
||||
Deprecation::notice('3.0',
|
||||
"SimpleImageField is deprecated. Use UploadField with "
|
||||
. "\$myField->allowedExtensions = array('jpg', 'gif', 'png')",
|
||||
. "\$myField->getValidator()->setAllowedExtensions(array('jpg', 'gif', 'png'))",
|
||||
Deprecation::SCOPE_CLASS);
|
||||
|
||||
if(count(func_get_args()) > 3) {
|
||||
|
@ -326,7 +326,7 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
$this->component->getValidator()
|
||||
);
|
||||
if($this->record->ID !== 0) {
|
||||
$form->loadDataFrom($this->record);
|
||||
$form->loadDataFrom($this->record);
|
||||
}
|
||||
|
||||
// TODO Coupling with CMS
|
||||
@ -341,16 +341,9 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
if($form->Fields()->hasTabset()) {
|
||||
$form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
|
||||
$form->addExtraClass('ss-tabset cms-tabset');
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
$form->Backlink = $this->getBackLink();
|
||||
}
|
||||
|
||||
$cb = $this->component->getItemEditFormCallback();
|
||||
@ -374,6 +367,25 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
return $c;
|
||||
}
|
||||
|
||||
protected function getBackLink(){
|
||||
// TODO Coupling with CMS
|
||||
$backlink = '';
|
||||
$toplevelController = $this->getToplevelController();
|
||||
if($toplevelController && $toplevelController instanceof LeftAndMain) {
|
||||
if($toplevelController->hasMethod('Backlink')) {
|
||||
$backlink = $toplevelController->Backlink();
|
||||
} elseif($this->popupController->hasMethod('Breadcrumbs')) {
|
||||
$parents = $this->popupController->Breadcrumbs(false)->items;
|
||||
$backlink = array_pop($parents)->Link;
|
||||
} else {
|
||||
$backlink = $toplevelController->Link();
|
||||
}
|
||||
}
|
||||
return $backlink;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function doSave($data, $form) {
|
||||
$new_record = $this->record->ID == 0;
|
||||
$controller = Controller::curr();
|
||||
@ -424,14 +436,14 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
}
|
||||
|
||||
public function doDelete($data, $form) {
|
||||
$title = $this->record->Title;
|
||||
try {
|
||||
$toDelete = $this->record;
|
||||
if (!$toDelete->canDelete()) {
|
||||
if (!$this->record->canDelete()) {
|
||||
throw new ValidationException(
|
||||
_t('GridFieldDetailForm.DeletePermissionsFailure',"No delete permissions"),0);
|
||||
}
|
||||
|
||||
$toDelete->delete();
|
||||
$this->record->delete();
|
||||
} catch(ValidationException $e) {
|
||||
$form->sessionMessage($e->getResult()->message(), 'bad');
|
||||
return Controller::curr()->redirectBack();
|
||||
@ -440,17 +452,22 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler {
|
||||
$message = sprintf(
|
||||
_t('GridFieldDetailForm.Deleted', 'Deleted %s %s'),
|
||||
$this->record->singular_name(),
|
||||
'<a href="' . $this->Link('edit') . '">"' . htmlspecialchars($this->record->Title, ENT_QUOTES) . '"</a>'
|
||||
htmlspecialchars($title, ENT_QUOTES)
|
||||
);
|
||||
|
||||
$form->sessionMessage($message, 'good');
|
||||
$toplevelController = $this->getToplevelController();
|
||||
if($toplevelController && $toplevelController instanceof LeftAndMain) {
|
||||
$backForm = $toplevelController->getEditForm();
|
||||
$backForm->sessionMessage($message, 'good');
|
||||
} else {
|
||||
$form->sessionMessage($message, 'good');
|
||||
}
|
||||
|
||||
//when an item is deleted, redirect to the revelant admin section without the action parameter
|
||||
//when an item is deleted, redirect to the parent controller
|
||||
$controller = Controller::curr();
|
||||
$noActionURL = $controller->removeAction($data['url']);
|
||||
$controller->getRequest()->addHeader('X-Pjax', 'Content'); // Force a content refresh
|
||||
|
||||
return $controller->redirect($noActionURL, 302); //redirect back to admin section
|
||||
return $controller->redirect($this->getBacklink(), 302); //redirect back to admin section
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -312,7 +312,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
* Singletons don't have their defaults set.
|
||||
*/
|
||||
public function __construct($record = null, $isSingleton = false, $model = null) {
|
||||
|
||||
parent::__construct();
|
||||
|
||||
// Set the fields data.
|
||||
@ -366,6 +365,10 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
HTTP::register_modification_date($record['LastEdited']);
|
||||
}
|
||||
|
||||
// this must be called before populateDefaults(), as field getters on a DataObject
|
||||
// may call getComponent() and others, which rely on $this->model being set.
|
||||
$this->model = $model ? $model : DataModel::inst();
|
||||
|
||||
// Must be called after parent constructor
|
||||
if(!$isSingleton && (!isset($this->record['ID']) || !$this->record['ID'])) {
|
||||
$this->populateDefaults();
|
||||
@ -373,8 +376,6 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
|
||||
// prevent populateDefaults() and setField() from marking overwritten defaults as changed
|
||||
$this->changed = array();
|
||||
|
||||
$this->model = $model ? $model : DataModel::inst();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -341,7 +341,7 @@ class Security extends Controller {
|
||||
// Disable ID-based caching of the log-in page by making it a random number
|
||||
$tmpPage->ID = -1 * rand(1,10000000);
|
||||
|
||||
$controller = new Page_Controller($tmpPage);
|
||||
$controller = Page_Controller::create($tmpPage);
|
||||
$controller->setDataModel($this->model);
|
||||
$controller->init();
|
||||
//Controller::$currentController = $controller;
|
||||
@ -436,7 +436,7 @@ class Security extends Controller {
|
||||
$tmpPage->Title = _t('Security.LOSTPASSWORDHEADER', 'Lost Password');
|
||||
$tmpPage->URLSegment = 'Security';
|
||||
$tmpPage->ID = -1; // Set the page ID to -1 so we dont get the top level pages as its children
|
||||
$controller = new Page_Controller($tmpPage);
|
||||
$controller = Page_Controller::create($tmpPage);
|
||||
$controller->init();
|
||||
} else {
|
||||
$controller = $this;
|
||||
@ -495,7 +495,7 @@ class Security extends Controller {
|
||||
$tmpPage->Title = _t('Security.LOSTPASSWORDHEADER');
|
||||
$tmpPage->URLSegment = 'Security';
|
||||
$tmpPage->ID = -1; // Set the page ID to -1 so we dont get the top level pages as its children
|
||||
$controller = new Page_Controller($tmpPage);
|
||||
$controller = Page_Controller::create($tmpPage);
|
||||
$controller->init();
|
||||
} else {
|
||||
$controller = $this;
|
||||
@ -553,7 +553,7 @@ class Security extends Controller {
|
||||
$tmpPage->Title = _t('Security.CHANGEPASSWORDHEADER', 'Change your password');
|
||||
$tmpPage->URLSegment = 'Security';
|
||||
$tmpPage->ID = -1; // Set the page ID to -1 so we dont get the top level pages as its children
|
||||
$controller = new Page_Controller($tmpPage);
|
||||
$controller = Page_Controller::create($tmpPage);
|
||||
$controller->init();
|
||||
} else {
|
||||
$controller = $this;
|
||||
|
0
tests/travis/_manifest_exclude
Normal file
0
tests/travis/_manifest_exclude
Normal file
25
thirdparty/jquery-ui/datepicker/i18n/README
vendored
Normal file
25
thirdparty/jquery-ui/datepicker/i18n/README
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
AUTHOR: Martine Bloem (http://www.balbuss.com)
|
||||
**********************************************
|
||||
|
||||
jQuery UI DatePicker localization files for SilverStripe 3.0
|
||||
------------------------------------------------------------
|
||||
These files are adaptations of the official localization files that can be found here:
|
||||
http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/
|
||||
|
||||
Day- and monthnames have been changed to match the values Zend Date uses, to make
|
||||
the following dateformats validate:
|
||||
|
||||
EEE: weekday short
|
||||
EEEE: weekday
|
||||
MMM: monthname short
|
||||
MMMM: monthname
|
||||
|
||||
For locales for which no file exists (yet), the DatePicker will revert to a numeric
|
||||
format, that will validate, and after being saved will be displayed in the
|
||||
required format.
|
||||
|
||||
To create your own language fiel, download the original file from the URL above,
|
||||
find the Zend Date locale file in framework/Zend/Locale/Data and make sure that
|
||||
|
||||
- monthNames, monthNamesShort and dayNames are equivalent to Zend (Gregorian) names
|
||||
- dayNamesShort should be the first 3 characters of dayNames
|
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-da.js
vendored
Normal file
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-da.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Danish (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['da'] = {
|
||||
closeText: 'Luk',
|
||||
prevText: '<Forrige',
|
||||
nextText: 'Næste>',
|
||||
currentText: 'Idag',
|
||||
monthNames: ['januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december'],
|
||||
monthNamesShort: ['jan.','feb.','mar.','apr.','maj','jun.','jul.','aug.','sep.','okt.','nov.','dec.'],
|
||||
dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
|
||||
dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
|
||||
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
||||
weekHeader: 'Uge',
|
||||
dateFormat: 'dd-mm-yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['da']);
|
||||
});
|
||||
|
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-de.js
vendored
Normal file
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-de.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* German (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['de'] = {
|
||||
closeText: 'schließen',
|
||||
prevText: '<zurück',
|
||||
nextText: 'Vor>',
|
||||
currentText: 'heute',
|
||||
monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
|
||||
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
|
||||
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
||||
dayNamesShort: ['Son','Mon','Die','Mit','Don','Fre','Sam'],
|
||||
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||
weekHeader: 'Wo',
|
||||
dateFormat: 'dd.mm.yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['de']);
|
||||
});
|
||||
|
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-en-GB.js
vendored
Normal file
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-en-GB.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* English/UK (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['en-GB'] = {
|
||||
closeText: 'Done',
|
||||
prevText: 'Prev',
|
||||
nextText: 'Next',
|
||||
currentText: 'Today',
|
||||
monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'],
|
||||
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||
weekHeader: 'Wk',
|
||||
dateFormat: 'dd/mm/yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
|
||||
});
|
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-en.js
vendored
Normal file
25
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-en.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* English (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['en'] = {
|
||||
closeText: 'Done',
|
||||
prevText: 'Prev',
|
||||
nextText: 'Next',
|
||||
currentText: 'Today',
|
||||
monthNames: ['January','February','March','April','May','June','July','August','September','October','November','December'], // For formatting
|
||||
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
|
||||
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
|
||||
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
|
||||
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||
weekHeader: 'Wk',
|
||||
dateFormat: 'mm/dd/yy',
|
||||
firstDay: 0,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''
|
||||
$.datepicker.setDefaults($.datepicker.regional['en']);
|
||||
});
|
||||
|
27
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-es.js
vendored
Normal file
27
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-es.js
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Spanish (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['es'] = {
|
||||
closeText: 'Cerrar',
|
||||
prevText: '<Ant',
|
||||
nextText: 'Sig>',
|
||||
currentText: 'Hoy',
|
||||
monthNames: ['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'],
|
||||
monthNamesShort: ['ene','feb','mar','abr','may','jun','jul','ago','sep','oct','nov','dic'],
|
||||
dayNames: ['domingo','lunes','martes','miércoles','jueves','viernes','sábado'],
|
||||
dayNamesShort: ['dom','lun','mar','mié','juv','vie','sáb'],
|
||||
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
|
||||
weekHeader: 'Sm',
|
||||
dateFormat: 'dd/mm/yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['es']);
|
||||
});
|
||||
|
||||
|
||||
|
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-fr.js
vendored
Normal file
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-fr.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* French (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['fr'] = {
|
||||
closeText: 'Fermer',
|
||||
prevText: '<Préc',
|
||||
nextText: 'Suiv>',
|
||||
currentText: 'Courant',
|
||||
monthNames: ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'],
|
||||
monthNamesShort: ['janv.','févr.','mars','avr.','mai','juin','juil.','août','sept.','oct.','nov.','déc.'],
|
||||
dayNames: ['dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'],
|
||||
dayNamesShort: ['dim','lun','mar','mer','jeu','ven','sam'],
|
||||
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
|
||||
weekHeader: 'Sm',
|
||||
dateFormat: 'dd/mm/yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['fr']);
|
||||
});
|
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-nb.js
vendored
Normal file
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-nb.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Norwegian (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['no'] = {
|
||||
closeText: 'Lukk',
|
||||
prevText: '«Forrige',
|
||||
nextText: 'Neste»',
|
||||
currentText: 'I dag',
|
||||
monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
|
||||
monthNamesShort: ['jan.','feb.','mar.','apr.','mai','juni','juli','aug.','sep.','okt.','nov.','des.'],
|
||||
dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
|
||||
dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
|
||||
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
||||
weekHeader: 'Uke',
|
||||
dateFormat: 'yy-mm-dd',
|
||||
firstDay: 0,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['no']);
|
||||
});
|
26
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-nl.js
vendored
Normal file
26
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-nl.js
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['nl'] = {
|
||||
closeText: 'Sluiten',
|
||||
prevText: '←',
|
||||
nextText: '→',
|
||||
currentText: 'Vandaag',
|
||||
monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni','juli', 'augustus', 'september', 'oktober', 'november', 'december'],
|
||||
monthNamesShort: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei.', 'jun.','jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],
|
||||
dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
|
||||
dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
|
||||
dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
|
||||
weekHeader: 'Wk',
|
||||
dateFormat: 'dd-mm-yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['nl']);
|
||||
});
|
||||
|
||||
|
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-sv.js
vendored
Normal file
24
thirdparty/jquery-ui/datepicker/i18n/jquery.ui.datepicker-sv.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Swedish (UTF-8) initialisation for the jQuery UI date picker plugin.
|
||||
* Adapted to match the Zend Data localization for SilverStripe CMS
|
||||
* See: README
|
||||
*/
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['sv'] = {
|
||||
closeText: 'Stäng',
|
||||
prevText: '«Förra',
|
||||
nextText: 'Nästa»',
|
||||
currentText: 'Idag',
|
||||
monthNames: ['januari','februari','mars','april','maj','juni','juli','augusti','september','oktober','november','december'],
|
||||
monthNamesShort: ['jan','feb','mar','apr','maj','jun','jul','aug','sep','okt','nov','dec'],
|
||||
dayNames: ['söndag','måndag','tisdag','onsdag','torsdag','fredag','lördag'],
|
||||
dayNamesShort: ['sön','mån','tis','ons','tor','fre','lör'],
|
||||
dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
|
||||
weekHeader: 'Ve',
|
||||
dateFormat: 'yy-mm-dd',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['sv']);
|
||||
});
|
@ -45,4 +45,3 @@ interface TemplateIteratorProvider {
|
||||
public function iteratorProperties($pos, $totalItems);
|
||||
}
|
||||
|
||||
?>
|
||||
|
Loading…
Reference in New Issue
Block a user