forked from UsrSpace-Internal/website
Initial import
This commit is contained in:
commit
142361f5b4
|
@ -0,0 +1,2 @@
|
|||
Satisfy Any
|
||||
Deny from all
|
|
@ -0,0 +1,3 @@
|
|||
{ "calendar":[
|
||||
{ "date":"2018-05-17", "link":"https://usrspace.at/w/index.php?title=Stammtisch_2018-05-17", "name":"Stammtisch" }
|
||||
]}
|
|
@ -0,0 +1,2 @@
|
|||
Satisfy Any
|
||||
Deny from all
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
//require_once "_include/calendar/autoload.php";
|
||||
|
||||
function gen_calendar_header()
|
||||
{
|
||||
$months = array(1 => "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
|
||||
$today = date("w") ; // 0 = Sonntag
|
||||
if ($today == 0) $today = 7;
|
||||
// Zeitraum 5 Wochen
|
||||
$first_day = strtotime("-1 week") - ((60*60*24)*($today-1)) ; // Erster Montag
|
||||
$last_day = strtotime("+3 weeks") + ((60*60*24)*(7-$today)) ; // letzter Sonntag
|
||||
if (date("F", $first_day) != date("F", $last_day)) { // 2 Monate
|
||||
return $months[date("n", $first_day)] . " - " . $months[date("n", $last_day)] . date(" Y", $last_day) ;
|
||||
} else {
|
||||
return $months[date("F", $first_day)] . date(" Y", $first_day) ;
|
||||
}
|
||||
}
|
||||
|
||||
function gen_calendar_content()
|
||||
{
|
||||
$today = date("w") ; // 0 = Sonntag
|
||||
if ($today == 0) $today = 7;
|
||||
// Zeitraum 5 Wochen
|
||||
$first_day = strtotime("-1 week") - ((60*60*24)*($today-1)) ; // Erster Montag
|
||||
$last_day = strtotime("+3 weeks") + ((60*60*24)*(7-$today)) ; // letzter Sonntag
|
||||
$output = "";
|
||||
$day = $first_day;
|
||||
|
||||
|
||||
for ($w = 0; $w < 5; $w++) {
|
||||
$output .= "<tr>";
|
||||
for ($d = 0; $d < 7; $d++) {
|
||||
if (date("Y-m-d", $day) == date("Y-m-d", time())) {
|
||||
$output .= '<td class="cal_today">'.date("d",$day)."</td>";
|
||||
} else {
|
||||
$output .= "<td>".date("d",$day)."</td>";
|
||||
}
|
||||
$day = $day + (60*60*24);
|
||||
}
|
||||
$output .= "</tr>\n";
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
function check_for_event($events, $date)
|
||||
{
|
||||
foreach ( $events as $event ) {
|
||||
if (date("Y-m-d", $event->dtstart_array[2]) == date("Y-m-d", $date)) {
|
||||
return $event->summary;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
?>
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitd8636b9e4362b54727922ecd718fad8c::getLoader();
|
|
@ -0,0 +1,445 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
/**
|
||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||
*
|
||||
* $loader = new \Composer\Autoload\ClassLoader();
|
||||
*
|
||||
* // register classes with namespaces
|
||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||
* $loader->add('Symfony', __DIR__.'/framework');
|
||||
*
|
||||
* // activate the autoloader
|
||||
* $loader->register();
|
||||
*
|
||||
* // to enable searching the include path (eg. for PEAR packages)
|
||||
* $loader->setUseIncludePath(true);
|
||||
*
|
||||
* In this example, if you try to use a class in the Symfony\Component
|
||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||
* the autoloader will first look for the class under the component/
|
||||
* directory, and it will then fallback to the framework/ directory if not
|
||||
* found before giving up.
|
||||
*
|
||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see http://www.php-fig.org/psr/psr-0/
|
||||
* @see http://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
// PSR-4
|
||||
private $prefixLengthsPsr4 = array();
|
||||
private $prefixDirsPsr4 = array();
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
private $prefixesPsr0 = array();
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoritative = false;
|
||||
private $missingClasses = array();
|
||||
private $apcuPrefix;
|
||||
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap Class to filename map
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
} else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
// Register directories for a new namespace.
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 base directories
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr0 = (array) $paths;
|
||||
} else {
|
||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr4 = (array) $paths;
|
||||
} else {
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath()
|
||||
{
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isClassMapAuthoritative()
|
||||
{
|
||||
return $this->classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getApcuPrefix()
|
||||
{
|
||||
return $this->apcuPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return bool|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
*
|
||||
* @return string|false The path if found, false otherwise
|
||||
*/
|
||||
public function findFile($class)
|
||||
{
|
||||
// class map lookup
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||
return false;
|
||||
}
|
||||
if (null !== $this->apcuPrefix) {
|
||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||
if ($hit) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->findFileWithExtension($class, '.php');
|
||||
|
||||
// Search for Hack files if we are running on HHVM
|
||||
if (false === $file && defined('HHVM_VERSION')) {
|
||||
$file = $this->findFileWithExtension($class, '.hh');
|
||||
}
|
||||
|
||||
if (null !== $this->apcuPrefix) {
|
||||
apcu_add($this->apcuPrefix.$class, $file);
|
||||
}
|
||||
|
||||
if (false === $file) {
|
||||
// Remember that this class does not exist.
|
||||
$this->missingClasses[$class] = true;
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||
|
||||
$first = $class[0];
|
||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-4 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 lookup
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||
} else {
|
||||
// PEAR-like class name
|
||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||
}
|
||||
|
||||
if (isset($this->prefixesPsr0[$first])) {
|
||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 include paths.
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
);
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
// autoload_files.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
);
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'ICal' => array($vendorDir . '/johngrogg/ics-parser/src'),
|
||||
);
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
||||
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
|
||||
'' => array($vendorDir . '/nesbot/carbon/src'),
|
||||
);
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitd8636b9e4362b54727922ecd718fad8c
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class)
|
||||
{
|
||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||
require __DIR__ . '/ClassLoader.php';
|
||||
}
|
||||
}
|
||||
|
||||
public static function getLoader()
|
||||
{
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitd8636b9e4362b54727922ecd718fad8c', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitd8636b9e4362b54727922ecd718fad8c', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require_once __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequired8636b9e4362b54727922ecd718fad8c($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequired8636b9e4362b54727922ecd718fad8c($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
// autoload_static.php @generated by Composer
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitd8636b9e4362b54727922ecd718fad8c
|
||||
{
|
||||
public static $files = array (
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
'S' =>
|
||||
array (
|
||||
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
||||
'Symfony\\Component\\Translation\\' => 30,
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixDirsPsr4 = array (
|
||||
'Symfony\\Polyfill\\Mbstring\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
||||
),
|
||||
'Symfony\\Component\\Translation\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/translation',
|
||||
),
|
||||
);
|
||||
|
||||
public static $fallbackDirsPsr4 = array (
|
||||
0 => __DIR__ . '/..' . '/nesbot/carbon/src',
|
||||
);
|
||||
|
||||
public static $prefixesPsr0 = array (
|
||||
'I' =>
|
||||
array (
|
||||
'ICal' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/johngrogg/ics-parser/src',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::$prefixDirsPsr4;
|
||||
$loader->fallbackDirsPsr4 = ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::$fallbackDirsPsr4;
|
||||
$loader->prefixesPsr0 = ComposerStaticInitd8636b9e4362b54727922ecd718fad8c::$prefixesPsr0;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,253 @@
|
|||
[
|
||||
{
|
||||
"name": "johngrogg/ics-parser",
|
||||
"version": "v2.1.5",
|
||||
"version_normalized": "2.1.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/u01jmg3/ics-parser.git",
|
||||
"reference": "ffd1788215b19da9813420935715b2bb7919b88e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/u01jmg3/ics-parser/zipball/ffd1788215b19da9813420935715b2bb7919b88e",
|
||||
"reference": "ffd1788215b19da9813420935715b2bb7919b88e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-mbstring": "*",
|
||||
"nesbot/carbon": "~1.28",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"squizlabs/php_codesniffer": "~2.9.1"
|
||||
},
|
||||
"time": "2018-05-24T14:12:00+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"ICal": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Martin Thoma",
|
||||
"email": "info@martin-thoma.de",
|
||||
"role": "Original Developer"
|
||||
},
|
||||
{
|
||||
"name": "John Grogg",
|
||||
"email": "john.grogg@gmail.com",
|
||||
"role": "Developer/Prior Owner"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Goode",
|
||||
"role": "Developer/Owner"
|
||||
}
|
||||
],
|
||||
"description": "ICS Parser",
|
||||
"homepage": "https://github.com/u01jmg3/ics-parser",
|
||||
"keywords": [
|
||||
"iCalendar",
|
||||
"ical",
|
||||
"ical-parser",
|
||||
"ics",
|
||||
"ics-parser",
|
||||
"ifb"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.34.0",
|
||||
"version_normalized": "1.34.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33",
|
||||
"reference": "1dbd3cb01c5645f3e7deda7aa46ef780d95fcc33",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/translation": "~2.6 || ~3.0 || ~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||
},
|
||||
"time": "2018-09-20T19:36:25+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Carbon\\Laravel\\ServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brian Nesbitt",
|
||||
"email": "brian@nesbot.com",
|
||||
"homepage": "http://nesbot.com"
|
||||
}
|
||||
],
|
||||
"description": "A simple API extension for DateTime.",
|
||||
"homepage": "http://carbon.nesbot.com",
|
||||
"keywords": [
|
||||
"date",
|
||||
"datetime",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8",
|
||||
"reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"time": "2018-08-06T14:22:27+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v4.1.6",
|
||||
"version_normalized": "4.1.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/9f0b61e339160a466ebcde167a6c5521c810e304",
|
||||
"reference": "9f0b61e339160a466ebcde167a6c5521c810e304",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<3.4",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/yaml": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "~3.4|~4.0",
|
||||
"symfony/console": "~3.4|~4.0",
|
||||
"symfony/dependency-injection": "~3.4|~4.0",
|
||||
"symfony/finder": "~2.8|~3.0|~4.0",
|
||||
"symfony/intl": "~3.4|~4.0",
|
||||
"symfony/yaml": "~3.4|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log-implementation": "To use logging capability in translator",
|
||||
"symfony/config": "",
|
||||
"symfony/yaml": ""
|
||||
},
|
||||
"time": "2018-10-02T16:36:10+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Translation\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com"
|
||||
}
|
||||
]
|
|
@ -0,0 +1,11 @@
|
|||
# https://editorconfig.org/
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
|
@ -0,0 +1,17 @@
|
|||
## Contributing
|
||||
|
||||
ICS Parser is an open source project. It is licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||
We appreciate pull requests, here are our guidelines:
|
||||
|
||||
1. Firstly, check if your issue is present within the latest version (`dev-master`) as the problem may already have been fixed.
|
||||
1. Log a bug in our [issue tracker](https://github.com/u01jmg3/ics-parser/issues) (if there isn't one already).
|
||||
- If your patch is going to be large it might be a good idea to get the discussion started early.
|
||||
- We are happy to discuss it in an issue beforehand.
|
||||
- If you could provide an iCal snippet causing the parser to behave incorrectly it is extremely useful for debugging
|
||||
- Please remove all irrelevant events
|
||||
1. Please follow the coding standard already present in the file you are editing _before_ committing
|
||||
- Adhere to the [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) coding standard
|
||||
- Use *4 spaces* instead of tabs for indentation
|
||||
- Trim all trailing whitespace and blank lines
|
||||
- Use single quotes (`'`) where possible instead of double
|
||||
- Abide by the [1TBS](https://en.wikipedia.org/wiki/Indent_style#Variant:_1TBS_.28OTBS.29) indentation style
|
|
@ -0,0 +1,15 @@
|
|||
> :information_source:
|
||||
> - Firstly, check you are using the latest version (`dev-master`) as the problem may already have been fixed.
|
||||
> - It is **essential** to be provided with the offending iCal causing the parser to behave incorrectly.
|
||||
> - Best to upload the iCal file directly to this issue
|
||||
|
||||
- PHP Version: `5.#.#`
|
||||
- PHP date.timezone: `[Country]/[City]`
|
||||
- ICS Parser Version: `2.#.#`
|
||||
- Windows/Mac/Linux
|
||||
|
||||
### Description of the Issue:
|
||||
|
||||
|
||||
### Steps to Reproduce:
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
> :information_source:
|
||||
> - File a bug on our [issue tracker](https://github.com/u01jmg3/ics-parser/issues) (if there isn't one already).
|
||||
> - If your patch is going to be large it might be a good idea to get the discussion started early. We are happy to discuss it in a new issue beforehand.
|
||||
> - Please follow the coding standards already adhered to in the file you're editing before committing
|
||||
> - This includes the use of *4 spaces* over tabs for indentation
|
||||
> - Trimming all trailing whitespace
|
||||
> - Using single quotes (`'`) where possible
|
||||
> - Using the [1TBS](https://en.wikipedia.org/wiki/Indent_style#Variant:_1TBS_.28OTBS.29) indent style
|
||||
> - If a function is added or changed, please remember to update the [API documentation in the README](https://github.com/u01jmg3/ics-parser/blob/master/README.md#api)
|
|
@ -0,0 +1,8 @@
|
|||
# Release Checklist
|
||||
|
||||
- [ ] Ensure the documentation is up to date
|
||||
- [ ] Push the code changes to GitHub (`git push`)
|
||||
- [ ] Tag the release (`git tag v1.2.3`)
|
||||
- [ ] Push the tag (`git push --tag`)
|
||||
- [ ] Check [Packagist](https://packagist.org/packages/johngrogg/ics-parser) is updated
|
||||
- [ ] Notify anyone who opened [an issue or PR](https://github.com/u01jmg3/ics-parser/issues?q=is%3Aopen) of the fix
|
|
@ -0,0 +1,51 @@
|
|||
###################
|
||||
# Compiled Source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
############
|
||||
# Packages #
|
||||
############
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
######################
|
||||
# Logs and Databases #
|
||||
######################
|
||||
*.log
|
||||
*.sqlite
|
||||
|
||||
######################
|
||||
# OS Generated Files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
workbench
|
||||
|
||||
####################
|
||||
# Package Managers #
|
||||
####################
|
||||
auth.json
|
||||
node_modules
|
||||
vendor
|
||||
|
||||
##########
|
||||
# Custom #
|
||||
##########
|
||||
*-report.*
|
|
@ -0,0 +1,15 @@
|
|||
The MIT License (MIT)
|
||||
Copyright (c) 2017
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
|
||||
Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,178 @@
|
|||
# PHP ICS Parser
|
||||
|
||||
[![Latest Stable Release](https://poser.pugx.org/johngrogg/ics-parser/v/stable.png "Latest Stable Release")](https://packagist.org/packages/johngrogg/ics-parser)
|
||||
[![Total Downloads](https://poser.pugx.org/johngrogg/ics-parser/downloads.png "Total Downloads")](https://packagist.org/packages/johngrogg/ics-parser)
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
### Requirements
|
||||
- PHP 5 (≥ 5.3.0)
|
||||
- [Valid ICS](https://icalendar.org/validator.html) (`.ics`, `.ical`, `.ifb`) file
|
||||
- [IANA](https://www.iana.org/time-zones) or [Unicode CLDR](http://cldr.unicode.org/translation/timezones) Time Zones
|
||||
|
||||
### Setup
|
||||
|
||||
- Install [Composer](https://getcomposer.org/)
|
||||
- Add the following dependency to `composer.json`
|
||||
- :warning: **Note with Composer the owner is `johngrogg` and not `u01jmg3`**
|
||||
- To access the latest stable branch (`v2`) use the following
|
||||
- To access new features you can require [`dev-master`](https://getcomposer.org/doc/articles/aliases.md#branch-alias)
|
||||
|
||||
```yaml
|
||||
{
|
||||
"require": {
|
||||
"johngrogg/ics-parser": "^2"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## How to use
|
||||
|
||||
### How to instantiate the Parser
|
||||
|
||||
- Using the example script as a guide, [refer to this code](https://github.com/u01jmg3/ics-parser/blob/master/examples/index.php#L1-L22)
|
||||
|
||||
#### What will the parser return?
|
||||
|
||||
- Each key/value pair from the iCal file will be parsed creating an associative array for both the calendar and every event it contains.
|
||||
- Also injected will be content under `dtstart_tz` and `dtend_tz` for accessing start and end dates with time zone data applied.
|
||||
- Where possible [`DateTime`](https://secure.php.net/manual/en/class.datetime.php) objects are used and returned.
|
||||
|
||||
```php
|
||||
// Dump the whole calendar
|
||||
var_dump($ical->cal);
|
||||
|
||||
// Dump every event
|
||||
var_dump($ical->events());
|
||||
```
|
||||
|
||||
- Also included are special `{property}_array` arrays which further resolve the contents of a key/value pair.
|
||||
|
||||
```php
|
||||
// Dump a parsed event's start date
|
||||
var_dump($event->dtstart_array);
|
||||
|
||||
// array (size=4)
|
||||
// 0 =>
|
||||
// array (size=1)
|
||||
// 'TZID' => string 'America/Detroit' (length=15)
|
||||
// 1 => string '20160409T090000' (length=15)
|
||||
// 2 => int 1460192400
|
||||
// 3 => string 'TZID=America/Detroit:20160409T090000' (length=36)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API
|
||||
|
||||
### `ICal` API
|
||||
|
||||
#### Variables
|
||||
|
||||
| Name | Description | Configurable | Default Value |
|
||||
|--------------------------------|---------------------------------------------------------------------|:------------------------:|-------------------------------------------------------------------------------------------|
|
||||
| `$defaultSpan` | The value in years to use for indefinite, recurring events | :ballot_box_with_check: | `2` |
|
||||
| `$defaultTimeZone` | Enables customisation of the default time zone | :ballot_box_with_check: | [System default](https://secure.php.net/manual/en/function.date-default-timezone-get.php) |
|
||||
| `$defaultWeekStart` | The two letter representation of the first day of the week | :ballot_box_with_check: | `MO` |
|
||||
| `$disableCharacterReplacement` | Toggles whether to disable all character replacement | :ballot_box_with_check: | `false` |
|
||||
| `$skipRecurrence` | Toggles whether to skip the parsing of recurrence rules | :ballot_box_with_check: | `false` |
|
||||
| `$useTimeZoneWithRRules` | Toggles whether to use time zone info when parsing recurrence rules | :ballot_box_with_check: | `false` |
|
||||
| `$alarmCount` | Tracks the number of alarms in the current iCal feed | :heavy_multiplication_x: | N/A |
|
||||
| `$cal` | The parsed calendar | :heavy_multiplication_x: | N/A |
|
||||
| `$eventCount` | Tracks the number of events in the current iCal feed | :heavy_multiplication_x: | N/A |
|
||||
| `$freeBusyCount` | Tracks the free/busy count in the current iCal feed | :heavy_multiplication_x: | N/A |
|
||||
| `$todoCount` | Tracks the number of todos in the current iCal feed | :heavy_multiplication_x: | N/A |
|
||||
|
||||
#### Methods
|
||||
|
||||
| Method | Parameter(s) | Visibility | Description |
|
||||
|---------------------------------------|------------------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------------|
|
||||
| `__construct` | `$files = false`, `$options = array()` | `public` | Creates the ICal object |
|
||||
| `initFile` | `$file` | `protected` | Initialises lines from a file |
|
||||
| `initLines` | `$lines` | `protected` | Initialises the parser using an array containing each line of iCal content |
|
||||
| `initString` | `$string` | `protected` | Initialises lines from a string |
|
||||
| `initUrl` | `$url` | `protected` | Initialises lines from a URL |
|
||||
| `addCalendarComponentWithKeyAndValue` | `$component`, `$keyword`, `$value` | `protected` | Add one key and value pair to the `$this->cal` array |
|
||||
| `calendarDescription` | - | `public` | Returns the calendar description |
|
||||
| `calendarName` | - | `public` | Returns the calendar name |
|
||||
| `calendarTimeZone` | `$ignoreUtc` | `public` | Returns the calendar time zone |
|
||||
| `cleanData` | `$data` | `protected` | Replaces curly quotes and other special characters with their standard equivalents |
|
||||
| `convertDayOrdinalToPositive` | `$dayNumber`, `$weekday`, `$timestamp` | `protected` | Converts a negative day ordinal to its equivalent positive form |
|
||||
| `eventsFromInterval` | `$interval` | `public` | Returns a sorted array of events following a given string, or `false` if no events exist in the range |
|
||||
| `eventsFromRange` | `$rangeStart = false`, `$rangeEnd = false` | `public` | Returns a sorted array of events in a given range, or an empty array if no events exist in the range |
|
||||
| `events` | - | `public` | Returns an array of Events |
|
||||
| `fileOrUrl` | `$filename` | `protected` | Reads an entire file or URL into an array |
|
||||
| `freeBusyEvents` | - | `public` | Returns an array of arrays with all free/busy events |
|
||||
| `hasEvents` | - | `public` | Returns a boolean value whether the current calendar has events or not |
|
||||
| `iCalDateToDateTime` | `$icalDate`, `$forceTimeZone = false`, `$forceUtc = false` | `public` | Returns a `DateTime` object from an iCal date time format |
|
||||
| `iCalDateToUnixTimestamp` | `$icalDate`, `$forceTimeZone = false`, `$forceUtc = false` | `public` | Returns a Unix timestamp from an iCal date time format |
|
||||
| `iCalDateWithTimeZone` | `$event`, `$key`, `$format = DATE_TIME_FORMAT` | `public` | Returns a date adapted to the calendar time zone depending on the event `TZID` |
|
||||
| `isExdateMatch` | `$exdate`, `$anEvent`, `$recurringOffset` | `protected` | Checks if an excluded date matches a given date by reconciling time zones |
|
||||
| `isFileOrUrl` | `$filename` | `protected` | Checks if a filename exists as a file or URL |
|
||||
| `isValidDate` | `$value` | `public` | Checks if a date string is a valid date |
|
||||
| `isValidTimeZoneId` | `$timeZone` | `protected` | Checks if a time zone is valid (IANA or CLDR) |
|
||||
| `isValidIanaTimeZoneId` | `$timeZone` | `protected` | Checks if a time zone is a valid IANA time zone |
|
||||
| `isValidCldrTimeZoneId` | `$timeZone`, `doConversion = false` | `protected` | Checks if a time zone is a valid CLDR time zone |
|
||||
| `keyValueFromString` | `$text` | `protected` | Gets the key value pair from an iCal string |
|
||||
| `mb_chr` | `$code` | `protected` | Provides a polyfill for PHP 7.2's `mb_chr()`, which is a multibyte safe version of `chr()` |
|
||||
| `mb_str_replace` | `$search`, `$replace`, `$subject`, `$count = 0` | `protected` | Replaces all occurrences of a search string with a given replacement string |
|
||||
| `numberOfDays` | `$days`, `$start`, `$end` | `protected` | Gets the number of days between a start and end date |
|
||||
| `parseDuration` | `$date`, `$duration`, `$format = 'U'` | `protected` | Parses a duration and applies it to a date |
|
||||
| `parseExdates` | `$event` | `public` | Parses a list of excluded dates to be applied to an Event |
|
||||
| `processDateConversions` | - | `protected` | Processes date conversions using the time zone |
|
||||
| `processEventIcalDateTime` | `$event`, `$index = 3` | `protected` | Extends the `{DTSTART\|DTEND\|RECURRENCE-ID}_array` array to include an iCal date time for each event |
|
||||
| `processEvents` | - | `protected` | Performs admin tasks on all events as read from the iCal file |
|
||||
| `processRecurrences` | - | `protected` | Processes recurrence rules |
|
||||
| `removeUnprintableChars` | `$data` | `protected` | Removes unprintable ASCII and UTF-8 characters |
|
||||
| `sortEventsWithOrder` | `$events`, `$sortOrder = SORT_ASC` | `public` | Sorts events based on a given sort order |
|
||||
| `trimToRecurrenceCount` | `$rrules`, `$recurrenceEvents` | `protected` | Ensures the recurrence count is enforced against generated recurrence events |
|
||||
| `unfold` | `$lines` | `protected` | Unfolds an iCal file in preparation for parsing |
|
||||
|
||||
#### Constants
|
||||
|
||||
| Name | Description |
|
||||
|---------------------------|-----------------------------------------------|
|
||||
| `DATE_TIME_FORMAT_PRETTY` | Default pretty date time format to use |
|
||||
| `DATE_TIME_FORMAT` | Default date time format to use |
|
||||
| `ICAL_DATE_TIME_TEMPLATE` | String template to generate an iCal date time |
|
||||
| `RECURRENCE_EVENT` | Used to isolate generated recurrence events |
|
||||
| `SECONDS_IN_A_WEEK` | The number of seconds in a week |
|
||||
| `TIME_FORMAT` | Default time format to use |
|
||||
| `TIME_ZONE_UTC` | UTC time zone string |
|
||||
| `UNIX_FORMAT` | Unix timestamp date format |
|
||||
| `UNIX_MIN_YEAR` | The year Unix time began |
|
||||
|
||||
---
|
||||
|
||||
### `Event` API (extends `ICal` API)
|
||||
|
||||
#### Methods
|
||||
|
||||
| Method | Parameter(s) | Visibility | Description |
|
||||
|---------------|---------------------------------------------|-------------|---------------------------------------------------------------------|
|
||||
| `__construct` | `$data = array()` | `public` | Creates the Event object |
|
||||
| `prepareData` | `$value` | `protected` | Prepares the data for output |
|
||||
| `printData` | `$html = HTML_TEMPLATE` | `public` | Returns Event data excluding anything blank within an HTML template |
|
||||
| `snakeCase` | `$input`, `$glue = '_'`, `$separator = '-'` | `protected` | Converts the given input to snake_case |
|
||||
|
||||
#### Constants
|
||||
|
||||
| Name | Description |
|
||||
|-----------------|-----------------------------------------------------|
|
||||
| `HTML_TEMPLATE` | String template to use when pretty printing content |
|
||||
|
||||
---
|
||||
|
||||
## Credits
|
||||
- [Jonathan Goode](https://github.com/u01jmg3) (programming, bug fixing, enhancement, coding standard)
|
||||
- [John Grogg](john.grogg@gmail.com) (programming, addition of event recurrence handling)
|
||||
|
||||
---
|
||||
|
||||
## Tools for Testing
|
||||
|
||||
- [iCal Validator](https://icalendar.org/validator.html)
|
||||
- [Recurrence Rule Tester](https://jakubroztocil.github.io/rrule/)
|
||||
- [Unix Timestamp Converter](https://www.unixtimestamp.com)
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "johngrogg/ics-parser",
|
||||
"description": "ICS Parser",
|
||||
"homepage": "https://github.com/u01jmg3/ics-parser",
|
||||
"keywords": [
|
||||
"icalendar",
|
||||
"ics",
|
||||
"ics-parser",
|
||||
"ical",
|
||||
"ical-parser",
|
||||
"ifb"
|
||||
],
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jonathan Goode",
|
||||
"role": "Developer/Owner"
|
||||
},
|
||||
{
|
||||
"name": "John Grogg",
|
||||
"email": "john.grogg@gmail.com",
|
||||
"role": "Developer/Prior Owner"
|
||||
},
|
||||
{
|
||||
"name": "Martin Thoma",
|
||||
"email": "info@martin-thoma.de",
|
||||
"role": "Original Developer"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"ext-mbstring": "*",
|
||||
"nesbot/carbon": "~1.28"
|
||||
},
|
||||
"require-dev": {
|
||||
"squizlabs/php_codesniffer": "~2.9.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"ICal": "src/"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.3.29"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,274 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "bd0091adbd9e5072ec5c42d44b6643fe",
|
||||
"packages": [
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "00149d95fc91ef10f19d3a66889bc3bb7500fa7b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/00149d95fc91ef10f19d3a66889bc3bb7500fa7b",
|
||||
"reference": "00149d95fc91ef10f19d3a66889bc3bb7500fa7b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/translation": "~2.6 || ~3.0 || ~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brian Nesbitt",
|
||||
"email": "brian@nesbot.com",
|
||||
"homepage": "http://nesbot.com"
|
||||
}
|
||||
],
|
||||
"description": "A simple API extension for DateTime.",
|
||||
"homepage": "http://carbon.nesbot.com",
|
||||
"keywords": [
|
||||
"date",
|
||||
"datetime",
|
||||
"time"
|
||||
],
|
||||
"time": "2018-05-18T15:26:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "3296adf6a6454a050679cde90f95350ad604b171"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171",
|
||||
"reference": "3296adf6a6454a050679cde90f95350ad604b171",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2018-04-26T10:06:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v2.8.40",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "c6a27966a92fa361bf2c3a938abc6dee91f7ad67"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/c6a27966a92fa361bf2c3a938abc6dee91f7ad67",
|
||||
"reference": "c6a27966a92fa361bf2c3a938abc6dee91f7ad67",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<2.7"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "~2.8",
|
||||
"symfony/intl": "~2.7.25|^2.8.18|~3.2.5",
|
||||
"symfony/yaml": "~2.2|~3.0.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log-implementation": "To use logging capability in translator",
|
||||
"symfony/config": "",
|
||||
"symfony/yaml": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.8-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Translation\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-05-21T09:59:10+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "2.9.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62",
|
||||
"reference": "dcbed1074f8244661eecddfc2a675430d8d33f62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-simplexml": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-xmlwriter": "*",
|
||||
"php": ">=5.1.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
},
|
||||
"bin": [
|
||||
"scripts/phpcs",
|
||||
"scripts/phpcbf"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"CodeSniffer.php",
|
||||
"CodeSniffer/CLI.php",
|
||||
"CodeSniffer/Exception.php",
|
||||
"CodeSniffer/File.php",
|
||||
"CodeSniffer/Fixer.php",
|
||||
"CodeSniffer/Report.php",
|
||||
"CodeSniffer/Reporting.php",
|
||||
"CodeSniffer/Sniff.php",
|
||||
"CodeSniffer/Tokens.php",
|
||||
"CodeSniffer/Reports/",
|
||||
"CodeSniffer/Tokenizers/",
|
||||
"CodeSniffer/DocGenerators/",
|
||||
"CodeSniffer/Standards/AbstractPatternSniff.php",
|
||||
"CodeSniffer/Standards/AbstractScopeSniff.php",
|
||||
"CodeSniffer/Standards/AbstractVariableSniff.php",
|
||||
"CodeSniffer/Standards/IncorrectPatternException.php",
|
||||
"CodeSniffer/Standards/Generic/Sniffs/",
|
||||
"CodeSniffer/Standards/MySource/Sniffs/",
|
||||
"CodeSniffer/Standards/PEAR/Sniffs/",
|
||||
"CodeSniffer/Standards/PSR1/Sniffs/",
|
||||
"CodeSniffer/Standards/PSR2/Sniffs/",
|
||||
"CodeSniffer/Standards/Squiz/Sniffs/",
|
||||
"CodeSniffer/Standards/Zend/Sniffs/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Greg Sherwood",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2017-05-22T02:43:20+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=5.3.0",
|
||||
"ext-mbstring": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "5.3.29"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,309 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||
VERSION:2.0
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
X-WR-CALNAME:Testkalender
|
||||
X-WR-TIMEZONE:UTC
|
||||
X-WR-CALDESC:Nur zum testen vom Google Kalender
|
||||
BEGIN:VFREEBUSY
|
||||
UID:f06ff6b3564b2f696bf42d393f8dea59
|
||||
ORGANIZER:MAILTO:jane_smith@host1.com
|
||||
DTSTAMP:20170316T204607Z
|
||||
DTSTART:20170213T204607Z
|
||||
DTEND:20180517T204607Z
|
||||
URL:https://www.host.com/calendar/busytime/jsmith.ifb
|
||||
FREEBUSY;FBTYPE=BUSY:20170623T070000Z/20170223T110000Z
|
||||
FREEBUSY;FBTYPE=BUSY:20170624T131500Z/20170316T151500Z
|
||||
FREEBUSY;FBTYPE=BUSY:20170715T131500Z/20170416T150000Z
|
||||
FREEBUSY;FBTYPE=BUSY:20170716T131500Z/20170516T100500Z
|
||||
END:VFREEBUSY
|
||||
BEGIN:VEVENT
|
||||
DTSTART:20171032T000000
|
||||
DTEND:20171101T2300
|
||||
DESCRIPTION:Invalid date - parser will skip the event
|
||||
SUMMARY:Invalid date - parser will skip the event
|
||||
DTSTAMP:20170406T063924
|
||||
LOCATION:
|
||||
UID:f81b0b41a2e138ae0903daee0a966e1e
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE;TZID=America/Los_Angeles:19410512
|
||||
DTEND;VALUE=DATE;TZID=America/Los_Angeles:19410512
|
||||
DTSTAMP;TZID=America/Los_Angeles:19410512T195741Z
|
||||
UID:dh3fki5du0opa7cs5n5s87ca02@google.com
|
||||
CREATED:20380101T141901Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:
|
||||
LAST-MODIFIED:20380101T141901Z
|
||||
LOCATION:
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:Before 1970-Test: Konrad Zuse invents the Z3, the "first
|
||||
digital Computer"
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20380201
|
||||
DTEND;VALUE=DATE:20380202
|
||||
DTSTAMP;TZID="GMT Standard Time":20380101T195741Z
|
||||
UID:dh3fki5du0opa7cs5n5s87ca01@google.com
|
||||
CREATED:20380101T141901Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:
|
||||
LAST-MODIFIED:20380101T141901Z
|
||||
LOCATION:
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:Year 2038 problem test
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART:20160105T090000Z
|
||||
DTEND:20160107T173000Z
|
||||
DTSTAMP;TZID="Greenwich Mean Time:Dublin; Edinburgh; Lisbon; London":20110121T195741Z
|
||||
UID:15lc1nvupht8dtfiptenljoiv4@google.com
|
||||
CREATED:20110121T195616Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:This is a short description\nwith a new line. Some "special" 's
|
||||
igns' may be interesting\, too.
|
||||
LAST-MODIFIED:20150409T150000Z
|
||||
LOCATION:Kansas
|
||||
SEQUENCE:2
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:My Holidays
|
||||
TRANSP:TRANSPARENT
|
||||
ORGANIZER;CN="My Name":mailto:my.name@mydomain.com
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ATTENDEE;CN="Page, Larry <l.page@google.com> (l.page@google.com)";ROLE=REQ-PARTICIPANT;RSVP=FALSE:mailto:l.page@google.com
|
||||
ATTENDEE;CN="Brin, Sergey <s.brin@google.com> (s.brin@google.com)";ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:s.brin@google.com
|
||||
DTSTART;VALUE=DATE:20160112
|
||||
DTEND;VALUE=DATE:20160116
|
||||
DTSTAMP;TZID="GMT Standard Time":20110121T195741Z
|
||||
UID:1koigufm110c5hnq6ln57murd4@google.com
|
||||
CREATED:20110119T142901Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:Project xyz Review Meeting Minutes\n
|
||||
Agenda\n1. Review of project version 1.0 requirements.\n2.
|
||||
Definition
|
||||
of project processes.\n3. Review of project schedule.\n
|
||||
Participants: John Smith, Jane Doe, Jim Dandy\n-It was
|
||||
decided that the requirements need to be signed off by
|
||||
product marketing.\n-Project processes were accepted.\n
|
||||
-Project schedule needs to account for scheduled holidays
|
||||
and employee vacation time. Check with HR for specific
|
||||
dates.\n-New schedule will be distributed by Friday.\n-
|
||||
Next weeks meeting is cancelled. No meeting until 3/23.
|
||||
LAST-MODIFIED:20150409T150000Z
|
||||
LOCATION:
|
||||
SEQUENCE:2
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:Test 2
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20160119
|
||||
DTEND;VALUE=DATE:20160120
|
||||
DTSTAMP;TZID="GMT Standard Time":20110121T195741Z
|
||||
UID:rq8jng4jgq0m1lvpj8486fttu0@google.com
|
||||
CREATED:20110119T141904Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:
|
||||
LAST-MODIFIED:20150409T150000Z
|
||||
LOCATION:
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:DST Change
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20160119
|
||||
DTEND;VALUE=DATE:20160120
|
||||
DTSTAMP;TZID="GMT Standard Time":20110121T195741Z
|
||||
UID:dh3fki5du0opa7cs5n5s87ca00@google.com
|
||||
CREATED:20110119T141901Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:
|
||||
LAST-MODIFIED:20150409T150000Z
|
||||
LOCATION:
|
||||
RRULE:FREQ=WEEKLY;COUNT=5;INTERVAL=2;BYDAY=TU
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:Test 1
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Duration Test
|
||||
DTSTART:20160425T150000Z
|
||||
DTSTAMP:20160424T150000Z
|
||||
DURATION:PT1H15M5S
|
||||
RRULE:FREQ=DAILY;COUNT=2
|
||||
UID:calendar-62-e7c39bf02382917349672271dd781c89
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:BYMONTHDAY Test
|
||||
DTSTART:20160922T130000Z
|
||||
DTEND:20160922T150000Z
|
||||
DTSTAMP:20160921T130000Z
|
||||
RRULE:FREQ=MONTHLY;UNTIL=20170923T000000Z;INTERVAL=1;BYMONTHDAY=23
|
||||
UID:33844fe8df15fbfc13c97fc41c0c4b00392c6870@google.com
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID=Europe/Paris:20160921T080000
|
||||
DTEND;TZID=Europe/Paris:20160921T090000
|
||||
RRULE:FREQ=WEEKLY;BYDAY=2WE
|
||||
DTSTAMP:20161117T165045Z
|
||||
UID:884bc8350185031337d9ec49d2e7e101dd5ae5fb@google.com
|
||||
CREATED:20160920T133918Z
|
||||
DESCRIPTION:
|
||||
LAST-MODIFIED:20160920T133923Z
|
||||
LOCATION:
|
||||
SEQUENCE:1
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Paris Timezone Test
|
||||
TRANSP:OPAQUE
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART:20160215T080000Z
|
||||
DTEND:20160515T090000Z
|
||||
DTSTAMP:20161121T113027Z
|
||||
CREATED:20161121T113027Z
|
||||
UID:65323c541a30dd1f180e2bbfa2724995
|
||||
DESCRIPTION:
|
||||
LAST-MODIFIED:20161121T113027Z
|
||||
LOCATION:
|
||||
SEQUENCE:1
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Long event covering the range from example with special chars:
|
||||
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÕÖÒÓÔØÙÚÛÜÝÞß
|
||||
àáâãäåæçèéêėëìíîïðñòóôõöøùúûüūýþÿž
|
||||
‘ ’ ‚ ‛ “ ” „ ‟ – — …
|
||||
TRANSP:OPAQUE
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
CREATED:20160706T161104Z
|
||||
DTEND;TZID="(UTC-05:00) Eastern Time (US & Canada)":20160409T110000
|
||||
DTSTAMP:20160706T150005Z
|
||||
DTSTART;TZID="(UTC-05:00) Eastern Time (US & Canada)":20160409T090000
|
||||
EXDATE;TZID="(UTC-05:00) Eastern Time (US & Canada)":
|
||||
20160528T090000,
|
||||
20160625T090000
|
||||
LAST-MODIFIED:20160707T182011Z
|
||||
EXDATE;TZID="(UTC-05:00) Eastern Time (US & Canada)":20160709T090000
|
||||
EXDATE;TZID="(UTC-05:00) Eastern Time (US & Canada)":20160723T090000
|
||||
LOCATION:Sanctuary
|
||||
PRIORITY:5
|
||||
RRULE:FREQ=WEEKLY;COUNT=15;BYDAY=SA
|
||||
SEQUENCE:0
|
||||
SUMMARY:Microsoft Unicode CLDR EXDATE Test
|
||||
TRANSP:OPAQUE
|
||||
UID:040000008200E00074C5B7101A82E0080000000020F6512D0B48CF0100000000000000001000000058BFB8CBB85D504CB99FBA637BCFD6BF
|
||||
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
|
||||
X-MICROSOFT-CDO-IMPORTANCE:1
|
||||
X-MICROSOFT-DISALLOW-COUNTER:FALSE
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20170118
|
||||
DTEND;VALUE=DATE:20170118
|
||||
DTSTAMP;TZID="GMT Standard Time":20170121T195741Z
|
||||
RRULE:FREQ=MONTHLY;BYSETPOS=3;BYDAY=WE;COUNT=5
|
||||
UID:4dnsuc3nknin15kv25cn7ridss@google.com
|
||||
CREATED:20170119T142059Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:BYDAY Test 1
|
||||
LAST-MODIFIED:20170409T150000Z
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:BYDAY Test 1
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20170301
|
||||
DTEND;VALUE=DATE:20170301
|
||||
DTSTAMP;TZID="GMT Standard Time":20170121T195741Z
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=WE
|
||||
UID:h6f7sdjbpt47v3dkral8lnsgcc@google.com
|
||||
CREATED:20170119T142040Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:BYDAY Test 2
|
||||
LAST-MODIFIED:20170409T150000Z
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:BYDAY Test 2
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20170111
|
||||
DTEND;VALUE=DATE:20170111
|
||||
DTSTAMP;TZID="GMT Standard Time":20170121T195741Z
|
||||
RRULE:FREQ=YEARLY;INTERVAL=2;COUNT=5;BYMONTH=1,2,3
|
||||
UID:f50e8b89a4a3b0070e0b687d03@google.com
|
||||
CREATED:20170119T142040Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:BYMONTH Multiple Test 1
|
||||
LAST-MODIFIED:20170409T150000Z
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:BYMONTH Multiple Test 1
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;VALUE=DATE:20170405
|
||||
DTEND;VALUE=DATE:20170405
|
||||
DTSTAMP;TZID="GMT Standard Time":20170121T195741Z
|
||||
RRULE:FREQ=YEARLY;BYMONTH=4,5,6;BYDAY=WE;COUNT=5
|
||||
UID:675f06aa795665ae50904ebf0e@google.com
|
||||
CREATED:20170119T142040Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:BYMONTH Multiple Test 2
|
||||
LAST-MODIFIED:20170409T150000Z
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:BYMONTH Multiple Test 2
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
BEGIN:VALARM
|
||||
TRIGGER;VALUE=DURATION:-PT30M
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:Buzz buzz
|
||||
END:VALARM
|
||||
DTSTART;VALUE=DATE;TZID=Germany/Berlin:20170123
|
||||
DTEND;VALUE=DATE;TZID=Germany/Berlin:20170123
|
||||
DTSTAMP;TZID="GMT Standard Time":20170121T195741Z
|
||||
RRULE:FREQ=MONTHLY;BYDAY=-2MO;COUNT=5
|
||||
EXDATE;VALUE=DATE:20171020
|
||||
UID:d287b7ec808fcf084983f10837@google.com
|
||||
CREATED:20170119T142040Z
|
||||
DESCRIPTION;LANGUAGE=en-gb:Negative BYDAY
|
||||
LAST-MODIFIED:20170409T150000Z
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY;LANGUAGE=en-gb:Negative BYDAY
|
||||
TRANSP:TRANSPARENT
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID=Australia/Sydney:20170813T190000
|
||||
DTEND;TZID=Australia/Sydney:20170813T213000
|
||||
RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=2SU;COUNT=2
|
||||
DTSTAMP:20170809T114431Z
|
||||
UID:testuid@google.com
|
||||
CREATED:20170802T135539Z
|
||||
DESCRIPTION:
|
||||
LAST-MODIFIED:20170802T135935Z
|
||||
LOCATION:
|
||||
SEQUENCE:1
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Parent Recurrence Event
|
||||
TRANSP:OPAQUE
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID=Australia/Sydney:20170813T190000
|
||||
DTEND;TZID=Australia/Sydney:20170813T213000
|
||||
DTSTAMP:20170809T114431Z
|
||||
UID:testuid@google.com
|
||||
RECURRENCE-ID;TZID=Australia/Sydney:20170813T190000
|
||||
CREATED:20170802T135539Z
|
||||
DESCRIPTION:
|
||||
LAST-MODIFIED:20170809T105604Z
|
||||
LOCATION:Melbourne VIC\, Australia
|
||||
SEQUENCE:1
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Override Parent Recurrence Event
|
||||
TRANSP:OPAQUE
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
|
@ -0,0 +1,175 @@
|
|||
<?php
|
||||
// phpcs:disable Generic.Arrays.DisallowLongArraySyntax.Found
|
||||
|
||||
require_once '../vendor/autoload.php';
|
||||
|
||||
use ICal\ICal;
|
||||
|
||||
try {
|
||||
$ical = new ICal('ICal.ics', array(
|
||||
'defaultSpan' => 2, // Default value
|
||||
'defaultTimeZone' => 'UTC',
|
||||
'defaultWeekStart' => 'MO', // Default value
|
||||
'disableCharacterReplacement' => false, // Default value
|
||||
'skipRecurrence' => false, // Default value
|
||||
'useTimeZoneWithRRules' => false, // Default value
|
||||
));
|
||||
// $ical->initFile('ICal.ics');
|
||||
// $ical->initUrl('https://raw.githubusercontent.com/u01jmg3/ics-parser/master/examples/ICal.ics');
|
||||
} catch (\Exception $e) {
|
||||
die($e);
|
||||
}
|
||||
|
||||
$forceTimeZone = false;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!-- Latest compiled and minified CSS -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||
<title>PHP ICS Parser example</title>
|
||||
<style>body { background-color: #eee } .caption { overflow-x: auto }</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<h3>PHP ICS Parser example</h3>
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<span class="badge"><?php echo $ical->eventCount ?></span>
|
||||
The number of events
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<span class="badge"><?php echo $ical->freeBusyCount ?></span>
|
||||
The number of free/busy time slots
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<span class="badge"><?php echo $ical->todoCount ?></span>
|
||||
The number of todos
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<span class="badge"><?php echo $ical->alarmCount ?></span>
|
||||
The number of alarms
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
$showExample = array(
|
||||
'interval' => true,
|
||||
'range' => true,
|
||||
'all' => true,
|
||||
);
|
||||
?>
|
||||
|
||||
<?php
|
||||
if ($showExample['interval']) {
|
||||
$events = $ical->eventsFromInterval('1 week');
|
||||
|
||||
if ($events) {
|
||||
echo '<h4>Events in the next 7 days:</h4>';
|
||||
}
|
||||
|
||||
$count = 1;
|
||||
?>
|
||||
<div class="row">
|
||||
<?php
|
||||
foreach ($events as $event) : ?>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<div class="caption">
|
||||
<h3><?php
|
||||
$dtstart = $ical->iCalDateToDateTime($event->dtstart_array[3], $forceTimeZone);
|
||||
echo $event->summary . ' (' . $dtstart->format('d-m-Y H:i') . ')';
|
||||
?></h3>
|
||||
<?php echo $event->printData() ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if ($count > 1 && $count % 3 === 0) {
|
||||
echo '</div><div class="row">';
|
||||
}
|
||||
|
||||
$count++;
|
||||
?>
|
||||
<?php
|
||||
endforeach
|
||||
?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
if ($showExample['range']) {
|
||||
$events = $ical->eventsFromRange('2017-03-01 12:00:00', '2017-04-31 17:00:00');
|
||||
|
||||
if ($events) {
|
||||
echo '<h4>Events March through April:</h4>';
|
||||
}
|
||||
|
||||
$count = 1;
|
||||
?>
|
||||
<div class="row">
|
||||
<?php
|
||||
foreach ($events as $event) : ?>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<div class="caption">
|
||||
<h3><?php
|
||||
$dtstart = $ical->iCalDateToDateTime($event->dtstart_array[3], $forceTimeZone);
|
||||
echo $event->summary . ' (' . $dtstart->format('d-m-Y H:i') . ')';
|
||||
?></h3>
|
||||
<?php echo $event->printData() ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if ($count > 1 && $count % 3 === 0) {
|
||||
echo '</div><div class="row">';
|
||||
}
|
||||
|
||||
$count++;
|
||||
?>
|
||||
<?php
|
||||
endforeach
|
||||
?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
if ($showExample['all']) {
|
||||
$events = $ical->sortEventsWithOrder($ical->events());
|
||||
|
||||
if ($events) {
|
||||
echo '<h4>All Events:</h4>';
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<?php
|
||||
$count = 1;
|
||||
foreach ($events as $event) : ?>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<div class="caption">
|
||||
<h3><?php
|
||||
$dtstart = $ical->iCalDateToDateTime($event->dtstart_array[3], $forceTimeZone);
|
||||
echo $event->summary . ' (' . $dtstart->format('d-m-Y H:i') . ')';
|
||||
?></h3>
|
||||
<?php echo $event->printData() ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if ($count > 1 && $count % 3 === 0) {
|
||||
echo '</div><div class="row">';
|
||||
}
|
||||
|
||||
$count++;
|
||||
?>
|
||||
<?php
|
||||
endforeach
|
||||
?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,204 @@
|
|||
<?php
|
||||
|
||||
namespace ICal;
|
||||
|
||||
class Event
|
||||
{
|
||||
// phpcs:disable Generic.Arrays.DisallowLongArraySyntax.Found
|
||||
|
||||
const HTML_TEMPLATE = '<p>%s: %s</p>';
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/summary.html
|
||||
*
|
||||
* @var $summary
|
||||
*/
|
||||
public $summary;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/dtstart.html
|
||||
*
|
||||
* @var $dtstart
|
||||
*/
|
||||
public $dtstart;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/dtend.html
|
||||
*
|
||||
* @var $dtend
|
||||
*/
|
||||
public $dtend;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/duration.html
|
||||
*
|
||||
* @var $duration
|
||||
*/
|
||||
public $duration;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/dtstamp.html
|
||||
*
|
||||
* @var $dtstamp
|
||||
*/
|
||||
public $dtstamp;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/uid.html
|
||||
*
|
||||
* @var $uid
|
||||
*/
|
||||
public $uid;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/created.html
|
||||
*
|
||||
* @var $created
|
||||
*/
|
||||
public $created;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/lastModified.html
|
||||
*
|
||||
* @var $lastmodified
|
||||
*/
|
||||
public $lastmodified;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/description.html
|
||||
*
|
||||
* @var $description
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/location.html
|
||||
*
|
||||
* @var $location
|
||||
*/
|
||||
public $location;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/sequence.html
|
||||
*
|
||||
* @var $sequence
|
||||
*/
|
||||
public $sequence;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/status.html
|
||||
*
|
||||
* @var $status
|
||||
*/
|
||||
public $status;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/transp.html
|
||||
*
|
||||
* @var $transp
|
||||
*/
|
||||
public $transp;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/organizer.html
|
||||
*
|
||||
* @var $organizer
|
||||
*/
|
||||
public $organizer;
|
||||
|
||||
/**
|
||||
* https://www.kanzaki.com/docs/ical/attendee.html
|
||||
*
|
||||
* @var $attendee
|
||||
*/
|
||||
public $attendee;
|
||||
|
||||
/**
|
||||
* Creates the Event object
|
||||
*
|
||||
* @param array $data
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(array $data = array())
|
||||
{
|
||||
if (!empty($data)) {
|
||||
foreach ($data as $key => $value) {
|
||||
$variable = self::snakeCase($key);
|
||||
$this->{$variable} = self::prepareData($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the data for output
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
*/
|
||||
protected function prepareData($value)
|
||||
{
|
||||
if (is_string($value)) {
|
||||
return stripslashes(trim(str_replace('\n', "\n", $value)));
|
||||
} elseif (is_array($value)) {
|
||||
return array_map('self::prepareData', $value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns Event data excluding anything blank
|
||||
* within an HTML template
|
||||
*
|
||||
* @param string $html HTML template to use
|
||||
* @return string
|
||||
*/
|
||||
public function printData($html = self::HTML_TEMPLATE)
|
||||
{
|
||||
$data = array(
|
||||
'SUMMARY' => $this->summary,
|
||||
'DTSTART' => $this->dtstart,
|
||||
'DTEND' => $this->dtend,
|
||||
'DTSTART_TZ' => $this->dtstart_tz,
|
||||
'DTEND_TZ' => $this->dtend_tz,
|
||||
'DURATION' => $this->duration,
|
||||
'DTSTAMP' => $this->dtstamp,
|
||||
'UID' => $this->uid,
|
||||
'CREATED' => $this->created,
|
||||
'LAST-MODIFIED' => $this->lastmodified,
|
||||
'DESCRIPTION' => $this->description,
|
||||
'LOCATION' => $this->location,
|
||||
'SEQUENCE' => $this->sequence,
|
||||
'STATUS' => $this->status,
|
||||
'TRANSP' => $this->transp,
|
||||
'ORGANISER' => $this->organizer,
|
||||
'ATTENDEE(S)' => $this->attendee,
|
||||
);
|
||||
|
||||
$data = array_filter($data); // Remove any blank values
|
||||
$output = '';
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$output .= sprintf($html, $key, $value);
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the given input to snake_case
|
||||
*
|
||||
* @param string $input
|
||||
* @param string $glue
|
||||
* @param string $separator
|
||||
* @return string
|
||||
*/
|
||||
protected static function snakeCase($input, $glue = '_', $separator = '-')
|
||||
{
|
||||
$input = preg_split('/(?<=[a-z])(?=[A-Z])/x', $input);
|
||||
$input = join($input, $glue);
|
||||
$input = str_replace($separator, $glue, $input);
|
||||
|
||||
return strtolower($input);
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,19 @@
|
|||
Copyright (C) Brian Nesbitt
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"name": "nesbot/carbon",
|
||||
"type": "library",
|
||||
"description": "A simple API extension for DateTime.",
|
||||
"keywords": [
|
||||
"date",
|
||||
"time",
|
||||
"DateTime"
|
||||
],
|
||||
"homepage": "http://carbon.nesbot.com",
|
||||
"support": {
|
||||
"issues": "https://github.com/briannesbitt/Carbon/issues",
|
||||
"source": "https://github.com/briannesbitt/Carbon"
|
||||
},
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brian Nesbitt",
|
||||
"email": "brian@nesbot.com",
|
||||
"homepage": "http://nesbot.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/translation": "~2.6 || ~3.0 || ~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
"@phpunit",
|
||||
"@phpcs"
|
||||
],
|
||||
"phpunit": "phpunit --verbose --coverage-clover=coverage.xml",
|
||||
"phpcs": "php-cs-fixer fix -v --diff --dry-run",
|
||||
"phpstan": "phpstan analyse --configuration phpstan.neon --level 3 src tests"
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Carbon\\Laravel\\ServiceProvider"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
# Carbon
|
||||
|
||||
[![Latest Stable Version](https://poser.pugx.org/nesbot/carbon/v/stable.png)](https://packagist.org/packages/nesbot/carbon)
|
||||
[![Total Downloads](https://poser.pugx.org/nesbot/carbon/downloads.png)](https://packagist.org/packages/nesbot/carbon)
|
||||
[![Build Status](https://travis-ci.org/briannesbitt/Carbon.svg?branch=master)](https://travis-ci.org/briannesbitt/Carbon)
|
||||
[![StyleCI](https://styleci.io/repos/5724990/shield?style=flat)](https://styleci.io/repos/5724990)
|
||||
[![codecov.io](https://codecov.io/github/briannesbitt/Carbon/coverage.svg?branch=master)](https://codecov.io/github/briannesbitt/Carbon?branch=master)
|
||||
[![PHP-Eye](https://php-eye.com/badge/nesbot/carbon/tested.svg?style=flat)](https://php-eye.com/package/nesbot/carbon)
|
||||
[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-brightgreen.svg?style=flat)](https://github.com/phpstan/phpstan)
|
||||
|
||||
A simple PHP API extension for DateTime. [http://carbon.nesbot.com](http://carbon.nesbot.com)
|
||||
|
||||
```php
|
||||
use Carbon\Carbon;
|
||||
|
||||
printf("Right now is %s", Carbon::now()->toDateTimeString());
|
||||
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); //implicit __toString()
|
||||
$tomorrow = Carbon::now()->addDay();
|
||||
$lastWeek = Carbon::now()->subWeek();
|
||||
$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4);
|
||||
|
||||
$officialDate = Carbon::now()->toRfc2822String();
|
||||
|
||||
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
|
||||
|
||||
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
|
||||
|
||||
$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
|
||||
|
||||
// Don't really want this to happen so mock now
|
||||
Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1));
|
||||
|
||||
// comparisons are always done in UTC
|
||||
if (Carbon::now()->gte($internetWillBlowUpOn)) {
|
||||
die();
|
||||
}
|
||||
|
||||
// Phew! Return to normal behaviour
|
||||
Carbon::setTestNow();
|
||||
|
||||
if (Carbon::now()->isWeekend()) {
|
||||
echo 'Party!';
|
||||
}
|
||||
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
|
||||
|
||||
// ... but also does 'from now', 'after' and 'before'
|
||||
// rolling up to seconds, minutes, hours, days, months, years
|
||||
|
||||
$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays();
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
### With Composer
|
||||
|
||||
```
|
||||
$ composer require nesbot/carbon
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"require": {
|
||||
"nesbot/carbon": "~1.21"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```php
|
||||
<?php
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
printf("Now: %s", Carbon::now());
|
||||
```
|
||||
|
||||
<a name="install-nocomposer"/>
|
||||
|
||||
### Without Composer
|
||||
|
||||
Why are you not using [composer](http://getcomposer.org/)? Download [Carbon.php](https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Carbon.php) from the repo and save the file into your project path somewhere.
|
||||
|
||||
```php
|
||||
<?php
|
||||
require 'path/to/Carbon.php';
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
printf("Now: %s", Carbon::now());
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
[http://carbon.nesbot.com/docs](http://carbon.nesbot.com/docs)
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Carbon\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class InvalidDateException extends InvalidArgumentException
|
||||
{
|
||||
/**
|
||||
* The invalid field.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $field;
|
||||
|
||||
/**
|
||||
* The invalid value.
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param int $code
|
||||
* @param \Exception|null $previous
|
||||
*/
|
||||
public function __construct($field, $value, $code = 0, Exception $previous = null)
|
||||
{
|
||||
$this->field = $field;
|
||||
$this->value = $value;
|
||||
parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the invalid field.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getField()
|
||||
{
|
||||
return $this->field;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the invalid value.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue()
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count jaar|:count jare',
|
||||
'y' => ':count jaar|:count jare',
|
||||
'month' => ':count maand|:count maande',
|
||||
'm' => ':count maand|:count maande',
|
||||
'week' => ':count week|:count weke',
|
||||
'w' => ':count week|:count weke',
|
||||
'day' => ':count dag|:count dae',
|
||||
'd' => ':count dag|:count dae',
|
||||
'hour' => ':count uur|:count ure',
|
||||
'h' => ':count uur|:count ure',
|
||||
'minute' => ':count minuut|:count minute',
|
||||
'min' => ':count minuut|:count minute',
|
||||
'second' => ':count sekond|:count sekondes',
|
||||
's' => ':count sekond|:count sekondes',
|
||||
'ago' => ':time terug',
|
||||
'from_now' => ':time van nou af',
|
||||
'after' => ':time na',
|
||||
'before' => ':time voor',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '{0}سنة|{1}سنة|{2}سنتين|[3,10]:count سنوات|[11,Inf]:count سنة',
|
||||
'y' => '{0}سنة|{1}سنة|{2}سنتين|[3,10]:count سنوات|[11,Inf]:count سنة',
|
||||
'month' => '{0}شهر|{1} شهر|{2}شهرين|[3,10]:count أشهر|[11,Inf]:count شهر',
|
||||
'm' => '{0}شهر|{1} شهر|{2}شهرين|[3,10]:count أشهر|[11,Inf]:count شهر',
|
||||
'week' => '{0}أسبوع|{1}أسبوع|{2}أسبوعين|[3,10]:count أسابيع|[11,Inf]:count أسبوع',
|
||||
'w' => '{0}أسبوع|{1}أسبوع|{2}أسبوعين|[3,10]:count أسابيع|[11,Inf]:count أسبوع',
|
||||
'day' => '{0}يوم|{1}يوم|{2}يومين|[3,10]:count أيام|[11,Inf] يوم',
|
||||
'd' => '{0}يوم|{1}يوم|{2}يومين|[3,10]:count أيام|[11,Inf] يوم',
|
||||
'hour' => '{0}ساعة|{1}ساعة|{2}ساعتين|[3,10]:count ساعات|[11,Inf]:count ساعة',
|
||||
'h' => '{0}ساعة|{1}ساعة|{2}ساعتين|[3,10]:count ساعات|[11,Inf]:count ساعة',
|
||||
'minute' => '{0}دقيقة|{1}دقيقة|{2}دقيقتين|[3,10]:count دقائق|[11,Inf]:count دقيقة',
|
||||
'min' => '{0}دقيقة|{1}دقيقة|{2}دقيقتين|[3,10]:count دقائق|[11,Inf]:count دقيقة',
|
||||
'second' => '{0}ثانية|{1}ثانية|{2}ثانيتين|[3,10]:count ثوان|[11,Inf]:count ثانية',
|
||||
's' => '{0}ثانية|{1}ثانية|{2}ثانيتين|[3,10]:count ثوان|[11,Inf]:count ثانية',
|
||||
'ago' => 'منذ :time',
|
||||
'from_now' => ':time من الآن',
|
||||
'after' => 'بعد :time',
|
||||
'before' => 'قبل :time',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '[0,1] سَنَة|{2} سَنَتَيْن|[3,10]:count سَنَوَات|[11,Inf]:count سَنَة',
|
||||
'y' => '[0,1] سَنَة|{2} سَنَتَيْن|[3,10]:count سَنَوَات|[11,Inf]:count سَنَة',
|
||||
'month' => '[0,1] شَهْرَ|{2} شَهْرَيْن|[3,10]:count أَشْهُر|[11,Inf]:count شَهْرَ',
|
||||
'm' => '[0,1] شَهْرَ|{2} شَهْرَيْن|[3,10]:count أَشْهُر|[11,Inf]:count شَهْرَ',
|
||||
'week' => '[0,1] أُسْبُوع|{2} أُسْبُوعَيْن|[3,10]:count أَسَابِيع|[11,Inf]:count أُسْبُوع',
|
||||
'w' => '[0,1] أُسْبُوع|{2} أُسْبُوعَيْن|[3,10]:count أَسَابِيع|[11,Inf]:count أُسْبُوع',
|
||||
'day' => '[0,1] يَوْم|{2} يَوْمَيْن|[3,10]:count أَيَّام|[11,Inf] يَوْم',
|
||||
'd' => '[0,1] يَوْم|{2} يَوْمَيْن|[3,10]:count أَيَّام|[11,Inf] يَوْم',
|
||||
'hour' => '[0,1] سَاعَة|{2} سَاعَتَيْن|[3,10]:count سَاعَات|[11,Inf]:count سَاعَة',
|
||||
'h' => '[0,1] سَاعَة|{2} سَاعَتَيْن|[3,10]:count سَاعَات|[11,Inf]:count سَاعَة',
|
||||
'minute' => '[0,1] دَقِيقَة|{2} دَقِيقَتَيْن|[3,10]:count دَقَائِق|[11,Inf]:count دَقِيقَة',
|
||||
'min' => '[0,1] دَقِيقَة|{2} دَقِيقَتَيْن|[3,10]:count دَقَائِق|[11,Inf]:count دَقِيقَة',
|
||||
'second' => '[0,1] ثَانِيَة|{2} ثَانِيَتَيْن|[3,10]:count ثَوَان|[11,Inf]:count ثَانِيَة',
|
||||
's' => '[0,1] ثَانِيَة|{2} ثَانِيَتَيْن|[3,10]:count ثَوَان|[11,Inf]:count ثَانِيَة',
|
||||
'ago' => 'مُنْذُ :time',
|
||||
'from_now' => 'مِنَ الْآن :time',
|
||||
'after' => 'بَعْدَ :time',
|
||||
'before' => 'قَبْلَ :time',
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count il',
|
||||
'y' => ':count il',
|
||||
'month' => ':count ay',
|
||||
'm' => ':count ay',
|
||||
'week' => ':count həftə',
|
||||
'w' => ':count həftə',
|
||||
'day' => ':count gün',
|
||||
'd' => ':count gün',
|
||||
'hour' => ':count saat',
|
||||
'h' => ':count saat',
|
||||
'minute' => ':count dəqiqə',
|
||||
'min' => ':count dəqiqə',
|
||||
'second' => ':count saniyə',
|
||||
's' => ':count saniyə',
|
||||
'ago' => ':time əvvəl',
|
||||
'from_now' => ':time sonra',
|
||||
'after' => ':time sonra',
|
||||
'before' => ':time əvvəl',
|
||||
'diff_now' => 'indi',
|
||||
'diff_yesterday' => 'dünən',
|
||||
'diff_tomorrow' => 'sabah',
|
||||
'diff_before_yesterday' => 'srağagün',
|
||||
'diff_after_tomorrow' => 'birisi gün',
|
||||
'period_recurrences' => ':count dəfədən bir',
|
||||
'period_interval' => 'hər :interval',
|
||||
'period_start_date' => ':date tarixindən başlayaraq',
|
||||
'period_end_date' => ':date tarixinədək',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count година|:count години',
|
||||
'y' => ':count година|:count години',
|
||||
'month' => ':count месец|:count месеца',
|
||||
'm' => ':count месец|:count месеца',
|
||||
'week' => ':count седмица|:count седмици',
|
||||
'w' => ':count седмица|:count седмици',
|
||||
'day' => ':count ден|:count дни',
|
||||
'd' => ':count ден|:count дни',
|
||||
'hour' => ':count час|:count часа',
|
||||
'h' => ':count час|:count часа',
|
||||
'minute' => ':count минута|:count минути',
|
||||
'min' => ':count минута|:count минути',
|
||||
'second' => ':count секунда|:count секунди',
|
||||
's' => ':count секунда|:count секунди',
|
||||
'ago' => 'преди :time',
|
||||
'from_now' => ':time от сега',
|
||||
'after' => 'след :time',
|
||||
'before' => 'преди :time',
|
||||
);
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '১ বছর|:count বছর',
|
||||
'y' => '১ বছর|:count বছর',
|
||||
'month' => '১ মাস|:count মাস',
|
||||
'm' => '১ মাস|:count মাস',
|
||||
'week' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'w' => '১ সপ্তাহ|:count সপ্তাহ',
|
||||
'day' => '১ দিন|:count দিন',
|
||||
'd' => '১ দিন|:count দিন',
|
||||
'hour' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'h' => '১ ঘন্টা|:count ঘন্টা',
|
||||
'minute' => '১ মিনিট|:count মিনিট',
|
||||
'min' => '১ মিনিট|:count মিনিট',
|
||||
'second' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
's' => '১ সেকেন্ড|:count সেকেন্ড',
|
||||
'ago' => ':time পূর্বে',
|
||||
'from_now' => 'এখন থেকে :time',
|
||||
'after' => ':time পরে',
|
||||
'before' => ':time আগে',
|
||||
'diff_now' => 'এখন',
|
||||
'diff_yesterday' => 'গতকাল',
|
||||
'diff_tomorrow' => 'আগামীকাল',
|
||||
'period_recurrences' => ':count বার|:count বার',
|
||||
'period_interval' => 'প্রতি :interval',
|
||||
'period_start_date' => ':date থেকে',
|
||||
'period_end_date' => ':date পর্যন্ত',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count godina|:count godine|:count godina',
|
||||
'y' => ':count godina|:count godine|:count godina',
|
||||
'month' => ':count mjesec|:count mjeseca|:count mjeseci',
|
||||
'm' => ':count mjesec|:count mjeseca|:count mjeseci',
|
||||
'week' => ':count nedjelja|:count nedjelje|:count nedjelja',
|
||||
'w' => ':count nedjelja|:count nedjelje|:count nedjelja',
|
||||
'day' => ':count dan|:count dana|:count dana',
|
||||
'd' => ':count dan|:count dana|:count dana',
|
||||
'hour' => ':count sat|:count sata|:count sati',
|
||||
'h' => ':count sat|:count sata|:count sati',
|
||||
'minute' => ':count minut|:count minuta|:count minuta',
|
||||
'min' => ':count minut|:count minuta|:count minuta',
|
||||
'second' => ':count sekund|:count sekunda|:count sekundi',
|
||||
's' => ':count sekund|:count sekunda|:count sekundi',
|
||||
'ago' => 'prije :time',
|
||||
'from_now' => 'za :time',
|
||||
'after' => 'nakon :time',
|
||||
'before' => ':time ranije',
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count any|:count anys',
|
||||
'y' => ':count any|:count anys',
|
||||
'month' => ':count mes|:count mesos',
|
||||
'm' => ':count mes|:count mesos',
|
||||
'week' => ':count setmana|:count setmanes',
|
||||
'w' => ':count setmana|:count setmanes',
|
||||
'day' => ':count dia|:count dies',
|
||||
'd' => ':count dia|:count dies',
|
||||
'hour' => ':count hora|:count hores',
|
||||
'h' => ':count hora|:count hores',
|
||||
'minute' => ':count minut|:count minuts',
|
||||
'min' => ':count minut|:count minuts',
|
||||
'second' => ':count segon|:count segons',
|
||||
's' => ':count segon|:count segons',
|
||||
'ago' => 'fa :time',
|
||||
'from_now' => 'd\'aquí :time',
|
||||
'after' => ':time després',
|
||||
'before' => ':time abans',
|
||||
'diff_now' => 'ara mateix',
|
||||
'diff_yesterday' => 'ahir',
|
||||
'diff_tomorrow' => 'demà',
|
||||
'diff_before_yesterday' => "abans d'ahir",
|
||||
'diff_after_tomorrow' => 'demà passat',
|
||||
'period_recurrences' => ':count cop|:count cops',
|
||||
'period_interval' => 'cada :interval',
|
||||
'period_start_date' => 'de :date',
|
||||
'period_end_date' => 'fins a :date',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count rok|:count roky|:count let',
|
||||
'y' => ':count rok|:count roky|:count let',
|
||||
'month' => ':count měsíc|:count měsíce|:count měsíců',
|
||||
'm' => ':count měsíc|:count měsíce|:count měsíců',
|
||||
'week' => ':count týden|:count týdny|:count týdnů',
|
||||
'w' => ':count týden|:count týdny|:count týdnů',
|
||||
'day' => ':count den|:count dny|:count dní',
|
||||
'd' => ':count den|:count dny|:count dní',
|
||||
'hour' => ':count hodinu|:count hodiny|:count hodin',
|
||||
'h' => ':count hodinu|:count hodiny|:count hodin',
|
||||
'minute' => ':count minutu|:count minuty|:count minut',
|
||||
'min' => ':count minutu|:count minuty|:count minut',
|
||||
'second' => ':count sekundu|:count sekundy|:count sekund',
|
||||
's' => ':count sekundu|:count sekundy|:count sekund',
|
||||
'ago' => ':time nazpět',
|
||||
'from_now' => 'za :time',
|
||||
'after' => ':time později',
|
||||
'before' => ':time předtím',
|
||||
);
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
return array(
|
||||
'year' => '1 flwyddyn|:count blynedd',
|
||||
'y' => ':countbl',
|
||||
'month' => '1 mis|:count fis',
|
||||
'm' => ':countmi',
|
||||
'week' => ':count wythnos',
|
||||
'w' => ':countw',
|
||||
'day' => ':count diwrnod',
|
||||
'd' => ':countd',
|
||||
'hour' => ':count awr',
|
||||
'h' => ':counth',
|
||||
'minute' => ':count munud',
|
||||
'min' => ':countm',
|
||||
'second' => ':count eiliad',
|
||||
's' => ':counts',
|
||||
'ago' => ':time yn ôl',
|
||||
'from_now' => ':time o hyn ymlaen',
|
||||
'after' => ':time ar ôl',
|
||||
'before' => ':time o\'r blaen',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count år|:count år',
|
||||
'y' => ':count år|:count år',
|
||||
'month' => ':count måned|:count måneder',
|
||||
'm' => ':count måned|:count måneder',
|
||||
'week' => ':count uge|:count uger',
|
||||
'w' => ':count uge|:count uger',
|
||||
'day' => ':count dag|:count dage',
|
||||
'd' => ':count dag|:count dage',
|
||||
'hour' => ':count time|:count timer',
|
||||
'h' => ':count time|:count timer',
|
||||
'minute' => ':count minut|:count minutter',
|
||||
'min' => ':count minut|:count minutter',
|
||||
'second' => ':count sekund|:count sekunder',
|
||||
's' => ':count sekund|:count sekunder',
|
||||
'ago' => ':time siden',
|
||||
'from_now' => 'om :time',
|
||||
'after' => ':time efter',
|
||||
'before' => ':time før',
|
||||
);
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count Jahr|:count Jahre',
|
||||
'y' => ':countJ|:countJ',
|
||||
'month' => ':count Monat|:count Monate',
|
||||
'm' => ':countMon|:countMon',
|
||||
'week' => ':count Woche|:count Wochen',
|
||||
'w' => ':countWo|:countWo',
|
||||
'day' => ':count Tag|:count Tage',
|
||||
'd' => ':countTg|:countTg',
|
||||
'hour' => ':count Stunde|:count Stunden',
|
||||
'h' => ':countStd|:countStd',
|
||||
'minute' => ':count Minute|:count Minuten',
|
||||
'min' => ':countMin|:countMin',
|
||||
'second' => ':count Sekunde|:count Sekunden',
|
||||
's' => ':countSek|:countSek',
|
||||
'ago' => 'vor :time',
|
||||
'from_now' => 'in :time',
|
||||
'after' => ':time später',
|
||||
'before' => ':time zuvor',
|
||||
|
||||
'year_from_now' => ':count Jahr|:count Jahren',
|
||||
'month_from_now' => ':count Monat|:count Monaten',
|
||||
'week_from_now' => ':count Woche|:count Wochen',
|
||||
'day_from_now' => ':count Tag|:count Tagen',
|
||||
'year_ago' => ':count Jahr|:count Jahren',
|
||||
'month_ago' => ':count Monat|:count Monaten',
|
||||
'week_ago' => ':count Woche|:count Wochen',
|
||||
'day_ago' => ':count Tag|:count Tagen',
|
||||
|
||||
'diff_now' => 'Gerade eben',
|
||||
'diff_yesterday' => 'Gestern',
|
||||
'diff_tomorrow' => 'Heute',
|
||||
'diff_before_yesterday' => 'Vorgestern',
|
||||
'diff_after_tomorrow' => 'Übermorgen',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Ahmed Ali <ajaaibu@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',
|
||||
'y' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',
|
||||
'month' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',
|
||||
'm' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',
|
||||
'week' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',
|
||||
'w' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',
|
||||
'day' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',
|
||||
'd' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',
|
||||
'hour' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',
|
||||
'h' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',
|
||||
'minute' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',
|
||||
'min' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',
|
||||
'second' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',
|
||||
's' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',
|
||||
'ago' => ':time ކުރިން',
|
||||
'from_now' => ':time ފަހުން',
|
||||
'after' => ':time ފަހުން',
|
||||
'before' => ':time ކުރި',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count χρόνος|:count χρόνια',
|
||||
'y' => ':count χρόνος|:count χρόνια',
|
||||
'month' => ':count μήνας|:count μήνες',
|
||||
'm' => ':count μήνας|:count μήνες',
|
||||
'week' => ':count εβδομάδα|:count εβδομάδες',
|
||||
'w' => ':count εβδομάδα|:count εβδομάδες',
|
||||
'day' => ':count μέρα|:count μέρες',
|
||||
'd' => ':count μέρα|:count μέρες',
|
||||
'hour' => ':count ώρα|:count ώρες',
|
||||
'h' => ':count ώρα|:count ώρες',
|
||||
'minute' => ':count λεπτό|:count λεπτά',
|
||||
'min' => ':count λεπτό|:count λεπτά',
|
||||
'second' => ':count δευτερόλεπτο|:count δευτερόλεπτα',
|
||||
's' => ':count δευτερόλεπτο|:count δευτερόλεπτα',
|
||||
'ago' => 'πριν από :time',
|
||||
'from_now' => 'σε :time από τώρα',
|
||||
'after' => ':time μετά',
|
||||
'before' => ':time πριν',
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count year|:count years',
|
||||
'y' => ':countyr|:countyrs',
|
||||
'month' => ':count month|:count months',
|
||||
'm' => ':countmo|:countmos',
|
||||
'week' => ':count week|:count weeks',
|
||||
'w' => ':countw|:countw',
|
||||
'day' => ':count day|:count days',
|
||||
'd' => ':countd|:countd',
|
||||
'hour' => ':count hour|:count hours',
|
||||
'h' => ':counth|:counth',
|
||||
'minute' => ':count minute|:count minutes',
|
||||
'min' => ':countm|:countm',
|
||||
'second' => ':count second|:count seconds',
|
||||
's' => ':counts|:counts',
|
||||
'ago' => ':time ago',
|
||||
'from_now' => ':time from now',
|
||||
'after' => ':time after',
|
||||
'before' => ':time before',
|
||||
'diff_now' => 'just now',
|
||||
'diff_yesterday' => 'yesterday',
|
||||
'diff_tomorrow' => 'tomorrow',
|
||||
'diff_before_yesterday' => 'before yesterday',
|
||||
'diff_after_tomorrow' => 'after tomorrow',
|
||||
'period_recurrences' => 'once|:count times',
|
||||
'period_interval' => 'every :interval',
|
||||
'period_start_date' => 'from :date',
|
||||
'period_end_date' => 'to :date',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count jaro|:count jaroj',
|
||||
'y' => ':count jaro|:count jaroj',
|
||||
'month' => ':count monato|:count monatoj',
|
||||
'm' => ':count monato|:count monatoj',
|
||||
'week' => ':count semajno|:count semajnoj',
|
||||
'w' => ':count semajno|:count semajnoj',
|
||||
'day' => ':count tago|:count tagoj',
|
||||
'd' => ':count tago|:count tagoj',
|
||||
'hour' => ':count horo|:count horoj',
|
||||
'h' => ':count horo|:count horoj',
|
||||
'minute' => ':count minuto|:count minutoj',
|
||||
'min' => ':count minuto|:count minutoj',
|
||||
'second' => ':count sekundo|:count sekundoj',
|
||||
's' => ':count sekundo|:count sekundoj',
|
||||
'ago' => 'antaŭ :time',
|
||||
'from_now' => 'je :time',
|
||||
'after' => ':time poste',
|
||||
'before' => ':time antaŭe',
|
||||
);
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count año|:count años',
|
||||
'y' => ':count año|:count años',
|
||||
'month' => ':count mes|:count meses',
|
||||
'm' => ':count mes|:count meses',
|
||||
'week' => ':count semana|:count semanas',
|
||||
'w' => ':count semana|:count semanas',
|
||||
'day' => ':count día|:count días',
|
||||
'd' => ':count día|:count días',
|
||||
'hour' => ':count hora|:count horas',
|
||||
'h' => ':count hora|:count horas',
|
||||
'minute' => ':count minuto|:count minutos',
|
||||
'min' => ':count minuto|:count minutos',
|
||||
'second' => ':count segundo|:count segundos',
|
||||
's' => ':count segundo|:count segundos',
|
||||
'ago' => 'hace :time',
|
||||
'from_now' => 'dentro de :time',
|
||||
'after' => ':time después',
|
||||
'before' => ':time antes',
|
||||
'diff_now' => 'ahora mismo',
|
||||
'diff_yesterday' => 'ayer',
|
||||
'diff_tomorrow' => 'mañana',
|
||||
'diff_before_yesterday' => 'antier',
|
||||
'diff_after_tomorrow' => 'pasado mañana',
|
||||
);
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count aasta|:count aastat',
|
||||
'y' => ':count aasta|:count aastat',
|
||||
'month' => ':count kuu|:count kuud',
|
||||
'm' => ':count kuu|:count kuud',
|
||||
'week' => ':count nädal|:count nädalat',
|
||||
'w' => ':count nädal|:count nädalat',
|
||||
'day' => ':count päev|:count päeva',
|
||||
'd' => ':count päev|:count päeva',
|
||||
'hour' => ':count tund|:count tundi',
|
||||
'h' => ':count tund|:count tundi',
|
||||
'minute' => ':count minut|:count minutit',
|
||||
'min' => ':count minut|:count minutit',
|
||||
'second' => ':count sekund|:count sekundit',
|
||||
's' => ':count sekund|:count sekundit',
|
||||
'ago' => ':time tagasi',
|
||||
'from_now' => ':time pärast',
|
||||
'after' => ':time pärast',
|
||||
'before' => ':time enne',
|
||||
'year_from_now' => ':count aasta',
|
||||
'month_from_now' => ':count kuu',
|
||||
'week_from_now' => ':count nädala',
|
||||
'day_from_now' => ':count päeva',
|
||||
'hour_from_now' => ':count tunni',
|
||||
'minute_from_now' => ':count minuti',
|
||||
'second_from_now' => ':count sekundi',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => 'Urte 1|:count urte',
|
||||
'y' => 'Urte 1|:count urte',
|
||||
'month' => 'Hile 1|:count hile',
|
||||
'm' => 'Hile 1|:count hile',
|
||||
'week' => 'Aste 1|:count aste',
|
||||
'w' => 'Aste 1|:count aste',
|
||||
'day' => 'Egun 1|:count egun',
|
||||
'd' => 'Egun 1|:count egun',
|
||||
'hour' => 'Ordu 1|:count ordu',
|
||||
'h' => 'Ordu 1|:count ordu',
|
||||
'minute' => 'Minutu 1|:count minutu',
|
||||
'min' => 'Minutu 1|:count minutu',
|
||||
'second' => 'Segundu 1|:count segundu',
|
||||
's' => 'Segundu 1|:count segundu',
|
||||
'ago' => 'Orain dela :time',
|
||||
'from_now' => ':time barru',
|
||||
'after' => ':time geroago',
|
||||
'before' => ':time lehenago',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count سال',
|
||||
'y' => ':count سال',
|
||||
'month' => ':count ماه',
|
||||
'm' => ':count ماه',
|
||||
'week' => ':count هفته',
|
||||
'w' => ':count هفته',
|
||||
'day' => ':count روز',
|
||||
'd' => ':count روز',
|
||||
'hour' => ':count ساعت',
|
||||
'h' => ':count ساعت',
|
||||
'minute' => ':count دقیقه',
|
||||
'min' => ':count دقیقه',
|
||||
'second' => ':count ثانیه',
|
||||
's' => ':count ثانیه',
|
||||
'ago' => ':time پیش',
|
||||
'from_now' => ':time بعد',
|
||||
'after' => ':time پس از',
|
||||
'before' => ':time پیش از',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count vuosi|:count vuotta',
|
||||
'y' => ':count vuosi|:count vuotta',
|
||||
'month' => ':count kuukausi|:count kuukautta',
|
||||
'm' => ':count kuukausi|:count kuukautta',
|
||||
'week' => ':count viikko|:count viikkoa',
|
||||
'w' => ':count viikko|:count viikkoa',
|
||||
'day' => ':count päivä|:count päivää',
|
||||
'd' => ':count päivä|:count päivää',
|
||||
'hour' => ':count tunti|:count tuntia',
|
||||
'h' => ':count tunti|:count tuntia',
|
||||
'minute' => ':count minuutti|:count minuuttia',
|
||||
'min' => ':count minuutti|:count minuuttia',
|
||||
'second' => ':count sekunti|:count sekuntia',
|
||||
's' => ':count sekunti|:count sekuntia',
|
||||
'ago' => ':time sitten',
|
||||
'from_now' => ':time tästä hetkestä',
|
||||
'after' => ':time sen jälkeen',
|
||||
'before' => ':time ennen',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count ár|:count ár',
|
||||
'y' => ':count ár|:count ár',
|
||||
'month' => ':count mánaður|:count mánaðir',
|
||||
'm' => ':count mánaður|:count mánaðir',
|
||||
'week' => ':count vika|:count vikur',
|
||||
'w' => ':count vika|:count vikur',
|
||||
'day' => ':count dag|:count dagar',
|
||||
'd' => ':count dag|:count dagar',
|
||||
'hour' => ':count tími|:count tímar',
|
||||
'h' => ':count tími|:count tímar',
|
||||
'minute' => ':count minutt|:count minuttir',
|
||||
'min' => ':count minutt|:count minuttir',
|
||||
'second' => ':count sekund|:count sekundir',
|
||||
's' => ':count sekund|:count sekundir',
|
||||
'ago' => ':time síðan',
|
||||
'from_now' => 'um :time',
|
||||
'after' => ':time aftaná',
|
||||
'before' => ':time áðrenn',
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count an|:count ans',
|
||||
'y' => ':count an|:count ans',
|
||||
'month' => ':count mois',
|
||||
'm' => ':count mois',
|
||||
'week' => ':count semaine|:count semaines',
|
||||
'w' => ':count sem.',
|
||||
'day' => ':count jour|:count jours',
|
||||
'd' => ':count j.',
|
||||
'hour' => ':count heure|:count heures',
|
||||
'h' => ':count h.',
|
||||
'minute' => ':count minute|:count minutes',
|
||||
'min' => ':count min.',
|
||||
'second' => ':count seconde|:count secondes',
|
||||
's' => ':count sec.',
|
||||
'ago' => 'il y a :time',
|
||||
'from_now' => 'dans :time',
|
||||
'after' => ':time après',
|
||||
'before' => ':time avant',
|
||||
'diff_now' => "à l'instant",
|
||||
'diff_yesterday' => 'hier',
|
||||
'diff_tomorrow' => 'demain',
|
||||
'diff_before_yesterday' => 'avant-hier',
|
||||
'diff_after_tomorrow' => 'après-demain',
|
||||
'period_recurrences' => ':count fois',
|
||||
'period_interval' => 'tous les :interval',
|
||||
'period_start_date' => 'de :date',
|
||||
'period_end_date' => 'à :date',
|
||||
);
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count ano|:count anos',
|
||||
'month' => ':count mes|:count meses',
|
||||
'week' => ':count semana|:count semanas',
|
||||
'day' => ':count día|:count días',
|
||||
'hour' => ':count hora|:count horas',
|
||||
'minute' => ':count minuto|:count minutos',
|
||||
'second' => ':count segundo|:count segundos',
|
||||
'ago' => 'fai :time',
|
||||
'from_now' => 'dentro de :time',
|
||||
'after' => ':time despois',
|
||||
'before' => ':time antes',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count વર્ષ|:count વર્ષો',
|
||||
'y' => ':countવર્ષ|:countવર્ષો',
|
||||
'month' => ':count મહિનો|:count મહિના',
|
||||
'm' => ':countમહિનો|:countમહિના',
|
||||
'week' => ':count અઠવાડિયું|:count અઠવાડિયા',
|
||||
'w' => ':countઅઠ.|:countઅઠ.',
|
||||
'day' => ':count દિવસ|:count દિવસો',
|
||||
'd' => ':countદિ.|:countદિ.',
|
||||
'hour' => ':count કલાક|:count કલાકો',
|
||||
'h' => ':countક.|:countક.',
|
||||
'minute' => ':count મિનિટ|:count મિનિટ',
|
||||
'min' => ':countમિ.|:countમિ.',
|
||||
'second' => ':count સેકેન્ડ|:count સેકેન્ડ',
|
||||
's' => ':countસે.|:countસે.',
|
||||
'ago' => ':time પહેલા',
|
||||
'from_now' => ':time અત્યારથી',
|
||||
'after' => ':time પછી',
|
||||
'before' => ':time પહેલા',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => 'שנה|{2}שנתיים|:count שנים',
|
||||
'y' => 'שנה|{2}שנתיים|:count שנים',
|
||||
'month' => 'חודש|{2}חודשיים|:count חודשים',
|
||||
'm' => 'חודש|{2}חודשיים|:count חודשים',
|
||||
'week' => 'שבוע|{2}שבועיים|:count שבועות',
|
||||
'w' => 'שבוע|{2}שבועיים|:count שבועות',
|
||||
'day' => 'יום|{2}יומיים|:count ימים',
|
||||
'd' => 'יום|{2}יומיים|:count ימים',
|
||||
'hour' => 'שעה|{2}שעתיים|:count שעות',
|
||||
'h' => 'שעה|{2}שעתיים|:count שעות',
|
||||
'minute' => 'דקה|{2}דקותיים|:count דקות',
|
||||
'min' => 'דקה|{2}דקותיים|:count דקות',
|
||||
'second' => 'שניה|:count שניות',
|
||||
's' => 'שניה|:count שניות',
|
||||
'ago' => 'לפני :time',
|
||||
'from_now' => 'בעוד :time',
|
||||
'after' => 'אחרי :time',
|
||||
'before' => 'לפני :time',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '1 वर्ष|:count वर्षों',
|
||||
'y' => '1 वर्ष|:count वर्षों',
|
||||
'month' => '1 माह|:count महीने',
|
||||
'm' => '1 माह|:count महीने',
|
||||
'week' => '1 सप्ताह|:count सप्ताह',
|
||||
'w' => '1 सप्ताह|:count सप्ताह',
|
||||
'day' => '1 दिन|:count दिनों',
|
||||
'd' => '1 दिन|:count दिनों',
|
||||
'hour' => '1 घंटा|:count घंटे',
|
||||
'h' => '1 घंटा|:count घंटे',
|
||||
'minute' => '1 मिनट|:count मिनटों',
|
||||
'min' => '1 मिनट|:count मिनटों',
|
||||
'second' => '1 सेकंड|:count सेकंड',
|
||||
's' => '1 सेकंड|:count सेकंड',
|
||||
'ago' => ':time पूर्व',
|
||||
'from_now' => ':time से',
|
||||
'after' => ':time के बाद',
|
||||
'before' => ':time के पहले',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count godinu|:count godine|:count godina',
|
||||
'y' => ':count godinu|:count godine|:count godina',
|
||||
'month' => ':count mjesec|:count mjeseca|:count mjeseci',
|
||||
'm' => ':count mjesec|:count mjeseca|:count mjeseci',
|
||||
'week' => ':count tjedan|:count tjedna|:count tjedana',
|
||||
'w' => ':count tjedan|:count tjedna|:count tjedana',
|
||||
'day' => ':count dan|:count dana|:count dana',
|
||||
'd' => ':count dan|:count dana|:count dana',
|
||||
'hour' => ':count sat|:count sata|:count sati',
|
||||
'h' => ':count sat|:count sata|:count sati',
|
||||
'minute' => ':count minutu|:count minute |:count minuta',
|
||||
'min' => ':count minutu|:count minute |:count minuta',
|
||||
'second' => ':count sekundu|:count sekunde|:count sekundi',
|
||||
's' => ':count sekundu|:count sekunde|:count sekundi',
|
||||
'ago' => 'prije :time',
|
||||
'from_now' => 'za :time',
|
||||
'after' => 'za :time',
|
||||
'before' => 'prije :time',
|
||||
);
|
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count év',
|
||||
'y' => ':count év',
|
||||
'month' => ':count hónap',
|
||||
'm' => ':count hónap',
|
||||
'week' => ':count hét',
|
||||
'w' => ':count hét',
|
||||
'day' => ':count nap',
|
||||
'd' => ':count nap',
|
||||
'hour' => ':count óra',
|
||||
'h' => ':count óra',
|
||||
'minute' => ':count perc',
|
||||
'min' => ':count perc',
|
||||
'second' => ':count másodperc',
|
||||
's' => ':count másodperc',
|
||||
'ago' => ':time',
|
||||
'from_now' => ':time múlva',
|
||||
'after' => ':time később',
|
||||
'before' => ':time korábban',
|
||||
'year_ago' => ':count éve',
|
||||
'month_ago' => ':count hónapja',
|
||||
'week_ago' => ':count hete',
|
||||
'day_ago' => ':count napja',
|
||||
'hour_ago' => ':count órája',
|
||||
'minute_ago' => ':count perce',
|
||||
'second_ago' => ':count másodperce',
|
||||
'year_after' => ':count évvel',
|
||||
'month_after' => ':count hónappal',
|
||||
'week_after' => ':count héttel',
|
||||
'day_after' => ':count nappal',
|
||||
'hour_after' => ':count órával',
|
||||
'minute_after' => ':count perccel',
|
||||
'second_after' => ':count másodperccel',
|
||||
'year_before' => ':count évvel',
|
||||
'month_before' => ':count hónappal',
|
||||
'week_before' => ':count héttel',
|
||||
'day_before' => ':count nappal',
|
||||
'hour_before' => ':count órával',
|
||||
'minute_before' => ':count perccel',
|
||||
'second_before' => ':count másodperccel',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count տարի',
|
||||
'y' => ':countտ',
|
||||
'month' => ':count ամիս',
|
||||
'm' => ':countամ',
|
||||
'week' => ':count շաբաթ',
|
||||
'w' => ':countշ',
|
||||
'day' => ':count օր',
|
||||
'd' => ':countօր',
|
||||
'hour' => ':count ժամ',
|
||||
'h' => ':countժ',
|
||||
'minute' => ':count րոպե',
|
||||
'min' => ':countր',
|
||||
'second' => ':count վարկյան',
|
||||
's' => ':countվրկ',
|
||||
'ago' => ':time առաջ',
|
||||
'from_now' => ':time ներկա պահից',
|
||||
'after' => ':time հետո',
|
||||
'before' => ':time առաջ',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count tahun',
|
||||
'y' => ':count tahun',
|
||||
'month' => ':count bulan',
|
||||
'm' => ':count bulan',
|
||||
'week' => ':count minggu',
|
||||
'w' => ':count minggu',
|
||||
'day' => ':count hari',
|
||||
'd' => ':count hari',
|
||||
'hour' => ':count jam',
|
||||
'h' => ':count jam',
|
||||
'minute' => ':count menit',
|
||||
'min' => ':count menit',
|
||||
'second' => ':count detik',
|
||||
's' => ':count detik',
|
||||
'ago' => ':time yang lalu',
|
||||
'from_now' => ':time dari sekarang',
|
||||
'after' => ':time setelah',
|
||||
'before' => ':time sebelum',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '1 ár|:count ár',
|
||||
'y' => '1 ár|:count ár',
|
||||
'month' => '1 mánuður|:count mánuðir',
|
||||
'm' => '1 mánuður|:count mánuðir',
|
||||
'week' => '1 vika|:count vikur',
|
||||
'w' => '1 vika|:count vikur',
|
||||
'day' => '1 dagur|:count dagar',
|
||||
'd' => '1 dagur|:count dagar',
|
||||
'hour' => '1 klukkutími|:count klukkutímar',
|
||||
'h' => '1 klukkutími|:count klukkutímar',
|
||||
'minute' => '1 mínúta|:count mínútur',
|
||||
'min' => '1 mínúta|:count mínútur',
|
||||
'second' => '1 sekúnda|:count sekúndur',
|
||||
's' => '1 sekúnda|:count sekúndur',
|
||||
'ago' => ':time síðan',
|
||||
'from_now' => ':time síðan',
|
||||
'after' => ':time eftir',
|
||||
'before' => ':time fyrir',
|
||||
);
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count anno|:count anni',
|
||||
'y' => ':count anno|:count anni',
|
||||
'month' => ':count mese|:count mesi',
|
||||
'm' => ':count mese|:count mesi',
|
||||
'week' => ':count settimana|:count settimane',
|
||||
'w' => ':count settimana|:count settimane',
|
||||
'day' => ':count giorno|:count giorni',
|
||||
'd' => ':count giorno|:count giorni',
|
||||
'hour' => ':count ora|:count ore',
|
||||
'h' => ':count ora|:count ore',
|
||||
'minute' => ':count minuto|:count minuti',
|
||||
'min' => ':count minuto|:count minuti',
|
||||
'second' => ':count secondo|:count secondi',
|
||||
's' => ':count secondo|:count secondi',
|
||||
'ago' => ':time fa',
|
||||
'from_now' => 'tra :time',
|
||||
'after' => ':time dopo',
|
||||
'before' => ':time prima',
|
||||
'diff_now' => 'proprio ora',
|
||||
'diff_yesterday' => 'ieri',
|
||||
'diff_tomorrow' => 'domani',
|
||||
'diff_before_yesterday' => "l'altro ieri",
|
||||
'diff_after_tomorrow' => 'dopodomani',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count年',
|
||||
'y' => ':count年',
|
||||
'month' => ':countヶ月',
|
||||
'm' => ':countヶ月',
|
||||
'week' => ':count週間',
|
||||
'w' => ':count週間',
|
||||
'day' => ':count日',
|
||||
'd' => ':count日',
|
||||
'hour' => ':count時間',
|
||||
'h' => ':count時間',
|
||||
'minute' => ':count分',
|
||||
'min' => ':count分',
|
||||
'second' => ':count秒',
|
||||
's' => ':count秒',
|
||||
'ago' => ':time前',
|
||||
'from_now' => '今から:time',
|
||||
'after' => ':time後',
|
||||
'before' => ':time前',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count წლის',
|
||||
'y' => ':count წლის',
|
||||
'month' => ':count თვის',
|
||||
'm' => ':count თვის',
|
||||
'week' => ':count კვირის',
|
||||
'w' => ':count კვირის',
|
||||
'day' => ':count დღის',
|
||||
'd' => ':count დღის',
|
||||
'hour' => ':count საათის',
|
||||
'h' => ':count საათის',
|
||||
'minute' => ':count წუთის',
|
||||
'min' => ':count წუთის',
|
||||
'second' => ':count წამის',
|
||||
's' => ':count წამის',
|
||||
'ago' => ':time უკან',
|
||||
'from_now' => ':time შემდეგ',
|
||||
'after' => ':time შემდეგ',
|
||||
'before' => ':time უკან',
|
||||
);
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
return array(
|
||||
'year' => ':count жыл',
|
||||
'y' => ':count жыл',
|
||||
'month' => ':count ай',
|
||||
'm' => ':count ай',
|
||||
'week' => ':count апта',
|
||||
'w' => ':count апта',
|
||||
'day' => ':count күн',
|
||||
'd' => ':count күн',
|
||||
'hour' => ':count сағат',
|
||||
'h' => ':count сағат',
|
||||
'minute' => ':count минут',
|
||||
'min' => ':count минут',
|
||||
'second' => ':count секунд',
|
||||
's' => ':count секунд',
|
||||
'ago' => ':time бұрын',
|
||||
'from_now' => ':time кейін',
|
||||
'after' => ':time кейін',
|
||||
'before' => ':time бұрын',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count ឆ្នាំ',
|
||||
'y' => ':count ឆ្នាំ',
|
||||
'month' => ':count ខែ',
|
||||
'm' => ':count ខែ',
|
||||
'week' => ':count សប្ដាហ៍',
|
||||
'w' => ':count សប្ដាហ៍',
|
||||
'day' => ':count ថ្ងៃ',
|
||||
'd' => ':count ថ្ងៃ',
|
||||
'hour' => ':count ម៉ោង',
|
||||
'h' => ':count ម៉ោង',
|
||||
'minute' => ':count នាទី',
|
||||
'min' => ':count នាទី',
|
||||
'second' => ':count វិនាទី',
|
||||
's' => ':count វិនាទី',
|
||||
'ago' => ':timeមុន',
|
||||
'from_now' => ':timeពីឥឡូវ',
|
||||
'after' => 'នៅក្រោយ :time',
|
||||
'before' => 'នៅមុន :time',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count 년',
|
||||
'y' => ':count 년',
|
||||
'month' => ':count 개월',
|
||||
'm' => ':count 개월',
|
||||
'week' => ':count 주일',
|
||||
'w' => ':count 주일',
|
||||
'day' => ':count 일',
|
||||
'd' => ':count 일',
|
||||
'hour' => ':count 시간',
|
||||
'h' => ':count 시간',
|
||||
'minute' => ':count 분',
|
||||
'min' => ':count 분',
|
||||
'second' => ':count 초',
|
||||
's' => ':count 초',
|
||||
'ago' => ':time 전',
|
||||
'from_now' => ':time 후',
|
||||
'after' => ':time 이후',
|
||||
'before' => ':time 이전',
|
||||
);
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count metus|:count metus|:count metų',
|
||||
'y' => ':count metus|:count metus|:count metų',
|
||||
'month' => ':count mėnesį|:count mėnesius|:count mėnesių',
|
||||
'm' => ':count mėnesį|:count mėnesius|:count mėnesių',
|
||||
'week' => ':count savaitę|:count savaites|:count savaičių',
|
||||
'w' => ':count savaitę|:count savaites|:count savaičių',
|
||||
'day' => ':count dieną|:count dienas|:count dienų',
|
||||
'd' => ':count dieną|:count dienas|:count dienų',
|
||||
'hour' => ':count valandą|:count valandas|:count valandų',
|
||||
'h' => ':count valandą|:count valandas|:count valandų',
|
||||
'minute' => ':count minutę|:count minutes|:count minučių',
|
||||
'min' => ':count minutę|:count minutes|:count minučių',
|
||||
'second' => ':count sekundę|:count sekundes|:count sekundžių',
|
||||
's' => ':count sekundę|:count sekundes|:count sekundžių',
|
||||
'second_from_now' => ':count sekundės|:count sekundžių|:count sekundžių',
|
||||
'minute_from_now' => ':count minutės|:count minučių|:count minučių',
|
||||
'hour_from_now' => ':count valandos|:count valandų|:count valandų',
|
||||
'day_from_now' => ':count dienos|:count dienų|:count dienų',
|
||||
'week_from_now' => ':count savaitės|:count savaičių|:count savaičių',
|
||||
'month_from_now' => ':count mėnesio|:count mėnesių|:count mėnesių',
|
||||
'year_from_now' => ':count metų',
|
||||
'ago' => 'prieš :time',
|
||||
'from_now' => 'už :time',
|
||||
'after' => 'po :time',
|
||||
'before' => ':time nuo dabar',
|
||||
);
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '0 gadiem|:count gada|:count gadiem',
|
||||
'y' => '0 gadiem|:count gada|:count gadiem',
|
||||
'month' => '0 mēnešiem|:count mēneša|:count mēnešiem',
|
||||
'm' => '0 mēnešiem|:count mēneša|:count mēnešiem',
|
||||
'week' => '0 nedēļām|:count nedēļas|:count nedēļām',
|
||||
'w' => '0 nedēļām|:count nedēļas|:count nedēļām',
|
||||
'day' => '0 dienām|:count dienas|:count dienām',
|
||||
'd' => '0 dienām|:count dienas|:count dienām',
|
||||
'hour' => '0 stundām|:count stundas|:count stundām',
|
||||
'h' => '0 stundām|:count stundas|:count stundām',
|
||||
'minute' => '0 minūtēm|:count minūtes|:count minūtēm',
|
||||
'min' => '0 minūtēm|:count minūtes|:count minūtēm',
|
||||
'second' => '0 sekundēm|:count sekundes|:count sekundēm',
|
||||
's' => '0 sekundēm|:count sekundes|:count sekundēm',
|
||||
'ago' => 'pirms :time',
|
||||
'from_now' => 'pēc :time',
|
||||
'after' => ':time vēlāk',
|
||||
'before' => ':time pirms',
|
||||
|
||||
'year_after' => '0 gadus|:count gadu|:count gadus',
|
||||
'month_after' => '0 mēnešus|:count mēnesi|:count mēnešus',
|
||||
'week_after' => '0 nedēļas|:count nedēļu|:count nedēļas',
|
||||
'day_after' => '0 dienas|:count dienu|:count dienas',
|
||||
'hour_after' => '0 stundas|:count stundu|:count stundas',
|
||||
'minute_after' => '0 minūtes|:count minūti|:count minūtes',
|
||||
'second_after' => '0 sekundes|:count sekundi|:count sekundes',
|
||||
|
||||
'year_before' => '0 gadus|:count gadu|:count gadus',
|
||||
'month_before' => '0 mēnešus|:count mēnesi|:count mēnešus',
|
||||
'week_before' => '0 nedēļas|:count nedēļu|:count nedēļas',
|
||||
'day_before' => '0 dienas|:count dienu|:count dienas',
|
||||
'hour_before' => '0 stundas|:count stundu|:count stundas',
|
||||
'minute_before' => '0 minūtes|:count minūti|:count minūtes',
|
||||
'second_before' => '0 sekundes|:count sekundi|:count sekundes',
|
||||
);
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count година|:count години',
|
||||
'month' => ':count месец|:count месеци',
|
||||
'week' => ':count седмица|:count седмици',
|
||||
'day' => ':count ден|:count дена',
|
||||
'hour' => ':count час|:count часа',
|
||||
'minute' => ':count минута|:count минути',
|
||||
'second' => ':count секунда|:count секунди',
|
||||
'ago' => 'пред :time',
|
||||
'from_now' => ':time од сега',
|
||||
'after' => 'по :time',
|
||||
'before' => 'пред :time',
|
||||
);
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @translator Batmandakh Erdenebileg <batmandakh.e@icloud.com>
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count жил',
|
||||
'y' => ':count жил',
|
||||
'month' => ':count сар',
|
||||
'm' => ':count сар',
|
||||
'week' => ':count долоо хоног',
|
||||
'w' => ':count долоо хоног',
|
||||
'day' => ':count өдөр',
|
||||
'd' => ':count өдөр',
|
||||
'hour' => ':count цаг',
|
||||
'h' => ':countц',
|
||||
'minute' => ':count минут',
|
||||
'min' => ':countм',
|
||||
'second' => ':count секунд',
|
||||
's' => ':countс',
|
||||
|
||||
'ago' => ':timeн өмнө',
|
||||
'year_ago' => ':count жилий',
|
||||
'month_ago' => ':count сары',
|
||||
'day_ago' => ':count хоногий',
|
||||
'hour_ago' => ':count цагий',
|
||||
'minute_ago' => ':count минуты',
|
||||
'second_ago' => ':count секунды',
|
||||
|
||||
'from_now' => 'одоогоос :time',
|
||||
'year_from_now' => ':count жилийн дараа',
|
||||
'month_from_now' => ':count сарын дараа',
|
||||
'day_from_now' => ':count хоногийн дараа',
|
||||
'hour_from_now' => ':count цагийн дараа',
|
||||
'minute_from_now' => ':count минутын дараа',
|
||||
'second_from_now' => ':count секундын дараа',
|
||||
|
||||
// Does it required to make translation for before, after as follows? hmm, I think we've made it with ago and from now keywords already. Anyway, I've included it just in case of undesired action...
|
||||
'after' => ':timeн дараа',
|
||||
'year_after' => ':count жилий',
|
||||
'month_after' => ':count сары',
|
||||
'day_after' => ':count хоногий',
|
||||
'hour_after' => ':count цагий',
|
||||
'minute_after' => ':count минуты',
|
||||
'second_after' => ':count секунды',
|
||||
'before' => ':timeн өмнө',
|
||||
'year_before' => ':count жилий',
|
||||
'month_before' => ':count сары',
|
||||
'day_before' => ':count хоногий',
|
||||
'hour_before' => ':count цагий',
|
||||
'minute_before' => ':count минуты',
|
||||
'second_before' => ':count секунды',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count tahun',
|
||||
'y' => ':count tahun',
|
||||
'month' => ':count bulan',
|
||||
'm' => ':count bulan',
|
||||
'week' => ':count minggu',
|
||||
'w' => ':count minggu',
|
||||
'day' => ':count hari',
|
||||
'd' => ':count hari',
|
||||
'hour' => ':count jam',
|
||||
'h' => ':count jam',
|
||||
'minute' => ':count minit',
|
||||
'min' => ':count minit',
|
||||
'second' => ':count saat',
|
||||
's' => ':count saat',
|
||||
'ago' => ':time yang lalu',
|
||||
'from_now' => ':time dari sekarang',
|
||||
'after' => ':time selepas',
|
||||
'before' => ':time sebelum',
|
||||
);
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count နှစ်|:count နှစ်',
|
||||
'y' => ':count နှစ်|:count နှစ်',
|
||||
'month' => ':count လ|:count လ',
|
||||
'm' => ':count လ|:count လ',
|
||||
'week' => ':count ပတ်|:count ပတ်',
|
||||
'w' => ':count ပတ်|:count ပတ်',
|
||||
'day' => ':count ရက်|:count ရက်',
|
||||
'd' => ':count ရက်|:count ရက်',
|
||||
'hour' => ':count နာရီ|:count နာရီ',
|
||||
'h' => ':count နာရီ|:count နာရီ',
|
||||
'minute' => ':count မိနစ်|:count မိနစ်',
|
||||
'min' => ':count မိနစ်|:count မိနစ်',
|
||||
'second' => ':count စက္ကန့်|:count စက္ကန့်',
|
||||
's' => ':count စက္ကန့်|:count စက္ကန့်',
|
||||
'ago' => 'လွန်ခဲ့သော :time က',
|
||||
'from_now' => 'ယခုမှစ၍နောက် :time အကြာ',
|
||||
'after' => ':time ကြာပြီးနောက်',
|
||||
'before' => ':time မတိုင်ခင်',
|
||||
'diff_now' => 'အခုလေးတင်',
|
||||
'diff_yesterday' => 'မနေ့က',
|
||||
'diff_tomorrow' => 'မနက်ဖြန်',
|
||||
'diff_before_yesterday' => 'တမြန်နေ့က',
|
||||
'diff_after_tomorrow' => 'တဘက်ခါ',
|
||||
'period_recurrences' => ':count ကြိမ်',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count वर्ष',
|
||||
'y' => ':count वर्ष',
|
||||
'month' => ':count महिना',
|
||||
'm' => ':count महिना',
|
||||
'week' => ':count हप्ता',
|
||||
'w' => ':count हप्ता',
|
||||
'day' => ':count दिन',
|
||||
'd' => ':count दिन',
|
||||
'hour' => ':count घण्टा',
|
||||
'h' => ':count घण्टा',
|
||||
'minute' => ':count मिनेट',
|
||||
'min' => ':count मिनेट',
|
||||
'second' => ':count सेकेण्ड',
|
||||
's' => ':count सेकेण्ड',
|
||||
'ago' => ':time पहिले',
|
||||
'from_now' => ':time देखि',
|
||||
'after' => ':time पछि',
|
||||
'before' => ':time अघि',
|
||||
);
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count jaar',
|
||||
'y' => ':count jaar',
|
||||
'month' => ':count maand|:count maanden',
|
||||
'm' => ':count maand|:count maanden',
|
||||
'week' => ':count week|:count weken',
|
||||
'w' => ':count week|:count weken',
|
||||
'day' => ':count dag|:count dagen',
|
||||
'd' => ':count dag|:count dagen',
|
||||
'hour' => ':count uur',
|
||||
'h' => ':count uur',
|
||||
'minute' => ':count minuut|:count minuten',
|
||||
'min' => ':count minuut|:count minuten',
|
||||
'second' => ':count seconde|:count seconden',
|
||||
's' => ':count seconde|:count seconden',
|
||||
'ago' => ':time geleden',
|
||||
'from_now' => 'over :time',
|
||||
'after' => ':time later',
|
||||
'before' => ':time eerder',
|
||||
'diff_now' => 'nu',
|
||||
'diff_yesterday' => 'gisteren',
|
||||
'diff_tomorrow' => 'morgen',
|
||||
'diff_after_tomorrow' => 'overmorgen',
|
||||
'diff_before_yesterday' => 'eergisteren',
|
||||
);
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count år|:count år',
|
||||
'y' => ':count år|:count år',
|
||||
'month' => ':count måned|:count måneder',
|
||||
'm' => ':count måned|:count måneder',
|
||||
'week' => ':count uke|:count uker',
|
||||
'w' => ':count uke|:count uker',
|
||||
'day' => ':count dag|:count dager',
|
||||
'd' => ':count dag|:count dager',
|
||||
'hour' => ':count time|:count timer',
|
||||
'h' => ':count time|:count timer',
|
||||
'minute' => ':count minutt|:count minutter',
|
||||
'min' => ':count minutt|:count minutter',
|
||||
'second' => ':count sekund|:count sekunder',
|
||||
's' => ':count sekund|:count sekunder',
|
||||
'ago' => ':time siden',
|
||||
'from_now' => 'om :time',
|
||||
'after' => ':time etter',
|
||||
'before' => ':time før',
|
||||
'diff_now' => 'akkurat nå',
|
||||
'diff_yesterday' => 'i går',
|
||||
'diff_tomorrow' => 'i morgen',
|
||||
'diff_before_yesterday' => 'i forgårs',
|
||||
'diff_after_tomorrow' => 'i overmorgen',
|
||||
);
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
\Symfony\Component\Translation\PluralizationRules::set(function ($number) {
|
||||
return $number == 1 ? 0 : 1;
|
||||
}, 'oc');
|
||||
|
||||
return array(
|
||||
'year' => ':count an|:count ans',
|
||||
'y' => ':count an|:count ans',
|
||||
'month' => ':count mes|:count meses',
|
||||
'm' => ':count mes|:count meses',
|
||||
'week' => ':count setmana|:count setmanas',
|
||||
'w' => ':count setmana|:count setmanas',
|
||||
'day' => ':count jorn|:count jorns',
|
||||
'd' => ':count jorn|:count jorns',
|
||||
'hour' => ':count ora|:count oras',
|
||||
'h' => ':count ora|:count oras',
|
||||
'minute' => ':count minuta|:count minutas',
|
||||
'min' => ':count minuta|:count minutas',
|
||||
'second' => ':count segonda|:count segondas',
|
||||
's' => ':count segonda|:count segondas',
|
||||
'ago' => 'fa :time',
|
||||
'from_now' => 'dins :time',
|
||||
'after' => ':time aprèp',
|
||||
'before' => ':time abans',
|
||||
'diff_now' => 'ara meteis',
|
||||
'diff_yesterday' => 'ièr',
|
||||
'diff_tomorrow' => 'deman',
|
||||
'diff_before_yesterday' => 'ièr delà',
|
||||
'diff_after_tomorrow' => 'deman passat',
|
||||
'period_recurrences' => ':count còp|:count còps',
|
||||
'period_interval' => 'cada :interval',
|
||||
'period_start_date' => 'de :date',
|
||||
'period_end_date' => 'fins a :date',
|
||||
);
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count rok|:count lata|:count lat',
|
||||
'y' => ':countr|:countl',
|
||||
'month' => ':count miesiąc|:count miesiące|:count miesięcy',
|
||||
'm' => ':countmies',
|
||||
'week' => ':count tydzień|:count tygodnie|:count tygodni',
|
||||
'w' => ':counttyg',
|
||||
'day' => ':count dzień|:count dni|:count dni',
|
||||
'd' => ':countd',
|
||||
'hour' => ':count godzina|:count godziny|:count godzin',
|
||||
'h' => ':countg',
|
||||
'minute' => ':count minuta|:count minuty|:count minut',
|
||||
'min' => ':countm',
|
||||
'second' => ':count sekunda|:count sekundy|:count sekund',
|
||||
's' => ':counts',
|
||||
'ago' => ':time temu',
|
||||
'from_now' => ':time od teraz',
|
||||
'after' => ':time po',
|
||||
'before' => ':time przed',
|
||||
'diff_now' => 'przed chwilą',
|
||||
'diff_yesterday' => 'wczoraj',
|
||||
'diff_tomorrow' => 'jutro',
|
||||
'diff_before_yesterday' => 'przedwczoraj',
|
||||
'diff_after_tomorrow' => 'pojutrze',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count کال|:count کاله',
|
||||
'y' => ':countکال|:countکاله',
|
||||
'month' => ':count مياشت|:count مياشتي',
|
||||
'm' => ':countمياشت|:countمياشتي',
|
||||
'week' => ':count اونۍ|:count اونۍ',
|
||||
'w' => ':countاونۍ|:countاونۍ',
|
||||
'day' => ':count ورځ|:count ورځي',
|
||||
'd' => ':countورځ|:countورځي',
|
||||
'hour' => ':count ساعت|:count ساعته',
|
||||
'h' => ':countساعت|:countساعته',
|
||||
'minute' => ':count دقيقه|:count دقيقې',
|
||||
'min' => ':countدقيقه|:countدقيقې',
|
||||
'second' => ':count ثانيه|:count ثانيې',
|
||||
's' => ':countثانيه|:countثانيې',
|
||||
'ago' => ':time دمخه',
|
||||
'from_now' => ':time له اوس څخه',
|
||||
'after' => ':time وروسته',
|
||||
'before' => ':time دمخه',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count ano|:count anos',
|
||||
'y' => ':count ano|:count anos',
|
||||
'month' => ':count mês|:count meses',
|
||||
'm' => ':count mês|:count meses',
|
||||
'week' => ':count semana|:count semanas',
|
||||
'w' => ':count semana|:count semanas',
|
||||
'day' => ':count dia|:count dias',
|
||||
'd' => ':count dia|:count dias',
|
||||
'hour' => ':count hora|:count horas',
|
||||
'h' => ':count hora|:count horas',
|
||||
'minute' => ':count minuto|:count minutos',
|
||||
'min' => ':count minuto|:count minutos',
|
||||
'second' => ':count segundo|:count segundos',
|
||||
's' => ':count segundo|:count segundos',
|
||||
'ago' => ':time atrás',
|
||||
'from_now' => 'em :time',
|
||||
'after' => ':time depois',
|
||||
'before' => ':time antes',
|
||||
);
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count ano|:count anos',
|
||||
'y' => ':counta|:counta',
|
||||
'month' => ':count mês|:count meses',
|
||||
'm' => ':countm|:countm',
|
||||
'week' => ':count semana|:count semanas',
|
||||
'w' => ':countsem|:countsem',
|
||||
'day' => ':count dia|:count dias',
|
||||
'd' => ':countd|:countd',
|
||||
'hour' => ':count hora|:count horas',
|
||||
'h' => ':counth|:counth',
|
||||
'minute' => ':count minuto|:count minutos',
|
||||
'min' => ':countmin|:countmin',
|
||||
'second' => ':count segundo|:count segundos',
|
||||
's' => ':counts|:counts',
|
||||
'ago' => 'há :time',
|
||||
'from_now' => 'em :time',
|
||||
'after' => 'após :time',
|
||||
'before' => ':time atrás',
|
||||
'diff_now' => 'agora',
|
||||
'diff_yesterday' => 'ontem',
|
||||
'diff_tomorrow' => 'amanhã',
|
||||
'diff_before_yesterday' => 'anteontem',
|
||||
'diff_after_tomorrow' => 'depois de amanhã',
|
||||
'period_recurrences' => 'uma|:count vez',
|
||||
'period_interval' => 'toda :interval',
|
||||
'period_start_date' => 'de :date',
|
||||
'period_end_date' => 'até :date',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => 'un an|:count ani|:count ani',
|
||||
'y' => 'un an|:count ani|:count ani',
|
||||
'month' => 'o lună|:count luni|:count luni',
|
||||
'm' => 'o lună|:count luni|:count luni',
|
||||
'week' => 'o săptămână|:count săptămâni|:count săptămâni',
|
||||
'w' => 'o săptămână|:count săptămâni|:count săptămâni',
|
||||
'day' => 'o zi|:count zile|:count zile',
|
||||
'd' => 'o zi|:count zile|:count zile',
|
||||
'hour' => 'o oră|:count ore|:count ore',
|
||||
'h' => 'o oră|:count ore|:count ore',
|
||||
'minute' => 'un minut|:count minute|:count minute',
|
||||
'min' => 'un minut|:count minute|:count minute',
|
||||
'second' => 'o secundă|:count secunde|:count secunde',
|
||||
's' => 'o secundă|:count secunde|:count secunde',
|
||||
'ago' => 'acum :time',
|
||||
'from_now' => ':time de acum',
|
||||
'after' => 'peste :time',
|
||||
'before' => 'acum :time',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count год|:count года|:count лет',
|
||||
'y' => ':count г|:count г|:count л',
|
||||
'month' => ':count месяц|:count месяца|:count месяцев',
|
||||
'm' => ':count м|:count м|:count м',
|
||||
'week' => ':count неделю|:count недели|:count недель',
|
||||
'w' => ':count н|:count н|:count н',
|
||||
'day' => ':count день|:count дня|:count дней',
|
||||
'd' => ':count д|:count д|:count д',
|
||||
'hour' => ':count час|:count часа|:count часов',
|
||||
'h' => ':count ч|:count ч|:count ч',
|
||||
'minute' => ':count минуту|:count минуты|:count минут',
|
||||
'min' => ':count мин|:count мин|:count мин',
|
||||
'second' => ':count секунду|:count секунды|:count секунд',
|
||||
's' => ':count с|:count с|:count с',
|
||||
'ago' => ':time назад',
|
||||
'from_now' => 'через :time',
|
||||
'after' => ':time после',
|
||||
'before' => ':time до',
|
||||
);
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
\Symfony\Component\Translation\PluralizationRules::set(function ($number) {
|
||||
return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
|
||||
}, 'sh');
|
||||
|
||||
return array(
|
||||
'year' => ':count godina|:count godine|:count godina',
|
||||
'y' => ':count godina|:count godine|:count godina',
|
||||
'month' => ':count mesec|:count meseca|:count meseci',
|
||||
'm' => ':count mesec|:count meseca|:count meseci',
|
||||
'week' => ':count nedelja|:count nedelje|:count nedelja',
|
||||
'w' => ':count nedelja|:count nedelje|:count nedelja',
|
||||
'day' => ':count dan|:count dana|:count dana',
|
||||
'd' => ':count dan|:count dana|:count dana',
|
||||
'hour' => ':count čas|:count časa|:count časova',
|
||||
'h' => ':count čas|:count časa|:count časova',
|
||||
'minute' => ':count minut|:count minuta|:count minuta',
|
||||
'min' => ':count minut|:count minuta|:count minuta',
|
||||
'second' => ':count sekund|:count sekunda|:count sekundi',
|
||||
's' => ':count sekund|:count sekunda|:count sekundi',
|
||||
'ago' => 'pre :time',
|
||||
'from_now' => 'za :time',
|
||||
'after' => 'nakon :time',
|
||||
'before' => ':time raniјe',
|
||||
);
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => 'rok|:count roky|:count rokov',
|
||||
'y' => 'rok|:count roky|:count rokov',
|
||||
'month' => 'mesiac|:count mesiace|:count mesiacov',
|
||||
'm' => 'mesiac|:count mesiace|:count mesiacov',
|
||||
'week' => 'týždeň|:count týždne|:count týždňov',
|
||||
'w' => 'týždeň|:count týždne|:count týždňov',
|
||||
'day' => 'deň|:count dni|:count dní',
|
||||
'd' => 'deň|:count dni|:count dní',
|
||||
'hour' => 'hodinu|:count hodiny|:count hodín',
|
||||
'h' => 'hodinu|:count hodiny|:count hodín',
|
||||
'minute' => 'minútu|:count minúty|:count minút',
|
||||
'min' => 'minútu|:count minúty|:count minút',
|
||||
'second' => 'sekundu|:count sekundy|:count sekúnd',
|
||||
's' => 'sekundu|:count sekundy|:count sekúnd',
|
||||
'ago' => 'pred :time',
|
||||
'from_now' => 'za :time',
|
||||
'after' => 'o :time neskôr',
|
||||
'before' => ':time predtým',
|
||||
'year_ago' => 'rokom|:count rokmi|:count rokmi',
|
||||
'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi',
|
||||
'week_ago' => 'týždňom|:count týždňami|:count týždňami',
|
||||
'day_ago' => 'dňom|:count dňami|:count dňami',
|
||||
'hour_ago' => 'hodinou|:count hodinami|:count hodinami',
|
||||
'minute_ago' => 'minútou|:count minútami|:count minútami',
|
||||
'second_ago' => 'sekundou|:count sekundami|:count sekundami',
|
||||
);
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count leto|:count leti|:count leta|:count let',
|
||||
'y' => ':count leto|:count leti|:count leta|:count let',
|
||||
'month' => ':count mesec|:count meseca|:count mesece|:count mesecev',
|
||||
'm' => ':count mesec|:count meseca|:count mesece|:count mesecev',
|
||||
'week' => ':count teden|:count tedna|:count tedne|:count tednov',
|
||||
'w' => ':count teden|:count tedna|:count tedne|:count tednov',
|
||||
'day' => ':count dan|:count dni|:count dni|:count dni',
|
||||
'd' => ':count dan|:count dni|:count dni|:count dni',
|
||||
'hour' => ':count uro|:count uri|:count ure|:count ur',
|
||||
'h' => ':count uro|:count uri|:count ure|:count ur',
|
||||
'minute' => ':count minuto|:count minuti|:count minute|:count minut',
|
||||
'min' => ':count minuto|:count minuti|:count minute|:count minut',
|
||||
'second' => ':count sekundo|:count sekundi|:count sekunde|:count sekund',
|
||||
's' => ':count sekundo|:count sekundi|:count sekunde|:count sekund',
|
||||
'year_ago' => ':count letom|:count leti|:count leti|:count leti',
|
||||
'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci',
|
||||
'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni',
|
||||
'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',
|
||||
'hour_ago' => ':count uro|:count urama|:count urami|:count urami',
|
||||
'minute_ago' => ':count minuto|:count minutama|:count minutami|:count minutami',
|
||||
'second_ago' => ':count sekundo|:count sekundama|:count sekundami|:count sekundami',
|
||||
'ago' => 'pred :time',
|
||||
'from_now' => 'čez :time',
|
||||
'after' => 'čez :time',
|
||||
'before' => 'pred :time',
|
||||
'diff_now' => 'ravnokar',
|
||||
'diff_yesterday' => 'včeraj',
|
||||
'diff_tomorrow' => 'jutri',
|
||||
'diff_before_yesterday' => 'predvčerajšnjim',
|
||||
'diff_after_tomorrow' => 'pojutrišnjem',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count vit|:count vjet',
|
||||
'y' => ':count vit|:count vjet',
|
||||
'month' => ':count muaj|:count muaj',
|
||||
'm' => ':count muaj|:count muaj',
|
||||
'week' => ':count javë|:count javë',
|
||||
'w' => ':count javë|:count javë',
|
||||
'day' => ':count ditë|:count ditë',
|
||||
'd' => ':count ditë|:count ditë',
|
||||
'hour' => ':count orë|:count orë',
|
||||
'h' => ':count orë|:count orë',
|
||||
'minute' => ':count minutë|:count minuta',
|
||||
'min' => ':count minutë|:count minuta',
|
||||
'second' => ':count sekondë|:count sekonda',
|
||||
's' => ':count sekondë|:count sekonda',
|
||||
'ago' => ':time më parë',
|
||||
'from_now' => ':time nga tani',
|
||||
'after' => ':time pas',
|
||||
'before' => ':time para',
|
||||
);
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count godina|:count godine|:count godina',
|
||||
'y' => ':count godina|:count godine|:count godina',
|
||||
'month' => ':count mesec|:count meseca|:count meseci',
|
||||
'm' => ':count mesec|:count meseca|:count meseci',
|
||||
'week' => ':count nedelja|:count nedelje|:count nedelja',
|
||||
'w' => ':count nedelja|:count nedelje|:count nedelja',
|
||||
'day' => ':count dan|:count dana|:count dana',
|
||||
'd' => ':count dan|:count dana|:count dana',
|
||||
'hour' => ':count sat|:count sata|:count sati',
|
||||
'h' => ':count sat|:count sata|:count sati',
|
||||
'minute' => ':count minut|:count minuta |:count minuta',
|
||||
'min' => ':count minut|:count minuta |:count minuta',
|
||||
'second' => ':count sekund|:count sekunde|:count sekunde',
|
||||
's' => ':count sekund|:count sekunde|:count sekunde',
|
||||
'ago' => 'pre :time',
|
||||
'from_now' => ':time od sada',
|
||||
'after' => 'nakon :time',
|
||||
'before' => 'pre :time',
|
||||
|
||||
'year_from_now' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina',
|
||||
'year_ago' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina',
|
||||
|
||||
'week_from_now' => '{1} :count nedelju|{2,3,4} :count nedelje|[5,Inf[ :count nedelja',
|
||||
'week_ago' => '{1} :count nedelju|{2,3,4} :count nedelje|[5,Inf[ :count nedelja',
|
||||
);
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Nikola Zeravcic <office@bytenet.rs>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[ :count година',
|
||||
'y' => ':count г.',
|
||||
'month' => '{1} :count месец|{2,3,4}:count месеца|[5,Inf[ :count месеци',
|
||||
'm' => ':count м.',
|
||||
'week' => '{1} :count недеља|{2,3,4}:count недеље|[5,Inf[ :count недеља',
|
||||
'w' => ':count нед.',
|
||||
'day' => '{1,21,31} :count дан|[2,Inf[ :count дана',
|
||||
'd' => ':count д.',
|
||||
'hour' => '{1,21} :count сат|{2,3,4,22,23,24}:count сата|[5,Inf[ :count сати',
|
||||
'h' => ':count ч.',
|
||||
'minute' => '{1,21,31,41,51} :count минут|[2,Inf[ :count минута',
|
||||
'min' => ':count мин.',
|
||||
'second' => '{1,21,31,41,51} :count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[5,Inf[:count секунди',
|
||||
's' => ':count сек.',
|
||||
'ago' => 'пре :time',
|
||||
'from_now' => 'за :time',
|
||||
'after' => ':time након',
|
||||
'before' => ':time пре',
|
||||
|
||||
'year_from_now' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година',
|
||||
'year_ago' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година',
|
||||
|
||||
'week_from_now' => '{1} :count недељу|{2,3,4} :count недеље|[5,Inf[ :count недеља',
|
||||
'week_ago' => '{1} :count недељу|{2,3,4} :count недеље|[5,Inf[ :count недеља',
|
||||
|
||||
'diff_now' => 'управо сада',
|
||||
'diff_yesterday' => 'јуче',
|
||||
'diff_tomorrow' => 'сутра',
|
||||
'diff_before_yesterday' => 'прекјуче',
|
||||
'diff_after_tomorrow' => 'прекосутра',
|
||||
);
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[ :count година',
|
||||
'y' => ':count г.',
|
||||
'month' => '{1} :count мјесец|{2,3,4}:count мјесеца|[5,Inf[ :count мјесеци',
|
||||
'm' => ':count мј.',
|
||||
'week' => '{1} :count недјеља|{2,3,4}:count недјеље|[5,Inf[ :count недјеља',
|
||||
'w' => ':count нед.',
|
||||
'day' => '{1,21,31} :count дан|[2,Inf[ :count дана',
|
||||
'd' => ':count д.',
|
||||
'hour' => '{1,21} :count сат|{2,3,4,22,23,24}:count сата|[5,Inf[ :count сати',
|
||||
'h' => ':count ч.',
|
||||
'minute' => '{1,21,31,41,51} :count минут|[2,Inf[ :count минута',
|
||||
'min' => ':count мин.',
|
||||
'second' => '{1,21,31,41,51} :count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[5,Inf[:count секунди',
|
||||
's' => ':count сек.',
|
||||
'ago' => 'прије :time',
|
||||
'from_now' => 'за :time',
|
||||
'after' => ':time након',
|
||||
'before' => ':time прије',
|
||||
|
||||
'year_from_now' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година',
|
||||
'year_ago' => '{1,21,31,41,51} :count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count године|[5,Inf[ :count година',
|
||||
|
||||
'week_from_now' => '{1} :count недјељу|{2,3,4} :count недјеље|[5,Inf[ :count недјеља',
|
||||
'week_ago' => '{1} :count недјељу|{2,3,4} :count недјеље|[5,Inf[ :count недјеља',
|
||||
|
||||
'diff_now' => 'управо сада',
|
||||
'diff_yesterday' => 'јуче',
|
||||
'diff_tomorrow' => 'сутра',
|
||||
'diff_before_yesterday' => 'прекјуче',
|
||||
'diff_after_tomorrow' => 'прекосјутра',
|
||||
);
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count godine|[0,Inf[ :count godina',
|
||||
'y' => ':count g.',
|
||||
'month' => '{1} :count mjesec|{2,3,4}:count mjeseca|[5,Inf[ :count mjeseci',
|
||||
'm' => ':count mj.',
|
||||
'week' => '{1} :count nedjelja|{2,3,4}:count nedjelje|[5,Inf[ :count nedjelja',
|
||||
'w' => ':count ned.',
|
||||
'day' => '{1,21,31} :count dan|[2,Inf[ :count dana',
|
||||
'd' => ':count d.',
|
||||
'hour' => '{1,21} :count sat|{2,3,4,22,23,24}:count sata|[5,Inf[ :count sati',
|
||||
'h' => ':count č.',
|
||||
'minute' => '{1,21,31,41,51} :count minut|[2,Inf[ :count minuta',
|
||||
'min' => ':count min.',
|
||||
'second' => '{1,21,31,41,51} :count sekund|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count sekunde|[5,Inf[:count sekundi',
|
||||
's' => ':count sek.',
|
||||
'ago' => 'prije :time',
|
||||
'from_now' => 'za :time',
|
||||
'after' => ':time nakon',
|
||||
'before' => ':time prije',
|
||||
|
||||
'year_from_now' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina',
|
||||
'year_ago' => '{1,21,31,41,51} :count godinu|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54} :count godine|[5,Inf[ :count godina',
|
||||
|
||||
'week_from_now' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja',
|
||||
'week_ago' => '{1} :count nedjelju|{2,3,4} :count nedjelje|[5,Inf[ :count nedjelja',
|
||||
|
||||
'diff_now' => 'upravo sada',
|
||||
'diff_yesterday' => 'juče',
|
||||
'diff_tomorrow' => 'sutra',
|
||||
'diff_before_yesterday' => 'prekjuče',
|
||||
'diff_after_tomorrow' => 'preksutra',
|
||||
);
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return require __DIR__.'/sr_Latn_ME.php';
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => ':count år|:count år',
|
||||
'y' => ':count år|:count år',
|
||||
'month' => ':count månad|:count månader',
|
||||
'm' => ':count månad|:count månader',
|
||||
'week' => ':count vecka|:count veckor',
|
||||
'w' => ':count vecka|:count veckor',
|
||||
'day' => ':count dag|:count dagar',
|
||||
'd' => ':count dag|:count dagar',
|
||||
'hour' => ':count timme|:count timmar',
|
||||
'h' => ':count timme|:count timmar',
|
||||
'minute' => ':count minut|:count minuter',
|
||||
'min' => ':count minut|:count minuter',
|
||||
'second' => ':count sekund|:count sekunder',
|
||||
's' => ':count sekund|:count sekunder',
|
||||
'ago' => ':time sedan',
|
||||
'from_now' => 'om :time',
|
||||
'after' => ':time efter',
|
||||
'before' => ':time före',
|
||||
);
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'year' => 'mwaka 1|miaka :count',
|
||||
'y' => 'mwaka 1|miaka :count',
|
||||
'month' => 'mwezi 1|miezi :count',
|
||||
'm' => 'mwezi 1|miezi :count',
|
||||
'week' => 'wiki 1|wiki :count',
|
||||
'w' => 'wiki 1|wiki :count',
|
||||
'day' => 'siku 1|siku :count',
|
||||
'd' => 'siku 1|siku :count',
|
||||
'hour' => 'saa 1|masaa :count',
|
||||
'h' => 'saa 1|masaa :count',
|
||||
'minute' => 'dakika 1|dakika :count',
|
||||
'min' => 'dakika 1|dakika :count',
|
||||
'second' => 'sekunde 1|sekunde :count',
|
||||
's' => 'sekunde 1|sekunde :count',
|
||||
'ago' => ':time ziliyopita',
|
||||
'from_now' => ':time kwanzia sasa',
|
||||
'after' => ':time baada',
|
||||
'before' => ':time kabla',
|
||||
);
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue