First Local Commit - After Clean up.

Signed-off-by: Rick Hays <rhays@haysgang.com>
This commit is contained in:
2019-12-02 14:54:38 -06:00
commit 10412ab7f6
486 changed files with 123242 additions and 0 deletions

View File

@@ -0,0 +1,330 @@
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP
*
* This content is released under the MIT License (MIT)
*
* Copyright (c) 2014-2019 British Columbia Institute of Technology
* Copyright (c) 2019 CodeIgniter Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*/
namespace CodeIgniter\Language;
use CodeIgniter\Config\Services;
/**
* Handle system messages and localization.
*
* Locale-based, built on top of PHP internationalization.
*
* @package CodeIgniter\Language
*/
class Language
{
/**
* Stores the retrieved language lines
* from files for faster retrieval on
* second use.
*
* @var array
*/
protected $language = [];
/**
* The current language/locale to work with.
*
* @var string
*/
protected $locale;
/**
* Boolean value whether the intl
* libraries exist on the system.
*
* @var boolean
*/
protected $intlSupport = false;
/**
* Stores filenames that have been
* loaded so that we don't load them again.
*
* @var array
*/
protected $loadedFiles = [];
//--------------------------------------------------------------------
public function __construct(string $locale)
{
$this->locale = $locale;
if (class_exists('\MessageFormatter'))
{
$this->intlSupport = true;
};
}
//--------------------------------------------------------------------
/**
* Sets the current locale to use when performing string lookups.
*
* @param string $locale
*
* @return $this
*/
public function setLocale(string $locale = null)
{
if (! is_null($locale))
{
$this->locale = $locale;
}
return $this;
}
//--------------------------------------------------------------------
/**
* @return string
*/
public function getLocale(): string
{
return $this->locale;
}
//--------------------------------------------------------------------
/**
* Parses the language string for a file, loads the file, if necessary,
* getting the line.
*
* @param string $line Line.
* @param array $args Arguments.
*
* @return string|string[] Returns line.
*/
public function getLine(string $line, array $args = [])
{
// ignore requests with no file specified
if (! strpos($line, '.'))
{
return $line;
}
// Parse out the file name and the actual alias.
// Will load the language file and strings.
[
$file,
$parsedLine,
] = $this->parseLine($line, $this->locale);
$output = $this->language[$this->locale][$file][$parsedLine] ?? null;
if ($output === null && strpos($this->locale, '-'))
{
[$locale] = explode('-', $this->locale, 2);
[
$file,
$parsedLine,
] = $this->parseLine($line, $locale);
$output = $this->language[$locale][$file][$parsedLine] ?? null;
}
// if still not found, try English
if (empty($output))
{
$this->parseLine($line, 'en');
$output = $this->language['en'][$file][$parsedLine] ?? null;
}
$output = $output ?? $line;
if (! empty($args))
{
$output = $this->formatMessage($output, $args);
}
return $output;
}
//--------------------------------------------------------------------
/**
* Parses the language string which should include the
* filename as the first segment (separated by period).
*
* @param string $line
* @param string $locale
*
* @return array
*/
protected function parseLine(string $line, string $locale): array
{
$file = substr($line, 0, strpos($line, '.'));
$line = substr($line, strlen($file) + 1);
if (! isset($this->language[$locale][$file]) || ! array_key_exists($line, $this->language[$locale][$file]))
{
$this->load($file, $locale);
}
return [
$file,
$line,
];
}
//--------------------------------------------------------------------
/**
* Advanced message formatting.
*
* @param string|array $message Message.
* @param array $args Arguments.
*
* @return string|array Returns formatted message.
*/
protected function formatMessage($message, array $args = [])
{
if (! $this->intlSupport || ! $args)
{
return $message;
}
if (is_array($message))
{
foreach ($message as $index => $value)
{
$message[$index] = $this->formatMessage($value, $args);
}
return $message;
}
return \MessageFormatter::formatMessage($this->locale, $message, $args);
}
//--------------------------------------------------------------------
/**
* Loads a language file in the current locale. If $return is true,
* will return the file's contents, otherwise will merge with
* the existing language lines.
*
* @param string $file
* @param string $locale
* @param boolean $return
*
* @return array|null
*/
protected function load(string $file, string $locale, bool $return = false)
{
if (! array_key_exists($locale, $this->loadedFiles))
{
$this->loadedFiles[$locale] = [];
}
if (in_array($file, $this->loadedFiles[$locale]))
{
// Don't load it more than once.
return [];
}
if (! array_key_exists($locale, $this->language))
{
$this->language[$locale] = [];
}
if (! array_key_exists($file, $this->language[$locale]))
{
$this->language[$locale][$file] = [];
}
$path = "Language/{$locale}/{$file}.php";
$lang = $this->requireFile($path);
if ($return)
{
return $lang;
}
$this->loadedFiles[$locale][] = $file;
// Merge our string
$this->language[$locale][$file] = $lang;
}
//--------------------------------------------------------------------
/**
* A simple method for including files that can be
* overridden during testing.
*
* @param string $path
*
* @return array
*/
protected function requireFile(string $path): array
{
$files = Services::locator()->search($path);
$strings = [];
foreach ($files as $file)
{
// On some OS's we were seeing failures
// on this command returning boolean instead
// of array during testing, so we've removed
// the require_once for now.
if (is_file($file))
{
$strings[] = require $file;
}
}
if (isset($strings[1]))
{
$strings = array_replace_recursive(...$strings);
}
elseif (isset($strings[0]))
{
$strings = $strings[0];
}
return $strings;
}
//--------------------------------------------------------------------
}

View File

@@ -0,0 +1,24 @@
<?php
/**
* CLI language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'commandNotFound' => 'Command "{0}" not found.',
'helpUsage' => 'Usage:',
'helpDescription' => 'Description:',
'helpOptions' => 'Options:',
'helpArguments' => 'Arguments:',
'invalidColor' => 'Invalid {0} color: {1}.',
];

View File

@@ -0,0 +1,22 @@
<?php
/**
* Cache language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'unableToWrite' => 'Cache unable to write to {0}',
'invalidHandlers' => 'Cache config must have an array of $validHandlers.',
'noBackup' => 'Cache config must have a handler and backupHandler set.',
'handlerNotFound' => 'Cache config has an invalid handler or backup handler specified.',
];

View File

@@ -0,0 +1,23 @@
<?php
/**
* Cast language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'jsonErrorDepth' => 'Maximum stack depth exceeded',
'jsonErrorStateMismatch' => 'Underflow or the modes mismatch',
'jsonErrorCtrlChar' => 'Unexpected control character found',
'jsonErrorSyntax' => 'Syntax error, malformed JSON',
'jsonErrorUtf8' => 'Malformed UTF-8 characters, possibly incorrectly encoded',
'jsonErrorUnknown' => 'Unknown error',
];

View File

@@ -0,0 +1,22 @@
<?php
/**
* Core language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidFile' => 'Invalid file: {0}',
'copyError' => 'An error was encountered while attempting to replace the file({0}). Please make sure your file directory is writable.',
'missingExtension' => '{0} extension is not loaded.',
'noHandlers' => '{0} must provide at least one Handler.',
];

View File

@@ -0,0 +1,33 @@
<?php
/**
* Database language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidEvent' => '{0} is not a valid Model Event callback.',
'invalidArgument' => 'You must provide a valid {0}.',
'invalidAllowedFields' => 'Allowed fields must be specified for model: {0}',
'emptyDataset' => 'There is no data to {0}.',
'failGetFieldData' => 'Failed to get field data from database.',
'failGetIndexData' => 'Failed to get index data from database.',
'failGetForeignKeyData' => 'Failed to get foreign key data from database.',
'parseStringFail' => 'Parsing key string failed.',
'featureUnavailable' => 'This feature is not available for the database you are using.',
'tableNotFound' => 'Table `{0}` was not found in the current database.',
'noPrimaryKey' => '`{0}` model class does not specify a Primary Key.',
'noDateFormat' => '`{0}` model class does not have a valid dateFormat.',
'fieldNotExists' => 'Field `{0}` not found.',
'forEmptyInputGiven' => 'Empty statement is given for the field `{0}`',
'forFindColumnHaveMultipleColumns' => 'Only single column allowed in Column name.',
];

View File

@@ -0,0 +1,36 @@
<?php
/**
* Email language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 3.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'mustBeArray' => 'The email validation method must be passed an array.',
'invalidAddress' => 'Invalid email address: {0}',
'attachmentMissing' => 'Unable to locate the following email attachment: {0}',
'attachmentUnreadable' => 'Unable to open this attachment: {0}',
'noFrom' => 'Cannot send mail with no "From" header.',
'noRecipients' => 'You must include recipients: To, Cc, or Bcc',
'sendFailurePHPMail' => 'Unable to send email using PHP mail(). Your server might not be configured to send mail using this method.',
'sendFailureSendmail' => 'Unable to send email using PHP Sendmail. Your server might not be configured to send mail using this method.',
'sendFailureSmtp' => 'Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.',
'sent' => 'Your message has been successfully sent using the following protocol: {0, string}',
'noSocket' => 'Unable to open a socket to Sendmail. Please check settings.',
'noHostname' => 'You did not specify a SMTP hostname.',
'SMTPError' => 'The following SMTP error was encountered: {0}',
'noSMTPAuth' => 'Error: You must assign a SMTP username and password.',
'failedSMTPLogin' => 'Failed to send AUTH LOGIN command. Error: {0}',
'SMTPAuthUsername' => 'Failed to authenticate username. Error: {0}',
'SMTPAuthPassword' => 'Failed to authenticate password. Error: {0}',
'SMTPDataFailure' => 'Unable to send data: {0}',
'exitStatus' => 'Exit status code: {0}',
];

View File

@@ -0,0 +1,23 @@
<?php
/**
* Encryption language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 3.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'noDriverRequested' => 'No driver requested; Miss Daisy will be so upset!',
'noHandlerAvailable' => 'Unable to find an available {0} encryption handler.',
'unKnownHandler' => '"{0}" cannot be configured.',
'starterKeyNeeded' => 'Encrypter needs a starter key.',
'authenticationFailed' => 'Decrypting: authentication failed.',
'encryptionFailed' => 'Encryption failed.',
];

View File

@@ -0,0 +1,19 @@
<?php
/**
* CLI language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @filesource
*
* @codeCoverageIgnore
*/
return
[
'tryingToAccessNonExistentProperty' => 'Trying to access non existent property {0} of {1}',
];

View File

@@ -0,0 +1,19 @@
<?php
/**
* Files language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'fileNotFound' => 'File not found: {0}',
'cannotMove' => 'Could not move file {0} to {1} ({2})',
];

View File

@@ -0,0 +1,20 @@
<?php
/**
* Filters language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'noFilter' => '{0} filter must have a matching alias defined.',
'incorrectInterface' => '{0} must implement CodeIgniter\Filters\FilterInterface.',
];

View File

@@ -0,0 +1,20 @@
<?php
/**
* Format language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidJSON' => 'Failed to parse json string, error: "{0}".',
'missingExtension' => 'The SimpleXML extension is required to format XML.',
];

View File

@@ -0,0 +1,77 @@
<?php
/**
* HTTP language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
// CurlRequest
'missingCurl' => 'CURL must be enabled to use the CURLRequest class.',
'invalidSSLKey' => 'Cannot set SSL Key. {0} is not a valid file.',
'sslCertNotFound' => 'SSL certificate not found at: {0}',
'curlError' => '{0} : {1}',
// IncomingRequest
'invalidNegotiationType' => '{0} is not a valid negotiation type. Must be one of: media, charset, encoding, language.',
// Message
'invalidHTTPProtocol' => 'Invalid HTTP Protocol Version. Must be one of: {0}',
// Negotiate
'emptySupportedNegotiations' => 'You must provide an array of supported values to all Negotiations.',
// RedirectResponse
'invalidRoute' => '{0, string} route cannot be found while reverse-routing.',
// DownloadResponse
'cannotSetBinary' => 'When setting filepath can not set binary.',
'cannotSetFilepath' => 'When setting binary can not set filepath: {0}',
'notFoundDownloadSource' => 'Not found download body source.',
'cannotSetCache' => 'It does not supported caching for downloading.',
'cannotSetStatusCode' => 'It does not supported chnage status code for downloading. code: {0}, reason: {1}',
// Response
'missingResponseStatus' => 'HTTP Response is missing a status code',
'invalidStatusCode' => '{0, string} is not a valid HTTP return status code',
'unknownStatusCode' => 'Unknown HTTP status code provided with no message: {0}',
// URI
'cannotParseURI' => 'Unable to parse URI: {0}',
'segmentOutOfRange' => 'Request URI segment is our of range: {0}',
'invalidPort' => 'Ports must be between 0 and 65535. Given: {0}',
'malformedQueryString' => 'Query strings may not include URI fragments.',
// Page Not Found
'pageNotFound' => 'Page Not Found',
'emptyController' => 'No Controller specified.',
'controllerNotFound' => 'Controller or its method is not found: {0}::{1}',
'methodNotFound' => 'Controller method is not found: {0}',
// CSRF
'disallowedAction' => 'The action you requested is not allowed.',
// Uploaded file moving
'alreadyMoved' => 'The uploaded file has already been moved.',
'invalidFile' => 'The original file is not a valid file.',
'moveFailed' => 'Could not move file {0} to {1} ({2})',
'uploadErrOk' => 'The file uploaded with success.',
'uploadErrIniSize' => 'The file "%s" exceeds your upload_max_filesize ini directive.',
'uploadErrFormSize' => 'The file "%s" exceeds the upload limit defined in your form.',
'uploadErrPartial' => 'The file "%s" was only partially uploaded.',
'uploadErrNoFile' => 'No file was uploaded.',
'uploadErrCantWrite' => 'The file "%s" could not be written on disk.',
'uploadErrNoTmpDir' => 'File could not be uploaded: missing temporary directory.',
'uploadErrExtension' => 'File upload was stopped by a PHP extension.',
'uploadErrUnknown' => 'The file "%s" was not uploaded due to an unknown error.',
];

View File

@@ -0,0 +1,36 @@
<?php
/**
* Image language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'sourceImageRequired' => 'You must specify a source image in your preferences.',
'gdRequired' => 'The GD image library is required to use this feature.',
'gdRequiredForProps' => 'Your server must support the GD image library in order to determine the image properties.',
'gifNotSupported' => 'GIF images are often not supported due to licensing restrictions. You may have to use JPG or PNG images instead.',
'jpgNotSupported' => 'JPG images are not supported.',
'pngNotSupported' => 'PNG images are not supported.',
'unsupportedImageCreate' => 'Your server does not support the GD function required to process this type of image.',
'jpgOrPngRequired' => 'The image resize protocol specified in your preferences only works with JPEG or PNG image types.',
'rotateUnsupported' => 'Image rotation does not appear to be supported by your server.',
'libPathInvalid' => 'The path to your image library is not correct. Please set the correct path in your image preferences. {0, string)',
'imageProcessFailed' => 'Image processing failed. Please verify that your server supports the chosen protocol and that the path to your image library is correct.',
'rotationAngleRequired' => 'An angle of rotation is required to rotate the image.',
'invalidPath' => 'The path to the image is not correct.',
'copyFailed' => 'The image copy routine failed.',
'missingFont' => 'Unable to find a font to use.',
'saveFailed' => 'Unable to save the image. Please make sure the image and file directory are writable.',
'invalidDirection' => 'Flip direction can be only `vertical` or `horizontal`. Given: {0}',
'exifNotSupported' => 'Reading EXIF data is not supported by this PHP installation.',
];

View File

@@ -0,0 +1,19 @@
<?php
/**
* Language system language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'languageGetLineInvalidArgumentException' => 'Get line must be a string or array of strings.',
];

View File

@@ -0,0 +1,19 @@
<?php
/**
* Log language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidLogLevel' => '{0} is an invalid log level.',
];

View File

@@ -0,0 +1,56 @@
<?php
/**
* Migration language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
// Migration Runner
'missingTable' => 'Migrations table must be set.',
'disabled' => 'Migrations have been loaded but are disabled or setup incorrectly.',
'notFound' => 'Migration file not found: ',
'batchNotFound' => 'Target batch not found: ',
'empty' => 'No Migration files found',
'gap' => 'There is a gap in the migration sequence near version number: ',
'classNotFound' => 'The migration class "%s" could not be found.',
'missingMethod' => 'The migration class is missing an "%s" method.',
// Migration Command
'migHelpLatest' => "\t\tMigrates database to latest available migration.",
'migHelpCurrent' => "\t\tMigrates database to version set as 'current' in configuration.",
'migHelpVersion' => "\tMigrates database to version {v}.",
'migHelpRollback' => "\tRuns all migrations 'down' to version 0.",
'migHelpRefresh' => "\t\tUninstalls and re-runs all migrations to freshen database.",
'migHelpSeed' => "\tRuns the seeder named [name].",
'migCreate' => "\tCreates a new migration named [name]",
'nameMigration' => 'Name the migration file',
'badCreateName' => 'You must provide a migration file name.',
'writeError' => 'Error trying to create file.',
'migNumberError' => 'Migration number must be three digits, and there must not be any gaps in the sequence.',
'latest' => 'Running all new migrations...',
'generalFault' => 'Migration failed!',
'migInvalidVersion' => 'Invalid version number provided.',
'toVersionPH' => 'Migrating to version %s...',
'toVersion' => 'Migrating to current version...',
'rollingBack' => 'Rolling back migrations to batch: ',
'noneFound' => 'No migrations were found.',
'on' => 'Migrated On: ',
'migSeeder' => 'Seeder name',
'migMissingSeeder' => 'You must provide a seeder name.',
'removed' => 'Rolling back: ',
'added' => 'Running: ',
'version' => 'Version',
'filename' => 'Filename',
];

View File

@@ -0,0 +1,30 @@
<?php
/**
* Number language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'terabyteAbbr' => 'TB',
'gigabyteAbbr' => 'GB',
'megabyteAbbr' => 'MB',
'kilobyteAbbr' => 'KB',
'bytes' => 'Bytes',
// don't forget the space in front of these!
'thousand' => ' thousand',
'million' => ' million',
'billion' => ' billion',
'trillion' => ' trillion',
'quadrillion' => ' quadrillion',
];

View File

@@ -0,0 +1,27 @@
<?php
/**
* Pager language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'pageNavigation' => 'Page navigation',
'first' => 'First',
'previous' => 'Previous',
'next' => 'Next',
'last' => 'Last',
'older' => 'Older',
'newer' => 'Newer',
'invalidTemplate' => '{0} is not a valid Pager template.',
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
];

View File

@@ -0,0 +1,18 @@
<?php
/**
* RESTful language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 3.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'notImplemented' => '"{0}" action not implemented.',
];

View File

@@ -0,0 +1,19 @@
<?php
/**
* Redirect language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'forUnableToRedirect' => 'Unable to redirect to "{0}". Error status code "{1}"',
];

View File

@@ -0,0 +1,20 @@
<?php
/**
* Router language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidParameter' => 'A parameter does not match the expected type.',
'missingDefaultRoute' => 'Unable to determine what should be displayed. A default route has not been specified in the routing file.',
];

View File

@@ -0,0 +1,23 @@
<?php
/**
* Session language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'missingDatabaseTable' => '`sessionSavePath` must have the table name for the Database Session Handler to work.',
'invalidSavePath' => 'Session: Configured save path "{0}" is not a directory, does not exist or cannot be created.',
'writeProtectedSavePath' => 'Session: Configured save path "{0}" is not writable by the PHP process.',
'emptySavePath' => 'Session: No save path configured.',
'invalidSavePathFormat' => 'Session: Invalid Redis save path format: {0}',
];

View File

@@ -0,0 +1,36 @@
<?php
/**
* Time language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidMonth' => 'Months must be between 1 and 12. Given: {0}',
'invalidDay' => 'Days must be between 1 and 31. Given: {0}',
'invalidOverDay' => 'Days must be between 1 and {0}. Given: {1}',
'invalidHours' => 'Hours must be between 0 and 23. Given: {0}',
'invalidMinutes' => 'Minutes must be between 0 and 59. Given: {0}',
'invalidSeconds' => 'Seconds must be between 0 and 59. Given: {0}',
'years' => '{0, plural, =1{# year} other{# years}}',
'months' => '{0, plural, =1{# month} other{# months}}',
'weeks' => '{0, plural, =1{# week} other{# weeks}}',
'days' => '{0, plural, =1{# day} other{# days}}',
'hours' => '{0, plural, =1{# hour} other{# hours}}',
'minutes' => '{0, plural, =1{# minute} other{# minutes}}',
'seconds' => '{0, plural, =1{# second} other{# seconds}}',
'ago' => '{0} ago',
'inFuture' => 'in {0}',
'yesterday' => 'Yesterday',
'tomorrow' => 'Tomorrow',
'now' => 'Just now',
];

View File

@@ -0,0 +1,71 @@
<?php
/**
* Validation language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
// Core Messages
'noRuleSets' => 'No rulesets specified in Validation configuration.',
'ruleNotFound' => '{0} is not a valid rule.',
'groupNotFound' => '{0} is not a validation rules group.',
'groupNotArray' => '{0} rule group must be an array.',
'invalidTemplate' => '{0} is not a valid Validation template.',
// Rule Messages
'alpha' => 'The {field} field may only contain alphabetical characters.',
'alpha_dash' => 'The {field} field may only contain alpha-numeric characters, underscores, and dashes.',
'alpha_numeric' => 'The {field} field may only contain alpha-numeric characters.',
'alpha_numeric_space' => 'The {field} field may only contain alpha-numeric characters and spaces.',
'alpha_space' => 'The {field} field may only contain alphabetical characters and spaces.',
'decimal' => 'The {field} field must contain a decimal number.',
'differs' => 'The {field} field must differ from the {param} field.',
'equals' => 'The {field} field must be exactly: {param}.',
'exact_length' => 'The {field} field must be exactly {param} characters in length.',
'greater_than' => 'The {field} field must contain a number greater than {param}.',
'greater_than_equal_to' => 'The {field} field must contain a number greater than or equal to {param}.',
'in_list' => 'The {field} field must be one of: {param}.',
'integer' => 'The {field} field must contain an integer.',
'is_natural' => 'The {field} field must only contain digits.',
'is_natural_no_zero' => 'The {field} field must only contain digits and must be greater than zero.',
'is_unique' => 'The {field} field must contain a unique value.',
'less_than' => 'The {field} field must contain a number less than {param}.',
'less_than_equal_to' => 'The {field} field must contain a number less than or equal to {param}.',
'matches' => 'The {field} field does not match the {param} field.',
'max_length' => 'The {field} field cannot exceed {param} characters in length.',
'min_length' => 'The {field} field must be at least {param} characters in length.',
'not_equals' => 'The {field} field cannot be: {param}.',
'numeric' => 'The {field} field must contain only numbers.',
'regex_match' => 'The {field} field is not in the correct format.',
'required' => 'The {field} field is required.',
'required_with' => 'The {field} field is required when {param} is present.',
'required_without' => 'The {field} field is required when {param} is not present.',
'timezone' => 'The {field} field must be a valid timezone.',
'valid_base64' => 'The {field} field must be a valid base64 string.',
'valid_email' => 'The {field} field must contain a valid email address.',
'valid_emails' => 'The {field} field must contain all valid email addresses.',
'valid_ip' => 'The {field} field must contain a valid IP.',
'valid_url' => 'The {field} field must contain a valid URL.',
'valid_date' => 'The {field} field must contain a valid date.',
// Credit Cards
'valid_cc_num' => '{field} does not appear to be a valid credit card number.',
// Files
'uploaded' => '{field} is not a valid uploaded file.',
'max_size' => '{field} is too large of a file.',
'is_image' => '{field} is not a valid, uploaded image file.',
'mime_in' => '{field} does not have a valid mime type.',
'ext_in' => '{field} does not have a valid file extension.',
'max_dims' => '{field} is either not an image, or it is too wide or tall.',
];

View File

@@ -0,0 +1,23 @@
<?php
/**
* View language strings.
*
* @package CodeIgniter
* @author CodeIgniter Dev Team
* @copyright 2019 CodeIgniter Foundation
* @license https://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
* @since Version 4.0.0
* @filesource
*
* @codeCoverageIgnore
*/
return [
'invalidCellMethod' => '{class}::{method} is not a valid method.',
'missingCellParameters' => '{class}::{method} has no params.',
'invalidCellParameter' => '{0} is not a valid param name.',
'noCellClass' => 'No view cell class provided.',
'invalidCellClass' => 'Unable to locate view cell class: {0}.',
'tagSyntaxError' => 'You have a syntax error in your Parser tags: {0}',
];