Merge remote-tracking branch 'origin/3.1'

Conflicts:
	tests/travis/before_script
This commit is contained in:
Ingo Schommer 2013-02-27 13:34:03 +01:00
commit ce66bc1eaf
57 changed files with 1462 additions and 536 deletions

View File

@ -26,7 +26,7 @@ matrix:
before_script:
- pear install pear/PHP_CodeSniffer
- phpenv rehash
- ./tests/travis/before_script ~/builds/ss
- ./tests/travis/before.php --target ~/builds/ss --version="dev-master" --installer="master"
- cd ~/builds/ss
script:

View File

@ -1,6 +1,6 @@
## SilverStripe Framework
[![Build Status](https://secure.travis-ci.org/silverstripe/sapphire.png?branch=3.0)](https://travis-ci.org/silverstripe/sapphire)
[![Build Status](https://secure.travis-ci.org/silverstripe/sapphire.png?branch=master)](https://travis-ci.org/silverstripe/sapphire)
PHP5 framework forming the base for the SilverStripe CMS ([http://silverstripe.org](http://silverstripe.org)).
Requires a [`silverstripe-installer`](http://github.com/silverstripe/silverstripe-installer) base project. Typically used alongside the [`cms`](http://github.com/silverstripe/silverstripe-cms) module.

6
_config/config.yml Normal file
View File

@ -0,0 +1,6 @@
---
Name: coreconfig
---
Upload:
# Replace an existing file rather than renaming the new one.
replaceFile: false

View File

@ -150,15 +150,14 @@ class CMSMenu extends Object implements IteratorAggregate, i18nEntityProvider
}
}
// Sort menu items according to priority
// Sort menu items according to priority, then title asc
$menuPriority = array();
$i = 0;
$menuTitle = array();
foreach($menuItems as $key => $menuItem) {
$i++;
// This funny litle formula ensures that the first item added with the same priority will be left-most.
$menuPriority[$key] = $menuItem->priority*100 - $i;
$menuPriority[$key] = $menuItem->priority;
$menuTitle[$key] = $menuItem->title;
}
array_multisort($menuPriority, SORT_DESC, $menuItems);
array_multisort($menuPriority, SORT_DESC, $menuTitle, SORT_ASC, $menuItems);
return $menuItems;
}

View File

@ -54,6 +54,13 @@ abstract class ModelAdmin extends LeftAndMain {
* @var array|string
*/
public static $managed_models = null;
/**
* Override menu_priority so that ModelAdmin CMSMenu objects
* are grouped together directly above the Help menu item.
* @var float
*/
public static $menu_priority = -0.5;
public static $allowed_actions = array(
'ImportForm',

View File

@ -1,5 +1,5 @@
if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
} else {
ss.i18n.addDictionary('nl_NL', {
'LeftAndMain.CONFIRMUNSAVED': "Weet u zeker dat u deze pagina wilt verlaten?\n\WAARSCHUWING: Uw veranderingen zijn niet opgeslagen.\n\nKies OK om te verlaten, of Cancel om op de huidige pagina te blijven.",

View File

@ -674,8 +674,8 @@ class Director implements TemplateGlobalProvider {
$matched = false;
if($patterns) {
// Calling from the command-line?
if(!isset($_SERVER['REQUEST_URI'])) return;
// Calling from the command-line?
if(!isset($_SERVER['REQUEST_URI'])) return;
// protect portions of the site based on the pattern
$relativeURL = self::makeRelative(Director::absoluteURL($_SERVER['REQUEST_URI']));

View File

@ -107,7 +107,7 @@ class HTTP {
}
return $matches[1] . $rewritten . $matches[3];
};
// Execute each expression
foreach($regExps as $regExp) {
$content = preg_replace_callback($regExp, $callback, $content);
@ -314,7 +314,8 @@ class HTTP {
$responseHeaders["Cache-Control"] = "max-age=" . self::$cache_age . ", must-revalidate, no-transform";
$responseHeaders["Pragma"] = "";
// To do: User-Agent should only be added in situations where you *are* actually varying according to it.
// To do: User-Agent should only be added in situations where you *are* actually
// varying according to user-agent.
$responseHeaders['Vary'] = 'Cookie, X-Forwarded-Protocol, User-Agent, Accept';
} else {
@ -324,14 +325,12 @@ class HTTP {
if(self::$modification_date && self::$cache_age > 0) {
$responseHeaders["Last-Modified"] = self::gmt_date(self::$modification_date);
/* Chrome ignores Varies when redirecting back (http://code.google.com/p/chromium/issues/detail?id=79758)
which means that if you log out, you get redirected back to a page which Chrome then checks against
last-modified (which passes, getting a 304) when it shouldn't be trying to use that page at all because
it's the "logged in" version.
By also using and etag that includes both the modification date and all the varies values which we also
check against we can catch this and not return a 304
*/
// Chrome ignores Varies when redirecting back (http://code.google.com/p/chromium/issues/detail?id=79758)
// which means that if you log out, you get redirected back to a page which Chrome then checks against
// last-modified (which passes, getting a 304)
// when it shouldn't be trying to use that page at all because it's the "logged in" version.
// By also using and etag that includes both the modification date and all the varies
// values which we also check against we can catch this and not return a 304
$etagParts = array(self::$modification_date, serialize($_COOKIE));
if (isset($_SERVER['HTTP_X_FORWARDED_PROTOCOL'])) $etagParts[] = $_SERVER['HTTP_X_FORWARDED_PROTOCOL'];
if (isset($_SERVER['HTTP_USER_AGENT'])) $etagParts[] = $_SERVER['HTTP_USER_AGENT'];

View File

@ -160,9 +160,6 @@ class SS_HTTPResponse {
*/
public function setBody($body) {
$this->body = $body;
// Set content-length in bytes. Use mbstring to avoid problems with mb_internal_encoding() and mbstring.func_overload
$this->headers['Content-Length'] = mb_strlen($this->body,'8bit');
}
/**
@ -244,17 +241,21 @@ class SS_HTTPResponse {
<meta http-equiv=\"refresh\" content=\"1; url=$url\" />
<script type=\"text/javascript\">setTimeout('window.location.href = \"$url\"', 50);</script>";
} else {
$line = $file = null;
$line = $file = null;
if(!headers_sent($file, $line)) {
header($_SERVER['SERVER_PROTOCOL'] . " $this->statusCode " . $this->getStatusDescription());
foreach($this->headers as $header => $value) {
header("$header: $value", true, $this->statusCode);
}
} else {
// It's critical that these status codes are sent; we need to report a failure if not.
if($this->statusCode >= 300) {
user_error("Couldn't set response type to $this->statusCode because of output on line $line of $file", E_USER_WARNING);
}
// It's critical that these status codes are sent; we need to report a failure if not.
if($this->statusCode >= 300) {
user_error(
"Couldn't set response type to $this->statusCode because " .
"of output on line $line of $file",
E_USER_WARNING
);
}
}
// Only show error pages or generic "friendly" errors if the status code signifies

View File

@ -240,7 +240,7 @@ class Debug {
if(Director::isDev()) {
return self::showError($errno, $errstr, $errfile, $errline, $errcontext, "Notice");
} else {
return false;
return false;
}
}
@ -258,7 +258,15 @@ class Debug {
ini_set('display_errors', 0);
if(self::$send_warnings_to) {
return self::emailError(self::$send_warnings_to, $errno, $errstr, $errfile, $errline, $errcontext, "Warning");
return self::emailError(
self::$send_warnings_to,
$errno,
$errstr,
$errfile,
$errline,
$errcontext,
"Warning"
);
}
// Send out the error details to the logger for writing
@ -280,8 +288,8 @@ class Debug {
if(Director::isDev()) {
return self::showError($errno, $errstr, $errfile, $errline, $errcontext, "Warning");
} else {
return false;
}
return false;
}
}
/**

View File

@ -0,0 +1,13 @@
# 3.0.5 (2013-02-20)
## Overview
* Fixes unpublish and "delete" actions in CMS (regression from $allowed_actions changes in 3.0.4)
### Bugfixes
* 2013-02-18 [16d0c18](https://github.com/silverstripe/sapphire/commit/16d0c18) Find Form actions in CompositeFields for access checks (Ingo Schommer)
### Other
* 2013-02-19 [9e7c622](https://github.com/silverstripe/sapphire/commit/9e7c622) fixed error property $ of object is not a function (roed)

View File

@ -7,6 +7,7 @@
Composer is a package management tool for PHP that lets you install and upgrade SilverStripe and its modules. Although installing Composer is one extra step, it will give you much more flexibility than just downloading the file from silverstripe.org. This is our recommended way of downloading SilverStripe and managing your code.
For more information about Composer, visit [its website](http://getcomposer.org/).
We also have separate instructions for [installing modules with Composer](/topics/modules).
# Basic usage
@ -40,7 +41,7 @@ Composer updates regularly, so you should run this command fairly often. These i
## Create a new site
Composer can create a new site for you, using the installer as a template. To do so, run this:
Composer can create a new site for you, using the installer as a template:
composer create-project silverstripe/installer ./my/website/folder
@ -50,7 +51,7 @@ As long as your web server is up and running, this will get all the code that yo
Now visit the site in your web browser, and the installation process will be completed.
By default composer will download the latest stable version. You can also specify
a version to download that version explicitly, i.e. this will download 3.0.3:
a version to download that version explicitly, i.e. this will download the older `3.0.3` release:
composer create-project silverstripe/installer ./my/website/folder 3.0.3
@ -74,7 +75,7 @@ This will return a list of package names of the forum `vendor/package`. If you
The second part after the colon, `*`, is a version string. `*` is a good default: it will give you the latest version that works with the other modules you have installed. Alternatively, you can specificy a specific version, or a constraint such as `>=3.0`. For more information, read the [Composer documentation](http://getcomposer.org/doc/01-basic-usage.md#the-require-key).
<div class="warning" markdown="1">
`master` is not a legal version string - it's a branch name. These are different things. The version string that would get you the branch is `dev-master`. The version string that would get you a numeric branch is a little different. The version string for the `3.0` branch is `3.0.x-dev`. But, frankly, maybe you should just use `*`.
`master` is not a legal version string - it's a branch name. These are different things. The version string that would get you the branch is `dev-master`. The version string that would get you a numeric branch is a little different. The version string for the `3.0` branch is `3.0.x-dev`.
</div>
## Updating dependencies
@ -100,7 +101,7 @@ So, your deployment process, as it relates to Composer, should be as follows:
* Deploy your project code base, using the deployment tool of your choice.
* Run `composer install` on your production version.
# Setting up an environment for contributing to SilverStripe {#contributing}
# Dev Environments for Contributing Code {#contributing}
So you want to contribute to SilverStripe? Fantastic! You can do this with composer too.
You have to tell composer three things in order to be able to do this:
@ -109,20 +110,28 @@ You have to tell composer three things in order to be able to do this:
- Include dependancies marked as "developer" requirements
- Use the development version, not the latest stable version
The first two steps are done as part of the initial create project using additional arguments. For instance:
The first two steps are done as part of the initial create project using additional arguments.
composer create-project --keep-vcs --dev silverstripe/installer ./my/website/folder 3.0.x-dev
The process will take a bit longer, since all modules are checked out as full git repositories which you can work on.
The process will take a bit longer, since all modules are checked out as full git repositories which you can work on. The command checks out from the 3.0 release line. To check out from master instead,
replace `3.0.x-dev` with `dev-master` (more info on [composer version naming](http://getcomposer.org/doc/02-libraries.md#specifying-the-version)).
The `--keep-vcs` flag will make sure you have access to the git history of the installer and the requirements
The `--dev` flag will add a couple modules which are useful for SilverStripe development:
The `--dev` flag is optional, and can be used to add a couple modules which are useful for
SilverStripe development:
* The `behat-extension` module allows running [Behat](http://behat.org) integration tests
* The `docsviewer` module will let you preview changes to the project documentation
* The `buildtools` module which adds [phing](http://phing.info) tasks for creating SilverStripe releases
Note that you can also include those into an existing project by running `composer update --dev`.
Once the `create-project` command completes, you need to edit the `composer.json` in the project root
and remove the `@stable` markers from the `silverstripe/cms` and `silverstripe/framework` version entries.
Another `composer update --dev` call will now fetch from the development branch instead.
Note that you can also convert an existing composer project with these steps.
Please read the ["Contributing Code"](/misc/contributing/code) documentation to find out how to
create forks and send pull requests.
@ -235,3 +244,58 @@ Both the version and the alias are specified as Composer versions, not branch na
This is not the only way to set things up in Composer. For more information on this topic, read the ["Aliases" chapter of the Composer documentation](http://getcomposer.org/doc/articles/aliases.md).
## FAQ
### How do I convert an existing module to using Composer?
Simply decide on a [unique name and vendor prefix](https://packagist.org/about),
create a `composer.json`, and either commit it or send a pull request to the module author.
Look at existing modules like the ["blog" module](https://github.com/silverstripe/silverstripe-blog/blob/master/composer.json) for good examples on what this file should contain.
It's important that the file contains a custom "type" to declare it as a
`silverstripe-module` or `silverstripe-theme` (see [custom installers](http://getcomposer.org/doc/articles/custom-installers.md)).
Then register the module on [packagist.org](http://packagist.org).
### How should I name my module?
Follow the packagist.org advice on choosing a [unique name and vendor prefix](https://packagist.org/about). Please don't use the `silverstripe/<modulename>` vendor prefix, since that's reserved
for modules produced by SilverStripe Ltd. In order to declare that your module is
in fact a SilverStripe module, use the "silverstripe" tag in the composer.json file,
and set the "type" to "silverstripe-module".
### What about themes?
Themes are technically just "modules" which are placed in the `themes/` subdirectory.
We denote a special type for them in the `composer.json` (`"type": "silverstripe-theme"`),
which triggers their installation into the correct path.
### How do I convert an existing project to Composer?
The easiest way is to follow the [upgrading](/installation/upgrading) instructions
and switch to a newer release. Alternatively, copy the `composer.json` file from
a newer release, and adjust the version settings in the "require" section to your needs.
You'll also need to update your webserver configuration
from there (`.htaccess` or `web.config` files), in order to prevent
web access to the composer-generated files.
### Do I need composer on my live server?
It depends on your deployment process. If you copy or rsync files to your live server,
the process stays the same. If the live server hosts a git repository checkout,
which is updated to push a newer version, you'll also need to run `composer install` afterwards.
We recommend looking into [Composer "lock" files](http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file) for this purpose.
### Can I keep using Downloads, Subversion Externals or Git Submodules?
Yes and no. Composer comes with additional features such as
[autoloading](http://getcomposer.org/doc/01-basic-usage.md#autoloading)
or [scripts](http://getcomposer.org/doc/articles/scripts.md)
which some modules will start relying on.
Please check the module README for specific installation instructions.
### I don't want to get development versions of everything!
You don't have to, Composer is designed to work on the constraints you set.
You can declare the ["minimum-stability"](http://getcomposer.org/doc/04-schema.md#minimum-stability)
on your project as suitable, or even whitelist specific modules as tracking
a development branch while keeping others to their stable release.
Read up on [Composer "lock" files](http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file) on how this all fits together.

View File

@ -16,9 +16,19 @@ For all modules listed there, we automatically import new master strings as they
## FAQ
### How do I translate substituted strings? (e.g. '%s')
### How do I translate a module not listed on getlocalization?
You don't have to - if the english master-string reads 'Hello %s', your german translation would be 'Hallo %s'. Strings prefixed by a percentage-sign are automatically replaced by silverstripe with dynamic content. See http://php.net/sprintf for details.
At the moment, only the core modules ("framework" and "cms") are managed through
the getlocalization service.
For other modules, have a look in the module README if there's any specific instructions.
If there aren't, you'll need to translate the YAML files directly. If the module is on github,
you can create a fork, edit the files, and send back your pull request all directly on
the website ([instructions](https://help.github.com/articles/fork-a-repo)).
### How do I translate substituted strings? (e.g. '%s' or '{my-variable}')
You don't have to - if the english master-string reads 'Hello %s', your german translation would be 'Hallo %s'. Strings prefixed by a percentage-sign are automatically replaced by silverstripe with dynamic content. See http://php.net/sprintf for details. The newer `{my-variable}` format works the same way,
but makes its intent clearer, and allows reordering of placeholders in your translation.
### Do I need to convert special characters (e.g. HTML-entities)?

View File

@ -219,6 +219,13 @@ editform, or 'fileEditValidator' to determine the validator (eg RequiredFields).
(of a method on File to provide a actions) for the EditForm (Example: 'getCMSActions')
- `fileEditValidator`: (string) Validator (eg RequiredFields) or string $name
(of a method on File to provide a Validator) for the EditForm (Example: 'getCMSValidator')
You can also configure the underlying `[api:Upload]` class, by using the YAML config system.
:::yaml
Upload:
# Globally disables automatic renaming of files
replaceFile: true
## TODO: Using the UploadField in a frontend form

View File

@ -27,67 +27,82 @@ Because of the broad definition of modules, they can be created for a number of
from your mysite folder. "cms" is an example of this.
* **CMS Add-ons:** A module can define an extension to the CMS, usually by defining special page types with their own
templates and behaviour. "blog", "ecommerce", "forum", and "gallery" are examples of this.
* **Blog Widgets:** A module can provide 1 or more blog-widget classes. See [widgets](/topics/widgets) for more information.
* **Widgets:** Small pieces of functionality such as showing the latest Comments or Flickr Photos. Since SilverStripe 3.0, they have been moved into a standalone module at [github.com/silverstripe/silverstripe-widgets](https://github.com/silverstripe/silverstripe-widgets).
* **Developer Tools:** A module can provide a number of classes or resource files that do nothing by themselves, but
instead make it easier for developers to build other applications.
## Finding Modules
* [Official module list on silverstripe.org](http://silverstripe.org/modules)
* [Subversion repository on open.silverstripe.org](http://open.silverstripe.org/browser/modules)
* [Official module list on silverstripe.org](http://silverstripe.org/modules)
* [Packagist.org "silverstripe" tag](https://packagist.org/search/?tags=silverstripe)
* [Github.com "silverstripe" search](https://github.com/search?q=silverstripe&ref=commandbar)
## Installation
Modules should exist in the root folder of your SilverStripe. The root folder being the one that contains the
*framework*, *cms* and other folders.
Modules should exist in the root folder of your SilverStripe installation
(the directory containing the *framework* and *cms* subdirectories).
The following article explains the generic installation of a module. Individual modules have their own requirements such
as creating folders or configuring API keys. For information about installing or configuring a specific module see the
modules *INSTALL* (or *README*) file. Modules should adhere to the [directory-structure](/topics/directory-structure)
modules *README* file. Modules should adhere to the [directory-structure](/topics/directory-structure)
guidelines.
### Download
### From a Composer Package
To install a module you need to download the tar.gz file from the [modules page](http://www.silverstripe.org/modules) and extract this tar.gz to the root folder mentioned
above.
Our preferred way to manage module dependencies is through the [Composer][http://getcomposer.org]
package manager. It enables you to install modules from specific versions, checking for
compatibilities between modules and even allowing to track development branches of them.
Note some times the folders extracted from the tar.gz contain the version number or some other folders. You need to make
sure the folder name is the correct name of the module.
After [installing Composer](/installation/composer) itself,
you can run a simple command to install a module.
Each module has a unique identifier, consisting of a vendor prefix and name.
For example, the popular "blog" module has the identifier `silverstripe/blog`,
and would be installed with the following command executed in the root folder:
### Subversion
composer require silverstripe/blog:*@stable
#### Option 1: Checkout
This will fetch the latest compatible stable version. Every time you run
`composer update` afterwards, Composer will check for a new stable version.
To lock down to a specific version, branch or commit, read up on
[Composer "lock" files](http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file).
You can also add modules by editing the "require" section of the `composer.json` file.
cd ~/Sites/yourSilverStripeProject/
svn co http://svn.silverstripe.com/open/modules/modulename/trunk modulename/
To find modules and their identifiers, search for them on [packagist.org](http://packagist.org).
<div class="notice" markdown="1">
Older releases (<3.0.3, <2.4.9) don't come with a `composer.json` file in your root folder,
which is required for its operation. In this case, we recommend upgrading to a newer release.
</div>
Note: Some modules are stored in subfolders. If you want to use a module that is in a subfolder, such as widgets, put
an _ between the subfolder name and the module name, like this:
### From an Archive Download
cd /your/website/root
svn co http://svn.silverstripe.com/open/modules/widgets/twitter/trunk widgets_twitter
Alternatively, you can download the archive file from the
[modules page](http://www.silverstripe.org/modules)
and extract it to the root folder mentioned above.
Github also provides archive downloads which are generated automatically for every tag/version.
<div class="notice" markdown="1">
The main folder extracted from the archive
might contain the version number or additional "container" folders above the actual module
codebase. You need to make sure the folder name is the correct name of the module
(e.g. "blog/" rather than "silverstripe-blog/"). This folder should contain a `_config.php` file.
While the module might register and operate in other structures,
paths to static files such as CSS or JavaScript won't work.
</div>
<div class="warning" markdown="1">
Some modules might not work at all with this approach since they rely on the
Composer [autoloader](http://getcomposer.org/doc/01-basic-usage.md#autoloading)
or post-install hooks, so we recommend using Composer.
</div>
#### Option 2: Add to svn:externals
### Git Submodules and Subversion Externals
cd ~/Sites/yourSilverStripeProject/
svn propedit svn:externals .
Git and Subversion provide their own facilities for managing dependent repositories.
This is essentially a variation of the "Archive Download" approach,
and comes with the same caveats.
## Related
In the editor add the following line (lines if you want multiple)
modulename/ http://svn.silverstripe.com/open/modules/modulename/trunk
Exit the editor and then run
svn up
**Useful Links:**
* [Modules](/topics/module-developement)
* [Module Release Process](/misc/module-release-process)
* [Modules Development](/topics/module-developement)
* [Module Release Process](/misc/module-release-process)

View File

@ -45,6 +45,12 @@ class Upload extends Controller {
* @var array
*/
protected $tmpFile;
/**
* Replace an existing file rather than renaming the new one.
* @var Boolean
*/
protected $replaceFile;
/**
* Processing errors that can be evaluated,
@ -61,10 +67,11 @@ class Upload extends Controller {
* @var string
*/
public static $uploads_folder = "Uploads";
public function __construct() {
parent::__construct();
$this->validator = new Upload_Validator();
$this->replaceFile = $this->config()->get('replaceFile');
}
/**
@ -100,11 +107,6 @@ class Upload extends Controller {
if(!$folderPath) $folderPath = self::$uploads_folder;
if(!$this->file) {
$fileClass = File::get_class_for_file_extension(pathinfo($tmpFile['name'], PATHINFO_EXTENSION));
$this->file = new $fileClass();
}
if(!is_array($tmpFile)) {
user_error("Upload::load() Not passed an array. Most likely, the form hasn't got the right enctype",
E_USER_ERROR);
@ -137,25 +139,40 @@ class Upload extends Controller {
$fileName = basename($file);
$relativeFilePath = ASSETS_DIR . "/" . $folderPath . "/$fileName";
// Create a new file record (or try to retrieve an existing one)
if(!$this->file) {
$fileClass = File::get_class_for_file_extension(pathinfo($tmpFile['name'], PATHINFO_EXTENSION));
if($this->replaceFile) {
$this->file = File::get()
->filter(array(
'Name' => $fileName,
'ParentID' => $parentFolder ? $parentFolder->ID : 0
))->First();
}
if(!$this->file) $this->file = new $fileClass();
}
// if filename already exists, version the filename (e.g. test.gif to test1.gif)
while(file_exists("$base/$relativeFilePath")) {
$i = isset($i) ? ($i+1) : 2;
$oldFilePath = $relativeFilePath;
// make sure archives retain valid extensions
if(substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.gz')) == '.tar.gz' ||
substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.bz2')) == '.tar.bz2') {
$relativeFilePath = preg_replace('/[0-9]*(\.tar\.[^.]+$)/', $i . '\\1', $relativeFilePath);
} else if (strpos($relativeFilePath, '.') !== false) {
$relativeFilePath = preg_replace('/[0-9]*(\.[^.]+$)/', $i . '\\1', $relativeFilePath);
} else if (strpos($relativeFilePath, '_') !== false) {
$relativeFilePath = preg_replace('/_([^_]+$)/', '_'.$i, $relativeFilePath);
} else {
$relativeFilePath .= '_'.$i;
}
if($oldFilePath == $relativeFilePath && $i > 2) {
user_error("Couldn't fix $relativeFilePath with $i tries", E_USER_ERROR);
}
if(!$this->replaceFile) {
while(file_exists("$base/$relativeFilePath")) {
$i = isset($i) ? ($i+1) : 2;
$oldFilePath = $relativeFilePath;
// make sure archives retain valid extensions
if(substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.gz')) == '.tar.gz' ||
substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.bz2')) == '.tar.bz2') {
$relativeFilePath = preg_replace('/[0-9]*(\.tar\.[^.]+$)/', $i . '\\1', $relativeFilePath);
} else if (strpos($relativeFilePath, '.') !== false) {
$relativeFilePath = preg_replace('/[0-9]*(\.[^.]+$)/', $i . '\\1', $relativeFilePath);
} else if (strpos($relativeFilePath, '_') !== false) {
$relativeFilePath = preg_replace('/_([^_]+$)/', '_'.$i, $relativeFilePath);
} else {
$relativeFilePath .= '_'.$i;
}
if($oldFilePath == $relativeFilePath && $i > 2) {
user_error("Couldn't fix $relativeFilePath with $i tries", E_USER_ERROR);
}
}
}
if(file_exists($tmpFile['tmp_name']) && copy($tmpFile['tmp_name'], "$base/$relativeFilePath")) {
@ -181,6 +198,20 @@ class Upload extends Controller {
$this->file = $file;
return $this->load($tmpFile, $folderPath);
}
/**
* @return Boolean
*/
public function setReplaceFile($bool) {
$this->replaceFile = $bool;
}
/**
* @return Boolean
*/
public function getReplaceFile() {
return $this->replaceFile;
}
/**
* Container for all validation on the file

View File

@ -78,7 +78,7 @@ class FileField extends FormField {
* @param int $value The value of the field.
*/
public function __construct($name, $title = null, $value = null) {
$this->upload = new Upload();
$this->upload = Upload::create();
parent::__construct($name, $title, $value);
}

View File

@ -120,10 +120,6 @@ class FormAction extends FormField {
return $this->useButtonTag;
}
public function extraClass() {
return 'action ' . parent::extraClass();
}
/**
* Does not transform to readonly by purpose.
* Globally disabled buttons would break the CMS.

View File

@ -8,8 +8,8 @@ ar:
FILENAME: 'اسم الملف'
FOLDER: Folder
LASTEDIT: 'آخر التعديلات'
OWNER: 'المالك'
SIZE: 'الحجم'
OWNER: المالك
SIZE: الحجم
TITLE: العنوان
TYPE: النوع
URL: الرابط
@ -28,7 +28,7 @@ ar:
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
BBCodeParser:
ALIGNEMENT: 'المحاذاة'
ALIGNEMENT: المحاذاة
ALIGNEMENTEXAMPLE: 'محاذاة إلى اليمين'
BOLD: 'خط عريض'
BOLDEXAMPLE: عريض
@ -42,7 +42,7 @@ ar:
IMAGE: الصورة
IMAGEDESCRIPTION: 'عرض الصورة في الموضوع'
ITALIC: 'خط مائل'
ITALICEXAMPLE: 'مائل'
ITALICEXAMPLE: مائل
LINK: 'رابط الموقع'
LINKDESCRIPTION: 'رابط إلى موقع آخر'
STRUCK: 'خط في المنتصف'
@ -61,7 +61,7 @@ ar:
Boolean:
0: لا
ANY: أي
1: 'نعم'
1: نعم
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
@ -80,7 +80,7 @@ ar:
PASSWORD: 'الرقم السري'
CheckboxField:
- لا
- 'نعم'
- نعم
ComplexTableField:
CLOSEPOPUP: 'إغلاق النافذة'
SUCCESSADD2: 'Added {name}'
@ -109,8 +109,8 @@ ar:
PLURALNAME: 'بيانات كائن'
SINGULARNAME: 'بيانات كائن'
Date:
DAY: 'اليوم'
DAYS: 'الأيام'
DAY: اليوم
DAYS: الأيام
HOUR: ساعة
HOURS: ساعات
MIN: دقيقة
@ -125,7 +125,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})'
@ -144,7 +144,7 @@ ar:
ANY: أي
File:
AviType: 'AVI video file'
Content: 'المحتوى'
Content: المحتوى
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -162,11 +162,11 @@ ar:
MpgType: 'MPEG video file'
NOFILESIZE: 'حجم الملف 0 بايت'
NOVALIDUPLOAD: 'نوع الملف غير قابل للرفع'
Name: 'الاسم'
PLURALNAME: 'الملفات'
Name: الاسم
PLURALNAME: الملفات
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
SINGULARNAME: 'الملف'
SINGULARNAME: الملف
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TiffType: 'Tagged image format'
@ -180,7 +180,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: 'الرجاء اختيارمصدر ملف المرفق'
@ -205,7 +205,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: لايوجد
@ -279,8 +279,8 @@ ar:
CSSCLASSRIGHT: 'إلى اليمين ، مع التفاف النص'
DETAILS: Details
EMAIL: 'بريد إلكتروني'
FILE: 'ملف'
FOLDER: 'المجلد'
FILE: ملف
FOLDER: المجلد
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
@ -322,7 +322,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: 'عذراً , لكن لا يمكنك الوصول لهذا القسم من النظام. يتوجب عليك الدخول بصلاحية أخرى'
@ -377,7 +377,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: 'مغلق حتى تاريخ'
@ -441,8 +441,8 @@ ar:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
MoneyField:
FIELDLABELAMOUNT: 'الكمية'
FIELDLABELCURRENCY: 'العملة'
FIELDLABELAMOUNT: الكمية
FIELDLABELCURRENCY: العملة
NullableField:
IsNullLabel: باطل
NumericField:

View File

@ -4,7 +4,7 @@ bg:
NEWFOLDER: НоваПапка
AssetTableField:
CREATED: Създаден
DIM: 'Размери'
DIM: Размери
FILENAME: 'Име на файл'
FOLDER: Папка
LASTEDIT: 'Последна промяна'
@ -88,8 +88,8 @@ bg:
ComplexTableField.ss:
ADDITEM: 'Добави %s'
NOITEMSFOUND: 'No items found'
SORTASC: 'Възходящ'
SORTDESC: 'Низходящ'
SORTASC: Възходящ
SORTDESC: Низходящ
ComplexTableField_popup.ss:
NEXT: Следващо
PREVIOUS: Предишно
@ -253,7 +253,7 @@ bg:
RolesAddEditLink: 'Управление на ролите'
SINGULARNAME: Group
Sort: Сортиране
has_many_Permissions: 'Разрешения'
has_many_Permissions: Разрешения
many_many_Members: Потребители
GroupImportForm:
Help1: '<p>Внасяне на една или повече групи в <em>CSV формат</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Покажи начин на употреба</a></small></p>'
@ -288,7 +288,7 @@ bg:
IMAGEALT: 'Алтернативен текст (alt)'
IMAGEALTTEXT: 'Алтернативен текст (alt) - показва се ако изображението не е заредено'
IMAGEALTTEXTDESC: 'Вижда се на екранните четци или ако картинката не може да бъде показана'
IMAGEDIMENSIONS: 'Размери'
IMAGEDIMENSIONS: Размери
IMAGEHEIGHTPX: Височина
IMAGETITLE: 'Описание (tooltip) - за допълнителна информация към изображението'
IMAGETITLETEXT: 'Описание (tooltip)'
@ -506,16 +506,16 @@ bg:
MENUTITLE: Сигурност
MemberListCaution: 'Внимание: изтривайки потребители от този списък, ще ги премахне от всички групи и от базата данни.'
NEWGROUP: 'Нова група'
PERMISSIONS: 'Разрешения'
ROLES: 'Роли'
PERMISSIONS: Разрешения
ROLES: Роли
ROLESDESCRIPTION: 'Ролите са предварително зададени сетове от разрешения и могат да бъдат присвоявани на групи.<br />Ако е нужно, те се наследяват от родителските групи.'
TABROLES: 'Роли'
TABROLES: Роли
Users: Потребители
SecurityAdmin_MemberImportForm:
BtnImport: 'Внасяне от CSV'
FileFieldLabel: 'CSV файл <small>(разширение: *.csv)</small>'
SilverStripeNavigator:
Edit: 'Редакция'
Edit: Редакция
SimpleImageField:
NOUPLOAD: 'Няма качени изображения'
SiteTree:
@ -556,7 +556,7 @@ bg:
DOEDIT: Запис
DROPFILE: 'пуснете файл'
DROPFILES: 'пускане на файлове'
Dimensions: 'Размери'
Dimensions: Размери
EDIT: Edit
EDITINFO: 'Редактирай този файл'
FIELDNOTSET: 'Информация за файла не беше намерена'
@ -566,7 +566,7 @@ bg:
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Максималния брой файлове ({count}) е надхвърлен.'
MAXNUMBEROFFILESSHORT: 'Максималният брой файлове за качване е {count}'
REMOVE: 'Премахни'
REMOVE: Премахни
REMOVEERROR: 'Грешка при премахване на файл'
REMOVEINFO: 'Премахни файла без да го изтриваш'
STARTALL: 'Старт на всички'

View File

@ -293,7 +293,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'
@ -365,7 +365,7 @@ bs:
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: 'Nova šifra'
PASSWORD: 'Šifra'
PASSWORD: Šifra
PLURALNAME: Members
REMEMBERME: 'Zapamti me slijedeći put'
SINGULARNAME: Member
@ -527,7 +527,7 @@ bs:
ADDITEM: 'Add %s'
TableListField:
CSVEXPORT: 'Izvezi u CSV'
PRINT: 'Štampaj'
PRINT: Štampaj
Print: Print
SELECT: 'Select:'
TableListField.ss:

View File

@ -304,7 +304,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'

View File

@ -293,7 +293,7 @@ cs:
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
IMAGETITLETEXT: 'Titulek textu (tooltip)'
IMAGETITLETEXTDESC: 'Pro další informace o obrázku'
IMAGEWIDTHPX: 'Šířka'
IMAGEWIDTHPX: Šířka
INSERTMEDIA: 'Vložit média'
LINK: 'Vložit nebo upravit odkaz'
LINKANCHOR: 'Záložka (kotva) na stránce'

View File

@ -69,7 +69,7 @@ el:
ACCESS: 'Access to ''{title}'' section'
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: 'Αποθήκευση'
SAVE: Αποθήκευση
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:

View File

@ -81,6 +81,18 @@ en:
CheckboxField:
NO: No
YES: Yes
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
SUCCESSEDIT: 'Saved %s %s %s'
ComplexTableField.ss:
ADDITEM: 'Add %s'
NOITEMSFOUND: 'No items found'
SORTASC: 'Sort ascending'
SORTDESC: 'Sort descending'
ComplexTableField_popup.ss:
NEXT: Next
PREVIOUS: Previous
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'
@ -163,7 +175,18 @@ en:
XlsType: 'Excel spreadsheet'
ZipType: 'ZIP compressed file'
FileIFrameField:
ATTACH: 'Attach {type}'
ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.'
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
FILE: File
FROMCOMPUTER: 'From your Computer'
FROMFILESTORE: 'From the File Store'
NOSOURCE: 'Please select a source file to attach'
REPLACE: 'Replace {type}'
FileIFrameField_iframe.ss:
TITLE: 'Image Uploading Iframe'
Filesystem:
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
Folder:
@ -289,6 +312,8 @@ en:
Image:
PLURALNAME: Files
SINGULARNAME: File
ImageField:
IMAGE: Image
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
@ -451,6 +476,10 @@ en:
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: 'Please enter a valid phone number'
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: 'You don''t have access to this page. If you have another account that can access that page, you can log in again below.'
BUTTONSEND: 'Send me the password reset link'
@ -488,13 +517,32 @@ en:
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
TABMAIN: Main
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
TableField.ss:
ADD: 'Add a new row'
ADDITEM: 'Add %s'
TableListField:
CSVEXPORT: 'Export to CSV'
PRINT: Print
Print: Print
SELECT: 'Select:'
TableListField.ss:
NOITEMSFOUND: 'No items found'
SORTASC: 'Sort in ascending order'
SORTDESC: 'Sort in descending order'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
TO: to
VIEWFIRST: 'View first'
VIEWLAST: 'View last'
VIEWNEXT: 'View next'
VIEWPREVIOUS: 'View previous'
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
ToggleField:

View File

@ -210,7 +210,7 @@ et_EE:
FormField:
NONE: puudub
GridAction:
DELETE_DESCRIPTION: Delete
DELETE_DESCRIPTION: Kustuta
Delete: Delete
UnlinkRelation: Unlink
GridField:
@ -334,7 +334,7 @@ et_EE:
VersionUnknown: unknown
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
LOGOUT: 'Logi välja'
LoginAttempt:
Email: 'E-posti aadress'
IP: 'IP Aadress'
@ -515,7 +515,7 @@ et_EE:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
Edit: Muuda
SimpleImageField:
NOUPLOAD: 'Pilte pole üles laaditud'
SiteTree:

View File

@ -9,7 +9,7 @@ fa_IR:
FOLDER: Folder
LASTEDIT: 'آخرین تغییرات'
OWNER: دارنده
SIZE: 'حجم'
SIZE: حجم
TITLE: عنوان
TYPE: نوع
URL: نشانی
@ -75,7 +75,7 @@ fa_IR:
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'شما گذرواژه تان را دگرگون کردید برای'
CHANGEPASSWORDTEXT2: 'You can now use the following credentials to log in:'
EMAIL: 'ايميل'
EMAIL: ايميل
HELLO: درود
PASSWORD: 'كلمه عبور'
CheckboxField:
@ -100,9 +100,9 @@ fa_IR:
SHOWONCLICKTITLE: 'تغيير كلمه عبور'
CreditCardField:
FIRST: نخست
FOURTH: 'چهارم'
SECOND: 'دوم'
THIRD: 'سوم'
FOURTH: چهارم
SECOND: دوم
THIRD: سوم
CurrencyField:
CURRENCYSYMBOL: $
DataObject:
@ -115,7 +115,7 @@ fa_IR:
HOURS: ساعت
MIN: دقیقه
MINS: دقیقه
MONTH: 'ماه'
MONTH: ماه
MONTHS: 'ماه ها'
SEC: ثانیه
SECS: ثانیه
@ -125,7 +125,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})'
@ -144,7 +144,7 @@ fa_IR:
ANY: Any
File:
AviType: 'AVI video file'
Content: 'محتوا'
Content: محتوا
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -162,7 +162,7 @@ fa_IR:
MpgType: 'MPEG video file'
NOFILESIZE: 'Filesize is zero bytes.'
NOVALIDUPLOAD: 'File is not a valid upload'
Name: 'نام'
Name: نام
PLURALNAME: 'فايل ها'
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
@ -253,7 +253,7 @@ fa_IR:
RolesAddEditLink: 'اضافه/ویرایش وظیفه'
SINGULARNAME: Group
Sort: 'تربیت چیدن'
has_many_Permissions: 'مجوز‌ها'
has_many_Permissions: مجوز‌ها
many_many_Members: اعضاء
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
@ -322,7 +322,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: 'من متاسفم، شما نمی توانید به آن قسمت از سیستم مدیریت محتوا دسترسی پیدا کنید. اگر میخواهید به عنوان شخص دیگری وارد شوید از قسمت زیر تلاش کنید'
@ -360,7 +360,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}.'

View File

@ -537,7 +537,7 @@ fr:
TableListField_PageControls.ss:
DISPLAYING: 'Affichage de'
OF: de
TO: 'à'
TO: à
VIEWFIRST: 'Voir premier'
VIEWLAST: 'Voir dernier'
VIEWNEXT: 'Voir suivant'

View File

@ -117,12 +117,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
@ -272,7 +272,7 @@ he_IL:
BUTTONREMOVELINK: 'הסר קישור'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
CSSCLASS: 'יישור/סגנון'
CSSCLASS: יישור/סגנון
CSSCLASSCENTER: 'ממורכז, ללא טקסט בצדדים.'
CSSCLASSLEFT: 'לשמאל, עם טקסט מסודר מסביב.'
CSSCLASSLEFTALONE: 'On the left, on its own.'

576
lang/hi.yml Normal file
View File

@ -0,0 +1,576 @@
hi:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: NewFolder
AssetTableField:
CREATED: 'First uploaded'
DIM: Dimensions
FILENAME: Filename
FOLDER: Folder
LASTEDIT: 'Last changed'
OWNER: Owner
SIZE: 'File size'
TITLE: Title
TYPE: 'File type'
URL: URL
AssetUploadField:
ChooseFiles: 'Choose files'
DRAGFILESHERE: 'Drag files here'
DROPAREA: 'Drop Area'
EDITALL: 'Edit all'
EDITANDORGANIZE: 'Edit & organize'
EDITINFO: 'Edit files'
FILES: Files
FROMCOMPUTER: 'Choose files from your computer'
FROMCOMPUTERINFO: 'Upload from your computer'
TOTAL: Total
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: 'Please wait… upload in progress'
UPLOADOR: OR
BBCodeParser:
ALIGNEMENT: Alignment
ALIGNEMENTEXAMPLE: 'right aligned'
BOLD: 'Bold Text'
BOLDEXAMPLE: Bold
CODE: 'Code Block'
CODEDESCRIPTION: 'Unformatted code block'
CODEEXAMPLE: 'Code block'
COLORED: 'Colored text'
COLOREDEXAMPLE: 'blue text'
EMAILLINK: 'Email link'
EMAILLINKDESCRIPTION: 'Create link to an email address'
IMAGE: Image
IMAGEDESCRIPTION: 'Show an image in your post'
ITALIC: 'Italic Text'
ITALICEXAMPLE: Italics
LINK: 'Website link'
LINKDESCRIPTION: 'Link to another website or URL'
STRUCK: 'Struck-out Text'
STRUCKEXAMPLE: Struck-out
UNDERLINE: 'Underlined Text'
UNDERLINEEXAMPLE: Underlined
UNORDERED: 'Unordered list'
UNORDEREDDESCRIPTION: 'Unordered list'
UNORDEREDEXAMPLE1: 'unordered item 1'
BackLink_Button.ss:
Back: Back
BasicAuth:
ENTERINFO: 'Please enter a username and password.'
ERRORNOTADMIN: 'That user is not an administrator.'
ERRORNOTREC: 'That username / password isn''t recognised'
Boolean:
0: 'False'
ANY: Any
1: 'True'
CMSLoadingScreen.ss:
LOADING: Loading...
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
CMSMain:
ACCESS: 'Access to ''{title}'' section'
ACCESSALLINTERFACES: 'Access to all CMS sections'
ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.'
SAVE: Save
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'You changed your password for'
CHANGEPASSWORDTEXT2: 'You can now use the following credentials to log in:'
EMAIL: Email
HELLO: Hi
PASSWORD: Password
CheckboxField:
- 'False'
- 'True'
ComplexTableField:
CLOSEPOPUP: 'Close Popup'
SUCCESSADD2: 'Added {name}'
SUCCESSEDIT: 'Saved %s %s %s'
ComplexTableField.ss:
ADDITEM: 'Add %s'
NOITEMSFOUND: 'No items found'
SORTASC: 'Sort ascending'
SORTDESC: 'Sort descending'
ComplexTableField_popup.ss:
NEXT: Next
PREVIOUS: Previous
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.'
SHOWONCLICKTITLE: 'Change Password'
CreditCardField:
FIRST: first
FOURTH: fourth
SECOND: second
THIRD: third
CurrencyField:
CURRENCYSYMBOL: $
DataObject:
PLURALNAME: 'Data Objects'
SINGULARNAME: 'Data Object'
Date:
DAY: ' day'
DAYS: ' days'
HOUR: ' hour'
HOURS: ' hours'
MIN: ' min'
MINS: ' mins'
MONTH: ' month'
MONTHS: ' months'
SEC: ' sec'
SECS: ' secs'
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: ' year'
YEARS: ' years'
DateField:
NOTSET: 'not set'
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})'
DatetimeField:
NOTSET: 'Not set'
Director:
INVALID_REQUEST: 'Invalid request'
DropdownField:
CHOOSE: (Choose)
EmailField:
VALIDATION: 'Please enter an email address'
Email_BounceRecord:
PLURALNAME: 'Email Bounce Records'
SINGULARNAME: 'Email Bounce Record'
Enum:
ANY: Any
File:
AviType: 'AVI video file'
Content: Content
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
Filename: Filename
GifType: 'GIF image - good for diagrams'
GzType: 'GZIP compressed file'
HtlType: 'HTML file'
HtmlType: 'HTML file'
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
IcoType: 'Icon image'
JpgType: 'JPEG image - good for photos'
JsType: 'Javascript file'
Mp3Type: 'MP3 audio file'
MpgType: 'MPEG video file'
NOFILESIZE: 'Filesize is zero bytes.'
NOVALIDUPLOAD: 'File is not a valid upload'
Name: Name
PLURALNAME: Files
PdfType: 'Adobe Acrobat PDF file'
PngType: 'PNG image - good general-purpose format'
SINGULARNAME: File
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TiffType: 'Tagged image format'
Title: Title
WavType: 'WAV audo file'
XlsType: 'Excel spreadsheet'
ZipType: 'ZIP compressed file'
FileIFrameField:
ATTACH: 'Attach {type}'
ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.'
ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.'
DELETE: 'Delete {type}'
DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded'
FILE: File
FROMCOMPUTER: 'From your Computer'
FROMFILESTORE: 'From the File Store'
NOSOURCE: 'Please select a source file to attach'
REPLACE: 'Replace {type}'
FileIFrameField_iframe.ss:
TITLE: 'Image Uploading Iframe'
Filesystem:
SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted'
Folder:
PLURALNAME: Folders
SINGULARNAME: Folder
ForgotPasswordEmail.ss:
HELLO: Hi
TEXT1: 'Here is your'
TEXT2: 'password reset link'
TEXT3: for
Form:
FIELDISREQUIRED: '%s is required'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: 'The value entered is not unique'
VALIDATIONPASSWORDSDONTMATCH: 'Passwords don''t match'
VALIDATIONPASSWORDSNOTEMPTY: 'Passwords can''t be empty'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
FormField:
NONE: none
GridAction:
DELETE_DESCRIPTION: Delete
Delete: Delete
UnlinkRelation: Unlink
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
GridFieldAction_Delete:
DeletePermissionsFailure: 'No delete permissions'
GridFieldDetailForm:
CancelBtn: Cancel
Create: Create
Delete: Delete
DeletePermissionsFailure: 'No delete permissions'
Deleted: 'Deleted %s %s'
Save: Save
Saved: 'Saved %s %s'
GridFieldItemEditView.ss: null
Group:
AddRole: 'इस समूह के लिए एक भूमिका जोड़ें'
Code: 'समूह कोड'
DefaultGroupTitleAdministrators: प्रबंधक
DefaultGroupTitleContentAuthors: 'सामग्री लेखक'
Description: विवरण
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
Locked: 'बंद?'
NoRoles: 'कोई भी भूमिका नहीं खोजी जा सकी '
PLURALNAME: Groups
Parent: 'अभिभावक समूह'
RolesAddEditLink: 'भूमिकाओं का प्रबंधन करे '
SINGULARNAME: Group
Sort: 'Sort Order'
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>'
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'
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
HtmlEditorField:
ADDURL: 'Add URL'
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: Anchor
BUTTONINSERT: Insert
BUTTONINSERTLINK: 'Insert link'
BUTTONREMOVELINK: 'Remove link'
BUTTONUpdate: Update
CAPTIONTEXT: 'Caption text'
CSSCLASS: 'Alignment / style'
CSSCLASSCENTER: 'Centered, on its own.'
CSSCLASSLEFT: 'On the left, with text wrapping around.'
CSSCLASSLEFTALONE: 'On the left, on its own.'
CSSCLASSRIGHT: 'On the right, with text wrapping around.'
DETAILS: Details
EMAIL: 'Email address'
FILE: File
FOLDER: Folder
FROMCMS: 'From the CMS'
FROMCOMPUTER: 'From your computer'
FROMWEB: 'From the web'
FindInFolder: 'Find in Folder'
IMAGEALT: 'Alternative text (alt)'
IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEDIMENSIONS: Dimensions
IMAGEHEIGHTPX: Height
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: Width
INSERTMEDIA: 'Insert Media'
LINK: 'Insert Link'
LINKANCHOR: 'Anchor on this page'
LINKDESCR: 'Link description'
LINKEMAIL: 'Email address'
LINKEXTERNAL: 'Another website'
LINKFILE: 'Download a file'
LINKINTERNAL: 'Page on the site'
LINKOPENNEWWIN: 'Open link in a new window?'
LINKTO: 'Link to'
PAGE: Page
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
Image:
PLURALNAME: Files
SINGULARNAME: File
ImageField:
IMAGE: Image
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
Image_iframe.ss:
TITLE: 'Image Uploading Iframe'
LeftAndMain:
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
LeftAndMain_Menu.ss:
Hello: Hi
LOGOUT: 'Log out'
LoginAttempt:
Email: 'Email Address'
IP: 'IP Address'
PLURALNAME: 'Login Attempts'
SINGULARNAME: 'Login Attempt'
Status: Status
Member:
ADDGROUP: 'Add group'
BUTTONCHANGEPASSWORD: 'Change Password'
BUTTONLOGIN: 'Log in'
BUTTONLOGINOTHER: 'Log in as someone else'
BUTTONLOSTPASSWORD: 'I''ve lost my password'
CANTEDIT: 'You don''t have permission to do that'
CONFIRMNEWPASSWORD: 'Confirm New Password'
CONFIRMPASSWORD: 'Confirm Password'
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 'Default Admin'
DefaultDateTime: default
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.'
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'
INTERFACELANG: 'Interface Language'
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: 'New Password'
PASSWORD: Password
PLURALNAME: Members
REMEMBERME: 'Remember me next time?'
SINGULARNAME: Member
SUBJECTPASSWORDCHANGED: 'Your password has been changed'
SUBJECTPASSWORDRESET: 'Your password reset link'
SURNAME: Surname
TIMEFORMAT: 'Time format'
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'
belongs_many_many_Groups: Groups
db_LastVisited: 'Last Visited Date'
db_Locale: 'Interface Locale'
db_LockedOutUntil: 'Locked out until'
db_NumVisit: 'Number of Visits'
db_Password: Password
db_PasswordExpiry: 'Password Expiry Date'
MemberAuthenticator:
TITLE: 'E-mail &amp; Password'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
'APPLY FILTER': 'Apply Filter'
Custom: Custom
DATEFORMATBAD: 'Date format is invalid'
DAYNOLEADING: 'Day of month without leading zero'
DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second'
FOURDIGITYEAR: 'Four-digit year'
FULLNAMEMONTH: 'Full name of month (e.g. June)'
HOURNOLEADING: 'Hour without leading zero'
MINUTENOLEADING: 'Minute without leading zero'
MONTHNOLEADING: 'Month digit without leading zero'
Preview: Preview
SHORTMONTH: 'Short name of month (e.g. Jun)'
TOGGLEHELP: 'Toggle formatting help'
TWODIGITDAY: 'Two-digit day of month'
TWODIGITHOUR: 'Two digits of hour (00 through 23)'
TWODIGITMINUTE: 'Two digits of minute (00 through 59)'
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITYEAR: 'Two-digit year'
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'
MemberPassword:
PLURALNAME: 'Member Passwords'
SINGULARNAME: 'Member Password'
MemberTableField: null
ModelAdmin:
DELETE: Delete
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
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.'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: 'Database columns'
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: Relations
IMPORTSPECTITLE: 'Specification for %s'
ModelAdmin_Tools.ss:
FILTER: Filter
IMPORT: Import
ModelSidebar.ss:
IMPORT_TAB_HEADER: Import
SEARCHLISTINGS: Search
MoneyField:
FIELDLABELAMOUNT: Amount
FIELDLABELCURRENCY: Currency
NullableField:
IsNullLabel: 'Is Null'
NumericField:
VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field'
Pagination:
Page: Page
View: View
Permission:
AdminGroup: Administrator
CMS_ACCESS_CATEGORY: 'CMS Access'
FULLADMINRIGHTS: 'Full administrative rights'
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
PLURALNAME: Permissions
SINGULARNAME: Permission
PermissionCheckboxSetField:
AssignedTo: 'assigned to "{title}"'
FromGroup: 'inherited from group "{title}"'
FromRole: 'inherited from role "{title}"'
FromRoleOnGroup: 'inherited from role "%s" on group "%s"'
PermissionRole:
OnlyAdminCanApply: 'Only admin can apply'
PLURALNAME: Roles
SINGULARNAME: Role
Title: Title
PermissionRoleCode:
PLURALNAME: 'Permission Role Cods'
SINGULARNAME: 'Permission Role Code'
Permissions:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: 'Please enter a valid phone number'
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: 'You don''t have access to this page. If you have another account that can access that page, you can log in again below.'
BUTTONSEND: 'Send me the password reset link'
CHANGEPASSWORDBELOW: 'You can change your password below.'
CHANGEPASSWORDHEADER: 'Change your password'
ENTERNEWPASSWORD: 'Please enter a new password.'
ERRORPASSWORDPERMISSION: 'You must be logged in in order to change your password!'
LOGGEDOUT: 'You have been logged out. If you would like to log in again, enter your credentials below.'
LOGIN: 'Log in'
NOTEPAGESECURED: 'That page is secured. Enter your credentials below and we will send you right along.'
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: 'Enter your e-mail address and we will send you a link with which you can reset your password'
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.'
APPLY_ROLES: 'Apply roles to groups'
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
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
MENUTITLE: Security
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
NEWGROUP: 'New Group'
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
SecurityAdmin_MemberImportForm:
BtnImport: 'Import from CSV'
FileFieldLabel: 'CSV File <small>(Allowed extensions: *.csv)</small>'
SilverStripeNavigator:
Edit: Edit
SimpleImageField:
NOUPLOAD: 'No Image Uploaded'
SiteTree:
TABMAIN: Main
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
TableField.ss:
ADD: 'Add a new row'
ADDITEM: 'Add %s'
TableListField:
CSVEXPORT: 'Export to CSV'
PRINT: Print
Print: Print
SELECT: 'Select:'
TableListField.ss:
NOITEMSFOUND: 'No items found'
SORTASC: 'Sort in ascending order'
SORTDESC: 'Sort in descending order'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
TO: to
VIEWFIRST: 'View first'
VIEWLAST: 'View last'
VIEWNEXT: 'View next'
VIEWPREVIOUS: 'View previous'
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
ToggleField:
LESS: less
MORE: more
UploadField:
ATTACHFILE: 'Attach a file'
ATTACHFILES: 'Attach files'
AttachFile: 'Attach file(s)'
DELETE: 'Delete from files'
DELETEINFO: 'Permanently delete this file from the file store'
DOEDIT: Save
DROPFILE: 'drop a file'
DROPFILES: 'drop files'
Dimensions: Dimensions
EDIT: Edit
EDITINFO: 'Edit this file'
FIELDNOTSET: 'File information not found'
FROMCOMPUTER: 'From your computer'
FROMCOMPUTERINFO: 'Select from files'
FROMFILES: 'From files'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
REMOVE: Remove
REMOVEERROR: 'Error removing file'
REMOVEINFO: 'Remove this file from here, but do not delete it from the file store'
STARTALL: 'Start all'
STARTALLINFO: 'Start all uploads'
Saved: Saved
Versioned:
has_many_Versions: Versions

View File

@ -293,7 +293,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'

View File

@ -8,7 +8,7 @@ ja_JP:
FILENAME: ファイル名
FOLDER: フォルダ
LASTEDIT: 最終更新日
OWNER: '所有者'
OWNER: 所有者
SIZE: ファイルサイズ
TITLE: タイトル
TYPE: ファイルの種類
@ -16,7 +16,7 @@ ja_JP:
AssetUploadField:
ChooseFiles: ファイルを選択
DRAGFILESHERE: ここにファイルをドラッグ
DROPAREA: 'ドロップ領域'
DROPAREA: ドロップ領域
EDITALL: すべて編集
EDITANDORGANIZE: 編集と管理
EDITINFO: ファイルを編集
@ -25,7 +25,7 @@ ja_JP:
FROMCOMPUTERINFO: コンピュータからアップロード
TOTAL: 合計
TOUPLOAD: 'Choose files to upload...'
UPLOADINPROGRESS: 'しばらくお待ちください...アップロードは進行中です'
UPLOADINPROGRESS: しばらくお待ちください...アップロードは進行中です
UPLOADOR: もしくは
BBCodeParser:
ALIGNEMENT: 整列
@ -44,7 +44,7 @@ ja_JP:
ITALIC: テキストを斜体にする
ITALICEXAMPLE: 斜体
LINK: ウェブサイトのリンク
LINKDESCRIPTION: '別のウェブサイトかURLにリンクしてください'
LINKDESCRIPTION: 別のウェブサイトかURLにリンクしてください
STRUCK: テキストに取り消し線を引く
STRUCKEXAMPLE: 取り消し線
UNDERLINE: テキストに下線を引く
@ -55,8 +55,8 @@ ja_JP:
BackLink_Button.ss:
Back: 戻る
BasicAuth:
ENTERINFO: 'ユーザー名とパスワードを入力してください'
ERRORNOTADMIN: 'このユーザーは管理者(アドミニストレーター)ではありません'
ENTERINFO: ユーザー名とパスワードを入力してください
ERRORNOTADMIN: このユーザーは管理者(アドミニストレーター)ではありません
ERRORNOTREC: 'ユーザー名 / パスワードは認識されませんでした'
Boolean:
0:
@ -64,7 +64,7 @@ ja_JP:
1:
CMSLoadingScreen.ss:
LOADING: 読み込み中...
REQUIREJS: 'CMSを利用するにはJavascriptが有効化されている必要があります。'
REQUIREJS: CMSを利用するにはJavascriptが有効化されている必要があります。
CMSMain:
ACCESS: 'Access to ''{title}'' section'
ACCESSALLINTERFACES: すべてのCMSのセクションへアクセス
@ -87,9 +87,9 @@ ja_JP:
SUCCESSEDIT: '更新日時 %s %s %s'
ComplexTableField.ss:
ADDITEM: '%sを追加する'
NOITEMSFOUND: '項目が見つかりませんでした'
SORTASC: '昇順'
SORTDESC: 'ソート(下順)'
NOITEMSFOUND: 項目が見つかりませんでした
SORTASC: 昇順
SORTDESC: ソート(下順)
ComplexTableField_popup.ss:
NEXT: 次へ
PREVIOUS: 前へ
@ -136,7 +136,7 @@ ja_JP:
DropdownField:
CHOOSE: (選択)
EmailField:
VALIDATION: 'メールアドレスを入力してください'
VALIDATION: メールアドレスを入力してください
Email_BounceRecord:
PLURALNAME: 'Eメール 反応記録'
SINGULARNAME: 'Eメール 反応記録'
@ -144,7 +144,7 @@ ja_JP:
ANY: 何でも
File:
AviType: 'AVI video file'
Content: '内容'
Content: 内容
CssType: 'CSS file'
DmgType: 'Apple disk image'
DocType: 'Word document'
@ -201,7 +201,7 @@ ja_JP:
FIELDISREQUIRED: '%s が必要です'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: '入力された値はユニークではありません'
VALIDATIONNOTUNIQUE: 入力された値はユニークではありません
VALIDATIONPASSWORDSDONTMATCH: パスワードが一致しません
VALIDATIONPASSWORDSNOTEMPTY: パスワードが空欄です
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
@ -221,7 +221,7 @@ ja_JP:
LEVELUP: 'Level up'
LinkExisting: 'Link Existing'
NewRecord: 新しい%s
NoItemsFound: '項目が見つかりませんでした'
NoItemsFound: 項目が見つかりませんでした
PRINTEDAT: 'Printed at'
PRINTEDBY: 'Printed by'
PlaceHolder: '{type}を探す'
@ -240,19 +240,19 @@ ja_JP:
Saved: '保存済み %s %s'
GridFieldItemEditView.ss: null
Group:
AddRole: 'このグループに役割を追加する'
AddRole: このグループに役割を追加する
Code: グループコード
DefaultGroupTitleAdministrators: '管理者'
DefaultGroupTitleContentAuthors: 'コンテンツの著者'
DefaultGroupTitleAdministrators: 管理者
DefaultGroupTitleContentAuthors: コンテンツの著者
Description: 説明文
GroupReminder: '元グループを選択された場合、このグループはその役割をすべて受け継ぎます。'
GroupReminder: 元グループを選択された場合、このグループはその役割をすべて受け継ぎます。
Locked: ロックしますか?
NoRoles: 役割が見つかりませんでした
PLURALNAME: Groups
Parent: '元グループ'
Parent: 元グループ
RolesAddEditLink: 役割の管理
SINGULARNAME: Group
Sort: '並び順'
Sort: 並び順
has_many_Permissions: 承認
many_many_Members: メンバー
GroupImportForm:
@ -264,19 +264,19 @@ ja_JP:
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
HtmlEditorField:
ADDURL: 'URLを追加'
ADDURL: URLを追加
ADJUSTDETAILSDIMENSIONS: 'Details &amp; dimensions'
ANCHORVALUE: アンカー
BUTTONINSERT: '追加'
BUTTONINSERTLINK: 'リンクを追加'
BUTTONINSERT: 追加
BUTTONINSERTLINK: リンクを追加
BUTTONREMOVELINK: リンクを削除
BUTTONUpdate: 更新
CAPTIONTEXT: タイトル
CSSCLASS: '調整 / スタイル'
CSSCLASSCENTER: 中央はテキストのみ
CSSCLASSLEFT: '左側にテキストと一緒に処理してください'
CSSCLASSLEFT: 左側にテキストと一緒に処理してください
CSSCLASSLEFTALONE: 中央はテキストのみ
CSSCLASSRIGHT: '右側にテキストと一緒に処理してください'
CSSCLASSRIGHT: 右側にテキストと一緒に処理してください
DETAILS: 詳細
EMAIL: メールアドレス
FILE: ファイル
@ -284,18 +284,18 @@ ja_JP:
FROMCMS: CMSから
FROMCOMPUTER: コンピュータから
FROMWEB: Webから
FindInFolder: 'フォルダ内を探す'
FindInFolder: フォルダ内を探す
IMAGEALT: 代替テキスト(Alt)
IMAGEALTTEXT: '代替(Alt)テキスト - 画像が表示されなかった場合に表示されます'
IMAGEALTTEXTDESC: 'スクリーンリーダー利用者やイメージが表示されなかった場合に表示されます'
IMAGEALTTEXTDESC: スクリーンリーダー利用者やイメージが表示されなかった場合に表示されます
IMAGEDIMENSIONS: サイズ
IMAGEHEIGHTPX: Height
IMAGETITLE: 'タイトル(ツールチップ)テキスト - 画像に対する追加的情報'
IMAGETITLETEXT: タイトルテキスト(ツールチップ)
IMAGETITLETEXTDESC: '画像に関する追加情報'
IMAGETITLETEXTDESC: 画像に関する追加情報
IMAGEWIDTHPX: Width
INSERTMEDIA: 'メディアを追加'
LINK: 'ハイライトテキストへのリンクの挿入/削除'
INSERTMEDIA: メディアを追加
LINK: ハイライトテキストへのリンクの挿入/削除
LINKANCHOR: このページにアンカーを置く
LINKDESCR: リンクの説明
LINKEMAIL: メールアドレス
@ -324,9 +324,9 @@ ja_JP:
DropdownBatchActionsDefault: アクション
HELP: ヘルプ
PAGETYPE: 'ページの種類:'
PERMAGAIN: 'ログアウトしました。再度ログインする場合は下にユーザー名とパスワードを入力してください。'
PERMALREADY: '申し訳ございません。ご指定になられたCMSの箇所にはアクセスいただけません。別ユーザーとしてログインをされたい場合は、下記より行えます。'
PERMDEFAULT: '認証方法を選択し、CMSにアクセスするために利用する認証情報を入力してください。'
PERMAGAIN: ログアウトしました。再度ログインする場合は下にユーザー名とパスワードを入力してください。
PERMALREADY: 申し訳ございません。ご指定になられたCMSの箇所にはアクセスいただけません。別ユーザーとしてログインをされたい場合は、下記より行えます。
PERMDEFAULT: 認証方法を選択し、CMSにアクセスするために利用する認証情報を入力してください。
PLEASESAVE: '保存してください: 保存してないため更新できません。'
PreviewButton: プレビュー
REORGANISATIONSUCCESSFUL: サイトツリーの再編集に成功しました。
@ -342,7 +342,7 @@ ja_JP:
SINGULARNAME: 'Login Attempt'
Status: ステータス
Member:
ADDGROUP: 'グループを追加'
ADDGROUP: グループを追加
BUTTONCHANGEPASSWORD: パスワードの変更
BUTTONLOGIN: ログイン
BUTTONLOGINOTHER: 他の誰かとしてログイン
@ -351,15 +351,15 @@ ja_JP:
CONFIRMNEWPASSWORD: 新しいパスワードを確認します
CONFIRMPASSWORD: パスワード(確認のためもう一度)
DATEFORMAT: 'Date format'
DefaultAdminFirstname: '初期管理者'
DefaultAdminFirstname: 初期管理者
DefaultDateTime: 初期設定
EMAIL: メールアドレス
EMPTYNEWPASSWORD: 'パスワードが空です。もう一度入力して下さい。'
ENTEREMAIL: 'パスワードをリセットするためにメールアドレスを入力してください。'
ERRORLOCKEDOUT: 'あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。'
ERRORNEWPASSWORD: '入力されたパスワードが一致しません。再度お試しください'
ERRORPASSWORDNOTMATCH: '登録されているパスワードと一致しません、もう一度入力し直してください'
ERRORWRONGCRED: 'メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください'
EMPTYNEWPASSWORD: パスワードが空です。もう一度入力して下さい。
ENTEREMAIL: パスワードをリセットするためにメールアドレスを入力してください。
ERRORLOCKEDOUT: あなたのアカウントは何度もログインに失敗したため一時的に利用できなくなっています。20分後に試してください。
ERRORNEWPASSWORD: 入力されたパスワードが一致しません。再度お試しください
ERRORPASSWORDNOTMATCH: 登録されているパスワードと一致しません、もう一度入力し直してください
ERRORWRONGCRED: メールアドレスまたはパスワードが正しくありません、もう一度入力し直してください
FIRSTNAME:
INTERFACELANG: 画面言語
INVALIDNEWPASSWORD: '次のパスワードは受け付けることができません: {password}'
@ -373,7 +373,7 @@ ja_JP:
SUBJECTPASSWORDRESET: パスワード再発行
SURNAME:
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: '入力したメールアドレス(%sは、他のメンバーにすでに使用されています。'
VALIDATIONMEMBEREXISTS: 入力したメールアドレス(%sは、他のメンバーにすでに使用されています。
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: '{firstname}さん、おかえりなさい'
YOUROLDPASSWORD: 古いパスワード
@ -381,7 +381,7 @@ ja_JP:
db_LastVisited: 最終訪問日
db_Locale: インターフェースの言語地域
db_LockedOutUntil: DBロックがされています。
db_NumVisit: '訪問者数'
db_NumVisit: 訪問者数
db_Password: パスワード
db_PasswordExpiry: パスワードの有効期限
MemberAuthenticator:
@ -424,13 +424,13 @@ ja_JP:
EMPTYBEFOREIMPORT: 'Clear Database before import'
IMPORT: CSVからインポート
IMPORTEDRECORDS: '{count}レコードを取り込みました。'
NOCSVFILE: 'インポートするためのCSVファイルを参照してください'
NOCSVFILE: インポートするためのCSVファイルを参照してください
NOIMPORT: インポートするものがありません。
RESET: リセット
Title: 'Data Models'
UPDATEDRECORDS: '{count}レコードを更新しました。'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: 'データベースカラム'
IMPORTSPECFIELDS: データベースカラム
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: 関連
IMPORTSPECTITLE: 'Specification for %s'
@ -451,9 +451,9 @@ ja_JP:
Page: Page
View: View
Permission:
AdminGroup: '管理者'
AdminGroup: 管理者
CMS_ACCESS_CATEGORY: 'CMS Access'
FULLADMINRIGHTS: '完全な管理権'
FULLADMINRIGHTS: 完全な管理権
FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.'
PLURALNAME: Permissions
SINGULARNAME: Permission
@ -474,27 +474,27 @@ ja_JP:
PERMISSIONS_CATEGORY: 役割とアクセス権限
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: '電話番号を入力してください'
VALIDATION: 電話番号を入力してください
RelationComplexTableField.ss:
ADD: '追加'
ADD: 追加
CSVEXPORT: CSVへ書き出し
NOTFOUND: '項目が見つかりませんでした'
NOTFOUND: 項目が見つかりませんでした
Security:
ALREADYLOGGEDIN: 'あなたはこのページにアクセスできません。別のアカウントを持っていたら <a href="%s">再ログイン</a>を行ってください。'
BUTTONSEND: 'パスワードリセットのリンクを送信してください'
BUTTONSEND: パスワードリセットのリンクを送信してください
CHANGEPASSWORDBELOW: 以下のパスワードを変更できます
CHANGEPASSWORDHEADER: パスワードを変更しました
ENTERNEWPASSWORD: '新しいパスワードを入力してください'
ENTERNEWPASSWORD: 新しいパスワードを入力してください
ERRORPASSWORDPERMISSION: パスワードを変更する為に、ログインしなければなりません!
LOGGEDOUT: 'ログアウトしました。再度ログインする場合は証明書キーを入力してください'
LOGGEDOUT: ログアウトしました。再度ログインする場合は証明書キーを入力してください
LOGIN: ログイン
NOTEPAGESECURED: 'このページはセキュリティで保護されております証明書キーを下記に入力してください。こちらからすぐに送信します'
NOTEPAGESECURED: このページはセキュリティで保護されております証明書キーを下記に入力してください。こちらからすぐに送信します
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: 'メールアドレスを入力してください、パスワードをリセットするURLを送信致します'
NOTERESETPASSWORD: メールアドレスを入力してください、パスワードをリセットするURLを送信致します
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:
ACCESS_HELP: 'ユーザを閲覧、追加、編集すること、及び、そのユーザに対して権限や役割を割り当てることを許可'
ACCESS_HELP: ユーザを閲覧、追加、編集すること、及び、そのユーザに対して権限や役割を割り当てることを許可
APPLY_ROLES: 役割をグループへ適用
APPLY_ROLES_HELP: 'Ability to edit the roles assigned to a group. Requires the "Access to ''Users'' section" permission.'
EDITPERMISSIONS: グループの権限を編集
@ -523,7 +523,7 @@ ja_JP:
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
TableField.ss:
ADD: '新しい行を追加'
ADD: 新しい行を追加
ADDITEM: '%sを追加'
TableListField:
CSVEXPORT: CSVにエクスポート
@ -531,9 +531,9 @@ ja_JP:
Print: Print
SELECT: 選択:
TableListField.ss:
NOITEMSFOUND: '項目が見つかりませんでした'
SORTASC: '昇順で並べ替え'
SORTDESC: '降順で並べ替え'
NOITEMSFOUND: 項目が見つかりませんでした
SORTASC: 昇順で並べ替え
SORTDESC: 降順で並べ替え
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
@ -546,20 +546,20 @@ ja_JP:
VALIDATEFORMAT: '正しい時間フォーマット{{format}}を入力してください'
ToggleField:
LESS: 減少
MORE: '増加'
MORE: 増加
UploadField:
ATTACHFILE: ファイルを添付
ATTACHFILES: ファイルを添付
AttachFile: ファイルを添付
DELETE: 'Delete from files'
DELETEINFO: 'ファイルストレージから永久にこのファイルは削除されました'
DELETEINFO: ファイルストレージから永久にこのファイルは削除されました
DOEDIT: 保存
DROPFILE: ファイルをドロップ
DROPFILES: ファイルをドロップ
Dimensions: Dimensions
EDIT: 編集
EDITINFO: このファイルを編集
FIELDNOTSET: 'ファイル情報が見つかりませんでした'
FIELDNOTSET: ファイル情報が見つかりませんでした
FROMCOMPUTER: コンピュータから
FROMCOMPUTERINFO: ファイルから選択
FROMFILES: ファイルから
@ -568,7 +568,7 @@ ja_JP:
MAXNUMBEROFFILESSHORT: '{count}ファイルしかアップロードすることができません'
REMOVE: 削除
REMOVEERROR: ファイルの削除におけるエラー
REMOVEINFO: 'ここからこのファイルを削除。ただし、ファイルのストレージからこのファイルの削除はしない。'
REMOVEINFO: ここからこのファイルを削除。ただし、ファイルのストレージからこのファイルの削除はしない。
STARTALL: すべて開始
STARTALLINFO: すべてのアップロードを開始
Saved: 保存しました

View File

@ -246,10 +246,10 @@ km:
DefaultGroupTitleContentAuthors: 'Content Authors'
Description: Description
GroupReminder: 'If you choose a parent group, this group will take all it''s roles'
Locked: 'មិនអាចប្រើ'
Locked: មិនអាចប្រើ
NoRoles: 'No roles found'
PLURALNAME: Groups
Parent: 'ចំណាត់ក្រុមដើម'
Parent: ចំណាត់ក្រុមដើម
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
Sort: 'Sort Order'
@ -377,13 +377,13 @@ km:
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
YOUROLDPASSWORD: 'Your old password'
belongs_many_many_Groups: 'ចំណាត់ក្រុម'
belongs_many_many_Groups: ចំណាត់ក្រុម
db_LastVisited: 'Last Visited Date'
db_Locale: 'Interface Locale'
db_LockedOutUntil: 'ដោះចេញរហូតដល់'
db_LockedOutUntil: ដោះចេញរហូតដល់
db_NumVisit: 'Number of Visits'
db_Password: Password
db_PasswordExpiry: 'កាលបរិច្ឆេទផុតកំណត់ពាក្យសំងាត់'
db_PasswordExpiry: កាលបរិច្ឆេទផុតកំណត់ពាក្យសំងាត់
MemberAuthenticator:
TITLE: 'E-mail &amp; Password'
MemberDatetimeOptionsetField:

View File

@ -111,7 +111,7 @@ lt:
Date:
DAY: diena
DAYS: dienas
HOUR: 'valandą'
HOUR: valandą
HOURS: valandas
MIN: minutę
MINS: minutes

View File

@ -1,6 +1,6 @@
nl:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
ALLOWEDEXTS: 'Toegestane extensies'
NEWFOLDER: 'Nieuwe Map'
AssetTableField:
CREATED: 'Eerste upload'
@ -16,15 +16,15 @@ nl:
AssetUploadField:
ChooseFiles: 'Selecteer bestanden'
DRAGFILESHERE: 'Sleep bestanden hiernaar toe'
DROPAREA: 'Hierheen slepen'
DROPAREA: 'Sleep hier'
EDITALL: 'Alle bewerken'
EDITANDORGANIZE: 'Bewerk en beheer'
EDITINFO: 'Bewerk alle bestanden'
FILES: Bestanden
FROMCOMPUTER: 'Selecteer bestand op computer'
FROMCOMPUTERINFO: 'Upload from your computer'
FROMCOMPUTERINFO: 'Uploaden vanaf uw computer'
TOTAL: Totaal
TOUPLOAD: 'Choose files to upload...'
TOUPLOAD: 'Selecteer bestanden'
UPLOADINPROGRESS: 'Even geduld... bezig met uploaden'
UPLOADOR: OF
BBCodeParser:
@ -39,7 +39,7 @@ nl:
COLOREDEXAMPLE: 'blauwe tekst'
EMAILLINK: 'Email link'
EMAILLINKDESCRIPTION: 'Maak een koppeling naar een e-mailadres'
IMAGE: Foto
IMAGE: Afbeelding
IMAGEDESCRIPTION: 'Toon een afbeelding in uw bericht'
ITALIC: 'Cursieve tekst'
ITALICEXAMPLE: Cursief
@ -64,7 +64,7 @@ nl:
1: Ja
CMSLoadingScreen.ss:
LOADING: 'Bezig met laden...'
REQUIREJS: 'The CMS requires that you have JavaScript enabled.'
REQUIREJS: 'Het CMS heeft JavaScript nodig om te werken.'
CMSMain:
ACCESS: 'Toegang tot het ''{title}'' gedeelte'
ACCESSALLINTERFACES: 'Toegang tot alle CMS onderdelen'
@ -84,7 +84,7 @@ nl:
ComplexTableField:
CLOSEPOPUP: 'Sluit Popup'
SUCCESSADD2: 'Toegevoegd {name}'
SUCCESSEDIT: '%s %s %s opgeslagen'
SUCCESSEDIT: '%s %s %s Opgeslagen'
ComplexTableField.ss:
ADDITEM: 'Voeg %s toe'
NOITEMSFOUND: 'Geen items gevonden.'
@ -120,23 +120,23 @@ nl:
SEC: seconde
SECS: seconden
TIMEDIFFAGO: '{difference} geleden'
TIMEDIFFIN: 'in {difference}'
TIMEDIFFIN: '{difference} geleden'
YEAR: jaar
YEARS: jaren
DateField:
NOTSET: 'niet ingesteld'
TODAY: vandaag
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: 'Vul een geldige datumformaat in ({format})'
VALIDDATEMAXDATE: 'De datum moet nieuwer of gelijk zijn aan de minimale datum ({date})'
VALIDDATEMINDATE: 'De datum moet nieuwer of gelijk zijn aan de minimale datum ({date})'
DatetimeField:
NOTSET: 'Not set'
NOTSET: 'Niet ingesteld'
Director:
INVALID_REQUEST: 'Invalid request'
INVALID_REQUEST: 'Fout bij verwerken'
DropdownField:
CHOOSE: (Kies)
EmailField:
VALIDATION: 'Please enter an email address'
VALIDATION: 'Gelieve een email adres in te voeren.'
Email_BounceRecord:
PLURALNAME: 'Onbezorgbare emails'
SINGULARNAME: 'Onbezorgbare email'
@ -145,21 +145,21 @@ nl:
File:
AviType: 'AVI video bestand'
Content: Inhoud
CssType: 'CSS file'
CssType: 'CSS bestand'
DmgType: 'Apple disk image'
DocType: 'Word document'
Filename: 'Bestandsnaam '
GifType: 'GIF afbeelding - voor diagrammen'
GzType: 'GZIP compressed file'
GzType: 'GZIP gecomprimeerd bestand'
HtlType: 'HTML bestand'
HtmlType: 'HTML bestand'
INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})'
INVALIDEXTENSIONSHORT: 'Extension is not allowed'
INVALIDEXTENSION: 'Extensie is niet toegestaan (Toegestaan: {extensions})'
INVALIDEXTENSIONSHORT: 'Extensie is niet toegestaan'
IcoType: 'Icoon bestand'
JpgType: 'JPG afbeelding - voor foto'
JsType: 'Javascript bestand'
Mp3Type: 'MP3 audio file'
MpgType: 'MPEG video file'
Mp3Type: 'MP3 audio bestand'
MpgType: 'MPEG video bestand'
NOFILESIZE: 'Bestandsgrootte is nul bytes.'
NOVALIDUPLOAD: 'Geen geldig bestand'
Name: Naam
@ -167,11 +167,11 @@ nl:
PdfType: 'Adobe Acrobat PDF bestand'
PngType: 'PNG adbeelding - voor allerlei afbeeldingen'
SINGULARNAME: Bestand
TOOLARGE: 'Filesize is too large, maximum {size} allowed'
TOOLARGESHORT: 'Filesize exceeds {size}'
TiffType: 'Tagged image format'
TOOLARGE: 'Bestandsgrootte is te groot, maximaal {size} toegestaan'
TOOLARGESHORT: 'Bestandsgrootte is hoger dan {size}'
TiffType: 'Tagged beeldformaat'
Title: 'Titel '
WavType: 'WAV audo file'
WavType: 'WAV audio bestand'
XlsType: 'Excel document'
ZipType: 'ZIP bestand'
FileIFrameField:
@ -190,8 +190,8 @@ nl:
Filesystem:
SYNCRESULTS: 'Synchroniseren compleet: {createdcount} bestanden aangemaakt, {deletedcount} bestanden verwijderd.'
Folder:
PLURALNAME: Folders
SINGULARNAME: Folder
PLURALNAME: Mappen
SINGULARNAME: Map
ForgotPasswordEmail.ss:
HELLO: Hallo
TEXT1: 'Hier is uw'
@ -199,42 +199,42 @@ nl:
TEXT3: voor
Form:
FIELDISREQUIRED: '%s is verplicht'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
SubmitBtnLabel: Gaan
VALIDATIONCREDITNUMBER: 'Gelieve uw credit card number {number} juist in te vullen'
VALIDATIONNOTUNIQUE: 'De ingevoerde waarde is niet uniek'
VALIDATIONPASSWORDSDONTMATCH: 'Wachtwoorden komen niet overeen'
VALIDATIONPASSWORDSNOTEMPTY: 'Wachtwoorden mogen niet leeg zijn'
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATIONSTRONGPASSWORD: 'Wachtwoorden moeten bestaan uit minstens één cijfer en één alfanumeriek karakter.'
VALIDATOR: Controleur
VALIDCURRENCY: 'Please enter a valid currency'
VALIDCURRENCY: 'Vul een geldige valuta in'
FormField:
NONE: geen
GridAction:
DELETE_DESCRIPTION: Delete
DELETE_DESCRIPTION: Verwijderen
Delete: Verwijder
UnlinkRelation: Ontkoppelen
GridField:
Add: 'Add {name}'
Add: '{name} toevoegen'
Filter: Filter
FilterBy: Filteren
Find: Zoek
LEVELUP: 'Level up'
LinkExisting: 'Verwijs naar'
LEVELUP: 'Niveau omhoog'
LinkExisting: 'Bestaande link'
NewRecord: 'Nieuw %s'
NoItemsFound: 'Geen items gevonden.'
PRINTEDAT: 'Geprint om'
PRINTEDAT: 'Geprint op'
PRINTEDBY: 'Geprint door'
PlaceHolder: 'Find {type}'
PlaceHolderWithLabels: 'Find {type} by {name}'
RelationSearch: 'Relation search'
ResetFilter: Reset
PlaceHolder: 'Zoek {type}'
PlaceHolderWithLabels: 'Zoek {type} op {name}'
RelationSearch: 'Zoek relatie'
ResetFilter: Herstellen
GridFieldAction_Delete:
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
GridFieldDetailForm:
CancelBtn: Annuleren
Create: Creëren
Delete: Verwijder
DeletePermissionsFailure: 'No delete permissions'
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
Deleted: '%s %s verwijderd'
Save: Opslaan
Saved: '%s %s opgeslagen'
@ -248,13 +248,13 @@ nl:
GroupReminder: 'Als je de bovenliggende groep selecteert, neemt deze groep alle rollen over'
Locked: 'Gesloten?'
NoRoles: 'Geen rollen gevonden'
PLURALNAME: Groups
PLURALNAME: Groepen
Parent: 'Bovenliggende groep'
RolesAddEditLink: 'Toevoegen/wijzigingen rollen'
SINGULARNAME: Group
SINGULARNAME: Groep
Sort: Sorteer-richting
has_many_Permissions: Rechten
many_many_Members: Lid
many_many_Members: Leden
GroupImportForm:
Help1: '<p>Importeer en of meerdere groepen in <em>CSV</em> formaat (Kommagescheiden bestandsformaat). <small><a href="#" class="toggle-advanced">Toon geavanceerd gebruik</a></small></p>'
Help2: '<div class="advanced"> <h4>Advanced usage</h4> <ul> <li>Allowed columns: <em>%s</em></li> <li>Existing groups are matched by their unique <em>Code</em> value, and updated with any new values from the imported file</li> <li>Group hierarchies can be created by using a <em>ParentCode</em> column.</li> <li>Permission codes can be assigned by the <em>PermissionCode</em> column. Existing permission codes are not cleared.</li> </ul></div>'
@ -262,7 +262,7 @@ nl:
ResultDeleted: '%d groepen verwijderd'
ResultUpdated: '%d groepen aangepast'
Hierarchy:
InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this'
InfiniteLoopNotAllowed: 'Oneindige lus gevonden in "{type}" hiërarchie. Wijzig de niveau hoger om dit op te lossen'
HtmlEditorField:
ADDURL: 'Voeg URL toe'
ADJUSTDETAILSDIMENSIONS: 'Details $amp; afmeting'
@ -270,7 +270,7 @@ nl:
BUTTONINSERT: Invoegen
BUTTONINSERTLINK: 'Link invoegen'
BUTTONREMOVELINK: 'Link verwijderen'
BUTTONUpdate: Update
BUTTONUpdate: Bijwerken
CAPTIONTEXT: Onderschrift
CSSCLASS: 'Uitlijning / stijl'
CSSCLASSCENTER: 'Gecentreerd, op zichzelf staand.'
@ -306,20 +306,20 @@ nl:
LINKTO: 'Verwijs naar'
PAGE: Pagina
URL: URL
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
URLNOTANOEMBEDRESOURCE: '{url} kon niet worden omgezet in een media-bron.'
UpdateMEDIA: 'Update Media'
Image:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Bestanden
SINGULARNAME: Bestand
ImageField:
IMAGE: Afbeelding
Image_Cached:
PLURALNAME: Files
SINGULARNAME: File
PLURALNAME: Bestanden
SINGULARNAME: Bestand
Image_iframe.ss:
TITLE: 'Afbeelding uploaden'
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
CANT_REORGANISE: 'Je hebt geen rechten hiervoor'
DELETED: Verwijderd.
DropdownBatchActionsDefault: Acties
HELP: Help
@ -329,11 +329,11 @@ nl:
PERMDEFAULT: 'Geef uw e-mailadres en wachtwoord voor toegang tot het CMS.'
PLEASESAVE: 'Deze pagina kon niet bijgewerkt worden, omdat deze nog niet is bewaard.'
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
REORGANISATIONSUCCESSFUL: 'Menu-indeling is aangepast'
SAVEDUP: 'Succesvol opgeslagen'
VersionUnknown: onbekend
LeftAndMain_Menu.ss:
Hello: Hi
Hello: Hallo
LOGOUT: Uitloggen
LoginAttempt:
Email: 'Email adres '
@ -342,7 +342,7 @@ nl:
SINGULARNAME: 'Poging om in te loggen'
Status: Status
Member:
ADDGROUP: 'Add group'
ADDGROUP: 'Groep toevoegen'
BUTTONCHANGEPASSWORD: 'Wachtwoord veranderen'
BUTTONLOGIN: Inloggen
BUTTONLOGINOTHER: 'Als iemand anders inloggen'
@ -350,7 +350,7 @@ nl:
CANTEDIT: 'Je hebt geen rechten hiervoor'
CONFIRMNEWPASSWORD: 'Bevestig het nieuwe wachtwoord'
CONFIRMPASSWORD: 'Bevestig wachtwoord'
DATEFORMAT: 'Date format'
DATEFORMAT: 'Datum formaat'
DefaultAdminFirstname: 'Standaard Beheerder'
DefaultDateTime: Standaard
EMAIL: Email
@ -372,8 +372,8 @@ nl:
SUBJECTPASSWORDCHANGED: 'Uw wachtwoord is veranderd'
SUBJECTPASSWORDRESET: 'Link om Uw wachtwoord opnieuw aan te maken'
SURNAME: Achternaam
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: 'Er bestaat reeds een gebruiker met dit emailadres'
TIMEFORMAT: 'Tijd formaat'
VALIDATIONMEMBEREXISTS: 'Er bestaat al een lid met dit emailadres, %s'
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welkom terug {firstname}'
YOUROLDPASSWORD: 'Uw oude wachtwoord'
@ -387,25 +387,25 @@ nl:
MemberAuthenticator:
TITLE: 'Email &amp; Wachtwoord'
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
AMORPM: 'AM (Ante meridiem) of PM (Post meridiem)'
'APPLY FILTER': 'Filter toepassen'
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: 'jaar (yyyy)'
FULLNAMEMONTH: 'Full name of month (e.g. June)'
HOURNOLEADING: 'Hour without leading zero'
MINUTENOLEADING: 'Minute without leading zero'
FULLNAMEMONTH: 'Volledige naam van de maand (Bijv. Juni)'
HOURNOLEADING: 'Uur zonder voorloopnul'
MINUTENOLEADING: 'Minuut zonder voorloopnul'
MONTHNOLEADING: 'Dag van de maand zonder voorloop-nul'
Preview: Voorbeeld
SHORTMONTH: 'Short name of month (e.g. Jun)'
SHORTMONTH: 'Korte naam van de maand (Bijv. Jun)'
TOGGLEHELP: 'Hulp weergeven / verbergen'
TWODIGITDAY: 'Dag van de maand (met voorloop-nul)'
TWODIGITHOUR: 'Twee cijfer van het uur (00 tot 23)'
TWODIGITMINUTE: 'Minuten met voorloop-nul (00 tot 59)'
TWODIGITMONTH: 'Two-digit month (01=January, etc.)'
TWODIGITSECOND: 'Two digits of second (00 through 59)'
TWODIGITMONTH: 'Maand in twee cijfers (01 = januari, enz.)'
TWODIGITSECOND: 'Twee cijfer van het uur (00 tot 23)'
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>'
@ -413,27 +413,27 @@ nl:
ResultCreated: '{count} leden aangemaakt'
ResultDeleted: '%d leden verwijderd'
ResultNone: 'Geen wijzingen'
ResultUpdated: 'Updated {count} members'
ResultUpdated: '{count} leden bijgewerkt'
MemberPassword:
PLURALNAME: 'Member Passwords'
SINGULARNAME: 'Member Password'
PLURALNAME: Gebruikerswachtwoorden
SINGULARNAME: Gebruikerswachtwoord
MemberTableField: null
ModelAdmin:
DELETE: Verwijderen
DELETEDRECORDS: 'Deleted {count} records.'
DELETEDRECORDS: '{count} records verwijderd'
EMPTYBEFOREIMPORT: 'Database legen voor importeren'
IMPORT: 'Importeren vanuit CSV'
IMPORTEDRECORDS: 'Imported {count} records.'
IMPORTEDRECORDS: '{count} records geïmporteerd'
NOCSVFILE: 'Selecteer een CSV bestand op uw computer om te importeren'
NOIMPORT: 'Niks om te importeren'
RESET: Herstel
Title: 'Data Models'
UPDATEDRECORDS: 'Updated {count} records.'
Title: 'Gegevens modellen'
UPDATEDRECORDS: '{count} records bijgewerkt'
ModelAdmin_ImportSpec.ss:
IMPORTSPECFIELDS: 'Database columns'
IMPORTSPECLINK: 'Show Specification for %s'
IMPORTSPECRELATIONS: Relations
IMPORTSPECTITLE: 'Specification for %s'
IMPORTSPECFIELDS: 'Database kolommen'
IMPORTSPECLINK: 'Toon specificaties van %s'
IMPORTSPECRELATIONS: Relaties
IMPORTSPECTITLE: 'Specificaties van %s'
ModelAdmin_Tools.ss:
FILTER: Filter
IMPORT: Importeer
@ -448,28 +448,28 @@ nl:
NumericField:
VALIDATION: '''{value}'' is geen getal. Dit velt accepteert alleen getallen.'
Pagination:
Page: Page
View: View
Page: Pagina
View: Bekijk
Permission:
AdminGroup: Beheerder
CMS_ACCESS_CATEGORY: 'CMS Toegang'
FULLADMINRIGHTS: 'Volledige admin rechten'
FULLADMINRIGHTS_HELP: 'Impliceert en overstemt alle andere toegewezen rechten.'
PLURALNAME: Permissions
SINGULARNAME: Permission
PLURALNAME: Machtigingen
SINGULARNAME: Machtiging
PermissionCheckboxSetField:
AssignedTo: 'toegewezen aan "{title}"'
FromGroup: 'inherited from group "{title}"'
FromRole: 'inherited from role "{title}"'
FromRoleOnGroup: 'geërfd van rol "%s" in groep "%s"'
PermissionRole:
OnlyAdminCanApply: 'Only admin can apply'
PLURALNAME: Roles
SINGULARNAME: Role
OnlyAdminCanApply: 'Alleen admin kan doorvoeren'
PLURALNAME: Rollen
SINGULARNAME: Rol
Title: Titel
PermissionRoleCode:
PLURALNAME: 'Permission Role Cods'
SINGULARNAME: 'Permission Role Code'
PLURALNAME: 'Machtigingen rol codes'
SINGULARNAME: 'Machtigingen rol code'
Permissions:
PERMISSIONS_CATEGORY: 'Rollen en toegangsrechten'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
@ -477,7 +477,7 @@ nl:
VALIDATION: 'Voer een geldig telefoonnummer in'
RelationComplexTableField.ss:
ADD: Toevoegen
CSVEXPORT: 'Export to CSV'
CSVEXPORT: 'Exporteren naar CSV'
NOTFOUND: 'Geen items gevonden.'
Security:
ALREADYLOGGEDIN: 'Je hebt niet de juiste rechten, om deze pagina te kunnen bekijken. Als je een ander account met de juiste rechten hebt, kun je hier <a href="%s">opnieuw inloggen</a>.'
@ -489,10 +489,10 @@ nl:
LOGGEDOUT: 'U bent uitgelogd. Als U weer wilt inloggen kunt U Uw gegevens hier beneden invoeren.'
LOGIN: 'Meld aan'
NOTEPAGESECURED: 'Deze pagina is beveiligd. Voer Uw gegevens in en U wordt automatisch doorgestuurd.'
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>De link om uw wachtwoord te kunnen wijzigen is niet meer geldig.</p><p>U kunt het <a href="{link1}">opnieuw proberen</a> of uw wachtwoord aanpassen door <a href="{link2}">in te loggen</a>.</p>'
NOTERESETPASSWORD: 'Voer Uw emailadres in en we zenden U een link waarmee U Uw wachtwoord opnieuw kunt aanmaken'
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: 'Wachtwoord herstel link verzonden naar {email}'
PASSWORDSENTTEXT: 'Bedankt! Er is een link verstuurt naar {email} om uw wachtwoord te herstellen.'
SecurityAdmin:
ACCESS_HELP: 'Bevoegdheid voor bekijken, toevoegen en bewerken van leden, en toewijzen van rechten en rollen aan hen.'
APPLY_ROLES: 'Pas rollen toe aan groepen'
@ -500,7 +500,7 @@ 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: Groepen
IMPORTGROUPS: 'Importeer groepen'
IMPORTUSERS: 'Importeer gebruikers'
MEMBERS: Leden
MENUTITLE: Beveiliging
@ -521,10 +521,10 @@ nl:
SiteTree:
TABMAIN: Hoofdgedeelte
TableField:
ISREQUIRED: 'In %s ''%s'' is required'
ISREQUIRED: 'In %s ''%s'' is verplicht'
TableField.ss:
ADD: 'Nieuwe rij toevoegen'
ADDITEM: 'Add %s'
ADDITEM: '%s toevoegen'
TableListField:
CSVEXPORT: 'Exporteer naar CSV'
PRINT: Afdrukken
@ -535,42 +535,42 @@ nl:
SORTASC: 'Sorteer in oplopende volgorde'
SORTDESC: 'Sorteer in aflopende volgorde'
TableListField_PageControls.ss:
DISPLAYING: Displaying
OF: of
TO: to
DISPLAYING: Tonen
OF: van
TO: naar
VIEWFIRST: 'Bekijk eerste'
VIEWLAST: 'Bekijk laatste'
VIEWNEXT: 'Bekijk volgende'
VIEWPREVIOUS: 'Bekijk vorige'
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
VALIDATEFORMAT: 'Vul een geldige datumformaat in ({format})'
ToggleField:
LESS: minder
MORE: meer
UploadField:
ATTACHFILE: 'Voeg een bestand toe'
ATTACHFILES: 'Voeg bestanden toe'
AttachFile: 'Voeg bestanden toe'
AttachFile: 'Voeg bestand(en) toe'
DELETE: 'Volledig verwijderen'
DELETEINFO: 'Verwijder dit bestand uit bestandsopslag van de website.'
DOEDIT: Bewaar
DOEDIT: Opslaan
DROPFILE: 'Bestand hiernaar toe slepen'
DROPFILES: 'Sleep hier je bestanden'
Dimensions: Dimensions
Dimensions: Afmeting
EDIT: Bewerken
EDITINFO: 'Bewerk dit bestand'
FIELDNOTSET: 'Bestandsinformatie niet gevonden'
FROMCOMPUTER: 'Vanaf computer'
FROMCOMPUTERINFO: 'Select from files'
FROMCOMPUTERINFO: 'Kies uit bestanden'
FROMFILES: 'Bestaande bestanden'
HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.'
HOTLINKINFO: 'Info: Deze afbeelding wordt hotlinked. Zorg ervoor dat u de machtigingen van de oorspronkelijke site maker om dit te doen.'
MAXNUMBEROFFILES: 'Maximale aantal van {count} bestand(en) overschreden.'
MAXNUMBEROFFILESSHORT: 'Can only upload {count} files'
MAXNUMBEROFFILESSHORT: 'Kan alleen {count} bestanden uploaden'
REMOVE: Verwijder
REMOVEERROR: 'Fout bij verwijderen'
REMOVEINFO: 'Verwijder (ontkoppel) dit bestand, maar behoud het in bestandsopslag van de website.'
STARTALL: 'Start alles'
STARTALLINFO: 'Start all uploads'
Saved: 'Succesvol opgeslagen'
STARTALL: 'Start alle'
STARTALLINFO: 'Start alle'
Saved: Opgeslagen
Versioned:
has_many_Versions: Versies

View File

@ -91,7 +91,7 @@ pa:
SORTASC: 'Sort ascending'
SORTDESC: 'Sort descending'
ComplexTableField_popup.ss:
NEXT: 'ਅਗਲਾ'
NEXT: ਅਗਲਾ
PREVIOUS: ਪਿਛਲਾ
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'

View File

@ -1,6 +1,6 @@
pl:
AssetAdmin:
ALLOWEDEXTS: 'Allowed extensions'
ALLOWEDEXTS: 'Dopuszczalne rozszerzenia'
NEWFOLDER: NowyFolder
AssetTableField:
CREATED: 'Po raz pierwszy wgrany'
@ -71,7 +71,7 @@ pl:
ACCESSALLINTERFACESHELP: 'Nadpisuje bardziej specyficzne ustawienia dostępu.'
SAVE: Zapisz
CMSProfileController:
MENUTITLE: 'My Profile'
MENUTITLE: 'Mój profil'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 'Zmieniłeś hasło na'
CHANGEPASSWORDTEXT2: 'Teraz możesz używać następujących danych do logowania się:'
@ -115,8 +115,8 @@ 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} temu'
@ -143,14 +143,14 @@ pl:
Enum:
ANY: Jakikolwiek
File:
AviType: 'AVI video file'
AviType: 'Plik video AVI'
Content: Zawartość
CssType: 'Plik CSS'
DmgType: 'Obraz dysku Apple'
DocType: 'Dokument Worda'
Filename: 'Nazwa pliku'
GifType: 'Obrazek GIF, dobry do diagramów'
GzType: 'GZIP compressed file'
GzType: 'Plik skompresowany GZIP'
HtlType: 'Plik HTML'
HtmlType: 'Plik HTML'
INVALIDEXTENSION: 'Rozszerzenie niedozwolone (dozwolone: {extensions})'
@ -159,7 +159,7 @@ pl:
JpgType: 'Obrazek JPEG, dobry do zdjęć'
JsType: 'Plik JavaScript'
Mp3Type: 'Plik MP3'
MpgType: 'MPEG video file'
MpgType: 'Plik video MPEG'
NOFILESIZE: 'Rozmiar pliku to zero bajtów.'
NOVALIDUPLOAD: 'Plik nie został poprawnie przesłany'
Name: Nazwa
@ -171,8 +171,8 @@ pl:
TOOLARGESHORT: 'Rozmiar pliku przekracza {size}'
TiffType: 'Plik TIFF'
Title: Tytuł
WavType: 'WAV audo file'
XlsType: 'Excel spreadsheet'
WavType: 'Plik audio WAV'
XlsType: 'Arkusz kalkulacyjny Excel'
ZipType: 'Plik ZIP, skompresowany'
FileIFrameField:
ATTACH: 'Dołącz {type}'
@ -328,7 +328,7 @@ pl:
PERMALREADY: 'Niestety nie masz dostępu do tej części CMS. Jeśli chcesz zalogować się jako ktoś inny, zrób to poniżej'
PERMDEFAULT: 'Proszę wybrać metodę identyfikacji i wpisać swoje dane, aby uruchomić CMSa.'
PLEASESAVE: 'Proszę zapisać stronę. Ta strona nie mogła zostać uaktualniona, ponieważ nie została jeszcze zapisana.'
PreviewButton: 'Podgląd'
PreviewButton: Podgląd
REORGANISATIONSUCCESSFUL: 'Pomyślnie zreorganizowano drzewo serwisu.'
SAVEDUP: Zapisano.
VersionUnknown: nieznany
@ -347,7 +347,7 @@ pl:
BUTTONLOGIN: Zaloguj
BUTTONLOGINOTHER: 'Zaloguj jako ktoś inny'
BUTTONLOSTPASSWORD: 'Zgubiłem hasło'
CANTEDIT: 'You don''t have permission to do that'
CANTEDIT: 'Nie posiadasz odpowiednich uprawnień.'
CONFIRMNEWPASSWORD: 'Potwierdź nowe hasło'
CONFIRMPASSWORD: 'Potwierdź hasło'
DATEFORMAT: 'Format daty'
@ -398,7 +398,7 @@ pl:
HOURNOLEADING: 'Godzina bez wiodącego zera'
MINUTENOLEADING: 'Minuta bez wiodącego zera'
MONTHNOLEADING: 'Miesiąc bez wiodącego zera'
Preview: 'Podgląd'
Preview: Podgląd
SHORTMONTH: 'Skrócona nazwa miesiąca (np. Cze)'
TOGGLEHELP: 'Przełącz pomoc formatowania'
TWODIGITDAY: 'Dwucyfrowy dzień miesiąca'
@ -421,7 +421,7 @@ pl:
ModelAdmin:
DELETE: Usuń
DELETEDRECORDS: 'Usunięto rekordów: {count}'
EMPTYBEFOREIMPORT: 'Clear Database before import'
EMPTYBEFOREIMPORT: 'Wyczyść bazę danych przed importowaniem'
IMPORT: 'Import z CSV'
IMPORTEDRECORDS: 'Zaimportowano rekordów: {count}'
NOCSVFILE: 'Wybierz plik CSV do zaimportowania'

View File

@ -4,12 +4,12 @@ ru:
NEWFOLDER: 'Новая папка'
AssetTableField:
CREATED: 'Первая загрузка'
DIM: 'Размеры'
DIM: Размеры
FILENAME: 'Имя файла'
FOLDER: Папка
LASTEDIT: 'Последнее изменение'
OWNER: Владелец
SIZE: 'Размер'
SIZE: Размер
TITLE: Название
TYPE: Тип
URL: URL
@ -69,7 +69,7 @@ ru:
ACCESS: 'Доступ к разделу ''{title}'''
ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS'
ACCESSALLINTERFACESHELP: 'Отменяет индивидуальные настройки прав доступа.'
SAVE: 'Сохранить'
SAVE: Сохранить
CMSProfileController:
MENUTITLE: 'Мой профиль'
ChangePasswordEmail.ss:
@ -236,7 +236,7 @@ ru:
Delete: Удалить
DeletePermissionsFailure: 'Нет прав на удаление'
Deleted: 'Удалено %s %s'
Save: 'Сохранить'
Save: Сохранить
Saved: 'Сохранено %s %s'
GridFieldItemEditView.ss: null
Group:
@ -288,7 +288,7 @@ ru:
IMAGEALT: 'Альтернативный текст (alt)'
IMAGEALTTEXT: 'Альтернативный текст (alt) - показывается, если изображение недоступно'
IMAGEALTTEXTDESC: 'Передается программе чтения экрана или отображается, если изображение недоступно'
IMAGEDIMENSIONS: 'Размеры'
IMAGEDIMENSIONS: Размеры
IMAGEHEIGHTPX: Высота
IMAGETITLE: 'Текст (всплывающая подсказка) - для дополнительной информации об изображении'
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
@ -330,11 +330,11 @@ ru:
PLEASESAVE: 'Пожалуйста, сохраните страницу: ее нельзя обновить, т.к. она еще не была сохранена.'
PreviewButton: Просмотр
REORGANISATIONSUCCESSFUL: 'Древесная структура сайта успешно реорганизована.'
SAVEDUP: 'Сохранено.'
SAVEDUP: Сохранено.
VersionUnknown: неизвестно
LeftAndMain_Menu.ss:
Hello: Здравствуйте
LOGOUT: 'Выход'
LOGOUT: Выход
LoginAttempt:
Email: Email
IP: IP-адрес
@ -464,8 +464,8 @@ ru:
FromRoleOnGroup: 'перенято из роли "%s" для группы "%s"'
PermissionRole:
OnlyAdminCanApply: 'Может применяться только администратором'
PLURALNAME: 'Роли'
SINGULARNAME: 'Роль'
PLURALNAME: Роли
SINGULARNAME: Роль
Title: Название
PermissionRoleCode:
PLURALNAME: 'Коды ролей доступа'
@ -487,7 +487,7 @@ ru:
ENTERNEWPASSWORD: 'Пожалуйста, введите новый пароль.'
ERRORPASSWORDPERMISSION: 'Вы должны войти в систему, чтобы изменить Ваш пароль!'
LOGGEDOUT: 'Вы вышли. Если Вы хотите войти снова, введите ваши учетные данные ниже.'
LOGIN: 'Вход'
LOGIN: Вход
NOTEPAGESECURED: 'Эта страница защищена. Пожалуйста, введите свои учетные данные для входа.'
NOTERESETLINKINVALID: '<p>Неверная ссылка переустановки пароля или время действия ссылки истекло.</p><p>Вы можете повторно запросить ссылку, щелкнув <a href="{link1}">здесь</a>, или поменять пароль, <a href="{link2}">войдя в систему</a>.</p> '
NOTERESETPASSWORD: 'Введите Ваш адрес email, и Вам будет отправлена ссылка, по которой Вы сможете переустановить свой пароль'
@ -507,15 +507,15 @@ ru:
MemberListCaution: 'Внимание: при удалении участников из этого списка они будут удалены из всех групп и из базы данных '
NEWGROUP: 'Новая группа'
PERMISSIONS: 'Права доступа'
ROLES: 'Роли'
ROLES: Роли
ROLESDESCRIPTION: 'Роли представляют собой сочетания различных прав доступа, которые могут быть присвоены группам.<br />При необходимости они наследуются от групп более высокого уровня.'
TABROLES: 'Роли'
TABROLES: Роли
Users: Пользователи
SecurityAdmin_MemberImportForm:
BtnImport: 'Импорт из CSV'
FileFieldLabel: 'Файл CSV <small>(Допустимые расширения: *.csv)</small>'
SilverStripeNavigator:
Edit: 'Редактировать'
Edit: Редактировать
SimpleImageField:
NOUPLOAD: 'Не загружено ни одного изображения'
SiteTree:
@ -553,11 +553,11 @@ ru:
AttachFile: 'Прикрепить файл(ы)'
DELETE: 'Удалить из файлов'
DELETEINFO: 'Окончательно удалить этот файл с сервера'
DOEDIT: 'Сохранить'
DOEDIT: Сохранить
DROPFILE: 'перетащите файл сюда'
DROPFILES: 'перетащить файлы'
Dimensions: 'Размеры'
EDIT: 'Редактировать'
Dimensions: Размеры
EDIT: Редактировать
EDITINFO: 'Редактировать этот файл'
FIELDNOTSET: 'Информация о файле не найдена'
FROMCOMPUTER: 'С диска'
@ -571,6 +571,6 @@ ru:
REMOVEINFO: 'Удалить файл отсюда, но не удалять с сервера'
STARTALL: 'Стартовать все'
STARTALLINFO: 'Стартовать все загрузки'
Saved: 'Сохранено'
Saved: Сохранено
Versioned:
has_many_Versions: Версии

View File

@ -99,7 +99,7 @@ si:
MAXIMUM: 'Passwords must be at most {max} characters long.'
SHOWONCLICKTITLE: 'මුර පදය වෙනස් කිරීම'
CreditCardField:
FIRST: 'පළමු'
FIRST: පළමු
FOURTH: fourth
SECOND: දෙවන
THIRD: third
@ -121,8 +121,8 @@ si:
SECS: 'තත්පර '
TIMEDIFFAGO: '{difference} ago'
TIMEDIFFIN: 'in {difference}'
YEAR: 'අවුරුද්ද'
YEARS: 'අවුරුදු'
YEAR: අවුරුද්ද
YEARS: අවුරුදු
DateField:
NOTSET: 'not set'
TODAY: today
@ -253,7 +253,7 @@ si:
RolesAddEditLink: 'Manage roles'
SINGULARNAME: Group
Sort: 'Sort Order'
has_many_Permissions: 'අවසර'
has_many_Permissions: අවසර
many_many_Members: සාමාජිකයින්
GroupImportForm:
Help1: '<p>Import one or more groups in <em>CSV</em> format (comma-separated values). <small><a href="#" class="toggle-advanced">Show advanced usage</a></small></p>'
@ -545,7 +545,7 @@ si:
TimeField:
VALIDATEFORMAT: 'Please enter a valid time format ({format})'
ToggleField:
LESS: 'අඩු'
LESS: අඩු
MORE: වැඩි
UploadField:
ATTACHFILE: 'Attach a file'

View File

@ -293,7 +293,7 @@ sk:
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
IMAGETITLETEXT: 'Text titulky (tooltip)'
IMAGETITLETEXTDESC: 'Pre doplňujúce informácie o obrázku'
IMAGEWIDTHPX: 'Šírka'
IMAGEWIDTHPX: Šírka
INSERTMEDIA: 'Vložiť média'
LINK: 'Vložiť/upraviť odkaz na zvýraznený text'
LINKANCHOR: 'Odkaz na tejto stranke'

View File

@ -293,7 +293,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'

View File

@ -92,7 +92,7 @@ sr:
SORTDESC: 'Сортирају у опадајућем поретку'
ComplexTableField_popup.ss:
NEXT: Следеће
PREVIOUS: 'Претходно'
PREVIOUS: Претходно
ConfirmedPasswordField:
ATLEAST: 'Passwords must be at least {min} characters long.'
BETWEEN: 'Passwords must be {min} to {max} characters long.'

View File

@ -321,7 +321,7 @@ sv:
LeftAndMain:
CANT_REORGANISE: 'Du har inte tillstånd att ändra sidor på toppnivå. Dina ändringar har inte sparats.'
DELETED: Raderad
DropdownBatchActionsDefault: 'Åtgärder'
DropdownBatchActionsDefault: Åtgärder
HELP: Hjälp
PAGETYPE: Sidtyp
PERMAGAIN: 'Du har blivit utloggad. Om du vill logga in igen anger du dina uppgifter nedan.'

View File

@ -39,8 +39,8 @@ th:
COLOREDEXAMPLE: 'blue text'
EMAILLINK: ลิงก์อีเมล
EMAILLINKDESCRIPTION: สร้างลิงค์ให้กับที่อยู่อีเมล์
IMAGE: 'รูปภาพ'
IMAGEDESCRIPTION: 'แสดงรูปภาพในหน้าบทความของคุณ'
IMAGE: รูปภาพ
IMAGEDESCRIPTION: แสดงรูปภาพในหน้าบทความของคุณ
ITALIC: ข้อความตัวเอียง
ITALICEXAMPLE: ตัวเอียง
LINK: ลิงก์เว็บไซต์
@ -271,7 +271,7 @@ th:
BUTTONINSERTLINK: แทรกลิงค์
BUTTONREMOVELINK: ลบลิงค์
BUTTONUpdate: อัพเดท
CAPTIONTEXT: 'ข้อความคำอธิบายใต้ภาพ'
CAPTIONTEXT: ข้อความคำอธิบายใต้ภาพ
CSSCLASS: 'การจัดวาง / รูปแบบ'
CSSCLASSCENTER: 'Centered, on its own.'
CSSCLASSLEFT: 'On the left, with text wrapping around.'
@ -312,7 +312,7 @@ th:
PLURALNAME: ไฟล์
SINGULARNAME: ไฟล์
ImageField:
IMAGE: 'รูปภาพ'
IMAGE: รูปภาพ
Image_Cached:
PLURALNAME: ไฟล์
SINGULARNAME: ไฟล์
@ -361,7 +361,7 @@ th:
ERRORPASSWORDNOTMATCH: 'รหัสผ่านไม่ตรงกัน กรุณาลองใหม่อีกครั้ง'
ERRORWRONGCRED: 'That doesn''t seem to be the right e-mail address or password. Please try again.'
FIRSTNAME: ชื่อจริง
INTERFACELANG: 'ภาษาสำหรับหน้าจอติดต่อผู้ใช้'
INTERFACELANG: ภาษาสำหรับหน้าจอติดต่อผู้ใช้
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: รหัสผ่านใหม่
@ -379,7 +379,7 @@ th:
YOUROLDPASSWORD: รหัสผ่านเก่าของคุณ
belongs_many_many_Groups: กลุ่ม
db_LastVisited: วันที่เยี่ยมชมล่าสุด
db_Locale: 'ภาษาสำหรับส่วนอินเทอร์เฟซ'
db_Locale: ภาษาสำหรับส่วนอินเทอร์เฟซ
db_LockedOutUntil: ออกจากระบบจนกว่า
db_NumVisit: จำนวนการเข้าชม
db_Password: รหัสผ่าน
@ -503,7 +503,7 @@ th:
IMPORTGROUPS: นำเข้ากลุ่ม
IMPORTUSERS: นำเข้าผู้ใช้งาน
MEMBERS: สมาชิก
MENUTITLE: 'ความปลอดภัย'
MENUTITLE: ความปลอดภัย
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
NEWGROUP: สร้างกลุ่มใหม่
PERMISSIONS: สิทธิ์อนุญาต
@ -517,7 +517,7 @@ th:
SilverStripeNavigator:
Edit: แก้ไข
SimpleImageField:
NOUPLOAD: 'ยังไม่มีรูปภาพที่ถูกอัพโหลด'
NOUPLOAD: ยังไม่มีรูปภาพที่ถูกอัพโหลด
SiteTree:
TABMAIN: หลัก
TableField:

View File

@ -9,7 +9,7 @@ uk:
FOLDER: Folder
LASTEDIT: 'Востаннє змінено'
OWNER: Власник
SIZE: 'Розмір'
SIZE: Розмір
TITLE: Назва
TYPE: Тип
URL: URL
@ -113,8 +113,8 @@ uk:
DAYS: дні
HOUR: година
HOURS: годин
MIN: 'хв'
MINS: 'хв'
MIN: хв
MINS: хв
MONTH: місяць
MONTHS: місяці
SEC: сек
@ -288,7 +288,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)'
@ -507,9 +507,9 @@ uk:
MemberListCaution: 'Caution: Removing members from this list will remove them from all groups and the database'
NEWGROUP: 'Нова Група'
PERMISSIONS: Дозволи
ROLES: 'Ролі'
ROLES: Ролі
ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.<br />They are inherited from parent groups if required.'
TABROLES: 'Ролі'
TABROLES: Ролі
Users: Користувачі
SecurityAdmin_MemberImportForm:
BtnImport: 'Import from CSV'

View File

@ -109,8 +109,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

View File

@ -3,12 +3,12 @@ zh_CN:
ALLOWEDEXTS: 'Allowed extensions'
NEWFOLDER: 新建文件夹
AssetTableField:
CREATED: '第一次被上传'
CREATED: 第一次被上传
DIM: 尺寸
FILENAME: 文件名
FOLDER: Folder
LASTEDIT: 上一次被更改
OWNER: '拥有者'
OWNER: 拥有者
SIZE: 大小
TITLE: 文件名称
TYPE: 类型
@ -55,9 +55,9 @@ zh_CN:
BackLink_Button.ss:
Back: Back
BasicAuth:
ENTERINFO: '请输入用户名和密码'
ENTERINFO: 请输入用户名和密码
ERRORNOTADMIN: 此用户没有管理员权限。
ERRORNOTREC: '没有找到此用户名/密码'
ERRORNOTREC: 没有找到此用户名/密码
Boolean:
0: 'False'
ANY: Any
@ -73,7 +73,7 @@ zh_CN:
CMSProfileController:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: '您已更改了登陆%s的密码'
CHANGEPASSWORDTEXT1: 您已更改了登陆%s的密码
CHANGEPASSWORDTEXT2: 您现在可以用下列权限信息进行登路:
EMAIL: Email
HELLO:
@ -86,7 +86,7 @@ zh_CN:
SUCCESSADD2: 'Added {name}'
SUCCESSEDIT: 'Saved %s %s %s'
ComplexTableField.ss:
ADDITEM: '新加'
ADDITEM: 新加
NOITEMSFOUND: 'No items found'
SORTASC: 正序排列
SORTDESC: 倒序排列
@ -97,7 +97,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
@ -201,9 +201,9 @@ zh_CN:
FIELDISREQUIRED: '%s是必需填写的'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: '输入值已被他人占用'
VALIDATIONPASSWORDSDONTMATCH: '(密码相互不匹配)'
VALIDATIONPASSWORDSNOTEMPTY: '密码不能空白'
VALIDATIONNOTUNIQUE: 输入值已被他人占用
VALIDATIONPASSWORDSDONTMATCH: (密码相互不匹配)
VALIDATIONPASSWORDSNOTEMPTY: 密码不能空白
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
VALIDCURRENCY: 'Please enter a valid currency'
@ -241,7 +241,7 @@ zh_CN:
GridFieldItemEditView.ss: null
Group:
AddRole: 'Add a role for this group'
Code: '团队代码'
Code: 团队代码
DefaultGroupTitleAdministrators: Administrators
DefaultGroupTitleContentAuthors: 'Content Authors'
Description: Description
@ -268,12 +268,12 @@ zh_CN:
ADJUSTDETAILSDIMENSIONS: 'Details &amp; 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: 右端自动换行
@ -289,17 +289,17 @@ zh_CN:
IMAGEALTTEXT: 'Alternative text (alt) - shown if image cannot be displayed'
IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed'
IMAGEDIMENSIONS: 尺寸
IMAGEHEIGHTPX: '高(像素)'
IMAGEHEIGHTPX: 高(像素)
IMAGETITLE: 'Title text (tooltip) - for additional information about the image'
IMAGETITLETEXT: 'Title text (tooltip)'
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX: '宽(像素)'
IMAGEWIDTHPX: 宽(像素)
INSERTMEDIA: 'Insert Media'
LINK: '对所选文字插入/编辑链接'
LINK: 对所选文字插入/编辑链接
LINKANCHOR: 'Anchor on this page'
LINKDESCR: 链接描述
LINKEMAIL: 电子邮件地址
LINKEXTERNAL: '其它网站'
LINKEXTERNAL: 其它网站
LINKFILE: 下载文件
LINKINTERNAL: 本站网页
LINKOPENNEWWIN: 在新窗口打开链接?
@ -317,17 +317,17 @@ zh_CN:
PLURALNAME: Files
SINGULARNAME: File
Image_iframe.ss:
TITLE: '图象上传内嵌框架Iframe'
TITLE: 图象上传内嵌框架Iframe
LeftAndMain:
CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.'
DELETED: Deleted.
DropdownBatchActionsDefault: Actions
HELP: 帮助
PAGETYPE: 网页类型
PERMAGAIN: '您于CMS的登录已被注销请在下面输入用户名和密码重新登录。'
PERMALREADY: '对不起您无权登录CMS的这一部分。如果您要用另外的帐号请在下面登录。'
PERMDEFAULT: '请先选择一种验证方法并输入您的权限信息以登录CMS。'
PLEASESAVE: '请先保存:因为该网页还未保存,所以该页无法更新。'
PERMAGAIN: 您于CMS的登录已被注销请在下面输入用户名和密码重新登录。
PERMALREADY: 对不起您无权登录CMS的这一部分。如果您要用另外的帐号请在下面登录。
PERMDEFAULT: 请先选择一种验证方法并输入您的权限信息以登录CMS。
PLEASESAVE: 请先保存:因为该网页还未保存,所以该页无法更新。
PreviewButton: Preview
REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.'
SAVEDUP: Saved.
@ -343,13 +343,13 @@ zh_CN:
Status: Status
Member:
ADDGROUP: 'Add group'
BUTTONCHANGEPASSWORD: '更改密码'
BUTTONCHANGEPASSWORD: 更改密码
BUTTONLOGIN: 登录
BUTTONLOGINOTHER: '使用其他帐户登录'
BUTTONLOSTPASSWORD: '忘记密码'
BUTTONLOGINOTHER: 使用其他帐户登录
BUTTONLOSTPASSWORD: 忘记密码
CANTEDIT: 'You don''t have permission to do that'
CONFIRMNEWPASSWORD: '确认新密码'
CONFIRMPASSWORD: '确认密码'
CONFIRMNEWPASSWORD: 确认新密码
CONFIRMPASSWORD: 确认密码
DATEFORMAT: 'Date format'
DefaultAdminFirstname: 'Default Admin'
DefaultDateTime: default
@ -357,35 +357,35 @@ zh_CN:
EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again'
ENTEREMAIL: 'Please enter an email address to get a password reset link.'
ERRORLOCKEDOUT: 'Your account has been temporarily disabled because of too many failed attempts at logging in. Please try again in 20 minutes.'
ERRORNEWPASSWORD: '您输入了一个不同的新密码,请重新输入'
ERRORPASSWORDNOTMATCH: '您当前的密码不正确,请再次输入'
ERRORWRONGCRED: '电邮地址或密码似乎不对。请重新输入。'
ERRORNEWPASSWORD: 您输入了一个不同的新密码,请重新输入
ERRORPASSWORDNOTMATCH: 您当前的密码不正确,请再次输入
ERRORWRONGCRED: 电邮地址或密码似乎不对。请重新输入。
FIRSTNAME:
INTERFACELANG: 界面语言
INVALIDNEWPASSWORD: 'We couldn''t accept that password: {password}'
LOGGEDINAS: 'You''re logged in as {name}.'
NEWPASSWORD: '新密码'
PASSWORD: '密码'
NEWPASSWORD: 新密码
PASSWORD: 密码
PLURALNAME: 成员
REMEMBERME: 记住我的信息?
SINGULARNAME: 成员
SUBJECTPASSWORDCHANGED: '您的密码已更改'
SUBJECTPASSWORDRESET: '重设您的密码链接'
SUBJECTPASSWORDCHANGED: 您的密码已更改
SUBJECTPASSWORDRESET: 重设您的密码链接
SURNAME:
TIMEFORMAT: 'Time format'
VALIDATIONMEMBEREXISTS: 已经存在用这个电子邮件的会员
ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))'
WELCOMEBACK: 'Welcome Back, {firstname}'
YOUROLDPASSWORD: '您的旧密码'
YOUROLDPASSWORD: 您的旧密码
belongs_many_many_Groups: 团队
db_LastVisited: 'Last Visited Date'
db_Locale: 'Interface Locale'
db_LockedOutUntil: 禁止直至
db_NumVisit: 'Number of Visits'
db_Password: Password
db_PasswordExpiry: '密码过期日期'
db_PasswordExpiry: 密码过期日期
MemberAuthenticator:
TITLE: '电邮地址和密码'
TITLE: 电邮地址和密码
MemberDatetimeOptionsetField:
AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)'
'APPLY FILTER': 'Apply Filter'
@ -419,7 +419,7 @@ zh_CN:
SINGULARNAME: 'Member Password'
MemberTableField: null
ModelAdmin:
DELETE: '删除'
DELETE: 删除
DELETEDRECORDS: 'Deleted {count} records.'
EMPTYBEFOREIMPORT: 'Clear Database before import'
IMPORT: 'Import from CSV'
@ -474,23 +474,23 @@ zh_CN:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: '请输入有效电话号码'
VALIDATION: 请输入有效电话号码
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: '您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。'
BUTTONSEND: '给我发送密码重设链接'
CHANGEPASSWORDBELOW: '您可在下面更改您的密码'
CHANGEPASSWORDHEADER: '更改您的密码'
ENTERNEWPASSWORD: '请输入新密码'
ERRORPASSWORDPERMISSION: '您必需登录以更改您的密码'
LOGGEDOUT: '您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。'
ALREADYLOGGEDIN: 您无访问此页的权限。如果您拥有另一个可访问次页的帐户,请在下面登录。
BUTTONSEND: 给我发送密码重设链接
CHANGEPASSWORDBELOW: 您可在下面更改您的密码
CHANGEPASSWORDHEADER: 更改您的密码
ENTERNEWPASSWORD: 请输入新密码
ERRORPASSWORDPERMISSION: 您必需登录以更改您的密码
LOGGEDOUT: 您已被撤消登录。如果您想再次登录,在下面输入您的登录信息。
LOGIN: 登录
NOTEPAGESECURED: '此页是受安全保护的。输入您的登录信息,我们会将您送达。'
NOTEPAGESECURED: 此页是受安全保护的。输入您的登录信息,我们会将您送达。
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: '输入您的电邮地址,我们会给您发送一个您可重设密码的链接'
NOTERESETPASSWORD: 输入您的电邮地址,我们会给您发送一个您可重设密码的链接
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:
@ -517,7 +517,7 @@ zh_CN:
SilverStripeNavigator:
Edit: Edit
SimpleImageField:
NOUPLOAD: '没有上传的图像'
NOUPLOAD: 没有上传的图像
SiteTree:
TABMAIN: 主要部分
TableField:

View File

@ -8,7 +8,7 @@ zh_TW:
FILENAME: 檔案名稱
FOLDER: Folder
LASTEDIT: 最後一次更新
OWNER: '擁有者'
OWNER: 擁有者
SIZE: 大小
TITLE: 標題
TYPE: 類型
@ -55,8 +55,8 @@ zh_TW:
BackLink_Button.ss:
Back: Back
BasicAuth:
ENTERINFO: '請輸入帳號密碼。'
ERRORNOTADMIN: '那個使用者不是管理員。'
ENTERINFO: 請輸入帳號密碼。
ERRORNOTADMIN: 那個使用者不是管理員。
ERRORNOTREC: 那組帳號密碼不對。
Boolean:
0: 'False'
@ -74,7 +74,7 @@ zh_TW:
MENUTITLE: 'My Profile'
ChangePasswordEmail.ss:
CHANGEPASSWORDTEXT1: 您為這個帳戶改密碼:
CHANGEPASSWORDTEXT2: '您可以用下列的帳號密碼登入:'
CHANGEPASSWORDTEXT2: 您可以用下列的帳號密碼登入:
EMAIL: Email
HELLO: 您好
PASSWORD: Password
@ -201,8 +201,8 @@ zh_TW:
FIELDISREQUIRED: '必須要填 %s'
SubmitBtnLabel: Go
VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly'
VALIDATIONNOTUNIQUE: '您輸入的數值並不是獨特的。'
VALIDATIONPASSWORDSDONTMATCH: '密碼不相配'
VALIDATIONNOTUNIQUE: 您輸入的數值並不是獨特的。
VALIDATIONPASSWORDSDONTMATCH: 密碼不相配
VALIDATIONPASSWORDSNOTEMPTY: 密碼不能是空的
VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character'
VALIDATOR: Validator
@ -268,15 +268,15 @@ zh_TW:
ADJUSTDETAILSDIMENSIONS: 'Details &amp; 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: 檔案
@ -295,7 +295,7 @@ zh_TW:
IMAGETITLETEXTDESC: 'For additional information about the image'
IMAGEWIDTHPX:
INSERTMEDIA: 'Insert Media'
LINK: '插入或編輯選取的連結'
LINK: 插入或編輯選取的連結
LINKANCHOR: 'Anchor on this page'
LINKDESCR: 連結敘述
LINKEMAIL: 電子郵件地址
@ -304,7 +304,7 @@ zh_TW:
LINKINTERNAL: 此網站
LINKOPENNEWWIN: 在新視窗打開連結
LINKTO: 連結至
PAGE: '網頁'
PAGE: 網頁
URL: 網址
URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.'
UpdateMEDIA: 'Update Media'
@ -323,11 +323,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.
@ -344,8 +344,8 @@ zh_TW:
Member:
ADDGROUP: 'Add group'
BUTTONCHANGEPASSWORD: 更改密碼
BUTTONLOGIN: '登入'
BUTTONLOGINOTHER: '用別的帳戶登入'
BUTTONLOGIN: 登入
BUTTONLOGINOTHER: 用別的帳戶登入
BUTTONLOSTPASSWORD: 忘記密碼
CANTEDIT: 'You don''t have permission to do that'
CONFIRMNEWPASSWORD: 確認新密碼
@ -357,7 +357,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:
@ -474,23 +474,23 @@ zh_TW:
PERMISSIONS_CATEGORY: 'Roles and access permissions'
UserPermissionsIntro: 'Assigning groups to this user will adjust the permissions they have. See the groups section for details of permissions on individual groups.'
PhoneNumberField:
VALIDATION: '請輸入有效的電話號碼'
VALIDATION: 請輸入有效的電話號碼
RelationComplexTableField.ss:
ADD: Add
CSVEXPORT: 'Export to CSV'
NOTFOUND: 'No items found'
Security:
ALREADYLOGGEDIN: '你不能瀏覽此頁。請用別的帳戶登入。'
ALREADYLOGGEDIN: 你不能瀏覽此頁。請用別的帳戶登入。
BUTTONSEND: 寄給我密碼重設網址。
CHANGEPASSWORDBELOW: 請在下面更改密碼。
CHANGEPASSWORDHEADER: 更改密碼
ENTERNEWPASSWORD: '請輸入新的密碼。'
ERRORPASSWORDPERMISSION: '你必須先登入才能改密碼!'
LOGGEDOUT: '你已登出。您在下面再登入一次。'
ENTERNEWPASSWORD: 請輸入新的密碼。
ERRORPASSWORDPERMISSION: 你必須先登入才能改密碼!
LOGGEDOUT: 你已登出。您在下面再登入一次。
LOGIN: 'Log in'
NOTEPAGESECURED: '那的網頁是被保護的。請先登入。'
NOTEPAGESECURED: 那的網頁是被保護的。請先登入。
NOTERESETLINKINVALID: '<p>The password reset link is invalid or expired.</p><p>You can request a new one <a href="{link1}">here</a> or change your password after you <a href="{link2}">logged in</a>.</p>'
NOTERESETPASSWORD: '請輸入您的電子郵件。我們將寄給你重設密媽的網址。'
NOTERESETPASSWORD: 請輸入您的電子郵件。我們將寄給你重設密媽的網址。
PASSWORDSENTHEADER: 'Password reset link sent to ''{email}'''
PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.'
SecurityAdmin:

View File

@ -144,11 +144,21 @@ class HTMLText extends Text {
*/
public function exists() {
// If it's blank, it's blank
if(!parent::exists()) return false;
if(!parent::exists()) {
return false;
}
// If it's got a content tag
if(preg_match('/<(img|embed|object|iframe)[^>]*>/i', $this->value)) return true;
// If it's just one or two tags on its own (and not the above) it's empty. This might be <p></p> or <h1></h1> or whatever.
if(preg_match('/^[\\s]*(<[^>]+>[\\s]*){1,2}$/', $this->value)) return false;
if(preg_match('/<(img|embed|object|iframe)[^>]*>/i', $this->value)) {
return true;
}
// If it's just one or two tags on its own (and not the above) it's empty.
// This might be <p></p> or <h1></h1> or whatever.
if(preg_match('/^[\\s]*(<[^>]+>[\\s]*){1,2}$/', $this->value)) {
return false;
}
// Otherwise its content is genuine content
return true;
}

View File

@ -425,7 +425,8 @@ class Member extends DataObject implements TemplateGlobalProvider {
Cookie::set('alc_enc', null); // // Clear the Remember Me cookie
Cookie::forceExpiry('alc_enc');
// Switch back to live in order to avoid infinite loops when redirecting to the login screen (if this login screen is versioned)
// Switch back to live in order to avoid infinite loops when
// redirecting to the login screen (if this login screen is versioned)
Session::clear('readingMode');
$this->write();

View File

@ -244,7 +244,7 @@ class Security extends Controller {
$controller->redirect(
Config::inst()->get('Security', 'login_url')
. "?BackURL=" . urlencode($_SERVER['REQUEST_URI'])
. "?BackURL=" . urlencode($_SERVER['REQUEST_URI'])
);
}
return;
@ -941,14 +941,15 @@ class Security extends Controller {
* Set a custom log-in URL if you have built your own log-in page.
*/
public static function set_login_url($loginUrl) {
self::$login_url = $loginUrl;
}
self::$login_url = $loginUrl;
}
/**
* Get the URL of the log-in page.
* Defaults to Security/login but can be re-set with {@link set_login_url()}
*/
public static function login_url() {
return self::$login_url;
return self::$login_url;
}
}

View File

@ -13,23 +13,6 @@ class HTTPResponseTest extends SapphireTest {
);
}
public function testContentLengthHeader() {
$r = new SS_HTTPResponse('123ü');
$this->assertNotNull($r->getHeader('Content-Length'), 'Content-length header is added');
$this->assertEquals(
5,
$r->getHeader('Content-Length'),
'Header matches actual content length in bytes'
);
$r->setBody('1234ü');
$this->assertEquals(
6,
$r->getHeader('Content-Length'),
'Header is updated when body is changed'
);
}
public function testHTTPResponseException() {
$response = new SS_HTTPResponse("Test", 200, 'OK');
@ -61,4 +44,4 @@ class HTTPResponseTest extends SapphireTest {
$this->assertFalse(true, 'Something went wrong with our test exception');
}
}
}

View File

@ -316,6 +316,62 @@ class UploadTest extends SapphireTest {
$file2->delete();
}
public function testReplaceFile() {
// create tmp file
$tmpFileName = 'UploadTest-testUpload';
$tmpFilePath = TEMP_FOLDER . '/' . $tmpFileName;
$tmpFileContent = '';
for($i=0; $i<10000; $i++) $tmpFileContent .= '0';
file_put_contents($tmpFilePath, $tmpFileContent);
// emulates the $_FILES array
$tmpFile = array(
'name' => $tmpFileName,
'type' => 'text/plaintext',
'size' => filesize($tmpFilePath),
'tmp_name' => $tmpFilePath,
'extension' => 'txt',
'error' => UPLOAD_ERR_OK,
);
// Make sure there are none here, otherwise they get renamed incorrectly for the test.
$this->deleteTestUploadFiles("/UploadTest-testUpload.*/");
$v = new UploadTest_Validator();
$v->setAllowedExtensions(array(''));
// test upload into default folder
$u = new Upload();
$u->setValidator($v);
$u->load($tmpFile);
$file = $u->getFile();
$this->assertEquals(
'UploadTest-testUpload',
$file->Name,
'File is uploaded without extension'
);
$u = new Upload();
$u->setValidator($v);
$u->setReplaceFile(true);
$u->load($tmpFile);
$file2 = $u->getFile();
$this->assertEquals(
'UploadTest-testUpload',
$file2->Name,
'File does not receive new name'
);
$this->assertEquals(
$file->ID,
$file2->ID,
'File database record is the same'
);
$file->delete();
$file2->delete();
}
}
class UploadTest_Validator extends Upload_Validator implements TestOnly {

83
tests/travis/before.php Executable file
View File

@ -0,0 +1,83 @@
#!/usr/bin/env php
<?php
/**
* Initialises a test project that can be built by travis.
*
* The local framework checkout's composer file is parsed and used to built a
* custom local framework archive which is then installed into an installer
* base project.
*/
if (php_sapi_name() != 'cli') {
header('HTTP/1.0 404 Not Found');
exit;
}
$opts = getopt('', array(
'target:',
'version:',
'installer:'
));
if (!$opts) {
echo "Invalid arguments specified\n";
exit(1);
}
extract($opts);
$dir = __DIR__;
$framework = dirname(dirname($dir));
$parent = dirname($framework);
// Print out some environment information.
printf("Database versions:\n");
printf(" * MySQL: %s\n", trim(`mysql --version`));
printf(" * PostgreSQL: %s\n", trim(`pg_config --version`));
printf(" * SQLite: %s\n\n", trim(`sqlite3 -version`));
// Extract the package info from the framework composer file, and build a
// custom project composer file with the local package explicitly defined.
echo "Reading composer information...\n";
$package = json_decode(file_get_contents("$framework/composer.json"), true);
// Override the default framework requirement with the one being built.
$package += array(
'version' => $version,
'dist' => array(
'type' => 'tar',
'url' => "file://$parent/framework.tar"
)
);
// Generate a custom composer file.
$composer = json_encode(array(
'repositories' => array(array('type' => 'package', 'package' => $package)),
'require' => array(
'silverstripe/framework' => $version,
'silverstripe/postgresql' => '*',
'silverstripe/sqlite3' => '*'
),
'minimum-stability' => 'dev'
));
echo "Generated composer file:\n";
echo "$composer\n\n";
echo "Archiving framework...\n";
`cd $framework`;
`tar -cf $parent/framework.tar .`;
echo "Cloning installer@$installer...\n";
`git clone --depth=100 --quiet -b $installer git://github.com/silverstripe/silverstripe-installer.git $target`;
echo "Setting up project...\n";
`cp $dir/_ss_environment.php $target`;
`cp $dir/_config.php $target/mysite`;
echo "Replacing composer file...\n";
unlink("$target/composer.json");
file_put_contents("$target/composer.json", $composer);
echo "Running composer...\n";
`composer install --dev -d $target`;

View File

@ -1,34 +0,0 @@
#!/bin/sh
### USAGE: before_script <base-folder> <travis-branch>
BUILD_DIR=$1
# Environment info
echo "# Environment info"
echo " - `php --version`"
echo " - `mysql --version`"
echo " - `pg_config --version`"
echo " - SQLite3 `sqlite3 -version`"
echo ""
# Fetch all dependencies
# TODO Replace with different composer.json variations
echo "Checking out installer@master"
git clone --depth=100 --quiet -b master git://github.com/silverstripe/silverstripe-installer.git $BUILD_DIR
echo "Checking out sqlite3@master"
git clone --depth=100 --quiet git://github.com/silverstripe-labs/silverstripe-sqlite3.git $BUILD_DIR/sqlite3
echo "Checking out postgresql@master"
git clone --depth=100 --quiet git://github.com/silverstripe/silverstripe-postgresql.git $BUILD_DIR/postgresql
# Copy setup files
cp ./tests/travis/_ss_environment.php $BUILD_DIR
cp ./tests/travis/_config.php $BUILD_DIR/mysite
# Copy actual project code into build directory (checked out by travis)
cp -r . $BUILD_DIR/framework
cd $BUILD_DIR

View File

@ -0,0 +1,23 @@
/* Chinese initialisation for the jQuery UI date picker plugin. */
/* Written by Cloudream (cloudream@gmail.com). */
jQuery(function($){
$.datepicker.regional['zh-CN'] = {
closeText: '关闭',
prevText: '&#x3C;上月',
nextText: '下月&#x3E;',
currentText: '今天',
monthNames: ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'],
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
dayNamesMin: ['日','一','二','三','四','五','六'],
weekHeader: '周',
dateFormat: 'yy-mm-dd',
firstDay: 1,
isRTL: false,
showMonthAfterYear: true,
yearSuffix: '年'};
$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
});

View File

@ -0,0 +1,23 @@
/* Chinese initialisation for the jQuery UI date picker plugin. */
/* Written by Ressol (ressol@gmail.com). */
jQuery(function($){
$.datepicker.regional['zh-TW'] = {
closeText: '關閉',
prevText: '&#x3C;上月',
nextText: '下月&#x3E;',
currentText: '今天',
monthNames: ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'],
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
dayNamesMin: ['日','一','二','三','四','五','六'],
weekHeader: '周',
dateFormat: 'yy/mm/dd',
firstDay: 1,
isRTL: false,
showMonthAfterYear: true,
yearSuffix: '年'};
$.datepicker.setDefaults($.datepicker.regional['zh-TW']);
});