updated core to 1.7.15

This commit is contained in:
Bachir Soussi Chiadmi 2021-05-27 18:17:50 +02:00
parent dc1fdf21c9
commit 19ecb285ab
552 changed files with 80743 additions and 16675 deletions

8
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,8 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: grav
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL

44
.phan/config.php Normal file
View File

@ -0,0 +1,44 @@
<?php
return [
"target_php_version" => null,
'pretend_newer_core_functions_exist' => true,
'allow_missing_properties' => false,
'null_casts_as_any_type' => false,
'null_casts_as_array' => false,
'array_casts_as_null' => false,
'strict_method_checking' => true,
'quick_mode' => false,
'simplify_ast' => false,
'directory_list' => [
'.',
],
"exclude_analysis_directory_list" => [
'vendor/'
],
'exclude_file_list' => [
'system/src/Grav/Common/Errors/Resources/layout.html.php',
'tests/_support/AcceptanceTester.php',
'tests/_support/FunctionalTester.php',
'tests/_support/UnitTester.php',
],
'autoload_internal_extension_signatures' => [
'memcached' => '.phan/internal_stubs/memcached.phan_php',
'memcache' => '.phan/internal_stubs/memcache.phan_php',
'redis' => '.phan/internal_stubs/Redis.phan_php',
],
'plugins' => [
'AlwaysReturnPlugin',
'UnreachableCodePlugin',
'DuplicateArrayKeyPlugin',
'PregRegexCheckerPlugin',
'PrintfCheckerPlugin',
],
'suppress_issue_types' => [
'PhanUnreferencedUseNormal',
'PhanTypeObjectUnsetDeclaredProperty',
'PhanTraitParentReference',
'PhanTypeInvalidThrowsIsInterface',
'PhanRequiredTraitNotAdded',
'PhanDeprecatedFunction', // Uncomment this to see all the deprecated calls
]
];

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,460 @@
<?php
// Start of memcache v.3.0.8
class MemcachePool {
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Open memcached server connection
* @link https://php.net/manual/en/memcache.connect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like <em>unix:///path/to/memcached.sock</em>
* to use UNIX domain sockets, in this case <b>port</b> must also
* be set to <em>0</em>.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections. Set this
* parameter to <em>0</em> when using UNIX domain sockets.
* </p>
* <p>
* Please note: <b>port</b> defaults to
* {@link https://php.net/manual/ru/memcache.ini.php#ini.memcache.default-port memcache.default_port}
* if not specified. For this reason it is wise to specify the port
* explicitly in this method call.
* </p>
* @param int $timeout [optional] <p>Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.</p>
* @return bool <p>Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.</p>
*/
public function connect ($host, $port, $timeout = 1) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Add a memcached server to connection pool
* @link https://php.net/manual/en/memcache.addserver.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like unix:///path/to/memcached.sock
* to use UNIX domain sockets, in this case <i>port</i> must also
* be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* Set this
* parameter to 0 when using UNIX domain sockets.
* </p>
* <p>
* Please note: <i>port</i> defaults to
* memcache.default_port
* if not specified. For this reason it is wise to specify the port
* explicitly in this method call.
* </p>
* @param bool $persistent [optional] <p>
* Controls the use of a persistent connection. Default to <b>TRUE</b>.
* </p>
* @param int $weight [optional] <p>
* Number of buckets to create for this server which in turn control its
* probability of it being selected. The probability is relative to the
* total weight of all servers.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think
* twice before changing the default value of 1 second - you can lose all
* the advantages of caching if your connection is too slow.
* </p>
* @param int $retry_interval [optional] <p>
* Controls how often a failed server will be retried, the default value
* is 15 seconds. Setting this parameter to -1 disables automatic retry.
* Neither this nor the <i>persistent</i> parameter has any
* effect when the extension is loaded dynamically via <b>dl</b>.
* </p>
* <p>
* Each failed connection struct has its own timeout and before it has expired
* the struct will be skipped when selecting backends to serve a request. Once
* expired the connection will be successfully reconnected or marked as failed
* for another <i>retry_interval</i> seconds. The typical
* effect is that each web server child will retry the connection about every
* <i>retry_interval</i> seconds when serving a page.
* </p>
* @param bool $status [optional] <p>
* Controls if the server should be flagged as online. Setting this parameter
* to <b>FALSE</b> and <i>retry_interval</i> to -1 allows a failed
* server to be kept in the pool so as not to affect the key distribution
* algorithm. Requests for this server will then failover or fail immediately
* depending on the <i>memcache.allow_failover</i> setting.
* Default to <b>TRUE</b>, meaning the server should be considered online.
* </p>
* @param callable $failure_callback [optional] <p>
* Allows the user to specify a callback function to run upon encountering an
* error. The callback is run before failover is attempted. The function takes
* two parameters, the hostname and port of the failed server.
* </p>
* @param int $timeoutms [optional] <p>
* </p>
* @return bool <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function addServer ($host, $port = 11211, $persistent = true, $weight = null, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null, $timeoutms = null) {}
/**
* (PECL memcache &gt;= 2.1.0)<br/>
* Changes server parameters and status at runtime
* @link https://secure.php.net/manual/en/memcache.setserverparams.php
* @param string $host <p>Point to the host where memcached is listening for connections.</p.
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
* </p>
* @param int $retry_interval [optional] <p>
* Controls how often a failed server will be retried, the default value
* is 15 seconds. Setting this parameter to -1 disables automatic retry.
* Neither this nor the <b>persistent</b> parameter has any
* effect when the extension is loaded dynamically via {@link https://secure.php.net/manual/en/function.dl.php dl()}.
* </p>
* @param bool $status [optional] <p>
* Controls if the server should be flagged as online. Setting this parameter
* to <b>FALSE</b> and <b>retry_interval</b> to -1 allows a failed
* server to be kept in the pool so as not to affect the key distribution
* algorithm. Requests for this server will then failover or fail immediately
* depending on the <b>memcache.allow_failover</b> setting.
* Default to <b>TRUE</b>, meaning the server should be considered online.
* </p>
* @param callable $failure_callback [optional] <p>
* Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted.
* The function takes two parameters, the hostname and port of the failed server.
* </p>
* @return bool <p>Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.</p>
*/
public function setServerParams ($host, $port = 11211, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null) {}
/**
*
*/
public function setFailureCallback () {}
/**
* (PECL memcache &gt;= 2.1.0)<br/>
* Returns server status
* @link https://php.net/manual/en/memcache.getserverstatus.php
* @param string $host Point to the host where memcached is listening for connections.
* @param int $port Point to the port where memcached is listening for connections.
* @return int Returns a the servers status. 0 if server is failed, non-zero otherwise
*/
public function getServerStatus ($host, $port = 11211) {}
/**
*
*/
public function findServer () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Return version of the server
* @link https://php.net/manual/en/memcache.getversion.php
* @return string|false Returns a string of server version number or <b>FALSE</b> on failure.
*/
public function getVersion () {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Add an item to the server. If the key already exists, the value will not be added and <b>FALSE</b> will be returned.
* @link https://php.net/manual/en/memcache.add.php
* @param string $key The key that will be associated with the item.
* @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
* @param int $flag [optional] <p>
* Use <b>MEMCACHE_COMPRESSED</b> to store the item
* compressed (uses zlib).
* </p>
* @param int $expire [optional] <p>Expiration time of the item.
* If it's equal to zero, the item will never expire.
* You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).</p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure. Returns <b>FALSE</b> if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().
*/
public function add ($key , $var, $flag = null, $expire = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Stores an item var with key on the memcached server. Parameter expire is expiration time in seconds.
* If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time,
* it could be deleted from the cache to make place for other items).
* You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).
* @link https://php.net/manual/en/memcache.set.php
* @param string $key The key that will be associated with the item.
* @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
* @param int $flag [optional] Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
* @param int $expire [optional] Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function set ($key, $var, $flag = null, $expire = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Replace value of the existing item
* @link https://php.net/manual/en/memcache.replace.php
* @param string $key <p>The key that will be associated with the item.</p>
* @param mixed $var <p>The variable to store. Strings and integers are stored as is, other types are stored serialized.</p>
* @param int $flag [optional] <p>Use <b>MEMCACHE_COMPRESSED</b> to store the item compressed (uses zlib).</p>
* @param int $expire [optional] <p>Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).</p>
* @return bool Returns TRUE on success or FALSE on failure.
*/
public function replace ($key, $var, $flag = null, $expire = null) {}
public function cas () {}
public function append () {}
/**
* @return string
*/
public function prepend () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Retrieve item from the server
* @link https://php.net/manual/en/memcache.get.php
* @param string|array $key <p>
* The key or array of keys to fetch.
* </p>
* @param int|array $flags [optional] <p>
* If present, flags fetched along with the values will be written to this parameter. These
* flags are the same as the ones given to for example {@link https://php.net/manual/en/memcache.set.php Memcache::set()}.
* The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate
* compression and serialization status).
* </p>
* @return string|array|false <p>
* Returns the string associated with the <b>key</b> or
* an array of found key-value pairs when <b>key</b> is an {@link https://php.net/manual/en/language.types.array.php array}.
* Returns <b>FALSE</b> on failure, <b>key</b> is not found or
* <b>key</b> is an empty {@link https://php.net/manual/en/language.types.array.php array}.
* </p>
*/
public function get ($key, &$flags = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Delete item from the server
* https://secure.php.net/manual/ru/memcache.delete.php
* @param $key string The key associated with the item to delete.
* @param $timeout int [optional] This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function delete ($key, $timeout = 0 ) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Get statistics of the server
* @link https://php.net/manual/ru/memcache.getstats.php
* @param string $type [optional] <p>
* The type of statistics to fetch.
* Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}.
* According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".</p>
* @param int $slabid [optional] <p>
* Used in conjunction with <b>type</b> set to
* cachedump to identify the slab to dump from. The cachedump
* command ties up the server and is strictly to be used for
* debugging purposes.
* </p>
* @param int $limit [optional] <p>
* Used in conjunction with <b>type</b> set to cachedump to limit the number of entries to dump.
* </p>
* @return array|false Returns an associative array of server statistics or <b>FALSE</b> on failure.
*/
public function getStats ($type = null, $slabid = null, $limit = 100) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Get statistics from all servers in pool
* @link https://php.net/manual/en/memcache.getextendedstats.php
* @param string $type [optional] <p>The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".</p>
* @param int $slabid [optional] <p>
* Used in conjunction with <b>type</b> set to
* cachedump to identify the slab to dump from. The cachedump
* command ties up the server and is strictly to be used for
* debugging purposes.
* </p>
* @param int $limit Used in conjunction with type set to cachedump to limit the number of entries to dump.
* @return array|false Returns a two-dimensional associative array of server statistics or <b>FALSE</b>
* Returns a two-dimensional associative array of server statistics or <b>FALSE</b>
* on failure.
*/
public function getExtendedStats ($type = null, $slabid = null, $limit = 100) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Enable automatic compression of large values
* @link https://php.net/manual/en/memcache.setcompressthreshold.php
* @param int $thresold <p>Controls the minimum value length before attempting to compress automatically.</p>
* @param float $min_saving [optional] <p>Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.</p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function setCompressThreshold ($thresold, $min_saving = 0.2) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Increment item's value
* @link https://php.net/manual/en/memcache.increment.php
* @param $key string Key of the item to increment.
* @param $value int [optional] increment the item by <b>value</b>
* @return int|false Returns new items value on success or <b>FALSE</b> on failure.
*/
public function increment ($key, $value = 1) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Decrement item's value
* @link https://php.net/manual/en/memcache.decrement.php
* @param $key string Key of the item do decrement.
* @param $value int Decrement the item by <b>value</b>.
* @return int|false Returns item's new value on success or <b>FALSE</b> on failure.
*/
public function decrement ($key, $value = 1) {}
/**
* (PECL memcache &gt;= 0.4.0)<br/>
* Close memcached server connection
* @link https://php.net/manual/en/memcache.close.php
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function close () {}
/**
* (PECL memcache &gt;= 1.0.0)<br/>
* Flush all existing items at the server
* @link https://php.net/manual/en/memcache.flush.php
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function flush () {}
}
/**
* Represents a connection to a set of memcache servers.
* @link https://php.net/manual/en/class.memcache.php
*/
class Memcache extends MemcachePool {
/**
* (PECL memcache &gt;= 0.4.0)<br/>
* Open memcached server persistent connection
* @link https://php.net/manual/en/memcache.pconnect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like unix:///path/to/memcached.sock
* to use UNIX domain sockets, in this case <i>port</i> must also
* be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections. Set this
* parameter to 0 when using UNIX domain sockets.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think
* twice before changing the default value of 1 second - you can lose all
* the advantages of caching if your connection is too slow.
* </p>
* @return mixed a Memcache object or <b>FALSE</b> on failure.
*/
public function pconnect ($host, $port, $timeout = 1) {}
}
// string $host [, int $port [, int $timeout ]]
/**
* (PECL memcache >= 0.2.0)</br>
* Memcache::connect — Open memcached server connection
* @link https://php.net/manual/en/memcache.connect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections.
* This parameter may also specify other transports like
* unix:///path/to/memcached.sock to use UNIX domain sockets,
* in this case port must also be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* Set this parameter to 0 when using UNIX domain sockets.
* Note: port defaults to memcache.default_port if not specified.
* For this reason it is wise to specify the port explicitly in this method call.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon.
* </p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
function memcache_connect ($host, $port, $timeout = 1) {}
/**
* (PECL memcache >= 0.4.0)
* Memcache::pconnect — Open memcached server persistent connection
*
* @link https://php.net/manual/en/memcache.pconnect.php#example-5242
* @param $host
* @param null $port
* @param int $timeout
* @return Memcache
*/
function memcache_pconnect ($host, $port=null, $timeout=1) {}
function memcache_add_server () {}
function memcache_set_server_params () {}
function memcache_set_failure_callback () {}
function memcache_get_server_status () {}
function memcache_get_version () {}
function memcache_add () {}
function memcache_set () {}
function memcache_replace () {}
function memcache_cas () {}
function memcache_append () {}
function memcache_prepend () {}
function memcache_get () {}
function memcache_delete () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Turn debug output on/off
* @link https://php.net/manual/en/function.memcache-debug.php
* @param bool $on_off <p>
* Turns debug output on if equals to <b>TRUE</b>.
* Turns debug output off if equals to <b>FALSE</b>.
* </p>
* @return bool <b>TRUE</b> if PHP was built with --enable-debug option, otherwise
* returns <b>FALSE</b>.
*/
function memcache_debug ($on_off) {}
function memcache_get_stats () {}
function memcache_get_extended_stats () {}
function memcache_set_compress_threshold () {}
function memcache_increment () {}
function memcache_decrement () {}
function memcache_close () {}
function memcache_flush () {}
define ('MEMCACHE_COMPRESSED', 2);
define ('MEMCACHE_USER1', 65536);
define ('MEMCACHE_USER2', 131072);
define ('MEMCACHE_USER3', 262144);
define ('MEMCACHE_USER4', 524288);
define ('MEMCACHE_HAVE_SESSION', 1);
// End of memcache v.3.0.8
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,133 @@
# Contributor Covenant Code of Conduct # Contributor Covenant Code of Conduct
## Our Pledge ## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards ## Our Standards
Examples of behavior that contributes to creating a positive environment include: Examples of behavior that contributes to a positive environment for our
community include:
* Using welcoming and inclusive language * Demonstrating empathy and kindness toward other people
* Being respectful of differing viewpoints and experiences * Being respectful of differing opinions, viewpoints, and experiences
* Gracefully accepting constructive criticism * Giving and gracefully accepting constructive feedback
* Focusing on what is best for the community * Accepting responsibility and apologizing to those affected by our mistakes,
* Showing empathy towards other community members and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior by participants include: Examples of unacceptable behavior include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances * The use of sexualized language or imagery, and sexual attention or
* Trolling, insulting/derogatory comments, and personal or political attacks advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment * Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission * Publishing others' private information, such as a physical or email
* Other conduct which could reasonably be considered inappropriate in a professional setting address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities ## Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope ## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement ## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@getgrav.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution ## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
[homepage]: http://contributor-covenant.org Community Impact Guidelines were inspired by
[version]: http://contributor-covenant.org/version/1/4/ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

View File

@ -29,7 +29,7 @@ The issue tracker is the preferred channel for [bug reports](#bugs),
requests](#pull-requests), but please respect the following restrictions: requests](#pull-requests), but please respect the following restrictions:
* Please **do not** use the issue tracker for support requests. Use * Please **do not** use the issue tracker for support requests. Use
[the Forum](http://getgrav.org/forum) or [the Gitter chat](https://gitter.im/getgrav/grav). [the Forum](http://getgrav.org/forum) or [the Chat](https://chat.getgrav.org/).
<a name="bugs"></a> <a name="bugs"></a>
@ -110,7 +110,8 @@ Good pull requests - patches, improvements, new features - are a fantastic
help. They should remain focused in scope and avoid containing unrelated help. They should remain focused in scope and avoid containing unrelated
commits. commits.
**Please ask first** in [Slack](https://getgrav.org/slack) or in the Forum before embarking on any significant pull request (e.g. **Please ask first** in [the Forum](http://getgrav.org/forum) or [the Chat](https://chat.getgrav.org/)
before embarking on any significant pull request (e.g.
implementing features, refactoring code..), implementing features, refactoring code..),
otherwise you risk spending a lot of time working on something that the otherwise you risk spending a lot of time working on something that the
project's developers might not want to merge into the project. project's developers might not want to merge into the project.

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2018 Grav Copyright (c) 2021 Grav
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,6 +1,9 @@
# ![](https://avatars1.githubusercontent.com/u/8237355?v=2&s=50) Grav # ![](https://avatars1.githubusercontent.com/u/8237355?v=2&s=50) Grav
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad) [![Discord](https://img.shields.io/discord/501836936584101899.svg?logo=discord&colorB=728ADA&label=Discord%20Chat)](https://chat.getgrav.org) [![Build Status](https://travis-ci.org/getgrav/grav.svg?branch=develop)](https://travis-ci.org/getgrav/grav) [![OpenCollective](https://opencollective.com/grav/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/grav/sponsors/badge.svg)](#sponsors) [![PHPStan](https://img.shields.io/badge/PHPStan-enabled-brightgreen.svg?style=flat)](https://github.com/phpstan/phpstan)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad)
[![Discord](https://img.shields.io/discord/501836936584101899.svg?logo=discord&colorB=728ADA&label=Discord%20Chat)](https://chat.getgrav.org)
[![PHP Tests](https://github.com/getgrav/grav/workflows/PHP%20Tests/badge.svg?branch=develop)](https://github.com/getgrav/grav/actions?query=workflow%3A%22PHP+Tests%22) [![OpenCollective](https://opencollective.com/grav/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/grav/sponsors/badge.svg)](#sponsors)
Grav is a **Fast**, **Simple**, and **Flexible**, file-based Web-platform. There is **Zero** installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful **Package Management System** to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself. Grav is a **Fast**, **Simple**, and **Flexible**, file-based Web-platform. There is **Zero** installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful **Package Management System** to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.
@ -18,9 +21,13 @@ The underlying architecture of Grav is designed to use well-established and _bes
# Requirements # Requirements
- PHP 5.6.4 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements) - PHP 7.3.6 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements)
- Check the [Apache](https://learn.getgrav.org/basics/requirements#apache-requirements) or [IIS](https://learn.getgrav.org/basics/requirements#iis-requirements) requirements - Check the [Apache](https://learn.getgrav.org/basics/requirements#apache-requirements) or [IIS](https://learn.getgrav.org/basics/requirements#iis-requirements) requirements
# Documentation
The full documentation can be found from [learn.getgrav.org](https://learn.getgrav.org).
# QuickStart # QuickStart
These are the options to get Grav: These are the options to get Grav:
@ -81,6 +88,11 @@ To update plugins and themes:
$ bin/gpm update $ bin/gpm update
``` ```
## Upgrading from older version
* [Upgrading to Grav 1.7](https://learn.getgrav.org/16/advanced/grav-development/grav-17-upgrade-guide)
* [Upgrading to Grav 1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-16-upgrade-guide)
* [Upgrading from Grav <1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-15-upgrade-guide)
# Contributing # Contributing
We appreciate any contribution to Grav, whether it is related to bugs, grammar, or simply a suggestion or improvement! Please refer to the [Contributing guide](CONTRIBUTING.md) for more guidance on this topic. We appreciate any contribution to Grav, whether it is related to bugs, grammar, or simply a suggestion or improvement! Please refer to the [Contributing guide](CONTRIBUTING.md) for more guidance on this topic.
@ -103,6 +115,7 @@ If you discover a possible security issue related to Grav or one of its plugins,
* Dive into more [advanced](https://learn.getgrav.org/advanced) functions * Dive into more [advanced](https://learn.getgrav.org/advanced) functions
* Learn about the [Grav CLI](https://learn.getgrav.org/cli-console/grav-cli) * Learn about the [Grav CLI](https://learn.getgrav.org/cli-console/grav-cli)
* Review examples in the [Grav Cookbook](https://learn.getgrav.org/cookbook) * Review examples in the [Grav Cookbook](https://learn.getgrav.org/cookbook)
* More [Awesome Grav Stuff](https://github.com/getgrav/awesome-grav)
# Backers # Backers
Support Grav with a monthly donation to help us continue development. [[Become a backer](https://opencollective.com/grav#backer)] Support Grav with a monthly donation to help us continue development. [[Become a backer](https://opencollective.com/grav#backer)]
@ -124,7 +137,14 @@ See [LICENSE](LICENSE.txt)
# Running Tests # Running Tests
First install the dev dependencies by running `composer update` from the Grav root. First install the dev dependencies by running `composer install` from the Grav root.
Then `composer test` will run the Unit Tests, which should be always executed successfully on any site. Then `composer test` will run the Unit Tests, which should be always executed successfully on any site.
Windows users should use the `composer test-windows` command. Windows users should use the `composer test-windows` command.
You can also run a single unit test file, e.g. `composer test tests/unit/Grav/Common/AssetsTest.php` You can also run a single unit test file, e.g. `composer test tests/unit/Grav/Common/AssetsTest.php`
To run phpstan tests, you should run:
* `composer phpstan` for global tests
* `composer phpstan-framework` for more strict tests
* `composer phpstan-plugins` to test all installed plugins

21
SECURITY.md Normal file
View File

@ -0,0 +1,21 @@
# Security Policy
## Supported Versions
We are focusing our security updates on the following versions
| Version | Supported |
| ------- | ------------------ |
| 1.7.x | :white_check_mark: |
| 1.6.x | :warning: |
| < 1.6 | :x: |
## :warning: Versions
Versions with :warning: will be supported for security issues, however you won't be able to update to them, you will need to manually update through the [`direct-install` command](https://learn.getgrav.org/17/admin-panel/tools).
If you cannot update to the latest stable version available because, for example, your server does not meet the minimum PHP requirements, you can manually install a previous version by downloading the package from our Releases directory (https://github.com/getgrav/grav/releases).
## Reporting a Vulnerability
Please contact security@getgrav.org with a detailed explaination of the security issue found and we will work with you to get it resolved as fast as possible.

View File

@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

Binary file not shown.

63
bin/gpm
View File

@ -1,26 +1,29 @@
#!/usr/bin/env php #!/usr/bin/env php
<?php <?php
define('GRAV_CLI', true);
if (!file_exists(__DIR__ . '/../vendor')){ /**
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php'; * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
} * @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer; use Grav\Common\Composer;
use Grav\Common\Config\Setup; use Grav\Common\Grav;
use Grav\Console\Application\GpmApplication;
if (!file_exists(__DIR__ . '/../vendor')){ \define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
// Before we can even start, we need to run composer first // Before we can even start, we need to run composer first
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
$composer = Composer::getComposerExecutor(); $composer = Composer::getComposerExecutor();
echo "Preparing to install vendor dependencies...\n\n"; echo "Preparing to install vendor dependencies...\n\n";
echo system($composer.' --working-dir="'.__DIR__.'/../" --no-interaction --no-dev --prefer-dist -o install'); echo system($composer.' --working-dir="'.__DIR__.'/../" --no-interaction --no-dev --prefer-dist -o install');
echo "\n\n"; echo "\n\n";
} }
use Symfony\Component\Console\Application; $autoload = require __DIR__ . '/../vendor/autoload.php';
use Grav\Common\Grav;
$autoload = require_once(__DIR__ . '/../vendor/autoload.php');
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req)); exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
@ -30,7 +33,14 @@ if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
} }
if (!file_exists(ROOT_DIR . 'index.php')) { // Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!'); exit('FATAL: Must be run from ROOT directory of Grav!');
} }
@ -38,36 +48,7 @@ if (!function_exists('curl_version')) {
exit('FATAL: GPM requires PHP Curl module to be installed'); exit('FATAL: GPM requires PHP Curl module to be installed');
} }
$climate = new League\CLImate\CLImate;
$climate->arguments->add([
'environment' => [
'prefix' => 'e',
'longPrefix' => 'env',
'description' => 'Configuration Environment',
'defaultValue' => 'localhost'
]
]);
$climate->arguments->parse();
$environment = $climate->arguments->get('environment');
// Set up environment based on params.
Setup::$environment = $environment;
$grav = Grav::instance(array('loader' => $autoload)); $grav = Grav::instance(array('loader' => $autoload));
$grav['uri']->init();
$grav['config']->init();
$grav['streams'];
$app = new Application('Grav Package Manager', GRAV_VERSION);
$app->addCommands(array(
new \Grav\Console\Gpm\IndexCommand(),
new \Grav\Console\Gpm\VersionCommand(),
new \Grav\Console\Gpm\InfoCommand(),
new \Grav\Console\Gpm\InstallCommand(),
new \Grav\Console\Gpm\UninstallCommand(),
new \Grav\Console\Gpm\UpdateCommand(),
new \Grav\Console\Gpm\SelfupgradeCommand(),
new \Grav\Console\Gpm\DirectInstallCommand(),
));
$app = new GpmApplication('Grav Package Manager', GRAV_VERSION);
$app->run(); $app->run();

View File

@ -1,24 +1,29 @@
#!/usr/bin/env php #!/usr/bin/env php
<?php <?php
define('GRAV_CLI', true);
if (!file_exists(__DIR__ . '/../vendor')){ /**
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php'; * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
} * @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer; use Grav\Common\Composer;
use Grav\Common\Grav;
use Grav\Console\Application\GravApplication;
if (!file_exists(__DIR__ . '/../vendor')){ \define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
// Before we can even start, we need to run composer first // Before we can even start, we need to run composer first
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
$composer = Composer::getComposerExecutor(); $composer = Composer::getComposerExecutor();
echo "Preparing to install vendor dependencies...\n\n"; echo "Preparing to install vendor dependencies...\n\n";
echo system($composer.' --working-dir="'.__DIR__.'/../" --no-interaction --no-dev --prefer-dist -o install'); echo system($composer.' --working-dir="'.__DIR__.'/../" --no-interaction --no-dev --prefer-dist -o install');
echo "\n\n"; echo "\n\n";
} }
use Symfony\Component\Console\Application; $autoload = require __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../vendor/autoload.php';
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req)); exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
@ -28,19 +33,18 @@ if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
} }
if (!file_exists(ROOT_DIR . 'index.php')) { // Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
$grav = Grav::instance(array('loader' => $autoload));
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!'); exit('FATAL: Must be run from ROOT directory of Grav!');
} }
$app = new Application('Grav CLI Application', GRAV_VERSION); $app = new GravApplication('Grav CLI Application', GRAV_VERSION);
$app->addCommands(array(
new \Grav\Console\Cli\InstallCommand(),
new \Grav\Console\Cli\ComposerCommand(),
new \Grav\Console\Cli\SandboxCommand(),
new \Grav\Console\Cli\CleanCommand(),
new \Grav\Console\Cli\ClearCacheCommand(),
new \Grav\Console\Cli\BackupCommand(),
new \Grav\Console\Cli\NewProjectCommand(),
new \Grav\Console\Cli\SecurityCommand(),
));
$app->run(); $app->run();

View File

@ -1,30 +1,29 @@
#!/usr/bin/env php #!/usr/bin/env php
<?php <?php
define('GRAV_CLI', true);
if (!file_exists(__DIR__ . '/../vendor')) { /**
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php'; * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
} * @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer; use Grav\Common\Composer;
use Grav\Common\Grav;
use Grav\Console\Application\PluginApplication;
if (!file_exists(__DIR__ . '/../vendor')) { \define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
// Before we can even start, we need to run composer first // Before we can even start, we need to run composer first
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
$composer = Composer::getComposerExecutor(); $composer = Composer::getComposerExecutor();
echo "Preparing to install vendor dependencies...\n\n"; echo "Preparing to install vendor dependencies...\n\n";
echo system($composer . ' --working-dir="' . __DIR__ . '/../" --no-interaction --no-dev --prefer-dist -o install'); echo system($composer.' --working-dir="'.__DIR__.'/../" --no-interaction --no-dev --prefer-dist -o install');
echo "\n\n"; echo "\n\n";
} }
use Symfony\Component\Console\Application; $autoload = require __DIR__ . '/../vendor/autoload.php';
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Grav\Common\Grav;
use Grav\Common\Config\Setup;
use Grav\Common\Filesystem\Folder;
$autoload = require_once(__DIR__ . '/../vendor/autoload.php');
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req)); exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
@ -34,104 +33,19 @@ if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
} }
if (!file_exists(ROOT_DIR . 'index.php')) { // Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!'); exit('FATAL: Must be run from ROOT directory of Grav!');
} }
$climate = new League\CLImate\CLImate; // Bootstrap Grav container.
$climate->arguments->add([
'environment' => [
'prefix' => 'e',
'longPrefix' => 'env',
'description' => 'Configuration Environment',
'defaultValue' => 'localhost'
]
]);
$climate->arguments->parse();
$environment = $climate->arguments->get('environment');
// Set up environment based on params.
Setup::$environment = $environment;
$grav = Grav::instance(array('loader' => $autoload)); $grav = Grav::instance(array('loader' => $autoload));
$grav['uri']->init();
$grav['config']->init();
$grav['streams'];
$grav['plugins']->init();
$grav['themes']->init();
$app = new PluginApplication('Grav Plugins Commands', GRAV_VERSION);
$app = new Application('Grav Plugins Commands', GRAV_VERSION); $app->run();
$pattern = '([A-Z]\w+Command\.php)';
// get arguments and strip the application name
if (null === $argv) {
$argv = $_SERVER['argv'];
}
$bin = array_shift($argv);
$name = array_shift($argv);
$argv = array_merge([$bin], $argv);
$input = new ArgvInput($argv);
$plugin = $grav['plugins']->get($name);
$output = new ConsoleOutput();
$output->getFormatter()->setStyle('red', new OutputFormatterStyle('red', null, array('bold')));
$output->getFormatter()->setStyle('white', new OutputFormatterStyle('white', null, array('bold')));
if (!$name) {
$output->writeln('');
$output->writeln("<red>Usage:</red>");
$output->writeln(" {$bin} [slug] [command] [arguments]");
$output->writeln('');
$output->writeln("<red>Example:</red>");
$output->writeln(" {$bin} error log -l 1 --trace");
$list = Folder::all('plugins://', ['compare' => 'Pathname', 'pattern' => '/\/cli\/' . $pattern . '$/usm', 'levels' => 2]);
if (count($list)) {
$available = [];
$output->writeln('');
$output->writeln('<red>Plugins with CLI available:</red>');
foreach ($list as $index => $entry) {
$split = explode('/', $entry);
$entry = array_shift($split);
$index = str_pad($index++ + 1, 2, '0', STR_PAD_LEFT);
if (in_array($entry, $available)) {
continue;
}
$available[] = $entry;
$output->writeln(' ' . $index . ". <red>" . str_pad($entry, 15) . "</red> <white>${bin} ${entry} list</white>");
}
}
exit;
}
if ($plugin === null) {
$output->writeln("<red>Grav Plugin <white>'{$name}'</white> is not installed</red>");
exit;
}
$path = 'plugins://' . $name . '/cli';
try {
$commands = Folder::all($path, ['compare' => 'Filename', 'pattern' => '/' . $pattern . '$/usm', 'levels' => 1]);
} catch (\RuntimeException $e) {
$output->writeln("<red>No Console Commands for <white>'{$name}'</white> where found in <white>'{$path}'</white></red>");
exit;
}
foreach ($commands as $command_path) {
$full_path = $grav['locator']->findResource("plugins://{$name}/cli/{$command_path}");
require_once $full_path;
$command_class = 'Grav\Plugin\Console\\' . preg_replace('/.php$/', '', $command_path);
$command = new $command_class();
$app->add($command);
}
$app->run($input);

View File

@ -2,71 +2,114 @@
"name": "getgrav/grav", "name": "getgrav/grav",
"type": "project", "type": "project",
"description": "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS", "description": "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS",
"keywords": ["cms","flat-file cms","flat cms","flatfile cms","php"], "keywords": [
"cms",
"flat-file cms",
"flat cms",
"flatfile cms",
"php"
],
"homepage": "https://getgrav.org", "homepage": "https://getgrav.org",
"license": "MIT", "license": "MIT",
"require": { "require": {
"php": ">=5.6.4", "php": "^7.3.6 || ^8.0",
"twig/twig": "~1.24", "ext-json": "*",
"erusev/parsedown": "1.6.4",
"erusev/parsedown-extra": "~0.7",
"symfony/yaml": "~3.4",
"symfony/console": "~3.4",
"symfony/event-dispatcher": "~3.4",
"symfony/var-dumper": "~3.4",
"symfony/polyfill-iconv": "~1.0",
"doctrine/cache": "^1.6",
"doctrine/collections": "^1.4",
"psr/simple-cache": "^1.0",
"psr/http-message": "^1.0",
"guzzlehttp/psr7": "^1.4",
"filp/whoops": "~2.0",
"matthiasmullie/minify": "^1.3",
"monolog/monolog": "~1.0",
"gregwar/image": "2.*",
"donatj/phpuseragentparser": "~0.3",
"pimple/pimple": "~3.2",
"rockettheme/toolbox": "1.4.2",
"maximebf/debugbar": "~1.10",
"ext-mbstring": "*",
"ext-openssl": "*", "ext-openssl": "*",
"ext-curl": "*", "ext-curl": "*",
"ext-zip": "*", "ext-zip": "*",
"ext-json": "*", "ext-dom": "*",
"league/climate": "^3.2", "ext-libxml": "*",
"symfony/polyfill-mbstring": "~1.20",
"symfony/polyfill-iconv": "^1.20",
"symfony/polyfill-php74": "^1.20",
"symfony/polyfill-php80": "^1.20",
"psr/simple-cache": "^1.0",
"psr/http-message": "^1.0",
"psr/http-server-middleware": "^1.0",
"psr/container": "~1.0.0",
"nyholm/psr7-server": "^1.0",
"nyholm/psr7": "^1.3",
"twig/twig": "~1.44",
"erusev/parsedown": "^1.7",
"erusev/parsedown-extra": "~0.8",
"symfony/contracts": "~1.1",
"symfony/yaml": "~4.4",
"symfony/console": "~4.4",
"symfony/event-dispatcher": "~4.4",
"symfony/var-dumper": "~4.4",
"symfony/process": "~4.4",
"doctrine/cache": "^1.10",
"doctrine/collections": "^1.6",
"guzzlehttp/psr7": "^1.7",
"filp/whoops": "~2.9",
"matthiasmullie/minify": "^1.3",
"monolog/monolog": "~1.25",
"getgrav/image": "^3.0",
"getgrav/cache": "^2.0",
"donatj/phpuseragentparser": "~1.1",
"pimple/pimple": "~3.3.0",
"rockettheme/toolbox": "~1.5",
"maximebf/debugbar": "~1.16",
"league/climate": "^3.6",
"antoligy/dom-string-iterators": "^1.0", "antoligy/dom-string-iterators": "^1.0",
"miljar/php-exif": "^0.6.3", "miljar/php-exif": "^0.6",
"composer/ca-bundle": "^1.0", "composer/ca-bundle": "^1.2",
"phive/twig-extensions-deferred": "^1.0" "dragonmantank/cron-expression": "^1.2",
"phive/twig-extensions-deferred": "^1.0",
"willdurand/negotiation": "^3.0",
"itsgoingd/clockwork": "^5.0",
"enshrined/svg-sanitize": "~0.13",
"symfony/http-client": "^4.4",
"composer/semver": "^1.4"
}, },
"require-dev": { "require-dev": {
"codeception/codeception": "^2.1", "codeception/codeception": "^4.1",
"phpunit/php-code-coverage": "~2.0", "phpstan/phpstan": "^0.12",
"fzaninotto/faker": "^1.5", "phpstan/phpstan-deprecation-rules": "^0.12",
"victorjonsson/markdowndocs": "dev-master" "phpunit/php-code-coverage": "~9.2",
"getgrav/markdowndocs": "^2.0",
"codeception/module-asserts": "^1.3",
"codeception/module-phpbrowser": "^1.0",
"symfony/service-contracts": "*"
},
"replace": {
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*"
},
"suggest": {
"ext-mbstring": "Recommended for better performance",
"ext-iconv": "Recommended for better performance",
"ext-zend-opcache": "Recommended for better performance",
"ext-intl": "Recommended for multi-language sites",
"ext-memcache": "Needed to support Memcache servers",
"ext-memcached": "Needed to support Memcached servers",
"ext-redis": "Needed to support Redis servers"
}, },
"config": { "config": {
"apcu-autoloader": true,
"platform": { "platform": {
"php": "5.6.4" "php": "7.3.6"
} }
}, },
"repositories": [
{
"type": "vcs",
"url": "https://github.com/trilbymedia/PHP-Markdown-Documentation-Generator"
}
],
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Grav\\": "system/src/Grav" "Grav\\": "system/src/Grav"
}, },
"files": ["system/defines.php"] "files": [
"system/defines.php"
]
}, },
"archive": { "archive": {
"exclude": ["VERSION"] "exclude": [
"VERSION"
]
}, },
"scripts": { "scripts": {
"api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md",
"post-create-project-cmd": "bin/grav install", "post-create-project-cmd": "bin/grav install",
"phpstan": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src",
"phpstan-framework": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer",
"phpstan-plugins": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/plugins.neon --memory-limit=400M user/plugins",
"test": "vendor/bin/codecept run unit", "test": "vendor/bin/codecept run unit",
"test-windows": "vendor\\bin\\codecept run unit" "test-windows": "vendor\\bin\\codecept run unit"
}, },

4607
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -3,45 +3,49 @@
/** /**
* @package Grav.Core * @package Grav.Core
* *
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved. * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details. * @license MIT License; see LICENSE file for details.
*/ */
namespace Grav; namespace Grav;
define('GRAV_PHP_MIN', '5.6.4'); \define('GRAV_REQUEST_TIME', microtime(true));
\define('GRAV_PHP_MIN', '7.3.6');
// Ensure vendor libraries exist
$autoload = __DIR__ . '/vendor/autoload.php';
if (!is_file($autoload)) {
die("Please run: <i>bin/grav install</i>");
}
if (PHP_SAPI === 'cli-server') {
if (!isset($_SERVER['PHP_CLI_ROUTER'])) {
die("PHP webserver requires a router to run Grav, please use: <pre>php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php</pre>");
}
}
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
die(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req)); die(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req));
} }
// Register the auto-loader. if (PHP_SAPI === 'cli-server') {
$loader = require $autoload; $symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'], 'symfony
') !== false;
if (!isset($_SERVER['PHP_CLI_ROUTER']) && !$symfony_server) {
die("PHP webserver requires a router to run Grav, please use: <pre>php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php</pre>");
}
}
// Set timezone to default, falls back to system if php.ini not set // Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get()); date_default_timezone_set(@date_default_timezone_get());
// Set internal encoding if mbstring loaded // Set internal encoding.
if (!extension_loaded('mbstring')) { if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly"); die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
} }
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8'); mb_internal_encoding('UTF-8');
// Ensure vendor libraries exist
$autoload = __DIR__ . '/vendor/autoload.php';
if (!is_file($autoload)) {
die('Please run: <i>bin/grav install</i>');
}
// Register the auto-loader.
$loader = require $autoload;
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
// Get the Grav instance // Get the Grav instance
$grav = Grav::instance( $grav = Grav::instance(
array( array(
@ -52,6 +56,9 @@ $grav = Grav::instance(
// Process the page // Process the page
try { try {
$grav->process(); $grav->process();
} catch (\Error $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
} catch (\Exception $e) { } catch (\Exception $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' => $e))); $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e; throw $e;

4
now.json Normal file
View File

@ -0,0 +1,4 @@
{
"version": 2,
"builds": [{ "src": "*.php", "use": "@now/php" }]
}

View File

@ -1,54 +0,0 @@
div.phpdebugbar {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.phpdebugbar pre {
padding: 1rem;
}
.phpdebugbar div.phpdebugbar-header > div > * {
padding: 5px 15px;
}
.phpdebugbar div.phpdebugbar-header > div.phpdebugbar-header-right > * {
padding: 5px 8px;
}
.phpdebugbar div.phpdebugbar-header, .phpdebugbar a.phpdebugbar-restore-btn {
background-image: url(grav.png);
}
.phpdebugbar a.phpdebugbar-restore-btn {
width: 13px;
}
.phpdebugbar a.phpdebugbar-tab.phpdebugbar-active {
background: #3DB9EC;
color: #fff;
margin-top: -1px;
padding-top: 6px;
}
.phpdebugbar .phpdebugbar-widgets-toolbar {
padding-left: 5px;
}
.phpdebugbar input[type=text] {
padding: 0;
display: inline;
}
.phpdebugbar dl.phpdebugbar-widgets-varlist, ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label {
font-family: "DejaVu Sans Mono", Menlo, Monaco, Consolas, Courier, monospace;
font-size: 12px;
}
ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label {
text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
top: 0;
}
.phpdebugbar pre, .phpdebugbar code {
margin: 0;
font-size: 14px;
}

View File

@ -0,0 +1,2 @@
/** Clockwork Debugger CSS **/
.clockwork-badge{position:fixed;z-index:10;bottom:0;left:0;padding:2px 4px;background-color:#eee;border:1px solid #ccc;border-bottom:0;border-left:0;display:flex;align-items:center}.clockwork-badge:hover{width:auto}.clockwork-badge:hover:after{content:'Grav Clockwork debugger enabled. Install Clockwork Browser extension (Chrome or Firefox), open your Developer tools and then select the Clockwork tab.'}.clockwork-badge:after{margin-left:10px;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:12px;line-height:1.5;color:#666}.clockwork-badge i{display:block;float:left;height:22px;width:22px;min-width:22px;background-size:contain;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA/1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4AAAD///8EBAT7+/sLCwv29vYVFRUvLy/t7e3m5ubCwsKxsbE/Pz+mpqZMTEwcHBzy8vLp6emfn5+AgIA2Njbi4uLf39+rq6tzc3NWVlYhISHa2trW1tbS0tLMzMy7u7uZmZmUlJSMjIxvb29kZGRHR0c7Ozt5eXkqKiq1tbWQkJBqampbW1tSUlLHx8eHh4ckJCRDQ0M3wD42AAAAI3RSTlMA/PibTbQ0x76TVAlw4LhZLOuEYCAN9Hjx0a2ppGZEGYw97djhXHwAAATZSURBVFjDlVcHW+MwDO1eFCjj2McNOzvdpXTTXVbL/P+/5SQ7QSSX5Di1X1onfi/Sk+Q4sTDbKqWK+YuznZ2zi3wxVdqK/Zf92M1nT9gnO8rmd398GX6Z3xaoOFoiAQcx3E5efgmeSuN8F6Xg1x3G06l/wjNpMR1B0uif4EhnIuFb+0diIoFXk3IVfokisR+h52GO4JKgyjmfaMhAFNlSaPR7DpwI+lzn/E4QKIqmKIJirxCMP4izBPPZPXhgXwMBYgULw0nfg/BF5scDbslb7QeJ08yqqTEmGYoB95d4H8ETL8+n9wBqrLu6ao3bBsMwAnxISf/9BHcqxNB8Y7cWl3Zz7TAUfPrvAT6AoNEFFXvsjutL01yOuMrtBxnFXsmT/1wQHmdWAFNnI3uI48Yj0FUcHbKf62GfUfr8eeQt7Uk3mQZpZNoVRPEui5vtEz5zFEpgWnyqVBZMc6oaGNriH2hGVZ0OxEvInPeMaZWJBA7vmPbCr5jjws5HBnAUxvDMH40aCIf4G5BjRQSs8E8HFFYf8bGxgDvD55bzGhwWkoBcuIyHR/AMdaCagxXDhtL6tSqoWpd4BMnlIR+Or+rYTK/a3EAGcc6e4AWHISnWv20iCCojsHoVlQdjrMexFF2C7UMg2A2WEGWbQhXN6l3eXC6XGp4b9qxbuEB2EBGBwtocrK90cVG5mbRXm6vmx/0phq1sIAGKDgLOBiN1MrO5a9aDl+D0W6x0Ar9BCTRuIIANa90Y7LrLVRXzwVtDInCqMRWcf2bUOEAsa4wJqFowQALL9EiAtVRk8QC4OW+1pOM9jIaVASwYagyNXDj+W0NcfuZNzjtXOiL0Zzg30Llj+ptfxQs4+vBPNiL5PawFCBkgXpUaVtqGl+A8dgZHL34BcBUQrwPptToW+o37Ku+UH9eYByJIx3YkAeFnMFuGO7S5gEp7YhXxa5OOAM39RXDPXb0qmpROsswZe+twXdU55oUIZAiEv3bD1UFwIYKkmGqytPCDCwKFQCKK0yL7qtSAPX54UAbtsLuBHkb9zyLmPQSNjsSgmQwKUOIfEY8F8t4B34DvndJY9BA8tNBJq1Nev9axmaStFcQLhgYoCTo0salkIaW8OUDdWjMTR2sHPhrAFZqx6cqcKE4pl2BJJ4K6hfwvqNgAnXfKX/HU6X3Zrhnu0k7tLNZtTBRv1hkwTDBY1NzFU6doDYjJbWdQkQhWwuU7/LvhTh3SDoco4ECL4i5dwURbc8NdDZz2IwKicE8d0KIqWetLE3+lL4hvUuGSeRfVWNLfj/gpOw4smBJBkKQHCzlHGwvAj4woB1gq5NGGLSXtORBPnUQPV5/MPVkDMxbpwG7w4x0xL6Ltxka0A/4NBvV09UVk4DoSn/jl2+JQS9q9KYawisAD4CfhsZ4TH3htylsdEHARIQBusqCKyUpymycgbbkkXEXjT3z7/oKQFTFVuZD2FMJHZIDsO5x2d4aAr2jR+GLwZhtAb028/0yJ9J8dE87jQyKObcjtTXT8dH+fDuKF4/eiPwzH44wTf/yUi6wrpRIOZ9lM1EtXAifFI+CJn9+iX/t2xMQwOMth/UZbASi8btAwR9FHWSpJr75g9Oqbin3VDg+SpwlP6k6TB4ex/7JvmcJx8jydy6XPk8eFTKhyfwCgX71MSvaBHgAAAABJRU5ErkJggg==)}

View File

@ -0,0 +1,3 @@
/** Clockwork Debugger JS **/
document.addEventListener("DOMContentLoaded",function () {
var e=document.createElement("div");e.appendChild(document.createElement("i")),e.className="clockwork-badge",document.body.appendChild(e)});

View File

@ -0,0 +1,70 @@
div.phpdebugbar {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.phpdebugbar pre {
padding: 1rem;
}
.phpdebugbar div.phpdebugbar-header > div > * {
padding: 5px 15px;
}
.phpdebugbar div.phpdebugbar-header > div.phpdebugbar-header-right > * {
padding: 5px 8px;
}
.phpdebugbar div.phpdebugbar-header, .phpdebugbar a.phpdebugbar-restore-btn {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA/1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4AAAD///8EBAT7+/sLCwv29vYVFRUvLy/t7e3m5ubCwsKxsbE/Pz+mpqZMTEwcHBzy8vLp6emfn5+AgIA2Njbi4uLf39+rq6tzc3NWVlYhISHa2trW1tbS0tLMzMy7u7uZmZmUlJSMjIxvb29kZGRHR0c7Ozt5eXkqKiq1tbWQkJBqampbW1tSUlLHx8eHh4ckJCRDQ0M3wD42AAAAI3RSTlMA/PibTbQ0x76TVAlw4LhZLOuEYCAN9Hjx0a2ppGZEGYw97djhXHwAAATZSURBVFjDlVcHW+MwDO1eFCjj2McNOzvdpXTTXVbL/P+/5SQ7QSSX5Di1X1onfi/Sk+Q4sTDbKqWK+YuznZ2zi3wxVdqK/Zf92M1nT9gnO8rmd398GX6Z3xaoOFoiAQcx3E5efgmeSuN8F6Xg1x3G06l/wjNpMR1B0uif4EhnIuFb+0diIoFXk3IVfokisR+h52GO4JKgyjmfaMhAFNlSaPR7DpwI+lzn/E4QKIqmKIJirxCMP4izBPPZPXhgXwMBYgULw0nfg/BF5scDbslb7QeJ08yqqTEmGYoB95d4H8ETL8+n9wBqrLu6ao3bBsMwAnxISf/9BHcqxNB8Y7cWl3Zz7TAUfPrvAT6AoNEFFXvsjutL01yOuMrtBxnFXsmT/1wQHmdWAFNnI3uI48Yj0FUcHbKf62GfUfr8eeQt7Uk3mQZpZNoVRPEui5vtEz5zFEpgWnyqVBZMc6oaGNriH2hGVZ0OxEvInPeMaZWJBA7vmPbCr5jjws5HBnAUxvDMH40aCIf4G5BjRQSs8E8HFFYf8bGxgDvD55bzGhwWkoBcuIyHR/AMdaCagxXDhtL6tSqoWpd4BMnlIR+Or+rYTK/a3EAGcc6e4AWHISnWv20iCCojsHoVlQdjrMexFF2C7UMg2A2WEGWbQhXN6l3eXC6XGp4b9qxbuEB2EBGBwtocrK90cVG5mbRXm6vmx/0phq1sIAGKDgLOBiN1MrO5a9aDl+D0W6x0Ar9BCTRuIIANa90Y7LrLVRXzwVtDInCqMRWcf2bUOEAsa4wJqFowQALL9EiAtVRk8QC4OW+1pOM9jIaVASwYagyNXDj+W0NcfuZNzjtXOiL0Zzg30Llj+ptfxQs4+vBPNiL5PawFCBkgXpUaVtqGl+A8dgZHL34BcBUQrwPptToW+o37Ku+UH9eYByJIx3YkAeFnMFuGO7S5gEp7YhXxa5OOAM39RXDPXb0qmpROsswZe+twXdU55oUIZAiEv3bD1UFwIYKkmGqytPCDCwKFQCKK0yL7qtSAPX54UAbtsLuBHkb9zyLmPQSNjsSgmQwKUOIfEY8F8t4B34DvndJY9BA8tNBJq1Nev9axmaStFcQLhgYoCTo0salkIaW8OUDdWjMTR2sHPhrAFZqx6cqcKE4pl2BJJ4K6hfwvqNgAnXfKX/HU6X3Zrhnu0k7tLNZtTBRv1hkwTDBY1NzFU6doDYjJbWdQkQhWwuU7/LvhTh3SDoco4ECL4i5dwURbc8NdDZz2IwKicE8d0KIqWetLE3+lL4hvUuGSeRfVWNLfj/gpOw4smBJBkKQHCzlHGwvAj4woB1gq5NGGLSXtORBPnUQPV5/MPVkDMxbpwG7w4x0xL6Ltxka0A/4NBvV09UVk4DoSn/jl2+JQS9q9KYawisAD4CfhsZ4TH3htylsdEHARIQBusqCKyUpymycgbbkkXEXjT3z7/oKQFTFVuZD2FMJHZIDsO5x2d4aAr2jR+GLwZhtAb028/0yJ9J8dE87jQyKObcjtTXT8dH+fDuKF4/eiPwzH44wTf/yUi6wrpRIOZ9lM1EtXAifFI+CJn9+iX/t2xMQwOMth/UZbASi8btAwR9FHWSpJr75g9Oqbin3VDg+SpwlP6k6TB4ex/7JvmcJx8jydy6XPk8eFTKhyfwCgX71MSvaBHgAAAABJRU5ErkJggg==);
}
.phpdebugbar a.phpdebugbar-restore-btn {
width: 13px;
}
.phpdebugbar a.phpdebugbar-tab.phpdebugbar-active {
background: #3DB9EC;
color: #fff;
margin-top: -1px;
padding-top: 6px;
}
.phpdebugbar .phpdebugbar-widgets-toolbar {
border-top: 1px solid #ddd;
padding-left: 5px;
padding-right: 2px;
padding-top: 2px;
background-color: #fafafa !important;
width: auto !important;
left: 0;
right: 0;
}
.phpdebugbar .phpdebugbar-widgets-toolbar input {
background: transparent !important;
}
.phpdebugbar .phpdebugbar-widgets-toolbar .phpdebugbar-widgets-filter {
}
.phpdebugbar input[type=text] {
padding: 0;
display: inline;
}
.phpdebugbar dl.phpdebugbar-widgets-varlist, ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label {
font-family: "DejaVu Sans Mono", Menlo, Monaco, Consolas, Courier, monospace;
font-size: 12px;
}
ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label {
text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
top: 0;
}
.phpdebugbar pre, .phpdebugbar code {
margin: 0;
font-size: 14px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,125 @@
title: PLUGIN_ADMIN.BACKUPS
form:
validation: loose
fields:
history_title:
type: section
title: PLUGIN_ADMIN.BACKUPS_HISTORY
underline: true
history:
type: backupshistory
config_title:
type: section
title: PLUGIN_ADMIN.BACKUPS_PURGE_CONFIG
underline: true
purge.trigger:
type: select
label: PLUGIN_ADMIN.BACKUPS_STORAGE_PURGE_TRIGGER
size: medium
default: space
options:
space: Maximum Backup Space
number: Maximum Number of Backups
time: maximum Retention Time
validate:
required: true
purge.max_backups_count:
type: number
label: PLUGIN_ADMIN.BACKUPS_MAX_COUNT
default: 25
size: x-small
help: PLUGIN_ADMIN.BACKUPS_MAX_COUNT
validate:
min: 0
type: number
required: true
message: Must be a number 0 or greater
purge.max_backups_space:
type: number
label: PLUGIN_ADMIN.BACKUPS_MAX_SPACE
append: in GB
size: x-small
default: 5
validate:
min: 1
type: number
required: true
message: Space must be 1GB or greater
purge.max_backups_time:
type: number
label: PLUGIN_ADMIN.BACKUPS_MAX_RETENTION_TIME
append: PLUGIN_ADMIN.BACKUPS_MAX_RETENTION_TIME_APPEND
size: x-small
default: 365
validate:
min: 7
type: number
required: true
message: Rentenion days must be 7 or greater
profiles_title:
type: section
title: PLUGIN_ADMIN.BACKUPS_PROFILES
underline: true
profiles:
type: list
style: vertical
label:
classes: backups-list compact
sort: false
fields:
.name:
type: text
label: PLUGIN_ADMIN.NAME
placeholder: PLUGIN_ADMIN.BACKUPS_PROFILE_NAME
validate:
max: 20
message: 'Name must be less than 20 characters'
required: true
.root:
type: text
label: PLUGIN_ADMIN.BACKUPS_PROFILE_ROOT_FOLDER
help: PLUGIN_ADMIN.BACKUPS_PROFILE_ROOT_FOLDER_HELP
placeholder: '/'
default: '/'
validate:
required: true
.exclude_paths:
type: textarea
label: PLUGIN_ADMIN.BACKUPS_PROFILE_EXCLUDE_PATHS
rows: 5
placeholder: "/backup\r/cache\r/images\r/logs\r/tmp"
help: PLUGIN_ADMIN.BACKUPS_PROFILE_EXCLUDE_PATHS_HELP
.exclude_files:
type: textarea
label: PLUGIN_ADMIN.BACKUPS_PROFILE_EXCLUDE_FILES
rows: 5
placeholder: ".DS_Store\r.git\r.svn\r.hg\r.idea\r.vscode\rnode_modules"
help: PLUGIN_ADMIN.BACKUPS_PROFILE_EXCLUDE_FILES_HELP
.schedule:
type: toggle
label: PLUGIN_ADMIN.BACKUPS_PROFILE_SCHEDULE
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
.schedule_at:
type: cron
label: PLUGIN_ADMIN.BACKUPS_PROFILE_SCHEDULE_AT
default: '* 3 * * *'
validate:
required: true

View File

@ -0,0 +1,77 @@
title: PLUGIN_ADMIN.SCHEDULER
form:
validation: loose
fields:
status_title:
type: section
title: PLUGIN_ADMIN.SCHEDULER_STATUS
underline: true
status:
type: cronstatus
validate:
type: commalist
jobs_title:
type: section
title: PLUGIN_ADMIN.SCHEDULER_JOBS
underline: true
custom_jobs:
type: list
style: vertical
label:
classes: cron-job-list compact
key: id
fields:
.id:
type: key
label: ID
placeholder: 'process-name'
validate:
required: true
pattern: '[a-zа-я0-9_\-]+'
max: 20
message: 'ID must be lowercase with dashes/underscores only and less than 20 characters'
.command:
type: text
label: PLUGIN_ADMIN.COMMAND
placeholder: 'ls'
validate:
required: true
.args:
type: text
label: PLUGIN_ADMIN.EXTRA_ARGUMENTS
placeholder: '-lah'
.at:
type: cron
label: PLUGIN_ADMIN.SCHEDULER_RUNAT
help: PLUGIN_ADMIN.SCHEDULER_RUNAT_HELP
placeholder: '* * * * *'
validate:
required: true
.output:
type: text
label: PLUGIN_ADMIN.SCHEDULER_OUTPUT
help: PLUGIN_ADMIN.SCHEDULER_OUTPUT_HELP
placeholder: 'logs/ls-cron.out'
.output_mode:
type: select
label: PLUGIN_ADMIN.SCHEDULER_OUTPUT_TYPE
help: PLUGIN_ADMIN.SCHEDULER_OUTPUT_TYPE_HELP
default: append
options:
append: Append
overwrite: Overwrite
.email:
type: text
label: PLUGIN_ADMIN.SCHEDULER_EMAIL
help: PLUGIN_ADMIN.SCHEDULER_EMAIL_HELP
placeholder: 'notifications@yoursite.com'

View File

@ -41,6 +41,14 @@ form:
validate: validate:
type: bool type: bool
xss_invalid_protocols:
type: selectize
size: large
label: PLUGIN_ADMIN.XSS_INVALID_PROTOCOLS_LIST
classes: fancy
validate:
type: commalist
xss_enabled.moz_binding: xss_enabled.moz_binding:
type: toggle type: toggle
label: PLUGIN_ADMIN.XSS_MOZ_BINDINGS label: PLUGIN_ADMIN.XSS_MOZ_BINDINGS
@ -97,3 +105,15 @@ form:
validate: validate:
type: commalist type: commalist
sanitize_svg:
type: toggle
label: PLUGIN_ADMIN.SANITIZE_SVG
help: PLUGIN_ADMIN.SANITIZE_SVG_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
default: true
validate:
type: bool

View File

@ -65,7 +65,7 @@ form:
summary.size: summary.size:
type: text type: text
size: x-small size: small
append: PLUGIN_ADMIN.CHARACTERS append: PLUGIN_ADMIN.CHARACTERS
label: PLUGIN_ADMIN.SUMMARY_SIZE label: PLUGIN_ADMIN.SUMMARY_SIZE
help: PLUGIN_ADMIN.SUMMARY_SIZE_HELP help: PLUGIN_ADMIN.SUMMARY_SIZE_HELP

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
title: Flex User Accounts
description: Manage your User Accounts in Flex.
type: flex-objects
# Deprecated in Grav 1.7.0-rc.4: file was renamed to user-accounts.yaml
extends@:
type: user-accounts
context: blueprints://flex

View File

@ -0,0 +1,17 @@
form:
compatibility:
type: tab
title: Compatibility
fields:
object.compat.events:
type: toggle
toggleable: true
label: Admin event compatibility
help: Enables onAdminSave and onAdminAfterSave events for plugins
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool

View File

@ -0,0 +1,212 @@
title: Pages
description: Manage your Grav Pages in Flex.
type: flex-objects
# Extends a page (blueprint gets overridden inside the object)
extends@:
type: default
context: blueprints://pages
#
# HIGHLY SPECIALIZED FLEX TYPE, AVOID USING PAGES AS BASE FOR YOUR OWN TYPE.
#
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/pages'
# Permissions
permissions:
# Primary permissions
admin.pages:
type: crudl
label: Pages
admin.configuration.pages:
type: default
label: Pages Configuration
# Admin menu
menu:
list:
route: '/pages'
title: PLUGIN_ADMIN.PAGES
icon: fa-file-text
authorize: ['admin.pages.list', 'admin.super']
priority: 5
# Admin template type (folder)
template: pages
# Allowed admin actions
actions:
list: true
create: true
read: true
update: true
delete: true
# List view
list:
# Fields shown in the list view
fields:
published:
width: 8
alias: header.published
visible:
width: 8
field:
label: Visible
type: toggle
menu:
link: edit
alias: header.menu
full_route:
field:
label: Route
type: text
link: edit
sort:
field: key
name:
width: 8
field:
label: Type
type: text
translations:
width: 8
field:
label: Translations
type: text
# updated_date:
# alias: header.update_date
# Extra options
options:
# Default number of records for pagination
per_page: 20
# Default ordering
order:
by: key
dir: asc
# TODO: not used yet
buttons:
back:
icon: reply
title: PLUGIN_ADMIN.BACK
add:
icon: plus
label: PLUGIN_ADMIN.ADD
edit:
title:
template: "{% if object.root %}Root <small>( &lt;root&gt; ){% else %}{{ (form.value('header.title') ?? form.value('folder'))|e }} <small>( {{ (object.getRoute().toString(false) ?: '/')|e }} )</small>{% endif %}"
# TODO: not used yet
buttons:
back:
icon: reply
title: PLUGIN_ADMIN.BACK
preview:
icon: eye
title: PLUGIN_ADMIN.PREVIEW
add:
icon: plus
label: PLUGIN_ADMIN.ADD
copy:
icon: copy
label: PLUGIN_ADMIN.COPY
move:
icon: arrows
label: PLUGIN_ADMIN.MOVE
delete:
icon: close
label: PLUGIN_ADMIN.DELETE
save:
icon: check
label: PLUGIN_ADMIN.SAVE
# Preview View
preview:
enabled: true
# Configure view
configure:
authorize: 'admin.configuration.pages'
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: pages
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Default filters for frontend.
filter:
- withPublished
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\Pages\PageObject'
collection: 'Grav\Common\Flex\Types\Pages\PageCollection'
index: 'Grav\Common\Flex\Types\Pages\PageIndex'
storage:
class: 'Grav\Common\Flex\Types\Pages\Storage\PageStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\MarkdownFormatter'
folder: 'page://'
# Keep index file in filesystem to speed up lookups
indexed: true
# Set default ordering of the pages
ordering:
storage_key: ASC
search:
# Search options
options:
contains: 1
# Fields to be searched
fields:
- key
- menu
- title
- name
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex
# Regular form definition
form:
fields:
lang:
type: hidden
value: ''
tabs:
fields:
security:
type: tab
title: PLUGIN_ADMIN.SECURITY
import@:
type: partials/security
context: blueprints://pages

View File

@ -0,0 +1,70 @@
form:
validation: loose
fields:
tabs:
type: tabs
fields:
cache:
type: tab
title: Caching
fields:
object.cache.index.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.index.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.index.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_LIFETIME
config-default@: system.flex.cache.index.lifetime
validate:
type: int
object.cache.object.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.object.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.object.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_LIFETIME
config-default@: system.flex.cache.object.lifetime
validate:
type: int
object.cache.render.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.render.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.render.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_LIFETIME
config-default@: system.flex.cache.render.lifetime
validate:
type: int

View File

@ -0,0 +1,142 @@
title: User Accounts
description: Manage your User Accounts in Flex.
type: flex-objects
# Extends user account
extends@:
type: account
context: blueprints://user
#
# HIGHLY SPECIALIZED FLEX TYPE, AVOID USING USER ACCOUNTS AS BASE FOR YOUR OWN TYPE.
#
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/accounts/users'
actions:
configure:
path: '/accounts/configure'
redirects:
'/user': '/accounts/users'
'/accounts': '/accounts/users'
# Permissions
permissions:
# Primary permissions
admin.users:
type: crudl
label: User Accounts
admin.configuration.users:
type: default
label: Accounts Configuration
# Admin menu
menu:
base:
location: '/accounts'
route: '/accounts/users'
index: 0
title: PLUGIN_ADMIN.ACCOUNTS
icon: fa-users
authorize: ['admin.users.list', 'admin.super']
priority: 6
# Admin template type (folder)
template: user-accounts
# List view
list:
# Fields shown in the list view
fields:
username:
link: edit
search: true
field:
label: PLUGIN_ADMIN.USERNAME
email:
search: true
fullname:
search: true
# Extra options
options:
per_page: 20
order:
by: username
dir: asc
# Edit view
edit:
title:
template: "{{ form.value('fullname') ?? form.value('username') }} &lt;{{ form.value('email') }}&gt;"
# Configure view
configure:
hidden: true
authorize: 'admin.configuration.users'
form: 'accounts'
title:
template: "{{ 'PLUGIN_ADMIN.ACCOUNTS'|tu }} {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }}"
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: user-accounts
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\Users\UserObject'
collection: 'Grav\Common\Flex\Types\Users\UserCollection'
index: 'Grav\Common\Flex\Types\Users\UserIndex'
storage:
class: 'Grav\Common\Flex\Types\Users\Storage\UserFileStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\YamlFormatter'
folder: 'account://'
pattern: '{FOLDER}/{KEY}{EXT}'
indexed: true
key: username
case_sensitive: false
search:
options:
contains: 1
fields:
- key
- email
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex
# Regular form definition
form:
fields:
username:
flex-disabled@: exists
disabled: false
flex-readonly@: exists
readonly: false
validate:
required: true

View File

@ -0,0 +1,123 @@
title: User Groups
description: Manage your User Groups in Flex.
type: flex-objects
# Extends user group
extends@:
type: group
context: blueprints://user
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/accounts/groups'
actions:
configure:
path: '/accounts/configure'
redirects:
'/groups': '/accounts/groups'
'/accounts': '/accounts/groups'
# Permissions
permissions:
# Primary permissions
admin.users:
type: crudl
label: User Accounts
admin.configuration.users:
type: default
label: Accounts Configuration
# Admin menu
menu:
base:
location: '/accounts'
route: '/accounts/groups'
index: 1
title: PLUGIN_ADMIN.ACCOUNTS
icon: fa-users
authorize: ['admin.users.list', 'admin.super']
priority: 6
# Admin template type (folder)
template: user-groups
# List view
list:
# Fields shown in the list view
fields:
groupname:
link: edit
search: true
readableName:
search: true
description:
search: true
# Extra options
options:
per_page: 20
order:
by: groupname
dir: asc
# Edit view
edit:
title:
template: "{{ form.value('readableName') ?? form.value('groupname') }}"
# Configure view
configure:
hidden: true
authorize: 'admin.configuration.users'
form: 'accounts'
title:
template: "{{ 'PLUGIN_ADMIN.ACCOUNTS'|tu }} {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }}"
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: user-groups
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\UserGroups\UserGroupObject'
collection: 'Grav\Common\Flex\Types\UserGroups\UserGroupCollection'
index: 'Grav\Common\Flex\Types\UserGroups\UserGroupIndex'
storage:
class: 'Grav\Framework\Flex\Storage\SimpleStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\YamlFormatter'
folder: 'user://config/groups.yaml'
key: groupname
search:
options:
contains: 1
fields:
- key
- groupname
- description
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex

View File

@ -121,7 +121,7 @@ form:
underline: true underline: true
folder: folder:
type: text type: folder-slug
label: PLUGIN_ADMIN.FOLDER_NAME label: PLUGIN_ADMIN.FOLDER_NAME
validate: validate:
rule: slug rule: slug

View File

@ -1,4 +1,4 @@
title: PLUGIN_ADMIN.MODULAR title: PLUGIN_ADMIN.MODULE
extends@: default extends@: default
form: form:
@ -13,7 +13,7 @@ form:
modular_title: modular_title:
type: spacer type: spacer
title: PLUGIN_ADMIN.MODULAR_SETUP title: PLUGIN_ADMIN.MODULE_SETUP
header.content.items: header.content.items:
type: text type: text
@ -34,5 +34,3 @@ form:
help: '"desc" or "asc" are valid values' help: '"desc" or "asc" are valid values'
placeholder: desc placeholder: desc
size: small size: small

View File

@ -0,0 +1,71 @@
form:
fields:
_site:
type: section
title: PLUGIN_ADMIN.PAGE_ACCESS
underline: true
fields:
header.login.visibility_requires_access:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.PAGE_VISIBILITY_REQUIRES_ACCESS
help: PLUGIN_ADMIN.PAGE_VISIBILITY_REQUIRES_ACCESS_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.access:
type: acl_picker
label: PLUGIN_ADMIN.PAGE_ACCESS
help: PLUGIN_ADMIN.PAGE_ACCESS_HELP
ignore_empty: true
data_type: access
validate:
type: array
value_type: bool
_admin:
security@: {or: [admin.super, admin.configuration.pages]}
type: section
title: PLUGIN_ADMIN.PAGE PERMISSIONS
underline: true
fields:
header.permissions.inherit:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.PAGE_INHERIT_PERMISSIONS
help: PLUGIN_ADMIN.PAGE_INHERIT_PERMISSIONS_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.permissions.authors:
type: list
toggleable: true
label: PLUGIN_ADMIN.PAGE_AUTHORS
help: PLUGIN_ADMIN.PAGE_AUTHORS_HELP
fields:
value:
type: text
placeholder: PLUGIN_ADMIN.USERNAME
style: vertical
header.permissions.groups:
ignore@: true
type: acl_picker
label: PLUGIN_ADMIN.PAGE_GROUPS
help: PLUGIN_ADMIN.PAGE_GROUPS_HELP
ignore_empty: true
data_type: permissions

View File

@ -0,0 +1,16 @@
title: PLUGIN_ADMIN.ROOT
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form:
validation: loose
fields:
tabs:
type: tabs
active: 1

View File

@ -4,122 +4,137 @@ form:
fields: fields:
info: info:
type: userinfo type: userinfo
size: large size: large
avatar: avatar:
type: file type: file
size: large size: large
destination: 'user://accounts/avatars' destination: 'user://accounts/avatars'
multiple: false multiple: false
random_name: true random_name: true
content: content:
type: section type: section
title: PLUGIN_ADMIN.ACCOUNT title: PLUGIN_ADMIN.ACCOUNT
underline: true underline: true
username: username:
type: text type: text
size: large size: large
label: PLUGIN_ADMIN.USERNAME label: PLUGIN_ADMIN.USERNAME
disabled: true disabled: true
readonly: true readonly: true
email: email:
type: email type: email
size: large size: large
label: PLUGIN_ADMIN.EMAIL label: PLUGIN_ADMIN.EMAIL
validate: validate:
type: email type: email
message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
required: true required: true
password: password:
type: password type: password
size: large size: large
label: PLUGIN_ADMIN.PASSWORD label: PLUGIN_ADMIN.PASSWORD
autocomplete: new-password autocomplete: new-password
validate: validate:
required: false required: false
message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
config-pattern@: system.pwd_regex config-pattern@: system.pwd_regex
fullname: fullname:
type: text type: text
size: large size: large
label: PLUGIN_ADMIN.FULL_NAME label: PLUGIN_ADMIN.FULL_NAME
validate: validate:
required: true required: true
title: title:
type: text type: text
size: large size: large
label: PLUGIN_ADMIN.TITLE label: PLUGIN_ADMIN.TITLE
language: language:
type: select type: select
label: PLUGIN_ADMIN.LANGUAGE label: PLUGIN_ADMIN.LANGUAGE
size: medium size: medium
classes: fancy classes: fancy
data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages' data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
default: 'en' default: 'en'
help: PLUGIN_ADMIN.LANGUAGE_HELP help: PLUGIN_ADMIN.LANGUAGE_HELP
twofa_check: content_editor:
type: conditional type: select
condition: config.plugins.admin.twofa_enabled label: PLUGIN_ADMIN.CONTENT_EDITOR
size: medium
classes: fancy
data-options@: 'Grav\Plugin\Admin\Admin::contentEditor'
default: 'default'
help: PLUGIN_ADMIN.CONTENT_EDITOR_HELP
fields: twofa_check:
type: conditional
condition: config.plugins.admin.twofa_enabled
twofa: fields:
title: PLUGIN_ADMIN.2FA_TITLE
type: section
underline: true
twofa_enabled: twofa:
type: toggle title: PLUGIN_ADMIN.2FA_TITLE
label: PLUGIN_ADMIN.2FA_ENABLED type: section
classes: twofa-toggle underline: true
highlight: 1
default: 0 twofa_enabled:
options: type: toggle
1: PLUGIN_ADMIN.YES label: PLUGIN_ADMIN.2FA_ENABLED
0: PLUGIN_ADMIN.NO classes: twofa-toggle
validate: highlight: 1
type: bool default: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
twofa_secret: twofa_secret:
type: 2fa_secret type: 2fa_secret
outerclasses: 'twofa-secret' outerclasses: 'twofa-secret'
markdown: true markdown: true
label: PLUGIN_ADMIN.2FA_SECRET label: PLUGIN_ADMIN.2FA_SECRET
sublabel: PLUGIN_ADMIN.2FA_SECRET_HELP sublabel: PLUGIN_ADMIN.2FA_SECRET_HELP
security:
title: PLUGIN_ADMIN.ACCESS_LEVELS
type: section
security: admin.super
underline: true
fields:
groups:
type: select
multiple: true
size: large
label: PLUGIN_ADMIN.GROUPS
data-options@: '\Grav\Common\User\Group::groupNames'
classes: fancy
help: PLUGIN_ADMIN.GROUPS_HELP
validate:
type: commalist
access: security:
type: permissions security@: admin.super
label: PLUGIN_ADMIN.PERMISSIONS title: PLUGIN_ADMIN.ACCESS_LEVELS
ignore_empty: true type: section
validate: underline: true
type: array
fields:
groups:
security@: admin.super
type: select
multiple: true
size: large
label: PLUGIN_ADMIN.GROUPS
data-options@: '\Grav\Common\User\Group::groupNames'
classes: fancy
help: PLUGIN_ADMIN.GROUPS_HELP
validate:
type: commalist
access:
security@: admin.super
type: permissions
check_authorize: true
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array
value_type: bool

View File

@ -12,5 +12,7 @@ form:
type: text type: text
label: PLUGIN_ADMIN.USERNAME label: PLUGIN_ADMIN.USERNAME
help: PLUGIN_ADMIN.USERNAME_HELP help: PLUGIN_ADMIN.USERNAME_HELP
unset-disabled@: true
unset-readonly@: true
validate: validate:
required: true required: true

View File

@ -1,37 +1,55 @@
title: Group title: Group
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form: form:
validation: loose validation: loose
fields: fields:
spacer: groupname:
type: spacer type: text
text: '<br>' size: large
label: PLUGIN_ADMIN.GROUP_NAME
flex-disabled@: exists
flex-readonly@: exists
validate:
required: true
rule: slug
groupname: readableName:
type: text type: text
size: large size: large
label: PLUGIN_ADMIN.NAME label: PLUGIN_ADMIN.DISPLAY_NAME
disabled: true
readonly: true
readableName: description:
type: text type: text
size: large size: large
label: PLUGIN_ADMIN_PRO.READABLE_NAME label: PLUGIN_ADMIN.DESCRIPTION
description: icon:
type: text type: text
size: large size: small
label: PLUGIN_ADMIN.DESCRIPTION label: PLUGIN_ADMIN.ICON
icon: enabled:
type: text type: toggle
size: small label: PLUGIN_ADMIN.ENABLED
label: PLUGIN_ADMIN_PRO.ICON highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
access: access:
type: permissions type: permissions
label: PLUGIN_ADMIN.PERMISSIONS check_authorize: false
ignore_empty: true label: PLUGIN_ADMIN.PERMISSIONS
validate: ignore_empty: true
type: array validate:
type: array
value_type: bool

View File

@ -1,5 +1,11 @@
title: PLUGIN_ADMIN_PRO.ADD_GROUP title: PLUGIN_ADMIN_PRO.ADD_GROUP
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form: form:
validation: loose validation: loose
fields: fields:
@ -14,3 +20,4 @@ form:
help: PLUGIN_ADMIN_PRO.GROUP_NAME_HELP help: PLUGIN_ADMIN_PRO.GROUP_NAME_HELP
validate: validate:
required: true required: true
rule: slug

View File

@ -0,0 +1,15 @@
purge:
trigger: space
max_backups_count: 25
max_backups_space: 5
max_backups_time: 365
profiles:
-
name: 'Default Site Backup'
root: '/'
schedule: false
schedule_at: '0 3 * * *'
exclude_paths: "/backup\r\n/cache\r\n/images\r\n/logs\r\n/tmp"
exclude_files: ".DS_Store\r\n.git\r\n.svn\r\n.hg\r\n.idea\r\n.vscode\r\nnode_modules"

View File

@ -24,6 +24,10 @@ types:
type: image type: image
thumb: media/thumb-png.png thumb: media/thumb-png.png
mime: image/png mime: image/png
webp:
type: image
thumb: media/thumb-webp.png
mime: image/webp
gif: gif:
type: animated type: animated
thumb: media/thumb-gif.png thumb: media/thumb-gif.png
@ -103,7 +107,7 @@ types:
docx: docx:
type: file type: file
thumb: media/thumb-docx.png thumb: media/thumb-docx.png
mime: application/msword mime: application/vnd.openxmlformats-officedocument.wordprocessingml.document
xls: xls:
type: file type: file
thumb: media/thumb-xls.png thumb: media/thumb-xls.png
@ -111,7 +115,7 @@ types:
xlsx: xlsx:
type: file type: file
thumb: media/thumb-xlsx.png thumb: media/thumb-xlsx.png
mime: application/vnd.ms-excel mime: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
ppt: ppt:
type: file type: file
thumb: media/thumb-ppt.png thumb: media/thumb-ppt.png
@ -119,7 +123,7 @@ types:
pptx: pptx:
type: file type: file
thumb: media/thumb-pptx.png thumb: media/thumb-pptx.png
mime: application/vnd.ms-powerpoint mime: application/vnd.openxmlformats-officedocument.presentationml.presentation
pps: pps:
type: file type: file
thumb: media/thumb-pps.png thumb: media/thumb-pps.png

View File

@ -0,0 +1,53 @@
actions:
site:
type: access
label: Site
admin:
type: access
label: Admin
admin.pages:
type: access
label: Pages
admin.users:
type: access
label: User Accounts
types:
default:
type: access
crud:
type: compact
letters:
c:
action: create
label: PLUGIN_ADMIN.CREATE
r:
action: read
label: PLUGIN_ADMIN.READ
u:
action: update
label: PLUGIN_ADMIN.UPDATE
d:
action: delete
label: PLUGIN_ADMIN.DELETE
crudp:
type: crud
letters:
p:
action: publish
label: PLUGIN_ADMIN.PUBLISH
crudl:
type: crud
letters:
l:
action: list
label: PLUGIN_ADMIN.LIST
crudpl:
type: crud
use:
- crudp
- crudl

View File

@ -5,6 +5,13 @@ xss_enabled:
moz_binding: true moz_binding: true
html_inline_styles: true html_inline_styles: true
dangerous_tags: true dangerous_tags: true
xss_invalid_protocols:
- javascript
- livescript
- vbscript
- mocha
- feed
- data
xss_dangerous_tags: xss_dangerous_tags:
- applet - applet
- meta - meta
@ -29,3 +36,4 @@ uploads_dangerous_extensions:
- htm - htm
- js - js
- exe - exe
sanitize_svg: true

View File

@ -17,17 +17,17 @@ summary:
delimiter: === # The summary delimiter delimiter: === # The summary delimiter
redirects: redirects:
# '/redirect-test': '/' # Redirect test goes to home page # '/redirect-test': '/' # Redirect test goes to home page
# '/old/(.*)': '/new/$1' # Would redirect /old/my-page to /new/my-page # '/old/(.*)': '/new/$1' # Would redirect /old/my-page to /new/my-page
routes: routes:
# '/something/else': '/blog/sample-3' # Alias for /blog/sample-3 # '/something/else': '/blog/sample-3' # Alias for /blog/sample-3
# '/new/(.*)': '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route # '/new/(.*)': '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route
blog: blog:
route: '/blog' # Custom value added (accessible via system.blog.route) route: '/blog' # Custom value added (accessible via system.blog.route)
#menu: # Sample Menu Example #menu: # Menu Example
# - text: Source # - text: Source
# icon: github # icon: github
# url: https://github.com/getgrav/grav # url: https://github.com/getgrav/grav

View File

@ -1,16 +0,0 @@
schemes:
image:
type: ReadOnlyStream
paths:
- user://images
- system://images
page:
type: ReadOnlyStream
paths:
- user://pages
account:
type: ReadOnlyStream
paths:
- user://accounts

View File

@ -10,21 +10,31 @@ custom_base_url: '' # Set the base_url manually, e.
username_regex: '^[a-z0-9_-]{3,16}$' # Only lowercase chars, digits, dashes, underscores. 3 - 16 chars username_regex: '^[a-z0-9_-]{3,16}$' # Only lowercase chars, digits, dashes, underscores. 3 - 16 chars
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}' # At least one number, one uppercase and lowercase letter, and be at least 8+ chars pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}' # At least one number, one uppercase and lowercase letter, and be at least 8+ chars
intl_enabled: true # Special logic for PHP International Extension (mod_intl) intl_enabled: true # Special logic for PHP International Extension (mod_intl)
http_x_forwarded: # Configuration options for the various HTTP_X_FORWARD headers
protocol: true
host: false
port: true
ip: true
languages: languages:
supported: [] # List of languages supported. eg: [en, fr, de] supported: [] # List of languages supported. eg: [en, fr, de]
default_lang: # Default is the first supported language. Must be one of the supported languages
include_default_lang: true # Include the default lang prefix in all URLs include_default_lang: true # Include the default lang prefix in all URLs
translations: true # Enable translations by default include_default_lang_file_extension: true # If true, include language code for the default language in file extension: default.en.md
translations: true # If false, translation keys are used instead of translated strings
translations_fallback: true # Fallback through supported translations if active lang doesn't exist translations_fallback: true # Fallback through supported translations if active lang doesn't exist
session_store_active: false # Store active language in session session_store_active: false # Store active language in session
http_accept_language: false # Attempt to set the language based on http_accept_language header in the browser http_accept_language: false # Attempt to set the language based on http_accept_language header in the browser
override_locale: false # Override the default or system locale with language specific one override_locale: false # Override the default or system locale with language specific one
content_fallback: {} # Custom language fallbacks. eg: {fr: ['fr', 'en']}
pages_fallback_only: false # DEPRECATED: Use `content_fallback` instead
home: home:
alias: '/home' # Default path for home, ie / alias: '/home' # Default path for home, ie /
hide_in_urls: false # Hide the home route in URLs hide_in_urls: false # Hide the home route in URLs
pages: pages:
type: regular # EXPERIMENTAL: Page type: regular or flex
theme: quark # Default theme (defaults to "quark" theme) theme: quark # Default theme (defaults to "quark" theme)
order: order:
by: default # Order pages by "default", "alpha" or "date" by: default # Order pages by "default", "alpha" or "date"
@ -52,19 +62,26 @@ pages:
special_chars: # List of special characters to automatically convert to entities special_chars: # List of special characters to automatically convert to entities
'>': 'gt' '>': 'gt'
'<': 'lt' '<': 'lt'
types: [txt,xml,html,htm,json,rss,atom] # list of valid page types valid_link_attributes: # Valid attributes to pass through via markdown links
- rel
- target
- id
- class
- classes
types: [html,htm,xml,txt,json,rss,atom] # list of valid page types
append_url_extension: '' # Append page's extension in Page urls (e.g. '.html' results in /path/page.html) append_url_extension: '' # Append page's extension in Page urls (e.g. '.html' results in /path/page.html)
expires: 604800 # Page expires time in seconds (604800 seconds = 7 days) expires: 604800 # Page expires time in seconds (604800 seconds = 7 days)
cache_control: # Can be blank for no setting, or a valid `cache-control` text value cache_control: # Can be blank for no setting, or a valid `cache-control` text value
last_modified: false # Set the last modified date header based on file modification timestamp last_modified: false # Set the last modified date header based on file modification timestamp
etag: false # Set the etag header tag etag: true # Set the etag header tag
vary_accept_encoding: false # Add `Vary: Accept-Encoding` header vary_accept_encoding: false # Add `Vary: Accept-Encoding` header
redirect_default_route: false # Automatically redirect to a page's default route redirect_default_code: 302 # Default code to use for redirects: 301|302|303
redirect_default_code: 302 # Default code to use for redirects redirect_trailing_slash: 1 # Always redirect trailing slash with redirect code 0|1|301|302 (0: no redirect, 1: use default code)
redirect_trailing_slash: true # Handle automatically or 302 redirect a trailing / URL redirect_default_route: 0 # Always redirect to page's default route using code 0|1|301|302, also removes .htm and .html extensions
ignore_files: [.DS_Store] # Files to ignore in Pages ignore_files: [.DS_Store] # Files to ignore in Pages
ignore_folders: [.git, .idea] # Folders to ignore in Pages ignore_folders: [.git, .idea] # Folders to ignore in Pages
ignore_hidden: true # Ignore all Hidden files and folders ignore_hidden: true # Ignore all Hidden files and folders
hide_empty_folders: false # If folder has no .md file, should it be hidden
url_taxonomy_filters: true # Enable auto-magic URL-based taxonomy filters for page collections url_taxonomy_filters: true # Enable auto-magic URL-based taxonomy filters for page collections
frontmatter: frontmatter:
process_twig: false # Should the frontmatter be processed to replace Twig variables? process_twig: false # Should the frontmatter be processed to replace Twig variables?
@ -74,8 +91,11 @@ cache:
enabled: true # Set to true to enable caching enabled: true # Set to true to enable caching
check: check:
method: file # Method to check for updates in pages: file|folder|hash|none method: file # Method to check for updates in pages: file|folder|hash|none
driver: auto # One of: auto|file|apc|xcache|memcache|wincache driver: auto # One of: auto|file|apcu|memcache|wincache
prefix: 'g' # Cache prefix string (prevents cache conflicts) prefix: 'g' # Cache prefix string (prevents cache conflicts)
purge_at: '0 4 * * *' # How often to purge old file cache (using new scheduler)
clear_at: '0 3 * * *' # How often to clear cache (using new scheduler)
clear_job_type: 'standard' # Type to clear when processing the scheduled clear job `standard`|`all`
clear_images_by_default: true # By default grav will include processed images in cache clear, this can be disabled clear_images_by_default: true # By default grav will include processed images in cache clear, this can be disabled
cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcache, etc.) cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcache, etc.)
lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite) lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite)
@ -83,14 +103,18 @@ cache:
allow_webserver_gzip: false # If true, `content-encoding: identity` but connection isn't closed before `onShutDown()` event allow_webserver_gzip: false # If true, `content-encoding: identity` but connection isn't closed before `onShutDown()` event
redis: redis:
socket: false # Path to redis unix socket (e.g. /var/run/redis/redis.sock), false = use server and port to connect socket: false # Path to redis unix socket (e.g. /var/run/redis/redis.sock), false = use server and port to connect
password: # Optional password
database: # Optional database ID
twig: twig:
cache: true # Set to true to enable Twig caching cache: true # Set to true to enable Twig caching
debug: true # Enable Twig debug debug: true # Enable Twig debug
auto_reload: true # Refresh cache on changes auto_reload: true # Refresh cache on changes
autoescape: false # Autoescape Twig vars (DEPRECATED, always enabled in strict mode) autoescape: true # Autoescape Twig vars (DEPRECATED, always enabled in strict mode)
undefined_functions: true # Allow undefined functions undefined_functions: true # Allow undefined functions
undefined_filters: true # Allow undefined filters undefined_filters: true # Allow undefined filters
safe_functions: [] # List of PHP functions which are allowed to be used as Twig functions
safe_filters: [] # List of PHP functions which are allowed to be used as Twig filters
umask_fix: false # By default Twig creates cached files as 755, fix switches this to 775 umask_fix: false # By default Twig creates cached files as 755, fix switches this to 775
assets: # Configuration for Assets Manager (JS, CSS) assets: # Configuration for Assets Manager (JS, CSS)
@ -105,6 +129,7 @@ assets: # Configuration for Assets Mana
js_pipeline_before_excludes: true # Render the pipeline before any excluded files js_pipeline_before_excludes: true # Render the pipeline before any excluded files
js_minify: true # Minify the JS during pipelining js_minify: true # Minify the JS during pipelining
enable_asset_timestamp: false # Enable asset timestamps enable_asset_timestamp: false # Enable asset timestamps
enable_asset_sri: false # Enable asset SRI
collections: collections:
jquery: system://assets/jquery/jquery-2.x.min.js jquery: system://assets/jquery/jquery-2.x.min.js
@ -112,8 +137,15 @@ errors:
display: 0 # Display either (1) Full backtrace | (0) Simple Error | (-1) System Error display: 0 # Display either (1) Full backtrace | (0) Simple Error | (-1) System Error
log: true # Log errors to /logs folder log: true # Log errors to /logs folder
log:
handler: file # Log handler. Currently supported: file | syslog
syslog:
facility: local6 # Syslog facilities output
debugger: debugger:
enabled: false # Enable Grav debugger and following settings enabled: false # Enable Grav debugger and following settings
provider: clockwork # Debugger provider: debugbar | clockwork
censored: false # Censor potentially sensitive information (POST parameters, cookies, files, configuration and most array/object data in log messages)
shutdown: shutdown:
close_connection: true # Close the connection before calling onShutdown(). false for debugging close_connection: true # Close the connection before calling onShutdown(). false for debugging
@ -122,7 +154,14 @@ images:
cache_all: false # Cache all image by default cache_all: false # Cache all image by default
cache_perms: '0755' # MUST BE IN QUOTES!! Default cache folder perms. Usually '0755' or '0775' cache_perms: '0755' # MUST BE IN QUOTES!! Default cache folder perms. Usually '0755' or '0775'
debug: false # Show an overlay over images indicating the pixel depth of the image when working with retina for example debug: false # Show an overlay over images indicating the pixel depth of the image when working with retina for example
auto_fix_orientation: false # Automatically fix the image orientation based on the Exif data auto_fix_orientation: true # Automatically fix the image orientation based on the Exif data
seofriendly: false # SEO-friendly processed image names
cls: # Cumulative Layout Shift: See https://web.dev/optimize-cls/
auto_sizes: false # Automatically add height/width to image
aspect_ratio: false # Reserve space with aspect ratio style
retina_scale: 1 # scale to adjust auto-sizes for better handling of HiDPI resolutions
defaults:
loading: auto # Let browser pick [auto|lazy|eager]
media: media:
enable_media_timestamp: false # Enable media timestamps enable_media_timestamp: false # Enable media timestamps
@ -135,10 +174,13 @@ session:
initialize: true # Initialize session from Grav (if false, plugin needs to start the session) initialize: true # Initialize session from Grav (if false, plugin needs to start the session)
timeout: 1800 # Timeout in seconds timeout: 1800 # Timeout in seconds
name: grav-site # Name prefix of the session cookie. Use alphanumeric, dashes or underscores only. Do not use dots in the session name name: grav-site # Name prefix of the session cookie. Use alphanumeric, dashes or underscores only. Do not use dots in the session name
uniqueness: path # Should sessions be `path` based or `security.salt` based
secure: false # Set session secure. If true, indicates that communication for this cookie must be over an encrypted transmission. Enable this only on sites that run exclusively on HTTPS secure: false # Set session secure. If true, indicates that communication for this cookie must be over an encrypted transmission. Enable this only on sites that run exclusively on HTTPS
httponly: true # Set session HTTP only. If true, indicates that cookies should be used only over HTTP, and JavaScript modification is not allowed. httponly: true # Set session HTTP only. If true, indicates that cookies should be used only over HTTP, and JavaScript modification is not allowed.
samesite: Lax # Set session SameSite. Possible values are Lax, Strict and None. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
split: true # Sessions should be independent between site and plugins (such as admin) split: true # Sessions should be independent between site and plugins (such as admin)
path: domain: # Domain used by sessions.
path: # Path used by sessions.
gpm: gpm:
releases: stable # Set to either 'stable' or 'testing' releases: stable # Set to either 'stable' or 'testing'
@ -147,6 +189,23 @@ gpm:
verify_peer: true # Sometimes on some systems (Windows most commonly) GPM is unable to connect because the SSL certificate cannot be verified. Disabling this setting might help. verify_peer: true # Sometimes on some systems (Windows most commonly) GPM is unable to connect because the SSL certificate cannot be verified. Disabling this setting might help.
official_gpm_only: true # By default GPM direct-install will only allow URLs via the official GPM proxy to ensure security official_gpm_only: true # By default GPM direct-install will only allow URLs via the official GPM proxy to ensure security
accounts:
type: regular # EXPERIMENTAL: Account type: regular or flex
storage: file # EXPERIMENTAL: Flex storage type: file or folder
flex:
cache:
index:
enabled: true # Set to true to enable Flex index caching. Is used to cache timestamps in files
lifetime: 60 # Lifetime of cached index in seconds (0 = infinite)
object:
enabled: true # Set to true to enable Flex object caching. Is used to cache object data
lifetime: 600 # Lifetime of cached objects in seconds (0 = infinite)
render:
enabled: true # Set to true to enable Flex render caching. Is used to cache rendered output
lifetime: 600 # Lifetime of cached HTML in seconds (0 = infinite)
strict_mode: strict_mode:
yaml_compat: true # Grav 1.5+: Enables YAML backwards compatibility yaml_compat: false # Set to true to enable YAML backwards compatibility
twig_compat: true # Grav 1.5+: Enables deprecated Twig autoescape setting (autoescape: false) twig_compat: false # Set to true to enable deprecated Twig settings (autoescape: false)
blueprint_compat: false # Set to true to enable backward compatible strict support for blueprints

View File

@ -1,42 +1,90 @@
<?php <?php
/** /**
* @package Grav.Core * @package Grav\Core
* *
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved. * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details. * @license MIT License; see LICENSE file for details.
*/ */
// Some standard defines // Some standard defines
define('GRAV', true); define('GRAV', true);
define('GRAV_VERSION', '1.5.10'); define('GRAV_VERSION', '1.7.15');
define('GRAV_SCHEMA', '1.7.0_2020-11-20_1');
define('GRAV_TESTING', false); define('GRAV_TESTING', false);
define('DS', '/');
// PHP minimum requirement
if (!defined('GRAV_PHP_MIN')) { if (!defined('GRAV_PHP_MIN')) {
define('GRAV_PHP_MIN', '5.6.4'); define('GRAV_PHP_MIN', '7.3.6');
} }
// Directories and Paths // Directory separator
if (!defined('GRAV_ROOT')) { if (!defined('DS')) {
define('GRAV_ROOT', str_replace(DIRECTORY_SEPARATOR, DS, getcwd())); define('DS', '/');
} }
define('ROOT_DIR', GRAV_ROOT . '/');
define('USER_PATH', 'user/'); // Absolute path to Grav root. This is where Grav is installed into.
define('USER_DIR', ROOT_DIR . USER_PATH); if (!defined('GRAV_ROOT')) {
define('CACHE_DIR', ROOT_DIR . 'cache/'); $path = rtrim(str_replace(DIRECTORY_SEPARATOR, DS, getenv('GRAV_ROOT') ?: getcwd()), DS);
define('GRAV_ROOT', $path);
}
// Absolute path to Grav webroot. This is the path where your site is located in.
if (!defined('GRAV_WEBROOT')) {
$path = rtrim(getenv('GRAV_WEBROOT') ?: GRAV_ROOT, DS);
define('GRAV_WEBROOT', $path);
}
// Relative path to user folder. This path needs to be located under GRAV_WEBROOT.
if (!defined('GRAV_USER_PATH')) {
$path = rtrim(getenv('GRAV_USER_PATH') ?: 'user', DS);
define('GRAV_USER_PATH', $path);
}
// Absolute or relative path to system folder. Defaults to GRAV_ROOT/system
// If system folder is outside of webroot, see https://github.com/getgrav/grav/issues/3297#issuecomment-810294972
if (!defined('GRAV_SYSTEM_PATH')) {
$path = rtrim(getenv('GRAV_SYSTEM_PATH') ?: 'system', DS);
define('GRAV_SYSTEM_PATH', $path);
}
// Absolute or relative path to cache folder. Defaults to GRAV_ROOT/cache
if (!defined('GRAV_CACHE_PATH')) {
$path = rtrim(getenv('GRAV_CACHE_PATH') ?: 'cache', DS);
define('GRAV_CACHE_PATH', $path);
}
// Absolute or relative path to logs folder. Defaults to GRAV_ROOT/logs
if (!defined('GRAV_LOG_PATH')) {
$path = rtrim(getenv('GRAV_LOG_PATH') ?: 'logs', DS);
define('GRAV_LOG_PATH', $path);
}
// Absolute or relative path to tmp folder. Defaults to GRAV_ROOT/tmp
if (!defined('GRAV_TMP_PATH')) {
$path = rtrim(getenv('GRAV_TMP_PATH') ?: 'tmp', DS);
define('GRAV_TMP_PATH', $path);
}
// Absolute or relative path to backup folder. Defaults to GRAV_ROOT/backup
if (!defined('GRAV_BACKUP_PATH')) {
$path = rtrim(getenv('GRAV_BACKUP_PATH') ?: 'backup', DS);
define('GRAV_BACKUP_PATH', $path);
}
unset($path);
// INTERNAL: Do not use!
define('USER_DIR', GRAV_WEBROOT . '/' . GRAV_USER_PATH . '/');
define('CACHE_DIR', (!preg_match('`^(/|[a-z]:[\\\/])`ui', GRAV_CACHE_PATH) ? GRAV_ROOT . '/' : '') . GRAV_CACHE_PATH . '/');
// DEPRECATED: Do not use! // DEPRECATED: Do not use!
define('ASSETS_DIR', ROOT_DIR . 'assets/'); define('CACHE_PATH', GRAV_CACHE_PATH . DS);
define('IMAGES_DIR', ROOT_DIR . 'images/'); define('USER_PATH', GRAV_USER_PATH . DS);
define('ACCOUNTS_DIR', USER_DIR .'accounts/'); define('ROOT_DIR', GRAV_ROOT . DS);
define('PAGES_DIR', USER_DIR .'pages/'); define('ASSETS_DIR', GRAV_WEBROOT . '/assets/');
define('DATA_DIR', USER_DIR .'data/'); define('IMAGES_DIR', GRAV_WEBROOT . '/images/');
define('SYSTEM_DIR', ROOT_DIR .'system/'); define('ACCOUNTS_DIR', USER_DIR . 'accounts/');
define('LIB_DIR', SYSTEM_DIR .'src/'); define('PAGES_DIR', USER_DIR . 'pages/');
define('PLUGINS_DIR', USER_DIR .'plugins/'); define('DATA_DIR', USER_DIR . 'data/');
define('THEMES_DIR', USER_DIR .'themes/'); define('PLUGINS_DIR', USER_DIR . 'plugins/');
define('VENDOR_DIR', ROOT_DIR .'vendor/'); define('THEMES_DIR', USER_DIR . 'themes/');
define('LOG_DIR', ROOT_DIR .'logs/'); define('SYSTEM_DIR', (!preg_match('`^(/|[a-z]:[\\\/])`ui', GRAV_SYSTEM_PATH) ? GRAV_ROOT . '/' : '') . GRAV_SYSTEM_PATH . '/');
define('LIB_DIR', SYSTEM_DIR . 'src/');
define('VENDOR_DIR', GRAV_ROOT . '/vendor/');
define('LOG_DIR', (!preg_match('`^(/|[a-z]:[\\\/])`ui', GRAV_LOG_PATH) ? GRAV_ROOT . '/' : '') . GRAV_LOG_PATH . '/');
// END DEPRECATED // END DEPRECATED
// Some extensions // Some extensions

15
system/install.php Normal file
View File

@ -0,0 +1,15 @@
<?php
/**
* @package Grav\Core
*
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
if (!defined('GRAV_ROOT')) {
die();
}
require_once __DIR__ . '/src/Grav/Installer/Install.php';
return Grav\Installer\Install::instance();

View File

@ -1,75 +1,82 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\nالعنوان: %1$s\n---\n# خطأ: مادة أمامية غير صحيحة\n\nمسار: '%2$s'\n\n**%3$s**\n\n, , ,\n\n%4$s\n, , ,"
العنوان: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'معدّات'
# خطأ: مادة أمامية غير صحيحة - 'معلومات'
- 'أرز'
مسار: '%2$s' - 'مال'
- 'نوع'
**%3$s** - 'سلسلة'
- 'سمك'
, , , - 'خروف'
INFLECTOR_IRREGULAR:
%4$s 'person': 'أشخاص'
, , , NICETIME:
NICETIME: NO_DATE_PROVIDED: لم يتم تقديم التاريخ
NO_DATE_PROVIDED: لم يتم تقديم التاريخ BAD_DATE: تاريخ خاطئ
BAD_DATE: تاريخ خاطئ AGO: من قبل
AGO: من قبل FROM_NOW: من الآن
FROM_NOW: من الآن SECOND: ثانية
SECOND: ثانية MINUTE: دقيقة
MINUTE: دقيقة HOUR: ساعة
HOUR: ساعة DAY: يوم
DAY: يوم WEEK: أسبوع
WEEK: أسبوع MONTH: شهر
MONTH: شهر YEAR: سنة
YEAR: سنة DECADE: عقد
DECADE: عقد SEC: ثانية
SEC: ثانية MIN: دقيقة
MIN: دقيقة HR: ساعة
HR: ساعة WK: أسبوع
WK: أسبوع MO: شهر
MO: شهر YR: سنة
YR: سنة DEC: عقد
DEC: عقد SECOND_PLURAL: ثواني
SECOND_PLURAL: ثواني MINUTE_PLURAL: '‮دقائق'
MINUTE_PLURAL: ‮دقائق HOUR_PLURAL: ساعات
HOUR_PLURAL: ساعات DAY_PLURAL: أيام
DAY_PLURAL: أيام WEEK_PLURAL: أسابيع
WEEK_PLURAL: أسابيع MONTH_PLURAL: أشهر
MONTH_PLURAL: أشهر YEAR_PLURAL: سنوات
YEAR_PLURAL: سنوات DECADE_PLURAL: عقود
DECADE_PLURAL: عقود SEC_PLURAL: ثواني
SEC_PLURAL: ثواني MIN_PLURAL: دقائق
MIN_PLURAL: دقائق HR_PLURAL: ساعات
HR_PLURAL: ساعات WK_PLURAL: أسابيع
WK_PLURAL: أسابيع MO_PLURAL: أشهر
MO_PLURAL: أشهر YR_PLURAL: سنوات
YR_PLURAL: سنوات DEC_PLURAL: عقود
DEC_PLURAL: عقود FORM:
FORM: VALIDATION_FAIL: '<b>فشل التحقق من صحة:</b>'
VALIDATION_FAIL: '<b>فشل التحقق من صحة:</b>' INVALID_INPUT: 'إدخال غير صحيح في'
INVALID_INPUT: إدخال غير صحيح في MISSING_REQUIRED_FIELD: 'حقل مطلوب مفقود:'
MISSING_REQUIRED_FIELD: 'حقل مطلوب مفقود:' MONTHS_OF_THE_YEAR:
MONTHS_OF_THE_YEAR: - 'كانون الثاني'
- كانون الثاني - 'شباط'
- شباط - 'آذار/ مارس'
- آذار/ مارس - 'نيسان'
- نيسان - 'أيار'
- أيار - 'حزيران'
- حزيران - 'تموز'
- تموز - 'آب'
- آب - 'أيلول'
- أيلول - 'تشرين الأول'
- تشرين الأول - 'تشرين الثاني'
- تشرين الثاني - 'كانون الأول'
- كانون الأول DAYS_OF_THE_WEEK:
DAYS_OF_THE_WEEK: - 'الاثنين'
- الاثنين - 'الثلاثاء'
- الثلاثاء - 'الأربعاء'
- الأربعاء - 'الخميس'
- الخميس - 'الجمعة'
- الجمعة - 'السبت'
- السبت - 'الأحد'
- الأحد CRON:
EVERY: كل
EVERY_HOUR: كل ساعة
EVERY_MINUTE: كل دقيقة
EVERY_DAY_OF_WEEK: كل يوم في الأسبوع
EVERY_DAY_OF_MONTH: كل يوم في الشهر
EVERY_MONTH: ' كل شهر'
TEXT_PERIOD: كل <b />

62
system/languages/bg.yaml Normal file
View File

@ -0,0 +1,62 @@
---
GRAV:
NICETIME:
NO_DATE_PROVIDED: Не е въведена дата
BAD_DATE: Невалидна дата
AGO: преди
FROM_NOW: от сега
SECOND: секунда
MINUTE: минута
HOUR: час
DAY: ден
WEEK: седмица
MONTH: месец
YEAR: година
DECADE: десетилетие
SEC: сек
MIN: мин
HR: ч
WK: седм
MO: мес
YR: г
DEC: дстлт
SECOND_PLURAL: секунди
MINUTE_PLURAL: минути
HOUR_PLURAL: часа
DAY_PLURAL: дена
WEEK_PLURAL: седмици
MONTH_PLURAL: месеца
YEAR_PLURAL: години
DECADE_PLURAL: десетилетия
SEC_PLURAL: сек
MIN_PLURAL: мин
HR_PLURAL: ч
WK_PLURAL: седм
MO_PLURAL: мес
YR_PLURAL: г
DEC_PLURAL: дстлт
FORM:
VALIDATION_FAIL: '<b>Неуспешна проверка:</b>'
INVALID_INPUT: 'Невалидно въвеждане в'
MISSING_REQUIRED_FIELD: 'Липсва задължително поле:'
MONTHS_OF_THE_YEAR:
- 'януари'
- 'февруари'
- 'март'
- 'април'
- 'май'
- 'юни'
- 'юли'
- 'август'
- 'септември'
- 'октомври'
- 'ноември'
- 'декември'
DAYS_OF_THE_WEEK:
- 'понеделник'
- 'вторник'
- 'сряда'
- 'четвъртък'
- 'петък'
- 'събота'
- 'неделя'

View File

@ -1,75 +1,71 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# S'ha produït un error: Frontmatter invàlid\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'equipment'
- 'informació'
# S'ha produït un error: Frontmatter invàlid - 'rice'
- 'money'
Ruta: `%2$s` - 'species'
- 'series'
**%3$s** - 'fish'
- 'sheep'
``` NICETIME:
%4$s NO_DATE_PROVIDED: No s'ha proporcionat data
``` BAD_DATE: Data invàlida
NICETIME: AGO: abans
NO_DATE_PROVIDED: "No s'ha proporcionat data" FROM_NOW: des d'ara
BAD_DATE: Data invàlida SECOND: segon
AGO: abans MINUTE: minut
FROM_NOW: "des d'ara" HOUR: hora
SECOND: segon DAY: dia
MINUTE: minut WEEK: setmana
HOUR: hora MONTH: mes
DAY: dia YEAR: any
WEEK: setmana DECADE: dècada
MONTH: mes SEC: s
YEAR: any HR: h
DECADE: dècada WK: setm.
SEC: s MO: m.
MIN: min YR: a.
HR: h DEC: dèc.
WK: setm. SECOND_PLURAL: segons
MO: m. MINUTE_PLURAL: minuts
YR: a. HOUR_PLURAL: hores
DEC: dèc. DAY_PLURAL: dies
SECOND_PLURAL: segons WEEK_PLURAL: setmanes
MINUTE_PLURAL: minuts MONTH_PLURAL: mesos
HOUR_PLURAL: hores YEAR_PLURAL: anys
DAY_PLURAL: dies DECADE_PLURAL: dècades
WEEK_PLURAL: setmanes SEC_PLURAL: s
MONTH_PLURAL: mesos MIN_PLURAL: min
YEAR_PLURAL: anys HR_PLURAL: h
DECADE_PLURAL: dècades WK_PLURAL: setm.
SEC_PLURAL: s MO_PLURAL: mesos
MIN_PLURAL: min YR_PLURAL: anys
HR_PLURAL: h DEC_PLURAL: dèc.
WK_PLURAL: setm. FORM:
MO_PLURAL: mesos VALIDATION_FAIL: '<b>Ha fallat la validació:</b>'
YR_PLURAL: anys INVALID_INPUT: 'Entrada no vàlida a'
DEC_PLURAL: dèc. MISSING_REQUIRED_FIELD: 'Falta camp obligatori:'
FORM: MONTHS_OF_THE_YEAR:
VALIDATION_FAIL: '<b>Ha fallat la validació:</b>' - 'Gener'
INVALID_INPUT: Entrada no vàlida a - 'Febrer'
MISSING_REQUIRED_FIELD: 'Falta camp obligatori:' - 'Març'
MONTHS_OF_THE_YEAR: - 'Abril'
- Gener - 'Maig'
- Febrer - 'Juny'
- Març - 'Juliol'
- Abril - 'Agost'
- Maig - 'Setembre'
- Juny - 'Octubre'
- Juliol - 'Novembre'
- Agost - 'Desembre'
- Setembre DAYS_OF_THE_WEEK:
- Octubre - 'Dilluns'
- Novembre - 'Dimarts'
- Desembre - 'Dimecres'
DAYS_OF_THE_WEEK: - 'Dijous'
- Dilluns - 'Divendres'
- Dimarts - 'Dissabte'
- Dimecres - 'Diumenge'
- Dijous
- Divendres
- Dissabte
- Diumenge

View File

@ -1,81 +1,147 @@
--- ---
INFLECTOR_UNCOUNTABLE: GRAV:
- vybavení FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Chyba: Chybný frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
- informace INFLECTOR_PLURALS:
- rýže '/(quiz)$/i': '\1zes'
- peníze '/^(ox)$/i': '\1en'
- druhy '/([m|l])ouse$/i': '\1ice'
- série '/(matr|vert|ind)ix|ex$/i': '\1ices'
- ryba '/(x|ch|ss|sh)$/i': '\1es'
- ovce '/([^aeiouy]|qu)ies$/i': '\1y'
INFLECTOR_IRREGULAR: '/([^aeiouy]|qu)y$/i': '\1ies'
person: lidé '/(hive)$/i': '\1s'
man: muži '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
child: děti '/sis$/i': 'ses'
sex: pohlaví '/([ti])um$/i': '\1a'
move: pohyby '/(buffal|tomat)o$/i': '\1oes'
INFLECTOR_ORDINALS: '/(bu)s$/i': '\1ses'
default: '.' '/(alias|status)/i': '\1es'
first: '.' '/(octop|vir)us$/i': '\1i'
second: '.' '/(ax|test)is$/i': '\1es'
third: '.' '/s$/i': 's'
NICETIME: '/$/': 's'
NO_DATE_PROVIDED: Datum nebylo vloženo INFLECTOR_SINGULAR:
BAD_DATE: Chybné datum '/(quiz)zes$/i': '\1'
AGO: zpět '/(matr)ices$/i': '\1ix'
FROM_NOW: od teď '/(vert|ind)ices$/i': '\1ex'
SECOND: sekunda '/^(ox)en/i': '\1'
MINUTE: minuta '/(alias|status)es$/i': '\1'
HOUR: hodina '/([octop|vir])i$/i': '\1us'
DAY: den '/(cris|ax|test)es$/i': '\1is'
WEEK: týden '/(shoe)s$/i': '\1'
MONTH: měsíc '/(o)es$/i': '\1'
YEAR: rok '/(bus)es$/i': '\1'
DECADE: dekáda '/([m|l])ice$/i': '\1ouse'
SEC: sek '/(x|ch|ss|sh)es$/i': '\1'
MIN: min '/(m)ovies$/i': '\1ovie'
HR: hod '/(s)eries$/i': '\1eries'
WK: t '/([^aeiouy]|qu)ies$/i': '\1y'
MO: m '/([lr])ves$/i': '\1f'
YR: r '/(tive)s$/i': '\1'
DEC: dek '/(hive)s$/i': '\1'
SECOND_PLURAL: sekundy '/([^f])ves$/i': '\1fe'
MINUTE_PLURAL: minuty '/(^analy)ses$/i': '\1sis'
HOUR_PLURAL: hodiny '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
DAY_PLURAL: dny '/([ti])a$/i': '\1um'
WEEK_PLURAL: týdny '/(n)ews$/i': '\1ews'
MONTH_PLURAL: měsíce INFLECTOR_UNCOUNTABLE:
YEAR_PLURAL: roky - 'vybavení'
DECADE_PLURAL: dekády - 'informace'
SEC_PLURAL: sek - 'rýže'
MIN_PLURAL: min - 'peníze'
HR_PLURAL: hod - 'druhy'
WK_PLURAL: t - 'série'
MO_PLURAL: m - 'ryba'
YR_PLURAL: r - 'ovce'
DEC_PLURAL: dek INFLECTOR_IRREGULAR:
FORM: 'person': 'lidé'
VALIDATION_FAIL: '<b>Ověření se nezdařilo:</b>' 'man': 'muži'
INVALID_INPUT: Neplatný vstup v 'child': 'děti'
MISSING_REQUIRED_FIELD: 'Chybí požadované pole:' 'sex': 'pohlaví'
MONTHS_OF_THE_YEAR: 'move': 'pohyby'
- ledna INFLECTOR_ORDINALS:
- února 'default': '.'
- března 'first': '.'
- dubna 'second': '.'
- května 'third': '.'
- června NICETIME:
- července NO_DATE_PROVIDED: Datum nebylo vloženo
- srpna BAD_DATE: Chybné datum
- září AGO: zpět
- října FROM_NOW: od teď
- listopadu JUST_NOW: právě teď
- prosince SECOND: sekunda
DAYS_OF_THE_WEEK: MINUTE: minuta
- Pondělí HOUR: hodina
- Úterý DAY: den
- Středa WEEK: týden
- Čtvrtek MONTH: měsíc
- Pátek YEAR: rok
- Sobota DECADE: dekáda
- Neděle SEC: sek
MIN: min
HR: hod
WK: t
MO: m
YR: r
DEC: dek
SECOND_PLURAL: sekundy
MINUTE_PLURAL: minuty
HOUR_PLURAL: hodiny
DAY_PLURAL: dny
WEEK_PLURAL: týdny
MONTH_PLURAL: měsíce
YEAR_PLURAL: roky
DECADE_PLURAL: dekády
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: hod
WK_PLURAL: t
MO_PLURAL: m
YR_PLURAL: r
DEC_PLURAL: dek
FORM:
VALIDATION_FAIL: '<b>Ověření se nezdařilo:</b>'
INVALID_INPUT: 'Neplatný vstup v'
MISSING_REQUIRED_FIELD: 'Chybí požadované pole:'
XSS_ISSUES: "Byly zjištěny možné problémy XSS v poli '%s'"
MONTHS_OF_THE_YEAR:
- 'leden'
- 'únor'
- 'březen'
- 'duben'
- 'květen'
- 'červen'
- 'červenec'
- 'srpen'
- 'září'
- 'říjen'
- 'listopad'
- 'prosinec'
DAYS_OF_THE_WEEK:
- 'pondělí'
- 'úterý'
- 'středa'
- 'čtvrtek'
- 'pátek'
- 'sobota'
- 'neděle'
YES: "Ano"
NO: "Ne"
CRON:
EVERY: každý
EVERY_HOUR: každou hodinu
EVERY_MINUTE: každou minutu
EVERY_DAY_OF_WEEK: každý den v týdnu
EVERY_DAY_OF_MONTH: každý den v měsíci
EVERY_MONTH: každý měsíc
TEXT_PERIOD: Every <b />
TEXT_MINS: ' at <b /> minute(s) past the hour'
TEXT_TIME: ' at <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: Tag %s není podporován!
ERROR2: Chybný počet prvků
ERROR3: jquery_element musí být nastaven v nastaveních pro jqCron
ERROR4: Nerozpoznaný výraz

View File

@ -1,75 +1,90 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\nTitel: %1$s\n---\n\n# Fejl: Ugyldigt frontmatter\n\nSti: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
Titel: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'udstyr'
- 'information'
# Fejl: Ugyldigt frontmatter - 'ris'
- 'penge'
Sti: `%2$s` - 'arter'
- 'Serier'
**%3$s** - 'fisk'
- 'får'
``` INFLECTOR_IRREGULAR:
%4$s 'person': 'personer'
``` 'man': 'mænd'
NICETIME: 'child': 'børn'
NO_DATE_PROVIDED: Ingen dato angivet 'sex': 'køn'
BAD_DATE: Ugyldig dato 'move': 'flyt'
AGO: siden NICETIME:
FROM_NOW: fra nu NO_DATE_PROVIDED: Ingen dato angivet
SECOND: sekund BAD_DATE: Ugyldig dato
MINUTE: minut AGO: siden
HOUR: time FROM_NOW: fra nu
DAY: dag JUST_NOW: lige nu
WEEK: uge SECOND: sekund
MONTH: måned MINUTE: minut
YEAR: år HOUR: time
DECADE: årti DAY: dag
SEC: sek WEEK: uge
MIN: min MONTH: måned
HR: t YEAR: år
WK: u DECADE: årti
MO: md SEC: sek
YR: år MIN: min.
DEC: årti HR: t
SECOND_PLURAL: sekunder WK: u
MINUTE_PLURAL: minutter MO: md
HOUR_PLURAL: timer YR: år
DAY_PLURAL: dage DEC: årti
WEEK_PLURAL: uger SECOND_PLURAL: sekunder
MONTH_PLURAL: måneder MINUTE_PLURAL: minutter
YEAR_PLURAL: år HOUR_PLURAL: timer
DECADE_PLURAL: årtier DAY_PLURAL: dage
SEC_PLURAL: sek WEEK_PLURAL: uger
MIN_PLURAL: min MONTH_PLURAL: måneder
HR_PLURAL: timer YEAR_PLURAL: år
WK_PLURAL: uger DECADE_PLURAL: årtier
MO_PLURAL: mdr SEC_PLURAL: sek
YR_PLURAL: år MIN_PLURAL: min
DEC_PLURAL: årtier HR_PLURAL: timer
FORM: WK_PLURAL: uger
VALIDATION_FAIL: '<b>Validering mislykkedes:</b>' MO_PLURAL: mdr
INVALID_INPUT: Ugyldigt input i YR_PLURAL: år
MISSING_REQUIRED_FIELD: 'Mangler obligatorisk felt:' DEC_PLURAL: årtier
MONTHS_OF_THE_YEAR: FORM:
- Januar VALIDATION_FAIL: '<b>Validering mislykkedes:</b>'
- Februar INVALID_INPUT: 'Ugyldigt input i'
- Marts MISSING_REQUIRED_FIELD: 'Mangler obligatorisk felt:'
- April MONTHS_OF_THE_YEAR:
- Maj - 'januar'
- Juni - 'februar'
- Juli - 'mars'
- August - 'april'
- September - 'mai'
- Oktober - 'juni'
- November - 'juli'
- December - 'august'
DAYS_OF_THE_WEEK: - 'september'
- Mandag - 'oktober'
- Tirsdag - 'november'
- Onsdag - 'desember'
- Torsdag DAYS_OF_THE_WEEK:
- Fredag - 'mandag'
- Lørdag - 'tirsdag'
- Søndag - 'onsdag'
- 'torsdag'
- 'fredag'
- 'lørdag'
- 'søndag'
CRON:
EVERY: hver
EVERY_HOUR: hver time
EVERY_MINUTE: hvert minut
EVERY_DAY_OF_WEEK: alle ugens dage
EVERY_DAY_OF_MONTH: alle dage i måneden
EVERY_MONTH: hver måned
TEXT_PERIOD: Hver <b />
TEXT_MINS: ' ved <b /> minut(ter) over timen'
ERROR1: Tagget %s understøttes ikke!
ERROR2: Ugyldigt antal elementer

View File

@ -1,89 +1,147 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n# Fehler: Frontmatter enthält Fehler\n\nPfad: `%2$s`\n\n**%3$s ** \n\n```\n%4$s\n```"
title: %1$s INFLECTOR_PLURALS:
--- '/(quiz)$/i': '\1zes'
# Fehler: Frontmatter enthält Fehler '/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
Pfad: `%2$s` '/(matr|vert|ind)ix|ex$/i': '\1ice'
'/(x|ch|ss|sh)$/i': '\1es'
**%3$s ** '/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
``` '/(hive)$/i': '\1s'
%4$s '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
``` '/sis$/i': 'ses'
INFLECTOR_UNCOUNTABLE: '/([ti])um$/i': '\1a'
1: Informationen '/(buffal|tomat)o$/i': '\1oes'
2: Reis '/(bu)s$/i': '\1ses'
3: Geld '/(alias|status)/i': '\1es'
INFLECTOR_IRREGULAR: '/(octop|vir)us$/i': '\1i'
person: Personen '/(ax|test)is$/i': '\1es'
man: Menschen '/s$/i': 's'
child: Kinder '/$/': 's'
sex: Geschlecht INFLECTOR_SINGULAR:
move: Züge '/(quiz)zes$/i': '\1'
INFLECTOR_ORDINALS: '/(matr)ices$/i': '\1ix'
default: '.' '/(vert|ind)ices$/i': '\1ex'
first: '.' '/^(ox)en/i': '\1'
second: '.' '/(alias|status)es$/i': '\1'
third: '.' '/([octop|vir])i$/i': '\1us'
NICETIME: '/(cris|ax|test)es$/i': '\1ies'
NO_DATE_PROVIDED: Kein Datum angegeben '/(shoe)s$/i': '\1'
BAD_DATE: Falsches Datum '/(o)es$/i': '\1'
AGO: her '/(bus)es$/i': '\1'
FROM_NOW: ab jetzt '/([m|l])ice$/i': '\1ouse'
SECOND: Sekunde '/(x|ch|ss|sh)es$/i': '\1'
MINUTE: Minute '/(m)ovies$/i': '\1ovie'
HOUR: Stunde '/(s)eries$/i': '\1eries'
DAY: Tag '/([^aeiouy]|qu)ies$/i': '\1y'
WEEK: Woche '/([lr])ves$/i': '\1f'
MONTH: Monat '/(tive)s$/i': '\1'
YEAR: Jahr '/(hive)s$/i': '\1'
DECADE: Jahrzehnt '/([^f])ves$/i': '\1fe'
SEC: Sek. '/(^analy)ses$/i': '\1sis'
MIN: Min. '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2ves'
HR: Std. '/([ti])a$/i': '\1um'
WK: Wo. '/(n)ews$/i': '\1ews'
MO: Mo. INFLECTOR_UNCOUNTABLE:
YR: J. - 'Ausstattung'
DEC: Dek. - 'Informationen'
SECOND_PLURAL: Sekunden - 'Reis'
MINUTE_PLURAL: Minuten - 'Geld'
HOUR_PLURAL: Stunden - 'Arten'
DAY_PLURAL: Tage - 'Serie'
WEEK_PLURAL: Wochen - 'Fisch'
MONTH_PLURAL: Monate - 'Schaf'
YEAR_PLURAL: Jahre INFLECTOR_IRREGULAR:
DECADE_PLURAL: Jahrzehnte 'person': 'Personen'
SEC_PLURAL: Sekunden 'man': 'Menschen'
MIN_PLURAL: Minuten 'child': 'Kinder'
HR_PLURAL: Stunden 'sex': 'Geschlecht'
WK_PLURAL: Wochen 'move': 'Züge'
MO_PLURAL: Monate INFLECTOR_ORDINALS:
YR_PLURAL: Jahre 'default': '.'
DEC_PLURAL: Jahrzehnten 'first': '.'
FORM: 'second': '.'
VALIDATION_FAIL: '<b>Überprüfung fehlgeschlagen:</b>' 'third': '.'
INVALID_INPUT: Ungültige Eingabe in NICETIME:
MISSING_REQUIRED_FIELD: 'Erforderliches Feld fehlt:' NO_DATE_PROVIDED: Kein Datum angegeben
MONTHS_OF_THE_YEAR: BAD_DATE: Falsches Datum
- Januar AGO: her
- Februar FROM_NOW: ab jetzt
- März JUST_NOW: jetzt gerade
- April SECOND: Sekunde
- Mai MINUTE: Minute
- Juni HOUR: Stunde
- Juli DAY: Tag
- August WEEK: Woche
- September MONTH: Monat
- Oktober YEAR: Jahr
- November DECADE: Jahrzehnt
- Dezember SEC: Sek.
DAYS_OF_THE_WEEK: MIN: Min.
- Montag HR: Std.
- Dienstag WK: Wo.
- Mittwoch MO: Mo.
- Donnerstag YR: J.
- Freitag DEC: Dez
- Samstag SECOND_PLURAL: Sekunden
- Sonntag MINUTE_PLURAL: Minuten
HOUR_PLURAL: Stunden
DAY_PLURAL: Tage
WEEK_PLURAL: Wochen
MONTH_PLURAL: Monate
YEAR_PLURAL: Jahre
DECADE_PLURAL: Jahrzehnte
SEC_PLURAL: Sekunden
MIN_PLURAL: Minuten
HR_PLURAL: Stunden
WK_PLURAL: Wochen
MO_PLURAL: Monate
YR_PLURAL: Jahre
DEC_PLURAL: Jahrzehnten
FORM:
VALIDATION_FAIL: '<b>Überprüfung fehlgeschlagen:</b>'
INVALID_INPUT: 'Ungültige Eingabe in'
MISSING_REQUIRED_FIELD: 'Erforderliches Feld fehlt:'
XSS_ISSUES: "Potenzielle XSS-Probleme im Feld '%s' erkannt"
MONTHS_OF_THE_YEAR:
- 'Januar'
- 'Februar'
- 'März'
- 'April'
- 'Mai'
- 'Juni'
- 'Juli'
- 'August'
- 'September'
- 'Oktober'
- 'November'
- 'Dezember'
DAYS_OF_THE_WEEK:
- 'Montag'
- 'Dienstag'
- 'Mittwoch'
- 'Donnerstag'
- 'Freitag'
- 'Samstag'
- 'Sonntag'
YES: "Ja"
NO: "Nein"
CRON:
EVERY: jede
EVERY_HOUR: jede Stunde
EVERY_MINUTE: Jede Minute
EVERY_DAY_OF_WEEK: jeden Tag der Woche
EVERY_DAY_OF_MONTH: jeden Tag des Monats
EVERY_MONTH: jeden Monat
TEXT_PERIOD: Alle <b />
TEXT_MINS: ' bei <b /> Minuten nach der vollen Stunde (n)'
TEXT_TIME: ' bei <b />:<b />'
TEXT_DOW: ' auf <b />'
TEXT_MONTH: ' von <b />'
TEXT_DOM: ' auf <b />'
ERROR1: Der Tag %s wird nicht unterstützt!
ERROR2: Ungültige Anzahl von Elementen
ERROR3: jquery_element sollte in den jqCron Einstellungen gesetzt werden
ERROR4: Unbekannter Ausdruck

View File

@ -1,22 +1,144 @@
--- ---
MONTHS_OF_THE_YEAR: GRAV:
- Ιανουάριος FRONTMATTER_ERROR_PAGE: "---\nΤίτλος: %1$s\n---\n\n# Σφάλμα: Μη έγκυρη διαδρομή Frontmatter\n\nΔιαδρομή: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
- Φεβρουάριος INFLECTOR_PLURALS:
- Μάρτιος '/(quiz)$/i': '\1zes'
- Απρίλιος '/^(ox)$/i': '\1en'
- Μάιος '/([m|l])ouse$/i': '\1ice'
- Ιούνιος '/(matr|vert|ind)ix|ex$/i': '\1ices'
- Ιούλιος '/(x|ch|ss|sh)$/i': '\1es'
- Αύγουστος '/([^aeiouy]|qu)ies$/i': '\1y'
- Σεπτέμβριος '/([^aeiouy]|qu)y$/i': '\1ies'
- Οκτώβριος '/(hive)$/i': '\1s'
- Νοέμβριος '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
- Δεκέμβριος '/sis$/i': 'ses'
DAYS_OF_THE_WEEK: '/([ti])um$/i': '\1a'
- Δευτέρα '/(buffal|tomat)o$/i': '\1oes'
- Τρίτη '/(bu)s$/i': '\1ses'
- Τετάρτη '/(alias|status)/i': '\1es'
- Πέμπτη '/(octop|vir)us$/i': '\1i'
- Παρασκευή '/(ax|test)is$/i': '\1es'
- Σάββατο '/s$/i': 's'
- Κυριακή '/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'εξοπλισμός'
- 'πληροφοριες'
- 'rice'
- 'χρήματα'
- 'είδη'
- 'σειρές'
- 'ψάρι'
- 'πρόβατο'
INFLECTOR_IRREGULAR:
'person': 'άνθρωποι'
'man': 'άνδρες'
'child': 'παιδιά'
'sex': 'φύλο'
'move': 'κινήσεις'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'nd'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: Δεν δόθηκε καμία ημερομηνία
BAD_DATE: Εσφαλμένη ημερομηνία
AGO: πρίν
FROM_NOW: από τώρα
JUST_NOW: μόλις τώρα
SECOND: δευτερόλεπτο
MINUTE: λεπτό
HOUR: ώρα
DAY: ημέρα
WEEK: εβδομάδα
MONTH: μήνας
YEAR: έτος
DECADE: δεκαετία
SEC: δευτερόλεπτο
MIN: λεπτό
HR: ώρα
WK: εβδ
MO: μην
YR: έτος
DEC: δεκαετία
SECOND_PLURAL: δευτερόλεπτα
MINUTE_PLURAL: λεπτά
HOUR_PLURAL: ώρες
DAY_PLURAL: ημέρες
WEEK_PLURAL: εβδομάδες
MONTH_PLURAL: μήνες
YEAR_PLURAL: έτη
DECADE_PLURAL: δεκαετίες
SEC_PLURAL: δευτ.
MIN_PLURAL: λεπτά
HR_PLURAL: ώρες
WK_PLURAL: εβδομάδες
MO_PLURAL: μήνες
YR_PLURAL: έτη
DEC_PLURAL: δεκαετίες
FORM:
VALIDATION_FAIL: '<b>Η επικύρωση απέτυχε:</b>'
INVALID_INPUT: 'Μη έγκυρα δεδομένα σε'
MISSING_REQUIRED_FIELD: 'Λείπει το απαιτούμενο πεδίο:'
MONTHS_OF_THE_YEAR:
- 'Ιανουάριος'
- 'Φεβρουάριος'
- 'Μάρτιος'
- 'Απρίλιος'
- 'Μάιος'
- 'Ιούνιος'
- 'Ιούλιος'
- 'Αύγουστος'
- 'Σεπτέμβριος'
- 'Οκτώβριος'
- 'Νοέμβριος'
- 'Δεκέμβριος'
DAYS_OF_THE_WEEK:
- 'Δευτέρα'
- 'Τρίτη'
- 'Τετάρτη'
- 'Πέμπτη'
- 'Παρασκευή'
- 'Σάββατο'
- 'Κυριακή'
CRON:
EVERY: κάθε
EVERY_HOUR: κάθε ώρα
EVERY_MINUTE: κάθε λεπτό
EVERY_DAY_OF_WEEK: κάθε μέρα της εβδομάδος
EVERY_DAY_OF_MONTH: κάθε μέρα του μήνα
EVERY_MONTH: κάθε μήνα
TEXT_PERIOD: Κάθε <b />
TEXT_MINS: ' κατά <b /> λεπτό(ά) μετά την ώρα'
TEXT_TIME: ' στο <b />:<b />'
TEXT_DOW: ' στις <b />'
TEXT_MONTH: ' από <b />'
TEXT_DOM: ' στις <b />'
ERROR1: Η ετικέτα %s δεν υποστηρίζεται!
ERROR2: Μη έγκυρος αριθμός στοιχείων
ERROR3: Το jquery_element θα έπρεπε να οριστεί στις ρυθμίσεις του jqCron
ERROR4: Μη αναγνωρισμένη έκφραση

View File

@ -1,99 +1,121 @@
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" ---
INFLECTOR_PLURALS: GRAV:
'/(quiz)$/i': '\1zes' FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
'/^(ox)$/i': '\1en' INFLECTOR_PLURALS:
'/([m|l])ouse$/i': '\1ice' '/(quiz)$/i': '\1zes'
'/(matr|vert|ind)ix|ex$/i': '\1ices' '/^(ox)$/i': '\1en'
'/(x|ch|ss|sh)$/i': '\1es' '/([m|l])ouse$/i': '\1ice'
'/([^aeiouy]|qu)ies$/i': '\1y' '/(matr|vert|ind)ix|ex$/i': '\1ices'
'/([^aeiouy]|qu)y$/i': '\1ies' '/(x|ch|ss|sh)$/i': '\1es'
'/(hive)$/i': '\1s' '/([^aeiouy]|qu)ies$/i': '\1y'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves' '/([^aeiouy]|qu)y$/i': '\1ies'
'/sis$/i': 'ses' '/(hive)$/i': '\1s'
'/([ti])um$/i': '\1a' '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/(buffal|tomat)o$/i': '\1oes' '/sis$/i': 'ses'
'/(bu)s$/i': '\1ses' '/([ti])um$/i': '\1a'
'/(alias|status)/i': '\1es' '/(buffal|tomat)o$/i': '\1oes'
'/(octop|vir)us$/i': '\1i' '/(bu)s$/i': '\1ses'
'/(ax|test)is$/i': '\1es' '/(alias|status)/i': '\1es'
'/s$/i': 's' '/(octop|vir)us$/i': '\1i'
'/$/': 's' '/(ax|test)is$/i': '\1es'
INFLECTOR_SINGULAR: '/s$/i': 's'
'/(quiz)zes$/i': '\1' '/$/': 's'
'/(matr)ices$/i': '\1ix' INFLECTOR_SINGULAR:
'/(vert|ind)ices$/i': '\1ex' '/(quiz)zes$/i': '\1'
'/^(ox)en/i': '\1' '/(matr)ices$/i': '\1ix'
'/(alias|status)es$/i': '\1' '/(vert|ind)ices$/i': '\1ex'
'/([octop|vir])i$/i': '\1us' '/^(ox)en/i': '\1'
'/(cris|ax|test)es$/i': '\1is' '/(alias|status)es$/i': '\1'
'/(shoe)s$/i': '\1' '/([octop|vir])i$/i': '\1us'
'/(o)es$/i': '\1' '/(cris|ax|test)es$/i': '\1is'
'/(bus)es$/i': '\1' '/(shoe)s$/i': '\1'
'/([m|l])ice$/i': '\1ouse' '/(o)es$/i': '\1'
'/(x|ch|ss|sh)es$/i': '\1' '/(bus)es$/i': '\1'
'/(m)ovies$/i': '\1ovie' '/([m|l])ice$/i': '\1ouse'
'/(s)eries$/i': '\1eries' '/(x|ch|ss|sh)es$/i': '\1'
'/([^aeiouy]|qu)ies$/i': '\1y' '/(m)ovies$/i': '\1ovie'
'/([lr])ves$/i': '\1f' '/(s)eries$/i': '\1eries'
'/(tive)s$/i': '\1' '/([^aeiouy]|qu)ies$/i': '\1y'
'/(hive)s$/i': '\1' '/([lr])ves$/i': '\1f'
'/([^f])ves$/i': '\1fe' '/(tive)s$/i': '\1'
'/(^analy)ses$/i': '\1sis' '/(hive)s$/i': '\1'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' '/([^f])ves$/i': '\1fe'
'/([ti])a$/i': '\1um' '/(^analy)ses$/i': '\1sis'
'/(n)ews$/i': '\1ews' '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/s$/i': '' '/([ti])a$/i': '\1um'
INFLECTOR_UNCOUNTABLE: ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep'] '/(n)ews$/i': '\1ews'
INFLECTOR_IRREGULAR: '/s$/i': ''
'person': 'people' INFLECTOR_UNCOUNTABLE: ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep']
'man': 'men' INFLECTOR_IRREGULAR:
'child': 'children' 'person': 'people'
'sex': 'sexes' 'man': 'men'
'move': 'moves' 'child': 'children'
INFLECTOR_ORDINALS: 'sex': 'sexes'
'default': 'th' 'move': 'moves'
'first': 'st' INFLECTOR_ORDINALS:
'second': 'nd' 'default': 'th'
'third': 'rd' 'first': 'st'
NICETIME: 'second': 'nd'
NO_DATE_PROVIDED: No date provided 'third': 'rd'
BAD_DATE: Bad date NICETIME:
AGO: ago NO_DATE_PROVIDED: No date provided
FROM_NOW: from now BAD_DATE: Bad date
JUST_NOW: just now AGO: ago
SECOND: second FROM_NOW: from now
MINUTE: minute JUST_NOW: just now
HOUR: hour SECOND: second
DAY: day MINUTE: minute
WEEK: week HOUR: hour
MONTH: month DAY: day
YEAR: year WEEK: week
DECADE: decade MONTH: month
SEC: sec YEAR: year
MIN: min DECADE: decade
HR: hr SEC: sec
WK: wk MIN: min
MO: mo HR: hr
YR: yr WK: wk
DEC: dec MO: mo
SECOND_PLURAL: seconds YR: yr
MINUTE_PLURAL: minutes DEC: dec
HOUR_PLURAL: hours SECOND_PLURAL: seconds
DAY_PLURAL: days MINUTE_PLURAL: minutes
WEEK_PLURAL: weeks HOUR_PLURAL: hours
MONTH_PLURAL: months DAY_PLURAL: days
YEAR_PLURAL: years WEEK_PLURAL: weeks
DECADE_PLURAL: decades MONTH_PLURAL: months
SEC_PLURAL: secs YEAR_PLURAL: years
MIN_PLURAL: mins DECADE_PLURAL: decades
HR_PLURAL: hrs SEC_PLURAL: secs
WK_PLURAL: wks MIN_PLURAL: mins
MO_PLURAL: mos HR_PLURAL: hrs
YR_PLURAL: yrs WK_PLURAL: wks
DEC_PLURAL: decs MO_PLURAL: mos
FORM: YR_PLURAL: yrs
VALIDATION_FAIL: <b>Validation failed:</b> DEC_PLURAL: decs
INVALID_INPUT: Invalid input in FORM:
MISSING_REQUIRED_FIELD: Missing required field: VALIDATION_FAIL: '<b>Validation failed:</b>'
MONTHS_OF_THE_YEAR: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] INVALID_INPUT: 'Invalid input in'
DAYS_OF_THE_WEEK: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] MISSING_REQUIRED_FIELD: 'Missing required field:'
XSS_ISSUES: "Potential XSS issues detected in '%s' field"
MONTHS_OF_THE_YEAR: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
DAYS_OF_THE_WEEK: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
YES: "Yes"
NO: "No"
CRON:
EVERY: every
EVERY_HOUR: every hour
EVERY_MINUTE: every minute
EVERY_DAY_OF_WEEK: every day of the week
EVERY_DAY_OF_MONTH: every day of the month
EVERY_MONTH: every month
TEXT_PERIOD: Every <b />
TEXT_MINS: ' at <b /> minute(s) past the hour'
TEXT_TIME: ' at <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: The tag %s is not supported!
ERROR2: Bad number of elements
ERROR3: The jquery_element should be set into jqCron settings
ERROR4: Unrecognized expression

View File

@ -1,90 +1,107 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntítulo: %1$s\n---\n\n# Error: Prefacio no válido\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s INFLECTOR_PLURALS:
--- '/(quiz)$/i': '\1ios'
'/s$/i': 's'
# Error: Frontmatter Inválido '/$/': 's'
INFLECTOR_UNCOUNTABLE:
Ruta: `%2$s` - 'equipamiento'
- 'información'
**%3$s** - 'arroz'
- 'dinero'
``` - 'especies'
%4$s - 'series'
``` - 'pescado'
INFLECTOR_UNCOUNTABLE: - 'oveja'
0: equipo INFLECTOR_IRREGULAR:
1: información 'person': 'personas'
3: dinero 'man': 'hombres'
5: series 'child': 'niños'
6: pescado 'sex': 'sexos'
7: oveja 'move': 'movido'
INFLECTOR_IRREGULAR: INFLECTOR_ORDINALS:
man: hombres 'first': 'ro'
child: niños 'second': 'do'
sex: sexos 'third': 'ro'
INFLECTOR_ORDINALS: NICETIME:
first: ro NO_DATE_PROVIDED: No se proporcionó fecha
second: do BAD_DATE: Fecha errónea
third: ro AGO: antes
NICETIME: FROM_NOW: desde ahora
NO_DATE_PROVIDED: No se proporcionó fecha JUST_NOW: hace un momento
BAD_DATE: Fecha erronea SECOND: segundo
AGO: antes MINUTE: minuto
FROM_NOW: desde ahora HOUR: hora
SECOND: segundo DAY: día
MINUTE: minuto WEEK: semana
HOUR: hora MONTH: mes
DAY: día YEAR: año
WEEK: semana DECADE: década
MONTH: mes SEC: seg
YEAR: año MIN: min
DECADE: década HR: h
SEC: seg WK: sem
MIN: min MO: mes
HR: h YR: año
WK: sem DEC: dic
MO: mes SECOND_PLURAL: segundos
YR: año MINUTE_PLURAL: minutos
DEC: dec HOUR_PLURAL: horas
SECOND_PLURAL: segundos DAY_PLURAL: días
MINUTE_PLURAL: minutos WEEK_PLURAL: semanas
HOUR_PLURAL: horas MONTH_PLURAL: meses
DAY_PLURAL: días YEAR_PLURAL: años
WEEK_PLURAL: semanas DECADE_PLURAL: décadas
MONTH_PLURAL: meses SEC_PLURAL: segs
YEAR_PLURAL: años MIN_PLURAL: mins
DECADE_PLURAL: décadas HR_PLURAL: hs
SEC_PLURAL: segs WK_PLURAL: sem
MIN_PLURAL: mins MO_PLURAL: mes
HR_PLURAL: hs YR_PLURAL: años
WK_PLURAL: sem DEC_PLURAL: décadas
MO_PLURAL: mes FORM:
YR_PLURAL: años VALIDATION_FAIL: '<b>Falló la validación: </b>'
DEC_PLURAL: décadas INVALID_INPUT: 'Dato inválido en: '
FORM: MISSING_REQUIRED_FIELD: 'Falta el campo requerido: '
VALIDATION_FAIL: '<b>Falló la validación. </b>' XSS_ISSUES: "Se detectaron problemas XSS potenciales en el campo '%s'"
INVALID_INPUT: 'Dato inválido en: ' MONTHS_OF_THE_YEAR:
MISSING_REQUIRED_FIELD: 'Falta el campo requerido: ' - 'Enero'
MONTHS_OF_THE_YEAR: - 'Febrero'
- Enero - 'Marzo'
- Febrero - 'Abril'
- Marzo - 'Mayo'
- Abril - 'Junio'
- Mayo - 'Julio'
- Junio - 'Agosto'
- Julio - 'Septiembre'
- Agosto - 'Octubre'
- Septiembre - 'Noviembre'
- Octubre - 'Diciembre'
- Noviembre DAYS_OF_THE_WEEK:
- Diciembre - 'Lunes'
DAYS_OF_THE_WEEK: - 'Martes'
- Lunes - 'Miércoles'
- Martes - 'Jueves'
- Miércoles - 'Viernes'
- Jueves - 'Sábado'
- Viernes - 'Domingo'
- Sábado YES: "Si"
- Domingo NO: "No"
CRON:
EVERY: cada
EVERY_HOUR: cada hora
EVERY_MINUTE: cada minuto
EVERY_DAY_OF_WEEK: cada día de la semana
EVERY_DAY_OF_MONTH: cada día del mes
EVERY_MONTH: cada mes
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' a <b /> minuto(s) despues de la hora'
TEXT_TIME: ' a <b />:<b />'
TEXT_DOW: ' en <b />'
TEXT_MONTH: ' de<b />'
TEXT_DOM: ' en<b />'
ERROR1: La etiqueta %s no está soportada!
ERROR2: El número de elementos es erroneo
ERROR3: El jquery_element debería establecerse en la configuración del jqCron
ERROR4: Expresión no reconocida

104
system/languages/et.yaml Normal file
View File

@ -0,0 +1,104 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\npealkiri: %1$s\n---\n\n# Viga: vigane Frontmatter'i\n\nasukoht: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(octop|vir)us$/i': '\1i'
INFLECTOR_SINGULAR:
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/(x|ch|ss|sh)es$/i': '\1'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'informatsioon'
- 'riis'
- 'raha'
- 'species'
- 'series'
- 'kala'
- 'lammas'
INFLECTOR_IRREGULAR:
'person': 'inimesed'
'man': 'mees'
'child': 'lapsed'
INFLECTOR_ORDINALS:
'default': '.'
'first': '.'
'second': '.'
'third': '.'
NICETIME:
NO_DATE_PROVIDED: Kuupäev määramata
BAD_DATE: Vigane kuupäev
AGO: tagasi
FROM_NOW: praegusest
JUST_NOW: just nüüd
SECOND: sekund
MINUTE: minut
HOUR: tundi
DAY: päev
WEEK: nädal
MONTH: kuu
YEAR: aasta
DECADE: 10 aastat
SEC: sek
MIN: min
HR: t
WK: näd
MO: k.
YR: a.
DEC: dekaad
SECOND_PLURAL: sekundit
MINUTE_PLURAL: minutit
HOUR_PLURAL: tundi
DAY_PLURAL: päeva
WEEK_PLURAL: nädalat
MONTH_PLURAL: kuud
YEAR_PLURAL: aastat
DECADE_PLURAL: dekaadi
SEC_PLURAL: sekundit
MIN_PLURAL: min
HR_PLURAL: t
WK_PLURAL: näd
MO_PLURAL: kuud
YR_PLURAL: aastat
DEC_PLURAL: dek.
FORM:
VALIDATION_FAIL: '<b>Kinnitamine nurjus:</b>'
INVALID_INPUT: 'Vigane sisend:'
MISSING_REQUIRED_FIELD: 'Nõutud väli puudub:'
MONTHS_OF_THE_YEAR:
- 'jaanuar'
- 'veebruar'
- 'märts'
- 'aprill'
- 'mai'
- 'juuni'
- 'juuli'
- 'august'
- 'september'
- 'oktoober'
- 'november'
- 'detsember'
DAYS_OF_THE_WEEK:
- 'esmaspäev'
- 'teisipäev'
- 'kolmapäev'
- 'neljapäev'
- 'reede'
- 'laupäev'
- 'pühapäev'
CRON:
EVERY: iga
EVERY_HOUR: iga tund
EVERY_MINUTE: iga minut
EVERY_DAY_OF_WEEK: iga nädala päev
EVERY_MONTH: iga kuu
TEXT_PERIOD: Iga <b />
ERROR1: Silt %s pole toetatud!
ERROR2: Vale elementide arv
ERROR3: jqCron seadetes peaks olema määratud jquery_element
ERROR4: Tundmatu väljend

62
system/languages/eu.yaml Normal file
View File

@ -0,0 +1,62 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "--- title: %1$s --- # Errorea: Baliogabeko Frontmatter Bidea: `%2$s` **%3$s** ``` %4$s ```"
NICETIME:
NO_DATE_PROVIDED: Ez da datarik ezarri
BAD_DATE: Okerreko data
AGO: ' duela'
FROM_NOW: oraindik aurrera
SECOND: segundo
MINUTE: minutu
HOUR: ordua
DAY: egun
WEEK: astea
MONTH: hilabetea
YEAR: urtea
DECADE: hamarkada
SEC: seg
HR: h
WK: ast
MO: hil
YR: urt
DEC: ham
SECOND_PLURAL: segundo
MINUTE_PLURAL: minutu
HOUR_PLURAL: ordu
DAY_PLURAL: egun
WEEK_PLURAL: aste
MONTH_PLURAL: hilabete
YEAR_PLURAL: urte
DECADE_PLURAL: hamarkada
SEC_PLURAL: segundo
MIN_PLURAL: minutu
HR_PLURAL: h
WK_PLURAL: ast
MO_PLURAL: hil
YR_PLURAL: urt
DEC_PLURAL: ham
FORM:
VALIDATION_FAIL: '<b>Balidazioak huts egin du</b>'
INVALID_INPUT: 'Baliogabeko sarrera'
MISSING_REQUIRED_FIELD: 'Derrigorrezko eremua bete gabe:'
MONTHS_OF_THE_YEAR:
- 'Urtarrila'
- 'Otsaila'
- 'Martxoa'
- 'Apirila'
- 'Maiatza'
- 'Ekaina'
- 'Uztaila'
- 'Abuztua'
- 'Iraila'
- 'Urria'
- 'Azaroa'
- 'Abendua'
DAYS_OF_THE_WEEK:
- 'Astelehena'
- 'Asteartea'
- 'Azteazkena'
- 'Osteguna'
- 'Ostirala'
- 'Larunbata'
- 'Igandea'

62
system/languages/fa.yaml Normal file
View File

@ -0,0 +1,62 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nعنوان: %1$s\n---\n\n# خطا: Frontmatter غلط\n\nمسیر: %2$s\n\n**%3$s**\n\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: تاریخی ارائه نشده
BAD_DATE: تاریخ اشتباه
AGO: قبل
FROM_NOW: از حالا
SECOND: ثانیه
MINUTE: دقیقه
HOUR: ساعت
DAY: روز
WEEK: هفته
MONTH: ماه
YEAR: سال
DECADE: دهه
SEC: ثانیه
MIN: دقیقه
HR: ساعت
WK: هفته
MO: ماه
YR: سال
DEC: دهه
SECOND_PLURAL: ثانیه
MINUTE_PLURAL: دقیقه
HOUR_PLURAL: ساعت
DAY_PLURAL: روز
WEEK_PLURAL: هفته
MONTH_PLURAL: ماه
YEAR_PLURAL: سال
DECADE_PLURAL: دهه
SEC_PLURAL: ثانیه
MIN_PLURAL: دقیقه
HR_PLURAL: ساعت
WK_PLURAL: هفته
YR_PLURAL: سال
DEC_PLURAL: دهه
FORM:
VALIDATION_FAIL: '<b>سنجش اعتبار ناموفق بود</b>'
INVALID_INPUT: 'ورودی نامعتبر در'
MISSING_REQUIRED_FIELD: 'قسمت ضروری جا افتاده:'
MONTHS_OF_THE_YEAR:
- 'ژانویه'
- 'فوریه'
- 'مارس'
- 'آوریل'
- 'می'
- 'ژوئن'
- 'ژوئیه'
- 'اوت'
- 'سپتامبر'
- 'اکتبر'
- 'نوامبر'
- 'دسامبر'
DAYS_OF_THE_WEEK:
- 'دوشنبه'
- 'سه‌ شنبه'
- 'چهارشنبه'
- 'پنج شنبه'
- 'جمعه'
- 'شنبه'
- 'یک‌شنبه'

View File

@ -1,60 +1,134 @@
--- ---
NICETIME: GRAV:
NO_DATE_PROVIDED: Päivämäärää ei annettu FRONTMATTER_ERROR_PAGE: "---\notsikko: %1$s\n---\n\n# Virhe: Virheellinen Frontmatter\n\nPolku: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
BAD_DATE: Virheellinen päivämäärä INFLECTOR_PLURALS:
AGO: sitten '/(quiz)$/i': '\1zes'
FROM_NOW: tästä lähtien '/^(ox)$/i': '\1en'
SECOND: sekunti '/([m|l])ouse$/i': '\1ice'
MINUTE: minuutti '/(matr|vert|ind)ix|ex$/i': '\1ices'
HOUR: tunti '/(x|ch|ss|sh)$/i': '\1es'
DAY: päivä '/([^aeiouy]|qu)ies$/i': '\1y'
WEEK: viikko '/([^aeiouy]|qu)y$/i': '\1ies'
MONTH: kuukausi '/(hive)$/i': '\1s'
YEAR: vuosi '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
DECADE: vuosikymmen '/sis$/i': 'ses'
SEC: sek '/([ti])um$/i': '\1a'
MIN: min '/(buffal|tomat)o$/i': '\1oes'
HR: h '/(bu)s$/i': '\1ses'
WK: vk '/(alias|status)/i': '\1es'
MO: kk '/(octop|vir)us$/i': '\1i'
YR: v '/(ax|test)is$/i': '\1es'
DEC: vuosikymmen '/s$/i': 's'
SECOND_PLURAL: sekuntia '/$/': 's'
MINUTE_PLURAL: minuuttia INFLECTOR_SINGULAR:
HOUR_PLURAL: tuntia '/(quiz)zes$/i': '\1'
DAY_PLURAL: päivää '/(matr)ices$/i': '\1ix'
WEEK_PLURAL: viikkoa '/(vert|ind)ices$/i': '\1ex'
MONTH_PLURAL: kuukautta '/^(ox)en/i': '\1'
YEAR_PLURAL: vuotta '/(alias|status)es$/i': '\1'
DECADE_PLURAL: vuosikymmentä '/([octop|vir])i$/i': '\1us'
SEC_PLURAL: sek '/(cris|ax|test)es$/i': '\1is'
MIN_PLURAL: min '/(shoe)s$/i': '\1'
HR_PLURAL: h '/(o)es$/i': '\1'
WK_PLURAL: v '/(bus)es$/i': '\1'
MO_PLURAL: kk '/([m|l])ice$/i': '\1ouse'
YR_PLURAL: v '/(x|ch|ss|sh)es$/i': '\1'
DEC_PLURAL: vuosikymmentä '/(m)ovies$/i': '\1ovie'
FORM: '/(s)eries$/i': '\1eries'
VALIDATION_FAIL: '<b>Vahvistus epäonnistui:</b>' '/([^aeiouy]|qu)ies$/i': '\1y'
MISSING_REQUIRED_FIELD: 'Puuttuva pakollinen kenttä:' '/([lr])ves$/i': '\1f'
MONTHS_OF_THE_YEAR: '/(tive)s$/i': '\1'
- Tammikuu '/(hive)s$/i': '\1'
- Helmikuu '/([^f])ves$/i': '\1fe'
- Maaliskuu '/(^analy)ses$/i': '\1sis'
- Huhtikuu '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
- Toukokuu '/([ti])a$/i': '\1um'
- Kesäkuuta '/(n)ews$/i': '\1ews'
- Heinäkuu INFLECTOR_UNCOUNTABLE:
- Elokuu - 'equipment'
- Syyskuu - 'information'
- Lokakuu - 'riisi'
- Marraskuu - 'raha'
- Joulukuu - 'lajit'
DAYS_OF_THE_WEEK: - 'series'
- Maanantai - 'kala'
- Tiistai - 'lammas'
- Keskiviikko INFLECTOR_IRREGULAR:
- Torstai 'person': 'ihmiset'
- Perjantai 'man': 'miehet'
- Lauantai 'child': 'lapset'
- Sunnuntai 'sex': 'sukupuoli'
INFLECTOR_ORDINALS:
'default': '.'
'first': '.'
'second': '.'
'third': '.'
NICETIME:
NO_DATE_PROVIDED: Päivämäärää ei annettu
BAD_DATE: Virheellinen päivämäärä
AGO: sitten
FROM_NOW: tästä lähtien
JUST_NOW: juuri nyt
SECOND: sekuntti
MINUTE: minuutti
HOUR: tunti
DAY: päivä
WEEK: viikko
MONTH: kuukausi
YEAR: vuosi
DECADE: vuosikymmen
SEC: sek
MIN: min
HR: h
WK: vk
MO: kk
YR: v
DEC: vuosikymmen
SECOND_PLURAL: sekuntia
MINUTE_PLURAL: minuuttia
HOUR_PLURAL: tuntia
DAY_PLURAL: päivää
WEEK_PLURAL: viikkoa
MONTH_PLURAL: kuukautta
YEAR_PLURAL: vuotta
DECADE_PLURAL: vuosikymmentä
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: h
WK_PLURAL: v
MO_PLURAL: kk
YR_PLURAL: v
DEC_PLURAL: vuosikymmentä
FORM:
VALIDATION_FAIL: '<b>Vahvistus epäonnistui:</b>'
INVALID_INPUT: 'Syöte ei kelpaa'
MISSING_REQUIRED_FIELD: 'Puuttuva pakollinen kenttä:'
MONTHS_OF_THE_YEAR:
- 'Tammikuu'
- 'Helmikuu'
- 'Maaliskuu'
- 'Huhtikuu'
- 'Toukokuu'
- 'Kesäkuuta'
- 'Heinäkuu'
- 'Elokuu'
- 'Syyskuu'
- 'Lokakuu'
- 'Marraskuu'
- 'Joulukuu'
DAYS_OF_THE_WEEK:
- 'Maanantai'
- 'Tiistai'
- 'Keskiviikko'
- 'Torstai'
- 'Perjantai'
- 'Lauantai'
- 'Sunnuntai'
CRON:
EVERY: joka
EVERY_HOUR: joka tunti
EVERY_MINUTE: joka minuutti
EVERY_DAY_OF_WEEK: viikon jokaisena päivänä
EVERY_DAY_OF_MONTH: kuukauden jokaisena päivänä
EVERY_MONTH: joka kuukausi
TEXT_PERIOD: Joka <b />

View File

@ -1,126 +1,124 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitre: %1$s\n---\n\n# Erreur : Frontmatter invalide\n\nChemin: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s INFLECTOR_PLURALS:
--- '/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
# Erreur : Frontmatter invalide '/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
Path: `%2$s` '/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
**%3$s** '/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
``` '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
%4$s '/sis$/i': 'ses'
``` '/([ti])um$/i': '\1a'
INFLECTOR_PLURALS: '/(buffal|tomat)o$/i': '\1es'
/(quiz)$/i: '\1zes' '/(bu)s$/i': 'Bus'
/^(ox)$/i: '\1en' '/(alias|status)/i': 'alias|status'
"/([m|l])ouse$/i": '\1ice' '/(octop|vir)us$/i': 'virus'
/(matr|vert|ind)ix|ex$/i: '\1ices' '/(ax|test)is$/i': '\1s'
/(x|ch|ss|sh)$/i: '\1es' '/s$/i': 's'
"/([^aeiouy]|qu)ies$/i": '\1y' '/$/': 's'
"/([^aeiouy]|qu)y$/i": '\1ies' INFLECTOR_SINGULAR:
/(hive)$/i: '\1s' '/(quiz)zes$/i': '\1'
"/(?:([^f])fe|([lr])f)$/i": '\1\2ves' '/(alias|status)es$/i': '\1'
/sis$/i: ses '/([octop|vir])i$/i': '\1us'
"/([ti])um$/i": '\1a' INFLECTOR_UNCOUNTABLE:
/(buffal|tomat)o$/i: '\1oes' - 'équipement'
/(bu)s$/i: '\1ses' - 'information'
/(alias|status)/i: '\1es' - 'riz'
/(octop|vir)us$/i: '\1i' - 'argent'
/(ax|test)is$/i: '\1es' - 'espèces'
/s$/i: s - 'séries'
/$/: s - 'poisson'
INFLECTOR_SINGULAR: - 'mouton'
/(quiz)zes$/i: '\1' INFLECTOR_IRREGULAR:
/(matr)ices$/i: '\1ix' 'person': 'personnes'
/(vert|ind)ices$/i: '\1ex' 'man': 'hommes'
/^(ox)en/i: '\1' 'child': 'enfants'
/(alias|status)es$/i: '\1' 'sex': 'sexes'
"/([octop|vir])i$/i": '\1us' 'move': 'déplacements'
/(cris|ax|test)es$/i: '\1is' INFLECTOR_ORDINALS:
/(shoe)s$/i: '\1' 'default': 'ème'
/(o)es$/i: '\1' 'first': 'er'
/(bus)es$/i: '\1' 'second': 'ème'
"/([m|l])ice$/i": '\1ouse' 'third': 'ème'
/(x|ch|ss|sh)es$/i: '\1' NICETIME:
/(m)ovies$/i: '\1ovie' NO_DATE_PROVIDED: Aucune date fournie
/(s)eries$/i: '\1eries' BAD_DATE: Date erronée
"/([^aeiouy]|qu)ies$/i": '\1y' AGO: plus tôt
"/([lr])ves$/i": '\1f' FROM_NOW: à partir de maintenant
/(tive)s$/i: '\1' JUST_NOW: à l'instant
/(hive)s$/i: '\1' SECOND: seconde
"/([^f])ves$/i": '\1fe' MINUTE: minute
/(^analy)ses$/i: '\1sis' HOUR: heure
/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i: '\1\2sis' DAY: jour
"/([ti])a$/i": '\1um' WEEK: semaine
/(n)ews$/i: '\1ews' MONTH: mois
INFLECTOR_UNCOUNTABLE: YEAR: année
- équipement DECADE: décennie
- informations SEC: s
- riz MIN: m
- argent HR: h
- espèces WK: sem
- séries MO: m
- poisson YR: an
- mouton DEC: déc
INFLECTOR_IRREGULAR: SECOND_PLURAL: secondes
person: personnes MINUTE_PLURAL: minutes
man: hommes HOUR_PLURAL: heures
child: enfants DAY_PLURAL: jours
sex: sexes WEEK_PLURAL: semaines
move: déplacements MONTH_PLURAL: mois
INFLECTOR_ORDINALS: YEAR_PLURAL: années
default: ème DECADE_PLURAL: décennies
first: er SEC_PLURAL: s
second: ème MIN_PLURAL: m
third: ème HR_PLURAL: h
NICETIME: WK_PLURAL: sem
NO_DATE_PROVIDED: Aucune date fournie MO_PLURAL: mois
BAD_DATE: Date erronée YR_PLURAL: a
AGO: plus tôt DEC_PLURAL: décs
FROM_NOW: à partir de maintenant FORM:
SECOND: seconde VALIDATION_FAIL: '<b>La validation a échoué :</b>'
MINUTE: minute INVALID_INPUT: 'Saisie non valide'
HOUR: heure MISSING_REQUIRED_FIELD: 'Champ obligatoire manquant :'
DAY: jour MONTHS_OF_THE_YEAR:
WEEK: semaine - 'janvier'
MONTH: mois - 'février'
YEAR: année - 'mars'
DECADE: décennie - 'avril'
SEC: s - 'mai'
MIN: m - 'juin'
HR: h - 'juillet'
WK: sem - 'août'
MO: m - 'septembre'
YR: an - 'octobre'
DEC: déc - 'novembre'
SECOND_PLURAL: secondes - 'décembre'
MINUTE_PLURAL: minutes DAYS_OF_THE_WEEK:
HOUR_PLURAL: heures - 'lundi'
DAY_PLURAL: jours - 'mardi'
WEEK_PLURAL: semaines - 'mercredi'
MONTH_PLURAL: mois - 'jeudi'
YEAR_PLURAL: années - 'vendredi'
DECADE_PLURAL: décennies - 'samedi'
SEC_PLURAL: s - 'dimanche'
MIN_PLURAL: m CRON:
HR_PLURAL: h EVERY: chaque
WK_PLURAL: sem EVERY_HOUR: toutes les heures
MO_PLURAL: mois EVERY_MINUTE: chaque minute
YR_PLURAL: a EVERY_DAY_OF_WEEK: tous les jours de la semaine
DEC_PLURAL: décs EVERY_DAY_OF_MONTH: tous les jours du mois
FORM: EVERY_MONTH: chaque mois
VALIDATION_FAIL: '<b>La validation a échoué :</b>' TEXT_PERIOD: Chaque<b/>
INVALID_INPUT: Saisie non valide TEXT_MINS: ' à <b /> minute(s) après l''heure'
MISSING_REQUIRED_FIELD: 'Champ obligatoire manquant :' TEXT_TIME: ' à<b/>:<b/>'
MONTHS_OF_THE_YEAR: [Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre] TEXT_DOW: ' sur <b/>'
DAYS_OF_THE_WEEK: TEXT_MONTH: ' de <b />'
- Lundi TEXT_DOM: ' sur <b/>'
- Mardi ERROR1: La balise %s n'est pas supportée!
- Mercredi ERROR2: Nombre invalide d'éléments
- Jeudi ERROR3: L'élément jquery_element doit être défini dans les paramètres jqCron
- Vendredi ERROR4: Expression non reconnue
- Samedi
- Dimanche

144
system/languages/gl.yaml Normal file
View File

@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntítulo: %1$s\n---\n\n# Erro: Limiar incorrecto\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1'
'/(octop|vir)us$/i': '\1'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1ces'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1'
'/(cris|ax|test)es$/i': '\1es'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1se'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2se'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'equipo'
- 'información'
- 'arroz'
- 'diñeiro'
- 'especies'
- 'series'
- 'peixe'
- 'ovella'
INFLECTOR_IRREGULAR:
'person': 'xente'
'man': 'home'
'child': 'neno'
'sex': 'sexos'
'move': 'move'
INFLECTOR_ORDINALS:
'default': 'º'
'first': 'º'
'second': 'º'
'third': 'º'
NICETIME:
NO_DATE_PROVIDED: Non fornece unha data
BAD_DATE: Data errada
AGO: hai
FROM_NOW: dende agora
JUST_NOW: xusto agora
SECOND: segundo
MINUTE: minuto
HOUR: hora
DAY: día
WEEK: semana
MONTH: mes
YEAR: ano
DECADE: década
SEC: seg
MIN: min
HR: hr
WK: Sem
MO: m
YR: a
DEC: dec
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: días
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: anos
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hrs
WK_PLURAL: sem
MO_PLURAL: mes
YR_PLURAL: a
DEC_PLURAL: deca
FORM:
VALIDATION_FAIL: '<b>Fallou a validación:</b>'
INVALID_INPUT: 'Entrada incorrecta en'
MISSING_REQUIRED_FIELD: 'Falta un campo requirido:'
MONTHS_OF_THE_YEAR:
- 'xaneiro'
- 'febreiro'
- 'marzo'
- 'abril'
- 'maio'
- 'xuño'
- 'xullo'
- 'agosto'
- 'setembro'
- 'outubro'
- 'novembro'
- 'decembro'
DAYS_OF_THE_WEEK:
- 'luns'
- 'martes'
- 'mércores'
- 'xoves'
- 'venres'
- 'sábado'
- 'domingo'
CRON:
EVERY: cada
EVERY_HOUR: Cada hora
EVERY_MINUTE: Cada minuto
EVERY_DAY_OF_WEEK: cada día da semana
EVERY_DAY_OF_MONTH: cada día do mes
EVERY_MONTH: cada mes
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' dentro de <b /> minuto(s) despois da hora'
TEXT_TIME: ' dentro <b />:<b />'
TEXT_DOW: ' o <b />'
TEXT_MONTH: ' de <b />'
TEXT_DOM: ' o <b />'
ERROR1: A etiqueta %s non é compatíbel!
ERROR2: Mal número de elementos
ERROR3: O jquery_element debería estar determinado na configuración de jqCron
ERROR4: Expresión non recoñecida

63
system/languages/he.yaml Normal file
View File

@ -0,0 +1,63 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nכותרת: %1$s\n---\n# שגיאה: Fronmatter לא חוקי\nנתיב: `%2$s`\n**%3$s**\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: לא סופק תאריך
BAD_DATE: תאריך פגום
AGO: לפני
FROM_NOW: כרגע
SECOND: שנייה
MINUTE: דקה
HOUR: שעה
DAY: יום
WEEK: שבוע
MONTH: חודש
YEAR: שנה
DECADE: עשור
SEC: שנ'
MIN: דק'
HR: ש'
WK: שב'
MO: חו'
YR: שני'
DEC: עש'
SECOND_PLURAL: שניות
MINUTE_PLURAL: דקות
HOUR_PLURAL: שעות
DAY_PLURAL: ימים
WEEK_PLURAL: שבועות
MONTH_PLURAL: חודשים
YEAR_PLURAL: שנים
DECADE_PLURAL: עשורים
SEC_PLURAL: שנ'
MIN_PLURAL: דק'
HR_PLURAL: ש'
WK_PLURAL: שב'
MO_PLURAL: חו'
YR_PLURAL: שני'
DEC_PLURAL: עש'
FORM:
VALIDATION_FAIL: '<b>האימות נכשל:</b>'
INVALID_INPUT: 'קלט לא חוקי'
MISSING_REQUIRED_FIELD: 'שדות חובה חסרים:'
MONTHS_OF_THE_YEAR:
- 'ינואר'
- 'פברואר'
- 'מרץ'
- 'אפריל'
- 'מאי'
- 'יוני'
- 'יולי'
- 'אוגוסט'
- 'ספטמבר'
- 'אוקטובר'
- 'נובמבר'
- 'דצמבר'
DAYS_OF_THE_WEEK:
- 'שני'
- 'שלישי'
- 'רביעי'
- 'חמישי'
- 'שישי'
- 'שבת'
- 'ראשון'

View File

@ -1,75 +1,76 @@
--- ---
INFLECTOR_UNCOUNTABLE: GRAV:
- oprema INFLECTOR_UNCOUNTABLE:
- informacije - 'oprema'
- riža - 'informacije'
- novac - 'riža'
- vrsta - 'novac'
- serija - 'vrsta'
- riba - 'serija'
- ovca - 'riba'
INFLECTOR_IRREGULAR: - 'ovca'
person: osobe INFLECTOR_IRREGULAR:
man: ljudi 'person': 'osobe'
child: djeca 'man': 'ljudi'
sex: spolovi 'child': 'djeca'
move: Pomakni 'sex': 'spolovi'
NICETIME: 'move': 'Pomakni'
NO_DATE_PROVIDED: Datum nije upisan NICETIME:
BAD_DATE: Pogrešan datum NO_DATE_PROVIDED: Datum nije upisan
AGO: prije BAD_DATE: Pogrešan datum
FROM_NOW: od sada AGO: prije
SECOND: sekunda FROM_NOW: od sada
MINUTE: minuta SECOND: sekunda
HOUR: sat MINUTE: minuta
DAY: dan HOUR: sat
WEEK: tjedan DAY: dan
MONTH: mjesec WEEK: tjedan
YEAR: godina MONTH: mjesec
DECADE: desetljeće YEAR: godina
SEC: sek DECADE: desetljeće
HR: sat SEC: sek
WK: t HR: sat
MO: m WK: t
YR: g MO: m
DEC: des YR: g
SECOND_PLURAL: sekundi DEC: des
MINUTE_PLURAL: minuta SECOND_PLURAL: sekundi
HOUR_PLURAL: sati MINUTE_PLURAL: minuta
DAY_PLURAL: dan HOUR_PLURAL: sati
WEEK_PLURAL: tjedana DAY_PLURAL: dan
MONTH_PLURAL: mjeseci WEEK_PLURAL: tjedana
YEAR_PLURAL: godina MONTH_PLURAL: mjeseci
DECADE_PLURAL: desetljeća YEAR_PLURAL: godina
SEC_PLURAL: sek DECADE_PLURAL: desetljeća
MIN_PLURAL: min SEC_PLURAL: sek
HR_PLURAL: sat MIN_PLURAL: min
WK_PLURAL: t HR_PLURAL: sat
MO_PLURAL: m WK_PLURAL: t
YR_PLURAL: g MO_PLURAL: m
DEC_PLURAL: des YR_PLURAL: g
FORM: DEC_PLURAL: des
VALIDATION_FAIL: '<b>Validacija nije uspjela:</b>' FORM:
INVALID_INPUT: Pogrešan unos u VALIDATION_FAIL: '<b>Validacija nije uspjela:</b>'
MISSING_REQUIRED_FIELD: 'Nedostaje obavezno polje:' INVALID_INPUT: 'Pogrešan unos u'
MONTHS_OF_THE_YEAR: MISSING_REQUIRED_FIELD: 'Nedostaje obavezno polje:'
- Siječanj MONTHS_OF_THE_YEAR:
- Veljača - 'Siječanj'
- Ožujak - 'Veljača'
- Travanj - 'Ožujak'
- Svibanj - 'Travanj'
- Lipanj - 'Svibanj'
- Srpanj - 'Lipanj'
- Kolovoz - 'Srpanj'
- Rujan - 'Kolovoz'
- Listopad - 'Rujan'
- Studeni - 'Listopad'
- Prosinac - 'Studeni'
DAYS_OF_THE_WEEK: - 'Prosinac'
- Ponedjeljak DAYS_OF_THE_WEEK:
- Utorak - 'Ponedjeljak'
- Srijeda - 'Utorak'
- Četvrtak - 'Srijeda'
- Petak - 'Četvrtak'
- Subota - 'Petak'
- Nedjelja - 'Subota'
- 'Nedjelja'

View File

@ -1,138 +1,97 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ncím: %1$s\n---\n\n# Hiba: Érvénytelen Frontmatter\n\nElérési út: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
cím: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'felszerelés'
- 'információ'
# Hiba: Érvénytelen Frontmatter - 'rizs'
- 'pénz'
Elérési út: `%2$s` - 'fajok'
- 'sorozat'
**%3$s** - 'hal'
- 'juh'
``` INFLECTOR_IRREGULAR:
%4$s 'person': 'személyek'
``` 'man': 'férfiak'
INFLECTOR_PLURALS: 'child': 'gyerekek'
/(quiz)$/i: '\1zes' 'sex': 'nemek'
/^(ox)$/i: '\1en' 'move': 'lépések'
"/([m|l])ouse$/i": '\1ice' INFLECTOR_ORDINALS:
/(matr|vert|ind)ix|ex$/i: '\1ices' 'default': '.'
/(x|ch|ss|sh)$/i: '\1es' 'first': '.'
"/([^aeiouy]|qu)ies$/i": '\1y' 'second': '.'
"/([^aeiouy]|qu)y$/i": '\1ies' 'third': '.'
/(hive)$/i: '\1s' NICETIME:
"/(?:([^f])fe|([lr])f)$/i": '\1\2ves' NO_DATE_PROVIDED: Nincs dátum megadva
/sis$/i: ses BAD_DATE: Hibás dátum
"/([ti])um$/i": '\1a' AGO: elteltével
/(buffal|tomat)o$/i: '\1oes' FROM_NOW: mostantól
/(bu)s$/i: '\1ses' JUST_NOW: épp most
/(alias|status)/i: '\1es' SECOND: másodperc
/(octop|vir)us$/i: '\1i' MINUTE: perc
/(ax|test)is$/i: '\1es' HOUR: óra
/s$/i: s DAY: nap
/$/: s WEEK: hét
INFLECTOR_SINGULAR: MONTH: hónap
/(quiz)zes$/i: '\1' YEAR: év
/(matr)ices$/i: '\1ix' DECADE: évtized
/(vert|ind)ices$/i: '\1ex' SEC: mp
/^(ox)en/i: '\1' MIN: p
/(alias|status)es$/i: '\1' HR: ó
"/([octop|vir])i$/i": '\1us' WK: hét
/(cris|ax|test)es$/i: '\1is' MO:
/(shoe)s$/i: '\1' YR: év
/(o)es$/i: '\1' DEC: évt
/(bus)es$/i: '\1' SECOND_PLURAL: másodperc
"/([m|l])ice$/i": '\1ouse' MINUTE_PLURAL: perc
/(x|ch|ss|sh)es$/i: '\1' HOUR_PLURAL: óra
/(m)ovies$/i: '\1ovie' DAY_PLURAL: nap
/(s)eries$/i: '\1eries' WEEK_PLURAL: hét
"/([^aeiouy]|qu)ies$/i": '\1y' MONTH_PLURAL: hónap
"/([lr])ves$/i": '\1f' YEAR_PLURAL: év
/(tive)s$/i: '\1' DECADE_PLURAL: évtized
/(hive)s$/i: '\1' SEC_PLURAL: mp
"/([^f])ves$/i": '\1fe' MIN_PLURAL: perc
/(^analy)ses$/i: '\1sis' HR_PLURAL: ó
/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i: '\1\2sis' WK_PLURAL: hét
"/([ti])a$/i": '\1um' MO_PLURAL:
/(n)ews$/i: '\1ews' YR_PLURAL: év
INFLECTOR_UNCOUNTABLE: DEC_PLURAL: évt
- felszerelés FORM:
- információ VALIDATION_FAIL: '<b>Érvényesítés nem sikerült:</b>'
- rizs INVALID_INPUT: 'A megadott érték érvénytelen:'
- pénz MISSING_REQUIRED_FIELD: 'Ez a kötelező mező nincs kitöltve:'
- fajok MONTHS_OF_THE_YEAR:
- sorozat - 'január'
- hal - 'február'
- juh - 'március'
INFLECTOR_IRREGULAR: - 'április'
person: személyek - 'május'
man: férfiak - 'június'
child: gyerekek - 'július'
sex: nemek - 'augusztus'
move: lépések - 'szeptember'
INFLECTOR_ORDINALS: - 'október'
default: '.' - 'november'
first: '.' - 'december'
second: '.' DAYS_OF_THE_WEEK:
third: '.' - 'hétfő'
NICETIME: - 'kedd'
NO_DATE_PROVIDED: Nincs dátum megadva - 'szerda'
BAD_DATE: Hibás dátum - 'csütörtök'
AGO: elteltével - 'péntek'
FROM_NOW: mostantól - 'szombat'
SECOND: másodperc - 'vasárnap'
MINUTE: perc CRON:
HOUR: óra EVERY: minden
DAY: nap EVERY_HOUR: óránként
WEEK: hét EVERY_MINUTE: percenként
MONTH: hónap EVERY_DAY_OF_WEEK: a hét minden napján
YEAR: év EVERY_DAY_OF_MONTH: a hónap minden napján
DECADE: évtized EVERY_MONTH: minden hónapban
SEC: mp TEXT_PERIOD: Minden <b />
MIN: p TEXT_MINS: '<b /> perccel az óra elteltével'
HR: ó ERROR1: A %s címke nem engedélyezett!
WK: hét ERROR2: Hibás elemszám
MO: ERROR3: A jquery_element-et a jqCron beállítsokban kell meghatározni
YR: év ERROR4: Ismeretlen kifejezés
DEC: évt
SECOND_PLURAL: másodperc
MINUTE_PLURAL: perc
HOUR_PLURAL: óra
DAY_PLURAL: nap
WEEK_PLURAL: hét
MONTH_PLURAL: hónap
YEAR_PLURAL: év
DECADE_PLURAL: évtized
SEC_PLURAL: mp
MIN_PLURAL: perc
HR_PLURAL: ó
WK_PLURAL: hét
MO_PLURAL:
YR_PLURAL: év
DEC_PLURAL: évt
FORM:
VALIDATION_FAIL: '<b>A validáció hibát talált:</b>'
INVALID_INPUT: 'Az itt megadott érték érvénytelen:'
MISSING_REQUIRED_FIELD: 'Ez a kötelező mező nincs kitöltve:'
MONTHS_OF_THE_YEAR:
- január
- február
- március
- április
- május
- június
- július
- augusztus
- szeptember
- október
- november
- december
DAYS_OF_THE_WEEK:
- hétfő
- kedd
- szerda
- csütörtök
- péntek
- szombat
- vasárnap

97
system/languages/id.yaml Normal file
View File

@ -0,0 +1,97 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Frontmatter tidak valid\n\nLokasi: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
INFLECTOR_UNCOUNTABLE:
- 'peralatan'
- 'informasi'
- 'nasi'
- 'uang'
- 'spesies'
- 'rangkaian'
- 'ikan'
- 'domba'
INFLECTOR_IRREGULAR:
'person': 'orang-orang'
'man': 'laki-laki'
'child': 'anak-anak'
'sex': 'jenis kelamin'
'move': 'pindahkan'
NICETIME:
NO_DATE_PROVIDED: Tanggal tidak tersedia
BAD_DATE: Format tanggal salah
AGO: yang lalu
FROM_NOW: dari saat ini
JUST_NOW: baru saja
SECOND: detik
MINUTE: menit
HOUR: jam
DAY: hari
WEEK: pekan
MONTH: bulan
YEAR: tahun
DECADE: dekade
SEC: dtk
MIN: mnt
HR: j
WK: mng
MO: bln
YR: thn
DEC: desimal
SECOND_PLURAL: detik
MINUTE_PLURAL: menit
HOUR_PLURAL: jam
DAY_PLURAL: hari
WEEK_PLURAL: pekan
MONTH_PLURAL: bulan
YEAR_PLURAL: tahun
DECADE_PLURAL: dekade
SEC_PLURAL: dtk
MIN_PLURAL: mnt
HR_PLURAL: j
WK_PLURAL: mgg
MO_PLURAL: bln
YR_PLURAL: thn
DEC_PLURAL: dekade
FORM:
VALIDATION_FAIL: '<b>Validasi gagal:</b>'
INVALID_INPUT: 'Input tidak valid di'
MISSING_REQUIRED_FIELD: 'Data yang diperlukan belum terisi:'
MONTHS_OF_THE_YEAR:
- 'Januari'
- 'Februari'
- 'Maret'
- 'April'
- 'Mei'
- 'Juni'
- 'Juli'
- 'Agustus'
- 'September'
- 'Oktober'
- 'November'
- 'Desember'
DAYS_OF_THE_WEEK:
- 'Senin'
- 'Selasa'
- 'Rabu'
- 'Kamis'
- 'Jumat'
- 'Sabtu'
- 'Minggu'
CRON:
EVERY: Setiap
EVERY_HOUR: Setiap jam
EVERY_MINUTE: Setiap menit
EVERY_DAY_OF_WEEK: Setiap hari selama seminggu
EVERY_DAY_OF_MONTH: pada tanggal setiap bulannya
EVERY_MONTH: setiap bulan
TEXT_PERIOD: Setiap <b />
TEXT_TIME: ' pada <b />:<b />'
TEXT_DOW: ' pada <b />'
TEXT_MONTH: ' pada <b />'
TEXT_DOM: ' pada <b />'
ERROR1: Tag %s tidak didukung!
ERROR2: Jumlah elemen tidak valid
ERROR3: jquery_element harus ditetapkan ke pengaturan jqCron
ERROR4: Ekspresi tidak dikenali

80
system/languages/is.yaml Normal file
View File

@ -0,0 +1,80 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitill: %1$s\n---\n\n# Villa: Ógilt efni á forsíðu\n\nSlóð: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'upplýsingar'
- 'rice'
- 'money'
- 'species'
- 'series'
- 'fish'
- 'sheep'
NICETIME:
NO_DATE_PROVIDED: Engin dagsetning gefin
BAD_DATE: Röng dagsetning
AGO: síðan
JUST_NOW: í þessu
SECOND: sekúndu
MINUTE: mínútu
HOUR: klukkustund
DAY: degi
WEEK: viku
MONTH: mánuði
YEAR: ári
DECADE: áratug
SEC: sek
MIN: mín
HR: klst
WK: vk
MO: mán
YR: ár
DEC: árat
SECOND_PLURAL: sekúndum
MINUTE_PLURAL: mínútum
HOUR_PLURAL: klukkustundum
DAY_PLURAL: dögum
WEEK_PLURAL: vikum
MONTH_PLURAL: mánuðum
YEAR_PLURAL: árum
DECADE_PLURAL: áratugum
SEC_PLURAL: sek
MIN_PLURAL: mín
HR_PLURAL: klst
WK_PLURAL: vik
MO_PLURAL: mán
YR_PLURAL: árum
DEC_PLURAL: árat
FORM:
VALIDATION_FAIL: '<b>Sannvottun mistókst:</b>'
INVALID_INPUT: 'Ógilt inntak í'
MISSING_REQUIRED_FIELD: 'Vantar nauðsynlegan reit:'
MONTHS_OF_THE_YEAR:
- 'janúar'
- 'Febrúar'
- 'Mars'
- 'Apríl'
- 'Maí'
- 'Júní'
- 'Júlí'
- 'Ágúst'
- 'September'
- 'Október'
- 'Nóvember'
- 'Desember'
DAYS_OF_THE_WEEK:
- 'Mánudagur'
- 'Þriðjudagur'
- 'Miðvikudagur'
- 'Fimmtudagur'
- 'Föstudagur'
- 'Laugardagur'
- 'Sunnudagur'
CRON:
TEXT_TIME: ' á <b />:<b />'
TEXT_DOW: ' á <b />'
TEXT_MONTH: ' af <b />'
TEXT_DOM: ' á <b />'
ERROR1: Merkið %s er ekki stutt!
ERROR3: Það ætti að setja jquery_element inn í stillingar jqCron
ERROR4: Óþekkt segð

View File

@ -1,62 +1,147 @@
--- ---
FRONTMATTER_ERROR_PAGE: "---Titolo: %1$s---# Errore: Frontmatter non valido: '%2$s' * *%3$s * * ' '%4$s ' '" GRAV:
NICETIME: FRONTMATTER_ERROR_PAGE: "---Titolo: %1$s---# Errore: Frontmatter non valido: '%2$s' * *%3$s * * ' '%4$s ' '"
NO_DATE_PROVIDED: Nessuna data fornita INFLECTOR_PLURALS:
BAD_DATE: Data non valida '/(quiz)$/i': '\1'
AGO: fa '/^(ox)$/i': '\1en'
FROM_NOW: da adesso '/([m|l])ouse$/i': '\1ice'
SECOND: secondo '/(matr|vert|ind)ix|ex$/i': '\1ices'
MINUTE: minuto '/(x|ch|ss|sh)$/i': '\1es'
HOUR: ora '/([^aeiouy]|qu)ies$/i': '\1y'
DAY: giorno '/([^aeiouy]|qu)y$/i': '\1ies'
WEEK: settimana '/(hive)$/i': '\1s'
MONTH: mese '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
YEAR: anno '/sis$/i': 'ses'
DECADE: decennio '/([ti])um$/i': '\1a'
SEC: sec '/(buffal|tomat)o$/i': '\1oes'
MIN: min '/(bu)s$/i': '\1ses'
HR: ora '/(alias|status)/i': '\1es'
WK: settimana '/(octop|vir)us$/i': '\1i'
MO: mese '/(ax|test)is$/i': '\1es'
YR: anno '/s$/i': 's'
DEC: decennio '/$/': 's'
SECOND_PLURAL: secondi INFLECTOR_SINGULAR:
MINUTE_PLURAL: minuti '/(quiz)zes$/i': '\1'
HOUR_PLURAL: ore '/(matr)ices$/i': '\1ix'
DAY_PLURAL: giorni '/(vert|ind)ices$/i': '\1ex'
WEEK_PLURAL: settimane '/^(ox)en/i': '\1'
MONTH_PLURAL: mesi '/(alias|status)es$/i': '\1'
YEAR_PLURAL: anni '/([octop|vir])i$/i': '\1us'
DECADE_PLURAL: decadi '/(cris|ax|test)es$/i': '\1is'
SEC_PLURAL: secondi '/(shoe)s$/i': '\1'
MIN_PLURAL: minuti '/(o)es$/i': '\1'
HR_PLURAL: ore '/(bus)es$/i': '\1'
WK_PLURAL: settimane '/([m|l])ice$/i': '\1ouse'
MO_PLURAL: mesi '/(x|ch|ss|sh)es$/i': '\1'
YR_PLURAL: anni '/(m)ovies$/i': '\1ovie'
DEC_PLURAL: decenni '/(s)eries$/i': '\1eries'
FORM: '/([^aeiouy]|qu)ies$/i': '\1y'
VALIDATION_FAIL: '<b>Validazione fallita:</b>' '/([lr])ves$/i': '\1f'
INVALID_INPUT: Input non valido in '/(tive)s$/i': '\1'
MISSING_REQUIRED_FIELD: 'Campo richiesto mancante:' '/(hive)s$/i': '\1'
MONTHS_OF_THE_YEAR: '/([^f])ves$/i': '\1fe'
- Gennaio '/(^analy)ses$/i': '\1sis'
- Febbraio '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
- Marzo '/([ti])a$/i': '\1um'
- Aprile '/(n)ews$/i': '\1ews'
- Maggio INFLECTOR_UNCOUNTABLE:
- Giugno - 'dotazione'
- Luglio - 'informazione'
- Agosto - 'riso'
- Settembre - 'denaro'
- Ottobre - 'specie'
- Novembre - 'serie'
- Dicembre - 'pesce'
DAYS_OF_THE_WEEK: - 'pecora'
- Lunedì INFLECTOR_IRREGULAR:
- Martedì 'person': 'persone'
- Mercoledì 'man': 'uomini'
- Giovedì 'child': 'bambino'
- Venerdì 'sex': 'sessi'
- Sabato 'move': 'sposta'
- Domenica INFLECTOR_ORDINALS:
'default': '°'
'first': '°'
'second': 'o'
'third': 'o'
NICETIME:
NO_DATE_PROVIDED: Nessuna data fornita
BAD_DATE: Data non valida
AGO: fa
FROM_NOW: da adesso
JUST_NOW: ora
SECOND: secondo
MINUTE: minuto
HOUR: ora
DAY: giorno
WEEK: settimana
MONTH: mese
YEAR: anno
DECADE: decennio
SEC: sec
MIN: min
HR: ora
WK: settimana
MO: mese
YR: anno
DEC: decennio
SECOND_PLURAL: secondi
MINUTE_PLURAL: minuti
HOUR_PLURAL: ore
DAY_PLURAL: giorni
WEEK_PLURAL: settimane
MONTH_PLURAL: mesi
YEAR_PLURAL: anni
DECADE_PLURAL: decadi
SEC_PLURAL: secondi
MIN_PLURAL: minuti
HR_PLURAL: ore
WK_PLURAL: settimane
MO_PLURAL: mesi
YR_PLURAL: anni
DEC_PLURAL: decenni
FORM:
VALIDATION_FAIL: '<b>Validazione fallita:</b>'
INVALID_INPUT: 'Input non valido in'
MISSING_REQUIRED_FIELD: 'Campo richiesto mancante:'
XSS_ISSUES: "Rilevati potenziali problemi di XSS nel campo '%s'"
MONTHS_OF_THE_YEAR:
- 'Gennaio'
- 'Febbraio'
- 'Marzo'
- 'Aprile'
- 'Maggio'
- 'Giugno'
- 'Luglio'
- 'Agosto'
- 'Settembre'
- 'Ottobre'
- 'Novembre'
- 'Dicembre'
DAYS_OF_THE_WEEK:
- 'Lunedì'
- 'Martedì'
- 'Mercoledì'
- 'Giovedì'
- 'Venerdì'
- 'Sabato'
- 'Domenica'
YES: "Sì"
NO: "No"
CRON:
EVERY: ogni
EVERY_HOUR: ogni ora
EVERY_MINUTE: ogni minuto
EVERY_DAY_OF_WEEK: ogni giorno della settimana
EVERY_DAY_OF_MONTH: ogni giorno del mese
EVERY_MONTH: ogni mese
TEXT_PERIOD: Ogni <b />
TEXT_MINS: ' a <b /> minuto(i) dall''inizio dell''ora'
TEXT_TIME: ' alle <b />:<b />'
TEXT_DOW: ' su <b />'
TEXT_MONTH: ' di <b />'
TEXT_DOM: ' di <b />'
ERROR1: Il tag %s non è supportato!
ERROR2: Numero di elementi non valido
ERROR3: Il jquery_element deve essere impostato nelle impostazioni di jqCron
ERROR4: Espressione non riconosciuta

View File

@ -1,24 +1,26 @@
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" ---
INFLECTOR_PLURALS: [] GRAV:
INFLECTOR_UNCOUNTABLE:
INFLECTOR_SINGULAR: [] - 'equipment'
- '情報'
INFLECTOR_UNCOUNTABLE: [] - 'rice'
- 'お金'
INFLECTOR_IRREGULAR: - 'species'
- 'series'
- '魚'
- 'ヒツジ'
INFLECTOR_IRREGULAR:
'person': 'みんな' 'person': 'みんな'
'man': '人' 'man': '人'
'child': '子供' 'child': '子供'
'sex': '性別' 'sex': '性別'
'move': '移動' 'move': '移動'
INFLECTOR_ORDINALS:
INFLECTOR_ORDINALS: [] 'first': '番目'
NICETIME:
NICETIME:
NO_DATE_PROVIDED: 日付が設定されていません NO_DATE_PROVIDED: 日付が設定されていません
BAD_DATE: 不正な日付 BAD_DATE: 不正な日付
AGO: AGO:
FROM_NOW: from now
SECOND: SECOND:
MINUTE: MINUTE:
HOUR: HOUR:
@ -33,7 +35,6 @@ NICETIME:
WK: WK:
MO: MO:
YR: YR:
DEC: dec
SECOND_PLURAL: SECOND_PLURAL:
MINUTE_PLURAL: MINUTE_PLURAL:
HOUR_PLURAL: HOUR_PLURAL:
@ -49,9 +50,32 @@ NICETIME:
MO_PLURAL: MO_PLURAL:
YR_PLURAL: YR_PLURAL:
DEC_PLURAL: 10年 DEC_PLURAL: 10年
FORM: FORM:
VALIDATION_FAIL: <b>バリデーション失敗 :</b> VALIDATION_FAIL: '<b>バリデーション失敗 :</b>'
INVALID_INPUT: 不正な入力: INVALID_INPUT: '不正な入力:'
MISSING_REQUIRED_FIELD: 必須項目が入力されていません: MISSING_REQUIRED_FIELD: '必須項目が入力されていません:'
MONTHS_OF_THE_YEAR: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] MONTHS_OF_THE_YEAR:
DAYS_OF_THE_WEEK: ['月', '火', '水', '木', '金', '土', '日'] - '1月'
- '2月'
- '3月'
- '4月'
- '5月'
- '6月'
- '7月'
- '8月'
- '9月'
- '10月'
- '11月'
- '12月'
DAYS_OF_THE_WEEK:
- '月'
- '火'
- '水'
- '木'
- '金'
- '土'
- '日'
CRON:
EVERY:
EVERY_MONTH: 毎月
ERROR1: 共有タイプ %s はサポートされていません

63
system/languages/ko.yaml Normal file
View File

@ -0,0 +1,63 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# 오류: 무효의 Frontmatter\n\n경로: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: 제공된 날짜가 없습니다
BAD_DATE: 잘못된 날짜
AGO:
FROM_NOW:
SECOND:
MINUTE:
HOUR: 시간
DAY:
WEEK:
MONTH: 개월
YEAR:
DECADE: 년간
SEC:
MIN:
HR: 시간
WK:
MO: 개월
YR:
DEC: 년간
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL: 시간
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL: 개월
YEAR_PLURAL:
DECADE_PLURAL: 년간
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL: 시간
WK_PLURAL:
MO_PLURAL: 개월
YR_PLURAL:
DEC_PLURAL: 년간
FORM:
VALIDATION_FAIL: '<b>유효성 검사 실패:</b>'
INVALID_INPUT: '잘못된 입력'
MISSING_REQUIRED_FIELD: '누락 된 필수 필드:'
MONTHS_OF_THE_YEAR:
- '일월'
- '이월'
- '삼월'
- '사월'
- '오월'
- '유월'
- '칠월'
- '팔월'
- '구월'
- '시월'
- '십일월'
- '십이월'
DAYS_OF_THE_WEEK:
- '월요일'
- '화요일'
- '수요일'
- '목요일'
- '금요일'
- '토요일'
- '일요일'

View File

@ -1,69 +1,78 @@
--- ---
INFLECTOR_UNCOUNTABLE: GRAV:
2: ryžiai FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Klaida: klaidinga įžanginė konfigūracija\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n %4$s\n```"
3: pinigai INFLECTOR_UNCOUNTABLE:
4: prieskoniai - 'equipment'
5: serijos - 'information'
6: žuvis - 'ryžiai'
7: avis - 'pinigai'
INFLECTOR_IRREGULAR: - 'prieskoniai'
person: žmonės - 'serijos'
man: žmogus - 'žuvis'
child: vaikai - 'avis'
sex: lytys INFLECTOR_IRREGULAR:
move: juda 'person': 'žmonės'
NICETIME: 'man': 'žmogus'
NO_DATE_PROVIDED: Nenurodyta data 'child': 'vaikai'
BAD_DATE: Neteisinga data 'sex': 'lytys'
AGO: prieš 'move': 'juda'
FROM_NOW: nuo dabar NICETIME:
SECOND: sekundė NO_DATE_PROVIDED: Nenurodyta data
MINUTE: minutė BAD_DATE: Neteisinga data
HOUR: valanda AGO: prieš
DAY: diena FROM_NOW: nuo dabar
WEEK: savaitė SECOND: sekundė
MONTH: mėnuo MINUTE: minutė
YEAR: metai HOUR: valanda
DECADE: dešimtmetis DAY: diena
SEC: sek WEEK: savaitė
MIN: min MONTH: mėnuo
HR: val YEAR: metai
WK: sav DECADE: dešimtmetis
MO: mėn SEC: sek.
YR: m MIN: min.
MINUTE_PLURAL: minutės HR: val.
HOUR_PLURAL: valandos WK: sav.
DAY_PLURAL: dienos MO: mėn.
WEEK_PLURAL: savaitės YR: m.
MONTH_PLURAL: mėnesiai DEC: dešimtmetis
YEAR_PLURAL: metai SECOND_PLURAL: sekundės
DECADE_PLURAL: dešimtmečiai MINUTE_PLURAL: minutės
SEC_PLURAL: sek HOUR_PLURAL: valandos
MIN_PLURAL: min DAY_PLURAL: dienos
HR_PLURAL: val WEEK_PLURAL: savaitės
WK_PLURAL: sav MONTH_PLURAL: mėnesiai
MO_PLURAL: mėn YEAR_PLURAL: metai
YR_PLURAL: m DECADE_PLURAL: dešimtmečiai
FORM: SEC_PLURAL: sek.
MISSING_REQUIRED_FIELD: 'Būtina užpildyti laukelį:' MIN_PLURAL: min.
MONTHS_OF_THE_YEAR: HR_PLURAL: val.
- Sausis WK_PLURAL: sav.
- Vasaris MO_PLURAL: mėn.
- Kovas YR_PLURAL: m.
- Balandis DEC_PLURAL: dešimtmečiai
- Gegužė FORM:
- Birželis VALIDATION_FAIL: '<b>Patvirtinimas nepavyko:</b>'
- Liepa INVALID_INPUT: 'Neteisingai įvesta į'
- Rugpjūtis MISSING_REQUIRED_FIELD: 'Būtina užpildyti laukelį:'
- Rugsėjis MONTHS_OF_THE_YEAR:
- Spalis - 'Sausis'
- Lakpritis - 'Vasaris'
- Gruodis - 'Kovas'
DAYS_OF_THE_WEEK: - 'Balandis'
- Pirmadienis - 'Gegužė'
- Antradienis - 'Birželis'
- Trečiadienis - 'Liepa'
- Ketvirtadienis - 'Rugpjūtis'
- Penktadienis - 'Rugsėjis'
- Šeštadienis - 'Spalis'
- Sekmadienis - 'Lakpritis'
- 'Gruodis'
DAYS_OF_THE_WEEK:
- 'Pirmadienis'
- 'Antradienis'
- 'Trečiadienis'
- 'Ketvirtadienis'
- 'Penktadienis'
- 'Šeštadienis'
- 'Sekmadienis'

View File

@ -1,2 +1,4 @@
MONTHS_OF_THE_YEAR: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'] ---
DAYS_OF_THE_WEEK: ['mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag', 'søndag'] GRAV:
MONTHS_OF_THE_YEAR: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']
DAYS_OF_THE_WEEK: ['mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag', 'søndag']

View File

@ -1,64 +1,144 @@
--- ---
INFLECTOR_IRREGULAR: GRAV:
person: personen FRONTMATTER_ERROR_PAGE: "---\ntitel: %1$s\n---\n\n# Fout: ongeldige frontmatter\n\nPad: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
man: mensen INFLECTOR_PLURALS:
child: kinderen '/(quiz)$/i': '\1zes'
sex: geslacht '/^(ox)$/i': '\1en'
move: verplaatsen '/([m|l])ouse$/i': '\1ice'
NICETIME: '/(matr|vert|ind)ix|ex$/i': '\1ices'
NO_DATE_PROVIDED: geen datum opgegeven '/(x|ch|ss|sh)$/i': '\1es'
BAD_DATE: Datumformaat onjuist '/([^aeiouy]|qu)ies$/i': '\1y'
AGO: geleden '/([^aeiouy]|qu)y$/i': '\1ies'
FROM_NOW: vanaf nu '/(hive)$/i': '\1s'
SECOND: seconde '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
MINUTE: minuut '/sis$/i': 'ses'
HOUR: uur '/([ti])um$/i': '\1a'
DAY: dag '/(buffal|tomat)o$/i': '\1oes'
WEEK: week '/(bu)s$/i': '\1ses'
MONTH: maand '/(alias|status)/i': '\1es'
YEAR: jaar '/(octop|vir)us$/i': '\1i'
DECADE: decenium '/(ax|test)is$/i': '\1es'
SEC: s '/s$/i': 's'
MIN: min '/$/': 's'
HR: u INFLECTOR_SINGULAR:
MO: ma '/(quiz)zes$/i': '\1'
YR: j '/(matr)ices$/i': '\1ix'
SECOND_PLURAL: seconden '/(vert|ind)ices$/i': '\1ex'
MINUTE_PLURAL: minuten '/^(ox)en/i': '\1'
HOUR_PLURAL: uren '/(alias|status)es$/i': '\1'
DAY_PLURAL: dagen '/([octop|vir])i$/i': '\1us'
WEEK_PLURAL: weken '/(cris|ax|test)es$/i': '\1is'
MONTH_PLURAL: maanden '/(shoe)s$/i': '\1'
YEAR_PLURAL: jaren '/(o)es$/i': '\1'
DECADE_PLURAL: decennia '/(bus)es$/i': '\1'
SEC_PLURAL: seconden '/([m|l])ice$/i': '\1ouse'
MIN_PLURAL: minuten '/(x|ch|ss|sh)es$/i': '\1'
HR_PLURAL: uren '/(m)ovies$/i': '\1ovie'
WK_PLURAL: weken '/(s)eries$/i': '\1eries'
MO_PLURAL: maanden '/([^aeiouy]|qu)ies$/i': '\1y'
YR_PLURAL: jaren '/([lr])ves$/i': '\1f'
FORM: '/(tive)s$/i': '\1'
VALIDATION_FAIL: '<b>Validatie mislukt:</b>' '/(hive)s$/i': '\1'
INVALID_INPUT: Ongeldige invoer in '/([^f])ves$/i': '\1fe'
MISSING_REQUIRED_FIELD: 'Verplicht veld ontbreekt:' '/(^analy)ses$/i': '\1sis'
MONTHS_OF_THE_YEAR: '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
- Januari '/([ti])a$/i': '\1um'
- Februari '/(n)ews$/i': '\1ews'
- Maart INFLECTOR_UNCOUNTABLE:
- april - 'uitrusting'
- Mei - 'informatie'
- Juni - 'rijst'
- Juli - 'geld'
- Augustus - 'soorten'
- september - 'reeks'
- Oktober - 'vis'
- november - 'schaap'
- december INFLECTOR_IRREGULAR:
DAYS_OF_THE_WEEK: 'person': 'personen'
- Maandag 'man': 'mensen'
- Dinsdag 'child': 'kinderen'
- Woensdag 'sex': 'geslacht'
- Donderdag 'move': 'verplaatsen'
- Vrijdag INFLECTOR_ORDINALS:
- Zaterdag 'default': 'th'
- Zondag 'first': 'st'
'second': 'nd'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: geen datum opgegeven
BAD_DATE: Datumformaat onjuist
AGO: geleden
FROM_NOW: vanaf nu
JUST_NOW: zojuist
SECOND: seconde
MINUTE: minuut
HOUR: uur
DAY: dag
WEEK: week
MONTH: maand
YEAR: jaar
DECADE: decennium
SEC: s
MIN: min
HR: u
WK: week
MO: ma
YR: j
DEC: decennia
SECOND_PLURAL: seconden
MINUTE_PLURAL: minuten
HOUR_PLURAL: uren
DAY_PLURAL: dagen
WEEK_PLURAL: weken
MONTH_PLURAL: maanden
YEAR_PLURAL: jaren
DECADE_PLURAL: decennia
SEC_PLURAL: seconden
MIN_PLURAL: minuten
HR_PLURAL: uren
WK_PLURAL: weken
MO_PLURAL: maanden
YR_PLURAL: jaren
DEC_PLURAL: decennia
FORM:
VALIDATION_FAIL: '<b>Validatie mislukt:</b>'
INVALID_INPUT: 'Ongeldige invoer in'
MISSING_REQUIRED_FIELD: 'Ontbrekend verplicht veld:'
MONTHS_OF_THE_YEAR:
- 'Januari'
- 'Februari'
- 'Maart'
- 'April'
- 'Mei'
- 'Juni'
- 'Juli'
- 'Augustus'
- 'September'
- 'Oktober'
- 'November'
- 'December'
DAYS_OF_THE_WEEK:
- 'Maandag'
- 'Dinsdag'
- 'Woensdag'
- 'Donderdag'
- 'Vrijdag'
- 'Zaterdag'
- 'Zondag'
CRON:
EVERY: elke
EVERY_HOUR: elk uur
EVERY_MINUTE: elke minuut
EVERY_DAY_OF_WEEK: elke dag van de week
EVERY_DAY_OF_MONTH: elke dag van de maand
EVERY_MONTH: elke maand
TEXT_PERIOD: Elke <b />
TEXT_MINS: ' <b /> minuten te laat'
TEXT_TIME: ' op <b />:<b />'
TEXT_DOW: ' op <b />'
TEXT_MONTH: ' van <b />'
TEXT_DOM: ' op <b />'
ERROR1: De tag %s wordt niet ondersteund!
ERROR2: Slecht aantal elementen
ERROR3: Het jquery_element moet ingesteld worden in de jqCron instellingen
ERROR4: Onbekende expressie

View File

@ -1,93 +1,82 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\nTittel: %1$s\n---\n\n# Feilmelding: Ugyldig Frontmatter\n\nSti: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
Tittel: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'utstyr'
- 'informasjon'
# Feilmelding: Ugyldig Frontmatter - 'ris'
- 'penger'
Pane: '%2$s' - 'arter'
- 'serier'
**%3$s ** - 'fisk'
- 'sau'
``` INFLECTOR_IRREGULAR:
%4$s 'person': 'folk'
``` 'man': 'menn'
INFLECTOR_PLURALS: 'child': 'barn'
/(quiz)$/i: '\1zes' 'sex': 'kjønn'
/^(ox)$/i: '\1en' 'move': 'trekk'
INFLECTOR_UNCOUNTABLE: NICETIME:
- utstyr NO_DATE_PROVIDED: Ingen dato gitt
- informasjon BAD_DATE: Ugyldig dato
- ris AGO: siden
- penger FROM_NOW: fra nå
- arter JUST_NOW: akkurat nå
- serier SECOND: sekund
- fisk MINUTE: minutt
- sau HOUR: time
INFLECTOR_IRREGULAR: DAY: dag
person: folk WEEK: uke
man: menn MONTH: måned
child: barn YEAR: år
sex: kjønn DECADE: tiår
move: trekk SEC: sek
NICETIME: HR: t
NO_DATE_PROVIDED: Ingen dato gitt WK: uke
BAD_DATE: Dårlig dato MO:
AGO: siden YR: år
FROM_NOW: fra nå DEC: tiår
SECOND: sekund SECOND_PLURAL: sekunder
MINUTE: minutt MINUTE_PLURAL: minutter
HOUR: time HOUR_PLURAL: timer
DAY: dag DAY_PLURAL: dager
WEEK: uke WEEK_PLURAL: uker
MONTH: måned MONTH_PLURAL: måneder
YEAR: år YEAR_PLURAL: år
DECADE: tiår DECADE_PLURAL: tiår
SEC: sek SEC_PLURAL: sek
MIN: min MIN_PLURAL: min
HR: t HR_PLURAL: timer
WK: uke WK_PLURAL: uker
MO: MO_PLURAL: md
YR: år YR_PLURAL: år
DEC: des DEC_PLURAL: årtier
SECOND_PLURAL: sekunder FORM:
MINUTE_PLURAL: minutter VALIDATION_FAIL: '<b>Godkjenning mislyktes:</b>'
HOUR_PLURAL: timer INVALID_INPUT: 'Ugyldig innhold i'
DAY_PLURAL: dager MISSING_REQUIRED_FIELD: 'Mangler påkrevd felt:'
WEEK_PLURAL: uker MONTHS_OF_THE_YEAR:
MONTH_PLURAL: måneder - 'januar'
YEAR_PLURAL: år - 'februar'
DECADE_PLURAL: tiår - 'mars'
SEC_PLURAL: sek - 'april'
MIN_PLURAL: min - 'mai'
HR_PLURAL: timer - 'juni'
WK_PLURAL: uker - 'juli'
MO_PLURAL: mdr - 'august'
YR_PLURAL: år - 'september'
DEC_PLURAL: årtier - 'oktober'
FORM: - 'november'
VALIDATION_FAIL: '<b>Validering mislyktes:</b>' - 'desember'
INVALID_INPUT: Ugyldig innhold i DAYS_OF_THE_WEEK:
MISSING_REQUIRED_FIELD: 'Mangler påkrevd felt:' - 'mandag'
MONTHS_OF_THE_YEAR: - 'tirsdag'
- januar - 'onsdag'
- februar - 'torsdag'
- mars - 'fredag'
- april - 'lørdag'
- mai - 'søndag'
- juni CRON:
- juli EVERY: hver
- august EVERY_HOUR: hver time
- september EVERY_MINUTE: hvert minutt
- oktober
- november
- desember
DAYS_OF_THE_WEEK:
- mandag
- tirsdag
- onsdag
- torsdag
- fredag
- lørdag
- søndag

View File

@ -1,75 +1,100 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Nieprawidłowy Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s INFLECTOR_SINGULAR:
--- '/(alias|status)es$/i': '\1'
INFLECTOR_UNCOUNTABLE:
# Error: Nieprawidłowy Frontmatter - 'wyposażenie'
- 'informacja'
Path: `%2$s` - 'rice'
- 'pieniądze'
**%3$s** - 'species'
- 'series'
``` - 'ryba'
%4$s - 'owca'
``` INFLECTOR_IRREGULAR:
NICETIME: 'person': 'człowiek'
NO_DATE_PROVIDED: Nie podano daty 'man': 'mężczyźni'
BAD_DATE: Zła data 'child': 'dzieci'
AGO: temu 'sex': 'płci'
FROM_NOW: od teraz INFLECTOR_ORDINALS:
SECOND: sekunda 'first': 'pierwszy'
MINUTE: minuta 'second': 'drugi'
HOUR: godzina 'third': 'trzeci'
DAY: dzień NICETIME:
WEEK: tydzień NO_DATE_PROVIDED: Nie podano daty
MONTH: miesiąc BAD_DATE: Zła data
YEAR: rok AGO: temu
DECADE: dekada FROM_NOW: od teraz
SEC: sek JUST_NOW: właśnie teraz
MIN: min SECOND: sekunda
HR: godz MINUTE: minuta
WK: tydz HOUR: godzina
MO: m-c DAY: dzień
YR: rok WEEK: tydzień
DEC: dekada MONTH: miesiąc
SECOND_PLURAL: sekund YEAR: rok
MINUTE_PLURAL: minut DECADE: dekada
HOUR_PLURAL: godzin SEC: sek
DAY_PLURAL: dni MIN: minuta
WEEK_PLURAL: tygodnie HR: godz
MONTH_PLURAL: miesięcy WK: tydz
YEAR_PLURAL: lat MO: m-c
DECADE_PLURAL: dekad YR: rok
SEC_PLURAL: sek DEC: dekada
MIN_PLURAL: min SECOND_PLURAL: sekund
HR_PLURAL: godz MINUTE_PLURAL: minut
WK_PLURAL: tyg HOUR_PLURAL: godzin
MO_PLURAL: m-ce DAY_PLURAL: dni
YR_PLURAL: lat WEEK_PLURAL: tygodnie
DEC_PLURAL: dekad MONTH_PLURAL: miesięcy
FORM: YEAR_PLURAL: lat
VALIDATION_FAIL: '<b>Weryfikacja nie powiodła się:</b>' DECADE_PLURAL: dekad
INVALID_INPUT: Nieprawidłowe dane wejściowe SEC_PLURAL: sek
MISSING_REQUIRED_FIELD: 'Opuszczono wymagane pole:' MIN_PLURAL: min
MONTHS_OF_THE_YEAR: HR_PLURAL: godz
- Styczeń WK_PLURAL: tyg
- Luty MO_PLURAL: m-ce
- Marzec YR_PLURAL: lat
- Kwiecień DEC_PLURAL: dekad
- Maj FORM:
- Czerwiec VALIDATION_FAIL: '<b>Weryfikacja nie powiodła się:</b>'
- Lipiec INVALID_INPUT: 'Nieprawidłowe dane wejściowe'
- Sierpień MISSING_REQUIRED_FIELD: 'Opuszczono wymagane pole:'
- Wrzesień XSS_ISSUES: "Potencjalne problemy XSS wykryte w polu '%s'"
- Październik MONTHS_OF_THE_YEAR:
- Listopad - 'Styczeń'
- Grudzień - 'Luty'
DAYS_OF_THE_WEEK: - 'Marzec'
- Poniedziałek - 'Kwiecień'
- Wtorek - 'Maj'
- Środa - 'Czerwiec'
- Czwartek - 'Lipiec'
- Piątek - 'Sierpień'
- Sobota - 'Wrzesień'
- Niedziela - 'Październik'
- 'Listopad'
- 'Grudzień'
DAYS_OF_THE_WEEK:
- 'Poniedziałek'
- 'Wtorek'
- 'Środa'
- 'Czwartek'
- 'Piątek'
- 'Sobota'
- 'Niedziela'
YES: "Tak"
NO: "Nie"
CRON:
EVERY: każdy
EVERY_HOUR: każdą godzinę
EVERY_MINUTE: każdą minutę
EVERY_DAY_OF_WEEK: każdego dnia tygodnia
EVERY_DAY_OF_MONTH: każdego dnia miesiące
EVERY_MONTH: każdego miesiąca
TEXT_PERIOD: Każdego <b />
TEXT_MINS: 'o <b /> minut po godzinie'
TEXT_TIME: 'o <b />:<b />'
ERROR1: Znacznik %s nie jest wspierany!
ERROR2: Nieprawidłowa liczba elementów
ERROR4: Wyrażenie nierozpoznane

View File

@ -1,79 +1,144 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Erro: Frontmatter Inválido\n\nLocalização: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
título: %1$s INFLECTOR_PLURALS:
--- '/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
# Erro: Frontmatter inválida '/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
Caminho: `%2$s` '/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
**%3$s** '/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
``` '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
%4$s '/sis$/i': 'ses'
``` '/([ti])um$/i': '\1a'
INFLECTOR_UNCOUNTABLE: '/(buffal|tomat)o$/i': '\1oes'
1: informação '/(bu)s$/i': '\1ses'
2: arroz '/(alias|status)/i': '\1es'
3: dinheiro '/(octop|vir)us$/i': '\1i'
INFLECTOR_IRREGULAR: '/(ax|test)is$/i': '\1es'
man: homens '/s$/i': 's'
sex: sexos '/$/': 's'
NICETIME: INFLECTOR_SINGULAR:
NO_DATE_PROVIDED: Não foi fornecida data '/(quiz)zes$/i': '\1'
BAD_DATE: Data inválida '/(matr)ices$/i': '\1ix'
AGO: atrás '/(vert|ind)ices$/i': '\1ex'
FROM_NOW: a partir de agora '/^(ox)en/i': '\1'
SECOND: segundo '/(alias|status)es$/i': '\1'
MINUTE: minuto '/([octop|vir])i$/i': '\1us'
HOUR: hora '/(cris|ax|test)es$/i': '\1is'
DAY: dia '/(shoe)s$/i': '\1'
WEEK: semana '/(o)es$/i': '\1'
MONTH: mês '/(bus)es$/i': '\1'
YEAR: ano '/([m|l])ice$/i': '\1ouse'
DECADE: década '/(x|ch|ss|sh)es$/i': '\1'
SEC: seg '/(m)ovies$/i': '\1ovie'
MIN: mín '/(s)eries$/i': '\1eries'
HR: h '/([^aeiouy]|qu)ies$/i': '\1y'
WK: sem '/([lr])ves$/i': '\1f'
MO: m '/(tive)s$/i': '\1'
YR: a '/(hive)s$/i': '\1'
DEC: dec '/([^f])ves$/i': '\1fe'
SECOND_PLURAL: segundos '/(^analy)ses$/i': '\1sis'
MINUTE_PLURAL: minutos '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
HOUR_PLURAL: horas '/([ti])a$/i': '\1um'
DAY_PLURAL: dias '/(n)ews$/i': '\1ews'
WEEK_PLURAL: semanas INFLECTOR_UNCOUNTABLE:
MONTH_PLURAL: meses - 'equipamento'
YEAR_PLURAL: anos - 'informação'
DECADE_PLURAL: décadas - 'arroz'
SEC_PLURAL: seg - 'dinheiro'
MIN_PLURAL: mins - 'espécie'
HR_PLURAL: hrs - 'série'
WK_PLURAL: sems - 'peixe'
YR_PLURAL: anos - 'ovelha'
FORM: INFLECTOR_IRREGULAR:
VALIDATION_FAIL: '<b>Validação falhada: </b>' 'person': 'pessoas'
MISSING_REQUIRED_FIELD: 'Campo obrigatório ausente:' 'man': 'homens'
MONTHS_OF_THE_YEAR: 'child': 'crianças'
- Janeiro 'sex': 'sexos'
- Fevereiro 'move': 'movimentos'
- Março INFLECTOR_ORDINALS:
- Abril 'default': 'º'
- Maio 'first': 'º'
- Junho 'second': 'º'
- Julho 'third': 'º'
- Agosto NICETIME:
- Setembro NO_DATE_PROVIDED: Nenhuma data fornecida
- Outubro BAD_DATE: Data inválida
- Novembro AGO: atrás
- Dezembro FROM_NOW: a partir de agora
DAYS_OF_THE_WEEK: JUST_NOW: mesmo agora
- Segunda SECOND: segundo
- Terça MINUTE: minuto
- Quarta HOUR: hora
- Quinta DAY: dia
- Sexta WEEK: semana
- Sábado MONTH: mês
- Domingo YEAR: ano
DECADE: década
SEC: seg
MIN: min
HR: hora
WK: semana
MO: mês
YR: ano
DEC: década
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: dias
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: anos
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hrs
WK_PLURAL: sems
MO_PLURAL: meses
YR_PLURAL: anos
DEC_PLURAL: décadas
FORM:
VALIDATION_FAIL: '<b>Falha na validação:</b>'
INVALID_INPUT: 'Dados inseridos são inválidos em'
MISSING_REQUIRED_FIELD: 'Campo obrigatório em falta:'
MONTHS_OF_THE_YEAR:
- 'Janeiro'
- 'Fevereiro'
- 'Março'
- 'Abril'
- 'Maio'
- 'Junho'
- 'Julho'
- 'Agosto'
- 'Setembro'
- 'Outubro'
- 'Novembro'
- 'Dezembro'
DAYS_OF_THE_WEEK:
- 'Segunda-feira'
- 'Terça-feira'
- 'Quarta-feira'
- 'Quinta-feira'
- 'Sexta-feira'
- 'Sábado'
- 'Domingo'
CRON:
EVERY: cada
EVERY_HOUR: cada hora
EVERY_MINUTE: cada minuto
EVERY_DAY_OF_WEEK: todos os dias da semana
EVERY_DAY_OF_MONTH: todos os dias do mês
EVERY_MONTH: todos os meses
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' em <b /> minuto(s) após a hora'
TEXT_TIME: ' em <b />:<b />'
TEXT_DOW: ' em <b />'
TEXT_MONTH: ' de <b />'
TEXT_DOM: ' em <b />'
ERROR1: A tag %s não é suportada!
ERROR2: Número de elementos inválido
ERROR3: O jquery_element deve ser definido nas configurações do jqCron
ERROR4: Expressão não reconhecida

View File

@ -1,101 +1,96 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\nTitlu: %1$s\n---\n# Eroare: Frontmatter este invalid\n\nCalea: `%2$s`\n\n**%3$s**\n\n```\n%4$s"
Titlu: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'echipament'
# Eroare: Frontmatter este invalid - 'informaţie'
- 'orez'
Calea: `%2$s` - 'bani'
- 'specii'
**%3$s** - 'serii'
- 'peşte'
``` - 'oaie'
%4$s INFLECTOR_IRREGULAR:
INFLECTOR_PLURALS: 'person': 'persoane'
/(quiz)$/i: '\1zes' 'man': 'bărbați'
/^(ox)$/i: '\1en' 'child': 'copii'
"/([m|l])ouse$/i": '\1ice' 'sex': 'sexe'
/(matr|vert|ind)ix|ex$/i: '\1ices' 'move': 'mutări'
/(x|ch|ss|sh)$/i: '\1es' NICETIME:
"/([^aeiouy]|qu)ies$/i": '\1y' NO_DATE_PROVIDED: Nu există o dată prevăzută
"/([^aeiouy]|qu)y$/i": '\1ies' BAD_DATE: Dată incorectă
/(hive)$/i: '\1s' AGO: în urmă
"/(?:([^f])fe|([lr])f)$/i": '\1\2ves' FROM_NOW: de acum
/sis$/i: ses JUST_NOW: chiar acum
"/([ti])um$/i": '\1a' SECOND: secundă
/(buffal|tomat)o$/i: '\1oes' MINUTE: minut
INFLECTOR_UNCOUNTABLE: HOUR: oră
- echipament DAY: zi
- informaţie WEEK: săptămână
- orez MONTH: lună
- bani YEAR: an
- specii DECADE: decadă
- serii SEC: secunde
- peşte MIN: minute
- oaie HR: oră
INFLECTOR_IRREGULAR: WK: săpt
person: persoane MO: lună
man: bărbați YR: an
child: copii DEC: decadă
sex: sexe SECOND_PLURAL: secunde
move: mutări MINUTE_PLURAL: minute
NICETIME: HOUR_PLURAL: ore
NO_DATE_PROVIDED: Nu există o dată prevăzută DAY_PLURAL: zile
BAD_DATE: Dată incorectă WEEK_PLURAL: săptămâni
AGO: în urmă MONTH_PLURAL: luni
FROM_NOW: de acum YEAR_PLURAL: ani
SECOND: secundă DECADE_PLURAL: decade
MINUTE: minut SEC_PLURAL: sec
HOUR: oră MIN_PLURAL: min
DAY: zi HR_PLURAL: ore
WEEK: săptămână WK_PLURAL: săpt
MONTH: lună MO_PLURAL: luni
YEAR: an YR_PLURAL: ani
DECADE: decadă DEC_PLURAL: decenii
SEC: sec FORM:
MIN: min VALIDATION_FAIL: '<b>Validare nereușită</b>'
HR: oră INVALID_INPUT: 'Date incorecte în'
WK: săpt MISSING_REQUIRED_FIELD: 'Câmp obligatoriu lipsă:'
MO: lună MONTHS_OF_THE_YEAR:
YR: an - 'Ianuarie'
DEC: decadă - 'Februarie'
SECOND_PLURAL: secunde - 'Martie'
MINUTE_PLURAL: minute - 'Aprilie'
HOUR_PLURAL: ore - 'Mai'
DAY_PLURAL: zile - 'Iunie'
WEEK_PLURAL: săptămâni - 'Iulie'
MONTH_PLURAL: luni - 'August'
YEAR_PLURAL: ani - 'Septembrie'
DECADE_PLURAL: decade - 'Octombrie'
SEC_PLURAL: sec - 'Noiembrie'
MIN_PLURAL: min - 'Decembrie'
HR_PLURAL: ore DAYS_OF_THE_WEEK:
WK_PLURAL: săpt - 'Luni'
MO_PLURAL: luni - 'Marți'
YR_PLURAL: ani - 'Miercuri'
DEC_PLURAL: decenii - 'Joi'
FORM: - 'Vineri'
VALIDATION_FAIL: '<b>Validare nereușită</b>' - 'Sâmbătă'
INVALID_INPUT: Date incorecte în - 'Duminică'
MISSING_REQUIRED_FIELD: 'Câmp obligatoriu lipsă:' CRON:
MONTHS_OF_THE_YEAR: EVERY: la fiecare
- Ianuarie EVERY_HOUR: la fiecare oră
- Februarie EVERY_MINUTE: la fiecare minut
- Martie EVERY_DAY_OF_WEEK: fiecare zi a săptămânii
- Aprilie EVERY_DAY_OF_MONTH: fiecare zi a lunii
- Mai EVERY_MONTH: fiecare lună
- Iunie TEXT_PERIOD: Fiecare <b />
- Iulie TEXT_MINS: ' la <b /> minut(e) ale fiecărei ore'
- August TEXT_TIME: ' la <b />:<b />'
- Septembrie TEXT_DOW: ' pe <b />'
- Octombrie TEXT_MONTH: 'al(e) <b />'
- Noiembrie TEXT_DOM: ' pe <b />'
- Decembrie ERROR1: Eticheta %s nu este acceptată!
DAYS_OF_THE_WEEK: ERROR2: Număr nevalid de elemente
- Luni ERROR3: jquery_element ar trebui setat în opțiunile jqCron
- Marți ERROR4: Expresie necunoscută
- Miercuri
- Joi
- Vineri
- Sâmbătă
- Duminică

View File

@ -1,81 +1,104 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Ошибка: недопустимое содержимое Frontmatter\n\nПуть: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s INFLECTOR_UNCOUNTABLE:
--- - 'экипировка'
- 'информация'
# Ошибка: Недопустимое содержимое - 'рис'
- 'деньги'
Path: `%2$s` - 'виды'
- 'серии'
**%3$s** - 'рыба'
- 'овца'
``` INFLECTOR_IRREGULAR:
%4$s 'person': 'люди'
``` 'man': 'человек'
INFLECTOR_IRREGULAR: 'child': 'дети'
person: люди 'sex': 'пол'
man: человек 'move': 'движется'
child: ребенок INFLECTOR_ORDINALS:
sex: пол 'default': 'й'
move: движется 'first': 'й'
NICETIME: 'second': 'й'
NO_DATE_PROVIDED: Дата не указана 'third': 'й'
BAD_DATE: Неверная дата NICETIME:
AGO: назад NO_DATE_PROVIDED: Дата не указана
FROM_NOW: теперь BAD_DATE: Неверная дата
SECOND: секунда AGO: назад
MINUTE: минута FROM_NOW: теперь
HOUR: час JUST_NOW: только что
DAY: д SECOND: секунда
WEEK: неделя MINUTE: минута
MONTH: месяц HOUR: час
YEAR: год DAY: день
DECADE: десятилетие WEEK: неделя
SEC: с MONTH: месяц
MIN: мин YEAR: год
HR: ч DECADE: десятилетие
WK: нед. SEC: сек
MO: мес. MIN: мин
YR: г. HR: ч
DEC: гг. WK: нед
SECOND_PLURAL: секунды MO: мес
MINUTE_PLURAL: минуты YR: г
HOUR_PLURAL: часы DEC: дстлт
DAY_PLURAL: д SECOND_PLURAL: сек
WEEK_PLURAL: недели MINUTE_PLURAL: мин
MONTH_PLURAL: месяцы HOUR_PLURAL: ч
YEAR_PLURAL: годы DAY_PLURAL: д
DECADE_PLURAL: десятилетия WEEK_PLURAL: нед
SEC_PLURAL: с MONTH_PLURAL: мес
MIN_PLURAL: мин YEAR_PLURAL: г
HR_PLURAL: ч DECADE_PLURAL: дстлт
WK_PLURAL: нед SEC_PLURAL: сек
MO_PLURAL: мес MIN_PLURAL: мин
YR_PLURAL: г. HR_PLURAL: ч
DEC_PLURAL: гг. WK_PLURAL: нед
FORM: MO_PLURAL: мес
VALIDATION_FAIL: '<b>Проверка не удалась:</b>' YR_PLURAL: г
INVALID_INPUT: Неверный ввод в DEC_PLURAL: дстлт
MISSING_REQUIRED_FIELD: 'Отсутствует необходимое поле:' FORM:
MONTHS_OF_THE_YEAR: VALIDATION_FAIL: '<b>Проверка не удалась:</b>'
- Январь INVALID_INPUT: 'Неверный ввод в'
- Февраль MISSING_REQUIRED_FIELD: 'Отсутствует необходимое поле:'
- Март XSS_ISSUES: "Обнаружены потенциальные XSS проблемы в поле '%s'"
- Апрель MONTHS_OF_THE_YEAR:
- Май - 'январь'
- Июнь - 'февраль'
- Июль - 'март'
- Август - 'апрель'
- Сентябрь - 'май'
- Октябрь - 'июнь'
- Ноябрь - 'июль'
- Декабрь - 'август'
DAYS_OF_THE_WEEK: - 'сентябрь'
- Понедельник - 'октябрь'
- Вторник - 'ноябрь'
- Среда - 'декабрь'
- Четверг DAYS_OF_THE_WEEK:
- Пятница - 'понедельник'
- Суббота - 'вторник'
- Воскресенье - 'среда'
- 'четверг'
- 'пятница'
- 'суббота'
- 'воскресенье'
YES: "Да"
NO: "Нет"
CRON:
EVERY: раз в
EVERY_HOUR: раз в час
EVERY_MINUTE: раз в минуту
EVERY_DAY_OF_WEEK: каждый день недели
EVERY_DAY_OF_MONTH: каждый день недели
EVERY_MONTH: раз в месяц
TEXT_PERIOD: Каждый <b />
TEXT_MINS: ' в <b /> минуте(ах) за час'
TEXT_TIME: ' в <b />:<b />'
TEXT_DOW: ' на <b />'
TEXT_MONTH: ' из <b />'
TEXT_DOM: ' на <b />'
ERROR1: Тег %s не поддерживается!
ERROR2: Неверное количество элементов
ERROR3: jquery_element должен быть установлен в настройки jqCron
ERROR4: Выражение не распознано

View File

@ -1,42 +1,144 @@
--- ---
NICETIME: GRAV:
NO_DATE_PROVIDED: Neposkytnutý žiaden dátum FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Chyba: Chybný frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
BAD_DATE: Nesprávny dátum INFLECTOR_PLURALS:
AGO: pred '/(quiz)$/i': '\1zes'
FROM_NOW: odteraz '/^(ox)$/i': '\1en'
SECOND: sekunda '/([m|l])ouse$/i': '\1ice'
MINUTE: minúta '/(matr|vert|ind)ix|ex$/i': '\1ices'
HOUR: hodina '/(x|ch|ss|sh)$/i': '\1es'
DAY: deň '/([^aeiouy]|qu)ies$/i': '\1y'
WEEK: týždeň '/([^aeiouy]|qu)y$/i': '\1ies'
MONTH: mesiac '/(hive)$/i': '\1s'
YEAR: rok '/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
DECADE: desaťročie '/sis$/i': 'ses'
SEC: sek '/([ti])um$/i': '\1a'
MIN: min '/(buffal|tomat)o$/i': '\1oes'
HR: hod '/(bu)s$/i': '\1ses'
FORM: '/(alias|status)/i': '\1es'
VALIDATION_FAIL: '<b>Overenie zlyhalo:</b>' '/(octop|vir)us$/i': '\1i'
INVALID_INPUT: Neplatný vstup v '/(ax|test)is$/i': '\1es'
MISSING_REQUIRED_FIELD: 'Chýba vyžadované pole:' '/s$/i': 's'
MONTHS_OF_THE_YEAR: '/$/': 's'
- Január INFLECTOR_SINGULAR:
- Február '/(quiz)zes$/i': '\1'
- Marec '/(matr)ices$/i': '\1ix'
- Apríl '/(vert|ind)ices$/i': '\1ex'
- Máj '/^(ox)en/i': '\1'
- Jún '/(alias|status)es$/i': '\1'
- Júl '/([octop|vir])i$/i': '\1us'
- August '/(cris|ax|test)es$/i': '\1is'
- September '/(shoe)s$/i': '\1'
- Október '/(o)es$/i': '\1'
- November '/(bus)es$/i': '\1'
- December '/([m|l])ice$/i': '\1ouse'
DAYS_OF_THE_WEEK: '/(x|ch|ss|sh)es$/i': '\1'
- Pondelok '/(m)ovies$/i': '\1ovie'
- Utorok '/(s)eries$/i': '\1eries'
- Streda '/([^aeiouy]|qu)ies$/i': '\1y'
- Štvrtok '/([lr])ves$/i': '\1f'
- Piatok '/(tive)s$/i': '\1'
- Sobota '/(hive)s$/i': '\1'
- Nedeľa '/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'vybavenie'
- 'informácie'
- 'ryža'
- 'peniaze'
- 'druhy'
- 'séria'
- 'ryba'
- 'ovce'
INFLECTOR_IRREGULAR:
'person': 'ľudia'
'man': 'muži'
'child': 'deti'
'sex': 'pohlavia'
'move': 'pohyby'
INFLECTOR_ORDINALS:
'default': '.'
'first': '.'
'second': '.'
'third': '.'
NICETIME:
NO_DATE_PROVIDED: Neposkytnutý žiaden dátum
BAD_DATE: Nesprávny dátum
AGO: pred
FROM_NOW: odteraz
JUST_NOW: práve teraz
SECOND: sekunda
MINUTE: minúta
HOUR: hodina
DAY: deň
WEEK: týždeň
MONTH: mesiac
YEAR: rok
DECADE: desaťročie
SEC: sek
MIN: min
HR: hod
WK: t
MO: m
YR: r
DEC: dec
SECOND_PLURAL: sekúnd
MINUTE_PLURAL: minút
HOUR_PLURAL: hodín
DAY_PLURAL: dní
WEEK_PLURAL: týždňov
MONTH_PLURAL: mesiacov
YEAR_PLURAL: rokov
DECADE_PLURAL: dekád
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: hod
WK_PLURAL: t
MO_PLURAL: mes.
YR_PLURAL: rokov
DEC_PLURAL: dekád
FORM:
VALIDATION_FAIL: '<b>Overenie zlyhalo:</b>'
INVALID_INPUT: 'Neplatný vstup v'
MISSING_REQUIRED_FIELD: 'Chýba vyžadované pole:'
MONTHS_OF_THE_YEAR:
- 'Január'
- 'Február'
- 'Marec'
- 'Apríl'
- 'Máj'
- 'Jún'
- 'Júl'
- 'August'
- 'September'
- 'Október'
- 'November'
- 'December'
DAYS_OF_THE_WEEK:
- 'Pondelok'
- 'Utorok'
- 'Streda'
- 'Štvrtok'
- 'Piatok'
- 'Sobota'
- 'Nedeľa'
CRON:
EVERY: každý
EVERY_HOUR: každú hodinu
EVERY_MINUTE: každú minútu
EVERY_DAY_OF_WEEK: každý deň v týždni
EVERY_DAY_OF_MONTH: každý deň v mesiaci
EVERY_MONTH: každý mesiac
TEXT_PERIOD: Každý <b />
TEXT_MINS: ' at <b /> minute(s) past the hour'
TEXT_TIME: ' at <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: Tag %s nieje podporovaný!
ERROR2: Chybný počet položiek
ERROR3: jquery_element musí byť nastavený v nastaveniach pre jqCron
ERROR4: Neznámy výraz

62
system/languages/sl.yaml Normal file
View File

@ -0,0 +1,62 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Napaka: Neveljavna Frontmatter\n\nPath: `%2$s`\n\n**%3$s ** \n\n```\n%4$s \n```"
NICETIME:
NO_DATE_PROVIDED: Datum ni na voljo
BAD_DATE: Neveljaven datum
AGO: pred
FROM_NOW: od zdaj
SECOND: sekunda
MINUTE: minuta
HOUR: ura
DAY: dan
WEEK: teden
MONTH: mesec
YEAR: leto
DECADE: desetletje
SEC: sek
HR: ur
WK: T.
MO: m
YR: l
DEC: des
SECOND_PLURAL: sekund
MINUTE_PLURAL: minut
HOUR_PLURAL: ure
DAY_PLURAL: dnevi
WEEK_PLURAL: tednov
MONTH_PLURAL: mesecev
YEAR_PLURAL: leta
DECADE_PLURAL: desetletja
SEC_PLURAL: s
MIN_PLURAL: min
HR_PLURAL: ur
WK_PLURAL: t
MO_PLURAL: m
YR_PLURAL: l
DEC_PLURAL: des
FORM:
VALIDATION_FAIL: '<b>Preverjanje veljavnosti ni uspelo:</b>'
INVALID_INPUT: 'Neveljaven vnos v'
MISSING_REQUIRED_FIELD: 'Manjka obvezno polje:'
MONTHS_OF_THE_YEAR:
- 'Januar'
- 'Februar'
- 'Marec'
- 'April'
- 'Maj'
- 'Junij'
- 'Julij'
- 'Avgust'
- 'September'
- 'Oktober'
- 'November'
- 'December'
DAYS_OF_THE_WEEK:
- 'Ponedeljek'
- 'Torek'
- 'Sreda'
- 'Četrtek'
- 'Petek'
- 'Sobota'
- 'Nedelja'

144
system/languages/sr.yaml Normal file
View File

@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nнаслов: %1$s\n---\n\n# Грешка: неисправан Frontmatter\n\nПутања: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'опрема'
- 'информација'
- 'пиринач'
- 'новац'
- 'врсте'
- 'серије'
- 'риба'
- 'овца'
INFLECTOR_IRREGULAR:
'person': 'особе'
'man': 'људи'
'child': 'деца'
'sex': 'полови'
'move': 'помери'
INFLECTOR_ORDINALS:
'default': 'ти'
'first': 'први'
'second': 'други'
'third': 'трећи'
NICETIME:
NO_DATE_PROVIDED: Нема датума
BAD_DATE: Погрешан датум
AGO: од пре
FROM_NOW: од сада
JUST_NOW: управо сада
SECOND: секунда
MINUTE: минута
HOUR: сат
DAY: дан
WEEK: недеља
MONTH: месец
YEAR: година
DECADE: декада
SEC: сек
MIN: мин
HR: сат
WK: нед
MO: мес
YR: год
DEC: дек
SECOND_PLURAL: секунди
MINUTE_PLURAL: минута
HOUR_PLURAL: сати
DAY_PLURAL: дана
WEEK_PLURAL: недеља
MONTH_PLURAL: месеци
YEAR_PLURAL: године(а)
DECADE_PLURAL: декаде(а)
SEC_PLURAL: сек
MIN_PLURAL: мин
HR_PLURAL: сати
WK_PLURAL: недеља
MO_PLURAL: месеци
YR_PLURAL: година
DEC_PLURAL: декада
FORM:
VALIDATION_FAIL: '<b>Провера неуспела:</b>'
INVALID_INPUT: 'Неисправан унос у'
MISSING_REQUIRED_FIELD: 'Недостаје обавезн поље:'
MONTHS_OF_THE_YEAR:
- 'Јануар'
- 'Фебруар'
- 'Март'
- 'Април'
- 'Мај'
- 'Јуни'
- 'Јули'
- 'Август'
- 'Септембар'
- 'Октобар'
- 'Новембар'
- 'Децембар'
DAYS_OF_THE_WEEK:
- 'Понедељак'
- 'Уторак'
- 'Среда'
- 'Четвртак'
- 'Петак'
- 'Субота'
- 'Недеља'
CRON:
EVERY: сваки
EVERY_HOUR: сваки сат
EVERY_MINUTE: сваки минут
EVERY_DAY_OF_WEEK: сваки дан у недељи
EVERY_DAY_OF_MONTH: сваки дан у месецу
EVERY_MONTH: сваки месец
TEXT_PERIOD: Сваки <b />
TEXT_MINS: ' у <b /> минути(а) прошлог сата'
TEXT_TIME: ' у <b />:<b />'
TEXT_DOW: ' на <b />'
TEXT_MONTH: ' од <b />'
TEXT_DOM: ' на <b />'
ERROR1: Таг %s није подржан!
ERROR2: Погрешан број елемената
ERROR3: јquery_element би требао да буде постављен у jqCron подешавању
ERROR4: Непрепознат израз

View File

@ -1,62 +1,100 @@
--- ---
FRONTMATTER_ERROR_PAGE: '--- titel: %1$s --- # Fel: Ogiltig Frontmatter-sökväg: `%2$s` **%3$s** ``` %4$s ```' GRAV:
NICETIME: FRONTMATTER_ERROR_PAGE: "--- titel: %1$s --- # Fel: Ogiltig Frontmatter-sökväg: `%2$s` **%3$s** ``` %4$s ```"
NO_DATE_PROVIDED: Inget datum har angivits INFLECTOR_UNCOUNTABLE:
BAD_DATE: Ogiltigt datum - 'utrustning'
AGO: sedan - 'information'
FROM_NOW: från nu - 'ris'
SECOND: sekund - 'pengar'
MINUTE: minut - 'arter'
HOUR: timme - 'serier'
DAY: dag - 'fisk'
WEEK: vecka - 'får'
MONTH: månad INFLECTOR_IRREGULAR:
YEAR: år 'person': 'personer'
DECADE: årtionde 'man': 'män'
SEC: sek 'child': 'barn'
MIN: min 'sex': 'kön'
HR: t 'move': 'flytta'
WK: v INFLECTOR_ORDINALS:
MO: m 'default': ':e'
YR: år 'first': ':a'
DEC: dec 'second': ':a'
SECOND_PLURAL: sekunder 'third': ':e'
MINUTE_PLURAL: minuter NICETIME:
HOUR_PLURAL: timmar NO_DATE_PROVIDED: Inget datum har angivits
DAY_PLURAL: dagar BAD_DATE: Ogiltigt datum
WEEK_PLURAL: veckor AGO: sedan
MONTH_PLURAL: månader FROM_NOW: fr.o.m nu
YEAR_PLURAL: år JUST_NOW: just nu
DECADE_PLURAL: årtionden SECOND: sekund
SEC_PLURAL: sek MINUTE: minut
MIN_PLURAL: min HOUR: timme
HR_PLURAL: t DAY: dag
WK_PLURAL: v WEEK: vecka
MO_PLURAL: MONTH: månad
YR_PLURAL: år YEAR: år
DEC_PLURAL: dec DECADE: årtionde
FORM: SEC: sek
VALIDATION_FAIL: '<b>Kontrollen misslyckades:</b>' MIN: min
INVALID_INPUT: Ogiltig indata i HR: t
MISSING_REQUIRED_FIELD: 'Obligatoriskt fält måste fyllas i:' WK: v
MONTHS_OF_THE_YEAR: MO: m
- Januari YR: år
- Februrari DEC: dec
- Mars SECOND_PLURAL: sekunder
- April MINUTE_PLURAL: minuter
- Maj HOUR_PLURAL: timmar
- Juni DAY_PLURAL: dagar
- Juli WEEK_PLURAL: veckor
- Augusti MONTH_PLURAL: månader
- September YEAR_PLURAL: år
- Oktober DECADE_PLURAL: årtionden
- November SEC_PLURAL: sek
- December MIN_PLURAL: min
DAYS_OF_THE_WEEK: HR_PLURAL: t
- Måndag WK_PLURAL: v
- Tisdag MO_PLURAL:
- Onsdag YR_PLURAL: år
- Torsdag DEC_PLURAL: dec
- Fredag FORM:
- Lördag VALIDATION_FAIL: '<b>Kontrollen misslyckades:</b>'
- Söndag INVALID_INPUT: 'Ogiltig indata i'
MISSING_REQUIRED_FIELD: 'Obligatoriskt fält måste fyllas i:'
MONTHS_OF_THE_YEAR:
- 'Januari'
- 'Februari'
- 'Mars'
- 'April'
- 'Maj'
- 'Juni'
- 'Juli'
- 'Augusti'
- 'September'
- 'Oktober'
- 'November'
- 'December'
DAYS_OF_THE_WEEK:
- 'Måndag'
- 'Tisdag'
- 'Onsdag'
- 'Torsdag'
- 'Fredag'
- 'Lördag'
- 'Söndag'
CRON:
EVERY: varje
EVERY_HOUR: varje timme
EVERY_MINUTE: varje minut
EVERY_DAY_OF_WEEK: varje veckodag
EVERY_DAY_OF_MONTH: alla månadens dagar
EVERY_MONTH: varje månad
TEXT_PERIOD: Varje <b />
TEXT_MINS: ' timmens <b />:e minut'
TEXT_TIME: ' kl <b />:<b />'
TEXT_DOW: ' <b />'
TEXT_MONTH: ' <b />'
TEXT_DOM: ' <b />'
ERROR1: Taggen %s stöds inte!
ERROR2: Ogiltigt antal element
ERROR4: Uttrycket känns inte igen

View File

@ -1,75 +1,56 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\nชื่อเรื่อง: %1$s\n---\n\n# ข้อผิดพลาด: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
ชื่อเรื่อง: %1$s NICETIME:
--- NO_DATE_PROVIDED: ไม่มีวันที่ให้
BAD_DATE: รูปแบบวันที่ผิด
# ข้อผิดพลาด: Invalid Frontmatter AGO: ที่ผ่านมา
FROM_NOW: จากตอนนี้
Path: `%2$s` SECOND: วินาที
MINUTE: นาที
**%3$s** HOUR: ชั่วโมง
DAY: วัน
``` WEEK: สัปดาห์
%4$s MONTH: เดือน
``` YEAR: ปี
NICETIME: DECADE: ทศวรรษที่ผ่านมา
NO_DATE_PROVIDED: ไม่มีวันที่ให้ SEC: วิ
BAD_DATE: รูปแบบวันที่ผิด MIN: นาที
AGO: ที่ผ่านมา HR: ชม.
FROM_NOW: จากตอนนี้ SECOND_PLURAL: วินาที
SECOND: วินาที MINUTE_PLURAL: นาที
MINUTE: นาที HOUR_PLURAL: ชั่วโมง
HOUR: ชั่วโมง DAY_PLURAL: วัน
DAY: วัน WEEK_PLURAL: สัปดาห์
WEEK: สัปดาห์ MONTH_PLURAL: เดือน
MONTH: เดือน YEAR_PLURAL: ปี
YEAR: ปี DECADE_PLURAL: ทศวรรษที่ผ่านมา
DECADE: ทศวรรษที่ผ่านมา SEC_PLURAL: วินาที
SEC: วิ MIN_PLURAL: นาที
MIN: นาที HR_PLURAL: ชั่วโมง
HR: ชม. YR_PLURAL: ปี
WK: wk FORM:
MO: mo VALIDATION_FAIL: '<b>ตรวจสอบล้มเหลว: </b>'
YR: yr INVALID_INPUT: 'ป้อนข้อมูลไม่ถูกต้องใน'
DEC: dec MISSING_REQUIRED_FIELD: 'ขาดข้อมูลที่จำเป็น:'
SECOND_PLURAL: วินาที MONTHS_OF_THE_YEAR:
MINUTE_PLURAL: นาที - 'มกราคม'
HOUR_PLURAL: ชั่วโมง - 'กุมภาพันธ์'
DAY_PLURAL: วัน - 'มีนาคม'
WEEK_PLURAL: สัปดาห์ - 'เมษายน'
MONTH_PLURAL: เดือน - 'พฤษภาคม'
YEAR_PLURAL: ปี - 'มิถุนายน'
DECADE_PLURAL: ทศวรรษที่ผ่านมา - 'กรกฏาคม'
SEC_PLURAL: วินาที - 'สิงหาคม'
MIN_PLURAL: นาที - 'กันยายน'
HR_PLURAL: ชั่วโมง - 'ตุลาคม'
WK_PLURAL: wks - 'พฤศจิกายน'
MO_PLURAL: mos - 'ธันวาคม'
YR_PLURAL: ปี DAYS_OF_THE_WEEK:
DEC_PLURAL: decs - 'จันทร์'
FORM: - 'อังคาร'
VALIDATION_FAIL: '<b>ตรวจสอบล้มเหลว: </b>' - 'พุธ'
INVALID_INPUT: ป้อนข้อมูลไม่ถูกต้องใน - 'พฤหัสบดี'
MISSING_REQUIRED_FIELD: 'ขาดข้อมูลที่จำเป็น:' - 'ศุกร์'
MONTHS_OF_THE_YEAR: - 'เสาร์'
- มกราคม - 'อาทิตย์'
- กุมภาพันธ์
- มีนาคม
- เมษายน
- พฤษภาคม
- มิถุนายน
- กรกฏาคม
- สิงหาคม
- กันยายน
- ตุลาคม
- พฤศจิกายน
- ธันวาคม
DAYS_OF_THE_WEEK:
- จันทร์
- อังคาร
- พุธ
- พฤหัสบดี
- ศุกร์
- เสาร์
- อาทิตย์

View File

@ -1,59 +1,98 @@
--- ---
NICETIME: GRAV:
NO_DATE_PROVIDED: Tarih yok FRONTMATTER_ERROR_PAGE: "---\nBaşlık: %1$s\n---\n\n# Hata: Geçersiz Önbölüm\n\nYol: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
BAD_DATE: Yanlış tarih INFLECTOR_UNCOUNTABLE:
AGO: önce - 'ekipman'
FROM_NOW: (şimdiden) - 'bilgi'
SECOND: saniye - 'pirinç'
MINUTE: dakika - 'para'
HOUR: saat - 'türler'
DAY: gün - 'seriler'
WEEK: hafta - 'balık'
MONTH: ay - 'koyun'
YEAR: yıl INFLECTOR_IRREGULAR:
DECADE: onyıl 'person': 'kişi'
SEC: sn 'man': 'erkek'
MIN: dk 'child': 'çocuklar'
HR: sa 'sex': 'cinsiyet'
WK: hft 'move': 'taşınmış'
MO: ay INFLECTOR_ORDINALS:
YR: yl 'default': '#F'
DEC: onyl 'first': ' 1.'
SECOND_PLURAL: saniye 'second': ' 2.'
MINUTE_PLURAL: dakika 'third': ' 3.'
HOUR_PLURAL: saat NICETIME:
DAY_PLURAL: gün NO_DATE_PROVIDED: Sağlanan tarih yok
WEEK_PLURAL: hafta BAD_DATE: Yanlış tarih
MONTH_PLURAL: ay AGO: önce
YEAR_PLURAL: yıl FROM_NOW: şu andan itibaren
DECADE_PLURAL: onyıl JUST_NOW: şimdi
SEC_PLURAL: sn SECOND: saniye
MIN_PLURAL: dk MINUTE: dakika
HR_PLURAL: sa HOUR: saat
WK_PLURAL: hft DAY: gün
MO_PLURAL: ay WEEK: hafta
YR_PLURAL: yl MONTH: ay
DEC_PLURAL: onyl YEAR: yıl
FORM: DECADE: onyıl
VALIDATION_FAIL: '<b>Doğrulama başarısız:</b>' SEC: sn
MONTHS_OF_THE_YEAR: MIN: dk
- Ocak HR: sa
- Şubat WK: hft
- Mart MO: ay
- Nisan YR: yl
- Mayıs DEC: onyl
- Haziran SECOND_PLURAL: saniye
- Temmuz MINUTE_PLURAL: dakika
- Ağustos HOUR_PLURAL: saat
- Eylül DAY_PLURAL: gün
- Ekim WEEK_PLURAL: hafta
- Kasım MONTH_PLURAL: ay
- Aralık YEAR_PLURAL: yıl
DAYS_OF_THE_WEEK: DECADE_PLURAL: onyıl
- Pazartesi SEC_PLURAL: sn
- Salı MIN_PLURAL: dk
- Çarşamba HR_PLURAL: sa
- Perşembe WK_PLURAL: hft
- Cuma MO_PLURAL: ay
- Cumartesi YR_PLURAL: yıl
- Pazar DEC_PLURAL: onyl
FORM:
VALIDATION_FAIL: '<b>Doğrulama başarısız:</b>'
INVALID_INPUT: 'Geçersiz bilgi girişi'
MISSING_REQUIRED_FIELD: 'Gerekli alan eksik:'
MONTHS_OF_THE_YEAR:
- 'Ocak'
- 'Şubat'
- 'Mart'
- 'Nisan'
- 'Mayıs'
- 'Haziran'
- 'Temmuz'
- 'Ağustos'
- 'Eylül'
- 'Ekim'
- 'Kasım'
- 'Aralık'
DAYS_OF_THE_WEEK:
- 'Pazartesi'
- 'Salı'
- 'Çarşamba'
- 'Perşembe'
- 'Cuma'
- 'Cumartesi'
- 'Pazar'
CRON:
EVERY: her
EVERY_HOUR: saatte bir
EVERY_MINUTE: dakikada bir
EVERY_DAY_OF_WEEK: haftanın her günü
EVERY_DAY_OF_MONTH: ayın her günü
EVERY_MONTH: her ay
TEXT_PERIOD: Her <b />
TEXT_MINS: ' saatin <b /> dakikasında'
TEXT_TIME: ' da'
ERROR1: Etiket %s desteklenmiyor!
ERROR2: Kötü eleman sayısı
ERROR3: jquery_element jqCron ayarları içinde tanımlanmalı
ERROR4: Tanınmayan ifade

View File

@ -1,75 +1,63 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Помилка: Недопустимий вміст\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s NICETIME:
--- NO_DATE_PROVIDED: Не вказана дата
BAD_DATE: Невірна дата
# Помилка: Недопустимий вміст AGO: назад
FROM_NOW: відтепер
Path: `%2$s` SECOND: секунда
MINUTE: хвилина
**%3$s** HOUR: година
DAY: день
``` WEEK: тиждень
%4$s MONTH: місяць
``` YEAR: рік
NICETIME: DECADE: десятиріччя
NO_DATE_PROVIDED: Не вказана дата SEC: с
BAD_DATE: Невірна дата MIN: хв
AGO: назад HR: год
FROM_NOW: відтепер WK: тиж.
SECOND: секунда MO: міс.
MINUTE: хвилина YR: р.
HOUR: година DEC: рр.
DAY: день SECOND_PLURAL: секунди
WEEK: тиждень MINUTE_PLURAL: хвилини
MONTH: місяць HOUR_PLURAL: години
YEAR: рік DAY_PLURAL: дні
DECADE: десятиріччя WEEK_PLURAL: тижні
SEC: с MONTH_PLURAL: місяці
MIN: хв YEAR_PLURAL: роки
HR: год DECADE_PLURAL: десятиріччя
WK: тиж. SEC_PLURAL: с
MO: міс. MIN_PLURAL: хв
YR: р. HR_PLURAL: год
DEC: рр. WK_PLURAL: тиж.
SECOND_PLURAL: секунди MO_PLURAL: міс.
MINUTE_PLURAL: хвилини YR_PLURAL: рр.
HOUR_PLURAL: години DEC_PLURAL: рр.
DAY_PLURAL: дні FORM:
WEEK_PLURAL: тижні VALIDATION_FAIL: '<b>Перевірка не вдалася:</b>'
MONTH_PLURAL: місяці INVALID_INPUT: 'Невірне введення в'
YEAR_PLURAL: роки MISSING_REQUIRED_FIELD: 'Відсутнє обов''язкове поле:'
DECADE_PLURAL: десятиріччя MONTHS_OF_THE_YEAR:
SEC_PLURAL: с - 'Січень'
MIN_PLURAL: хв - 'Лютий'
HR_PLURAL: год - 'Березень'
WK_PLURAL: тиж. - 'Квітень'
MO_PLURAL: міс. - 'Травень'
YR_PLURAL: рр. - 'Червень'
DEC_PLURAL: рр. - 'Липень'
FORM: - 'Серпень'
VALIDATION_FAIL: '<b>Перевірка не вдалася:</b>' - 'Вересень'
INVALID_INPUT: Невірне введення в - 'Жовтень'
MISSING_REQUIRED_FIELD: 'Відсутнє необхідне поле:' - 'Листопад'
MONTHS_OF_THE_YEAR: - 'Грудень'
- Січень DAYS_OF_THE_WEEK:
- Лютий - 'Понеділок'
- Березень - 'Вівторок'
- Квітень - 'Середа'
- Травень - 'Четвер'
- Червень - 'П''ятниця'
- Липень - 'Субота'
- Серпень - 'Неділя'
- Вересень
- Жовтень
- Листопад
- Грудень
DAYS_OF_THE_WEEK:
- Понеділок
- Вівторок
- Середа
- Четвер
- "П'ятниця"
- Субота
- Неділя

View File

@ -1,75 +1,63 @@
--- ---
FRONTMATTER_ERROR_PAGE: | GRAV:
--- FRONTMATTER_ERROR_PAGE: "---\ntiêu đề: %1$s\n---\n\n# Error: Trang không hợp lệ\n\nĐường dẫn: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
title: %1$s NICETIME:
--- NO_DATE_PROVIDED: Không có ngày được cung cấp
BAD_DATE: Ngày không hợp lệ
# Error: Invalid Frontmatter AGO: cách đây
FROM_NOW: từ bây giờ
Path: `%2$s` SECOND: giây
MINUTE: phút
**%3$s** HOUR: giờ
DAY: ngày
``` WEEK: tuần
%4$s MONTH: tháng
``` YEAR: năm
NICETIME: DECADE: thập kỷ
NO_DATE_PROVIDED: Không có ngày được cung cấp SEC: giây
BAD_DATE: Ngày không hợp lệ MIN: phút
AGO: cách đây HR: giờ
FROM_NOW: từ bây giờ WK: tuần
SECOND: giây MO: tháng
MINUTE: phút YR: năm
HOUR: giờ DEC: thập kỷ
DAY: ngày SECOND_PLURAL: giây
WEEK: tuần MINUTE_PLURAL: phút
MONTH: tháng HOUR_PLURAL: giờ
YEAR: năm DAY_PLURAL: ngày
DECADE: thập kỷ WEEK_PLURAL: tuần
SEC: giây MONTH_PLURAL: tháng
MIN: phút YEAR_PLURAL: năm
HR: giờ DECADE_PLURAL: thập kỷ
WK: tuần SEC_PLURAL: giây
MO: tháng MIN_PLURAL: phút
YR: năm HR_PLURAL: giờ
DEC: thập kỷ WK_PLURAL: tuần
SECOND_PLURAL: giây MO_PLURAL: tháng
MINUTE_PLURAL: phút YR_PLURAL: năm
HOUR_PLURAL: giờ DEC_PLURAL: thập kỷ
DAY_PLURAL: ngày FORM:
WEEK_PLURAL: tuần VALIDATION_FAIL: '<b>Xác nhận thất bại:</b>'
MONTH_PLURAL: tháng INVALID_INPUT: 'Dữ liệu nhập không hợp lệ cho'
YEAR_PLURAL: năm MISSING_REQUIRED_FIELD: 'Thiếu trường bắt buộc:'
DECADE_PLURAL: thập kỷ MONTHS_OF_THE_YEAR:
SEC_PLURAL: giây - 'Tháng 1'
MIN_PLURAL: phút - 'Tháng 2'
HR_PLURAL: giờ - 'Tháng 3'
WK_PLURAL: tuần - 'Tháng 4'
MO_PLURAL: tháng - 'Tháng 5'
YR_PLURAL: năm - 'Tháng 6'
DEC_PLURAL: thập kỷ - 'Tháng 7'
FORM: - 'Tháng 8'
VALIDATION_FAIL: '<b>Xác nhận thất bại:</b>' - 'Tháng 9'
INVALID_INPUT: Dữ liệu nhập không hợp lệ cho - 'Tháng 10'
MISSING_REQUIRED_FIELD: 'Thiếu trường bắt buộc:' - 'Tháng 11'
MONTHS_OF_THE_YEAR: - 'Tháng 12'
- Tháng 1 DAYS_OF_THE_WEEK:
- Tháng 2 - 'Thứ 2'
- Tháng 3 - 'Thứ 3'
- Tháng 4 - 'Thứ 4'
- Tháng 5 - 'Thứ 5'
- Tháng 6 - 'Thứ 6'
- Tháng 7 - 'Thứ 7'
- Tháng 8 - 'Chủ Nhật'
- Tháng 9
- Tháng 10
- Tháng Mười 11
- Tháng 12
DAYS_OF_THE_WEEK:
- Thứ 2
- Thứ 3
- Thứ 4
- Thứ 5
- Thứ 6
- Thứ 7
- Chủ Nhật

144
system/languages/zh-cn.yaml Normal file
View File

@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\n标题: %1$s\n---\n\n# 错误:无效参数\n\n位置 `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- '装备'
- '信息'
- '大米'
- '钱'
- '物种'
- '系列'
- '鱼'
- '羊'
INFLECTOR_IRREGULAR:
'person': '人员'
'man': '男人'
'child': '儿童'
'sex': '性别'
'move': '移动'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'md'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: 无日期信息
BAD_DATE: 无效日期
AGO:
FROM_NOW: 距今
JUST_NOW: 刚刚
SECOND:
MINUTE: 分钟
HOUR: 小时
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 十年
SEC:
MIN: 分钟
HR: 小时
WK:
MO:
YR:
DEC: 年代
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL: 小时
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 十年
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL:
WK_PLURAL:
MO_PLURAL:
YR_PLURAL:
DEC_PLURAL: 年代
FORM:
VALIDATION_FAIL: '<b>验证失败:</b>'
INVALID_INPUT: '无效输入'
MISSING_REQUIRED_FIELD: '必填字段缺失:'
MONTHS_OF_THE_YEAR:
- '1月'
- '2月'
- '3月'
- '4月'
- '5月'
- '6月'
- '7月'
- '8月'
- '9月'
- '10月'
- '11月'
- '12月'
DAYS_OF_THE_WEEK:
- '星期一'
- '星期二'
- '星期三'
- '星期四'
- '星期五'
- '星期六'
- '星期日'
CRON:
EVERY: 每隔
EVERY_HOUR: 每小时
EVERY_MINUTE: 每分钟
EVERY_DAY_OF_WEEK: 一周中的每一天
EVERY_DAY_OF_MONTH: 月份中的每一天
EVERY_MONTH: 每月
TEXT_PERIOD: 所有 <b />
TEXT_MINS: ' 在 <b /> 小时过后的分钟'
TEXT_TIME: ' 在 <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: 不支持分享类型 %s
ERROR2: 无效数字
ERROR3: 请在 jqCron 设置中设定 jquery_element
ERROR4: 无法识别表达式

View File

@ -0,0 +1,62 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# 錯誤: 不正確的 Frontmatter\n\n路徑 `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: 沒有提供日期
BAD_DATE: 錯誤日期
AGO: 之前
FROM_NOW: 之後
JUST_NOW: 剛剛
SECOND:
MINUTE:
HOUR: 小時
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 十年
SEC:
MIN:
HR: 小時
WK:
MO:
YR:
DEC: 十年
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL: 小時
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 十年
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL:
WK_PLURAL:
MO_PLURAL:
YR_PLURAL:
DEC_PLURAL: 十年
FORM:
MISSING_REQUIRED_FIELD: 遺漏必填欄位:
MONTHS_OF_THE_YEAR:
- '一月'
- '二月'
- '三月'
- '四月'
- '五月'
- '六月'
- '七月'
- '八月'
- '九月'
- '十月'
- '十一月'
- '十二月'
DAYS_OF_THE_WEEK:
- '星期一'
- '星期二'
- '星期三'
- '星期四'
- '星期五'
- '星期六'
- '星期日'

144
system/languages/zh.yaml Normal file
View File

@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\n标题: %1$s\n---\n\n# 错误:无效参数\n\n位置 `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- '装备'
- '信息'
- '大米'
- '钱'
- '物种'
- '系列'
- '鱼'
- '羊'
INFLECTOR_IRREGULAR:
'person': '人员'
'man': '男人'
'child': '儿童'
'sex': '性别'
'move': '移动'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'md'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: 无日期信息
BAD_DATE: 无效日期
AGO:
FROM_NOW: 距今
JUST_NOW: 刚刚
SECOND:
MINUTE: 分钟
HOUR: 小时
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 十年
SEC:
MIN: 分钟
HR: 小时
WK:
MO:
YR:
DEC: 年代
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL: 小时
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 十年
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL:
WK_PLURAL:
MO_PLURAL:
YR_PLURAL:
DEC_PLURAL: 年代
FORM:
VALIDATION_FAIL: '<b>验证失败:</b>'
INVALID_INPUT: '无效输入'
MISSING_REQUIRED_FIELD: '必填字段缺失:'
MONTHS_OF_THE_YEAR:
- '1月'
- '2月'
- '3月'
- '4月'
- '5月'
- '6月'
- '7月'
- '8月'
- '9月'
- '10月'
- '11月'
- '12月'
DAYS_OF_THE_WEEK:
- '星期一'
- '星期二'
- '星期三'
- '星期四'
- '星期五'
- '星期六'
- '星期日'
CRON:
EVERY: 每隔
EVERY_HOUR: 每小时
EVERY_MINUTE: 每分钟
EVERY_DAY_OF_WEEK: 一周中的每一天
EVERY_DAY_OF_MONTH: 月份中的每一天
EVERY_MONTH: 每月
TEXT_PERIOD: 所有 <b />
TEXT_MINS: ' 在 <b /> 小时过后的分钟'
TEXT_TIME: ' 在 <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: 不支持分享类型 %s
ERROR2: 无效数字
ERROR3: 请在 jqCron 设置中设定 jquery_element
ERROR4: 无法识别表达式

View File

@ -2,4 +2,5 @@
title: Not Found title: Not Found
routable: false routable: false
notfound: true notfound: true
expires: 0
--- ---

View File

@ -1,13 +1,14 @@
<?php <?php
/** /**
* @package Grav.Core * @package Grav\Core
* *
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved. * @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details. * @license MIT License; see LICENSE file for details.
*/ */
if (PHP_SAPI !== 'cli-server') { if (PHP_SAPI !== 'cli-server') {
exit('This script cannot be run from browser. Run it from a CLI.'); die('This script cannot be run from browser. Run it from a CLI.');
} }
$_SERVER['PHP_CLI_ROUTER'] = true; $_SERVER['PHP_CLI_ROUTER'] = true;
@ -16,11 +17,22 @@ if (is_file($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SERVER['SCRIPT_N
return false; return false;
} }
$_SERVER = array_merge($_SERVER, $_ENV); $grav_index = 'index.php';
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['SCRIPT_NAME'] = DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['PHP_SELF'] = DIRECTORY_SEPARATOR . 'index.php';
require 'index.php'; /* Check the GRAV_BASEDIR environment variable and use if set */
$grav_basedir = getenv('GRAV_BASEDIR') ?: '';
if ($grav_basedir) {
$grav_index = ltrim($grav_basedir, '/') . DIRECTORY_SEPARATOR . $grav_index;
$grav_basedir = DIRECTORY_SEPARATOR . trim($grav_basedir, DIRECTORY_SEPARATOR);
define('GRAV_ROOT', str_replace(DIRECTORY_SEPARATOR, '/', getcwd()) . $grav_basedir);
}
$_SERVER = array_merge($_SERVER, $_ENV);
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . $grav_basedir .DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['SCRIPT_NAME'] = $grav_basedir . DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['PHP_SELF'] = $grav_basedir . DIRECTORY_SEPARATOR . 'index.php';
error_log(sprintf('%s:%d [%d]: %s', $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT'], http_response_code(), $_SERVER['REQUEST_URI']), 4); error_log(sprintf('%s:%d [%d]: %s', $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT'], http_response_code(), $_SERVER['REQUEST_URI']), 4);
require $grav_index;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,258 @@
<?php
/**
* @package Grav\Common\Assets
*
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Assets;
use Grav\Common\Assets\Traits\AssetUtilsTrait;
use Grav\Common\Config\Config;
use Grav\Common\Grav;
use Grav\Common\Uri;
use Grav\Common\Utils;
use Grav\Framework\Object\PropertyObject;
use SplFileInfo;
/**
* Class BaseAsset
* @package Grav\Common\Assets
*/
abstract class BaseAsset extends PropertyObject
{
use AssetUtilsTrait;
protected const CSS_ASSET = true;
protected const JS_ASSET = false;
/** @var string|false */
protected $asset;
/** @var string */
protected $asset_type;
/** @var int */
protected $order;
/** @var string */
protected $group;
/** @var string */
protected $position;
/** @var int */
protected $priority;
/** @var array */
protected $attributes = [];
/** @var string */
protected $timestamp;
/** @var int|false */
protected $modified;
/** @var bool */
protected $remote;
/** @var string */
protected $query = '';
// Private Bits
/** @var bool */
private $css_rewrite = false;
/** @var bool */
private $css_minify = false;
/**
* @return string
*/
abstract function render();
/**
* BaseAsset constructor.
* @param array $elements
* @param string|null $key
*/
public function __construct(array $elements = [], $key = null)
{
$base_config = [
'group' => 'head',
'position' => 'pipeline',
'priority' => 10,
'modified' => null,
'asset' => null
];
// Merge base defaults
$elements = array_merge($base_config, $elements);
parent::__construct($elements, $key);
}
/**
* @param string|false $asset
* @param array $options
* @return $this|false
*/
public function init($asset, $options)
{
$config = Grav::instance()['config'];
$uri = Grav::instance()['uri'];
// set attributes
foreach ($options as $key => $value) {
if ($this->hasProperty($key)) {
$this->setProperty($key, $value);
} else {
$this->attributes[$key] = $value;
}
}
// Force priority to be an int
$this->priority = (int) $this->priority;
// Do some special stuff for CSS/JS (not inline)
if (!Utils::startsWith($this->getType(), 'inline')) {
$this->base_url = rtrim($uri->rootUrl($config->get('system.absolute_urls')), '/') . '/';
$this->remote = static::isRemoteLink($asset);
// Move this to render?
if (!$this->remote) {
$asset_parts = parse_url($asset);
if (isset($asset_parts['query'])) {
$this->query = $asset_parts['query'];
unset($asset_parts['query']);
$asset = Uri::buildUrl($asset_parts);
}
$locator = Grav::instance()['locator'];
if ($locator->isStream($asset)) {
$path = $locator->findResource($asset, true);
} else {
$path = GRAV_WEBROOT . $asset;
}
// If local file is missing return
if ($path === false) {
return false;
}
$file = new SplFileInfo($path);
$asset = $this->buildLocalLink($file->getPathname());
$this->modified = $file->isFile() ? $file->getMTime() : false;
}
}
$this->asset = $asset;
return $this;
}
/**
* @return string|false
*/
public function getAsset()
{
return $this->asset;
}
/**
* @return bool
*/
public function getRemote()
{
return $this->remote;
}
/**
* @param string $position
* @return $this
*/
public function setPosition($position)
{
$this->position = $position;
return $this;
}
/**
* Receive asset location and return the SRI integrity hash
*
* @param string $input
* @return string
*/
public static function integrityHash($input)
{
$grav = Grav::instance();
$assetsConfig = $grav['config']->get('system.assets');
if ( !empty($assetsConfig['enable_asset_sri']) && $assetsConfig['enable_asset_sri'] )
{
$dataToHash = file_get_contents( GRAV_WEBROOT . $input);
$hash = hash('sha256', $dataToHash, true);
$hash_base64 = base64_encode($hash);
return ' integrity="sha256-' . $hash_base64 . '"';
}
return '';
}
/**
*
* Get the last modification time of asset
*
* @param string $asset the asset string reference
*
* @return string the last modifcation time or false on error
*/
// protected function getLastModificationTime($asset)
// {
// $file = GRAV_WEBROOT . $asset;
// if (Grav::instance()['locator']->isStream($asset)) {
// $file = $this->buildLocalLink($asset, true);
// }
//
// return file_exists($file) ? filemtime($file) : false;
// }
/**
*
* Build local links including grav asset shortcodes
*
* @param string $asset the asset string reference
*
* @return string|false the final link url to the asset
*/
protected function buildLocalLink($asset)
{
if ($asset) {
return $this->base_url . ltrim(Utils::replaceFirstOccurrence(GRAV_WEBROOT, '', $asset), '/');
}
return false;
}
/**
* Implements JsonSerializable interface.
*
* @return array
*/
public function jsonSerialize()
{
return ['type' => $this->getType(), 'elements' => $this->getElements()];
}
/**
* Placeholder for AssetUtilsTrait method
*
* @param string $file
* @param string $dir
* @param bool $local
* @return string
*/
protected function cssRewrite($file, $dir, $local)
{
return;
}
}

Some files were not shown because too many files have changed in this diff Show More