diff --git a/boot.php b/boot.php index 390560592..8d99c300e 100755 --- a/boot.php +++ b/boot.php @@ -83,6 +83,7 @@ $DIRECTORY_FALLBACK_SERVERS = array( 'https://hubzilla.site', 'https://red.zottel.red', 'https://gravizot.de', + 'https://blablanet.com', 'https://my.federated.social' ); @@ -422,6 +423,7 @@ define ( 'TERM_SAVEDSEARCH', 6 ); define ( 'TERM_THING', 7 ); define ( 'TERM_BOOKMARK', 8 ); define ( 'TERM_HIERARCHY', 9 ); +define ( 'TERM_COMMUNITYTAG', 10 ); define ( 'TERM_OBJ_POST', 1 ); define ( 'TERM_OBJ_PHOTO', 2 ); diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb index dd7f4cda1..603cf238f 100644 --- a/doc/faq_developers.bb +++ b/doc/faq_developers.bb @@ -285,7 +285,7 @@ An example (large) &$a object showing some of its many members and structures-- "xchan_photo_l": "http://hubzilla/photo/profile/l/2" }, "page": { - "content": "<div id="help-content" class="generic-content-wrapper">\n\t<div class="section-title-wrapper">\n\t<h2>Hubzilla Documentation</h2>\n\t</div>\n\t<div class="section-content-wrapper">\n\t<h2>Documentation for Developers</h2><br /><br /><h3>Technical Documentation</h3><br /><a class="zrl" href="http://hubzilla/help/Zot---A-High-Level-Overview" target="_newwin" >A high level overview of Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot" target="_newwin" >An introduction to Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot_structures" target="_newwin" >Zot Stuctures</a><br /><a class="zrl" href="http://hubzilla/help/comanche" target="_newwin" >Comanche Page Descriptions</a><br /><a class="zrl" href="http://hubzilla/help/Creating-Templates" target="_newwin" >Creating Comanche Templates</a><br /><a class="zrl" href="http://hubzilla/help/Widgets" target="_newwin" >Widgets</a><br /><a class="zrl" href="http://hubzilla/help/plugins" target="_newwin" >Plugins</a><br /><a class="zrl" href="http://hubzilla/help/hooks" target="_newwin" >Hooks</a><br /><a class="zrl" href="http://hubzilla/help/doco" target="_newwin" >Contributing Documentation</a><br /><a class="zrl" href="http://hubzilla/help/DerivedTheme1" target="_newwin" >Creating Derivative Themes</a><br /><a class="zrl" href="http://hubzilla/help/schema_development" target="_newwin" >Schemas</a><br /><a class="zrl" href="http://hubzilla/help/Translations" target="_newwin" >Translations</a><br /><a class="zrl" href="http://hubzilla/help/developers" target="_newwin" >Developers</a><br /><a class="zrl" href="http://hubzilla/help/intro_for_developers" target="_newwin" >Intro for Developers</a><br /><a class="zrl" href="http://hubzilla/help/database" target="_newwin" >Database schema documentation</a><br /><a class="zrl" href="http://hubzilla/help/api_functions" target="_newwin" >API functions</a><br /><a class="zrl" href="http://hubzilla/help/api_posting" target="_newwin" >Posting to the red# using the API</a><br /><a class="zrl" href="http://hubzilla/help/developer_function_primer" target="_newwin" >Red Functions 101</a><br /><a class="zrl" href="http://hubzilla/doc/html/" target="_newwin" >Code Reference (Doxygen generated - sets cookies)</a><br /><a class="zrl" href="http://hubzilla/help/to_do_doco" target="_newwin" >To-Do list for the Red Documentation Project</a><br /><a class="zrl" href="http://hubzilla/help/to_do_code" target="_newwin" >To-Do list for Developers</a><br /><a class="zrl" href="http://hubzilla/help/roadmap" target="_newwin" >Version 3 roadmap</a><br /><a class="zrl" href="http://hubzilla/help/git_for_non_developers" target="_newwin" >Git for Non-Developers</a><br /><a class="zrl" href="http://hubzilla/help/dev_beginner" target="_newwin" >Step-for-step manual for beginning developers</a><br /><br /><h3>Frequently Asked Questions For Developers</h3><br /><a class="zrl" href="http://hubzilla/help/faq_developers" target="_newwin" >FAQ For Developers</a><br /><br /><h3>External Resources</h3><br /><br /><a href="https://zothub.com/channel/one" target="_newwin" >Development Channel</a><br /><a href="https://federated.social/channel/postgres" target="_newwin" >Postgres-specific Hubzilla Admin Support Channel</a><br />\n\t</div>\n</div>\n<script>var homebase = "http://hubzilla/channel/testes";</script>", + "content": "<div id="help-content" class="generic-content-wrapper">\n\t<div class="section-title-wrapper">\n\t<h2>Hubzilla Documentation</h2>\n\t</div>\n\t<div class="section-content-wrapper">\n\t<h2>Documentation for Developers</h2><br /><br /><h3>Technical Documentation</h3><br /><a class="zrl" href="http://hubzilla/help/Zot---A-High-Level-Overview" target="_blank" >A high level overview of Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot" target="_blank" >An introduction to Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot_structures" target="_blank" >Zot Stuctures</a><br /><a class="zrl" href="http://hubzilla/help/comanche" target="_blank" >Comanche Page Descriptions</a><br /><a class="zrl" href="http://hubzilla/help/Creating-Templates" target="_blank" >Creating Comanche Templates</a><br /><a class="zrl" href="http://hubzilla/help/Widgets" target="_blank" >Widgets</a><br /><a class="zrl" href="http://hubzilla/help/plugins" target="_blank" >Plugins</a><br /><a class="zrl" href="http://hubzilla/help/hooks" target="_blank" >Hooks</a><br /><a class="zrl" href="http://hubzilla/help/doco" target="_blank" >Contributing Documentation</a><br /><a class="zrl" href="http://hubzilla/help/DerivedTheme1" target="_blank" >Creating Derivative Themes</a><br /><a class="zrl" href="http://hubzilla/help/schema_development" target="_blank" >Schemas</a><br /><a class="zrl" href="http://hubzilla/help/Translations" target="_blank" >Translations</a><br /><a class="zrl" href="http://hubzilla/help/developers" target="_blank" >Developers</a><br /><a class="zrl" href="http://hubzilla/help/intro_for_developers" target="_blank" >Intro for Developers</a><br /><a class="zrl" href="http://hubzilla/help/database" target="_blank" >Database schema documentation</a><br /><a class="zrl" href="http://hubzilla/help/api_functions" target="_blank" >API functions</a><br /><a class="zrl" href="http://hubzilla/help/api_posting" target="_blank" >Posting to the red# using the API</a><br /><a class="zrl" href="http://hubzilla/help/developer_function_primer" target="_blank" >Red Functions 101</a><br /><a class="zrl" href="http://hubzilla/doc/html/" target="_blank" >Code Reference (Doxygen generated - sets cookies)</a><br /><a class="zrl" href="http://hubzilla/help/to_do_doco" target="_blank" >To-Do list for the Red Documentation Project</a><br /><a class="zrl" href="http://hubzilla/help/to_do_code" target="_blank" >To-Do list for Developers</a><br /><a class="zrl" href="http://hubzilla/help/roadmap" target="_blank" >Version 3 roadmap</a><br /><a class="zrl" href="http://hubzilla/help/git_for_non_developers" target="_blank" >Git for Non-Developers</a><br /><a class="zrl" href="http://hubzilla/help/dev_beginner" target="_blank" >Step-for-step manual for beginning developers</a><br /><br /><h3>Frequently Asked Questions For Developers</h3><br /><a class="zrl" href="http://hubzilla/help/faq_developers" target="_blank" >FAQ For Developers</a><br /><br /><h3>External Resources</h3><br /><br /><a href="https://zothub.com/channel/one" target="_blank" >Development Channel</a><br /><a href="https://federated.social/channel/postgres" target="_blank" >Postgres-specific Hubzilla Admin Support Channel</a><br />\n\t</div>\n</div>\n<script>var homebase = "http://hubzilla/channel/testes";</script>", "page_title": "help", "title": "Help: Develop", "nav": "\t<div class="container-fluid">\n\t\t<div class="navbar-header">\n\t\t\t<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t</button>\n\t\t\t<button id="expand-tabs" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#tabs-collapse-1">\n\t\t\t\t<i class="icon-circle-arrow-down" id="expand-tabs-icon"></i>\n\t\t\t</button>\n\t\t\t<button id="expand-aside" type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#region_1">\n\t\t\t\t<i class="icon-circle-arrow-right" id="expand-aside-icon"></i>\n\t\t\t</button>\n\t\t\t\t\t\t\t<img class="dropdown-toggle fakelink" data-toggle="dropdown" id="avatar" src="http://hubzilla/photo/profile/m/2" alt="testes@hubzilla"><span class="caret" id="usermenu-caret"></span>\n\t\t\t\t\t\t\t\t\t<ul class="dropdown-menu" role="menu" aria-labelledby="avatar">\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="channel/testes" title="Your posts and conversations" role="menuitem" id="channel_nav_btn">Home</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="profile/testes" title="Your profile page" role="menuitem" id="profile_nav_btn">View Profile</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="profiles/2" title="Edit your profile" role="menuitem" id="profiles_nav_btn">Edit Profile</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="photos/testes" title="Your photos" role="menuitem" id="photos_nav_btn">Photos</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="cloud/testes" title="Your files" role="menuitem" id="cloud_nav_btn">Files</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="chat/testes/new" title="Your chatrooms" role="menuitem" id="chat_nav_btn">Chat</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="settings" title="Account/Channel Settings" role="menuitem" id="settings_nav_btn">Settings</a></li>\t\t\t\t\t\t<li role="presentation"><a href="manage" title="Manage Your Channels" role="menuitem" id="manage_nav_btn">Channel Manager</a></li>\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t<li role="presentation"><a href="admin/" title="Site Setup and Configuration" role="menuitem" id="admin_nav_btn">Admin</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t<li role="presentation"><a href="logout" title="End this session" role="menuitem" id="logout_nav_btn">Logout</a></li>\n\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t<div class="collapse navbar-collapse" id="navbar-collapse-1">\n\t\t\t<ul class="nav navbar-nav navbar-left">\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a href="network" title="Your grid" id="network_nav_btn"><i class="icon-th"></i></a>\n\t\t\t\t\t<span class="net-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-network-menu"></span>\n\t\t\t\t\t<ul id="nav-network-menu" role="menu" class="dropdown-menu" rel="network">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">Mark all grid notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a href="network" title="Your grid" ><i class="icon-th"></i></a>\n\t\t\t\t\t<span class="net-update badge" rel="#nav-network-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="channel/testes" title="Channel home" id="home_nav_btn"><i class="icon-home"></i></a>\n\t\t\t\t\t<span class="home-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-home-menu"></span>\n\t\t\t\t\t<ul id="nav-home-menu" class="dropdown-menu" rel="home">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">Mark all channel notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="channel/testes" title="Channel home" ><i class="icon-home"></i></a>\n\t\t\t\t\t<span class="home-update badge" rel="#nav-home-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="mail/combined" title="Private mail" id="mail_nav_btn"><i class="icon-envelope"></i></a>\n\t\t\t\t\t<span class="mail-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-messages-menu"></span>\n\t\t\t\t\t<ul id="nav-messages-menu" class="dropdown-menu" rel="messages">\n\t\t\t\t\t\t<li id="nav-messages-see-all"><a href="mail/combined">See all private messages</a></li>\n\t\t\t\t\t\t<li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">Mark all private messages seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="mail/combined" title="Private mail" ><i class="icon-envelope"></i></a>\n\t\t\t\t\t<span class="mail-update badge" rel="#nav-messages-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="events" title="Event Calendar" id='events_nav_btn'><i class="icon-calendar"></i></a>\n\t\t\t\t\t<span class="all_events-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-all_events-menu"></span>\n\t\t\t\t\t<ul id="nav-all_events-menu" class="dropdown-menu" rel="all_events">\n\t\t\t\t\t\t<li id="nav-all_events-see-all"><a href="events">See all events</a></li>\n\t\t\t\t\t\t<li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">Mark all events seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="events" title="Event Calendar" ><i class="icon-calendar"></i></a>\n\t\t\t\t\t<span class="all_events-update badge" rel="#nav-all_events-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="connections/ifpending" title="Connections" id="connections_nav_btn"><i class="icon-user"></i></a>\n\t\t\t\t\t<span class="intro-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-intros-menu"></span>\n\t\t\t\t\t<ul id="nav-intros-menu" class="dropdown-menu" rel="intros">\n\t\t\t\t\t\t<li id="nav-intros-see-all"><a href=""></a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="connections/ifpending" title="Connections" ><i class="icon-user"></i></a>\n\t\t\t\t\t<span class="intro-update badge" rel="#nav-intros-menu"></span>\n\t\t\t\t</li>\n\t\t\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a href="notifications/system" title="Notices" id="notifications_nav_btn"><i class="icon-exclamation"></i></a>\n\t\t\t\t\t<span class="notify-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-notify-menu"></span>\n\t\t\t\t\t<ul id="nav-notify-menu" class="dropdown-menu" rel="notify">\n\t\t\t\t\t\t<li id="nav-notify-see-all"><a href="notifications/system">See all notifications</a></li>\n\t\t\t\t\t\t<li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">Mark all system notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a href="notifications/system" title="Notices"><i class="icon-exclamation"></i></a>\n\t\t\t\t\t<span class="notify-update badge" rel="#nav-notify-menu"></span>\n\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t<ul class="nav navbar-nav navbar-right">\n\t\t\t\t<li class="hidden-xs">\n\t\t\t\t\t<form method="get" action="search" role="search">\n\t\t\t\t\t\t<div id="nav-search-spinner"></div><input class="icon-search" id="nav-search-text" type="text" value="" placeholder="&#xf002; @name, #tag, ?doc, content" name="search" title="Search site @name, #tag, ?docs, content" onclick="this.submit();"/>\n\t\t\t\t\t</form>\n\t\t\t\t</li>\n\t\t\t\t<li class="visible-xs">\n\t\t\t\t\t<a href="/search" title="Search site @name, #tag, ?docs, content"><i class="icon-search"></i></a>\n\t\t\t\t</li>\n\n\t\t\t\t\t\t\t\t\t\t<li class="">\n\t\t\t\t\t<a class="" href="directory" title="Channel Directory" id="directory_nav_btn"><i class="icon-sitemap"></i></a>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class="">\n\t\t\t\t\t<a class="" href="apps" title="Applications, utilities, links, games" id="apps_nav_btn"><i class="icon-cogs"></i></a>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class="active">\n\t\t\t\t\t<a class="" target="hubzilla-help" href="http://hubzilla/help?f=&cmd=help/develop" title="Help and documentation" id="help_nav_btn"><i class="icon-question"></i></a>\n\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t</div>\n\t</div>\n", diff --git a/doc/nl/TermsOfService.md b/doc/nl/TermsOfService.md new file mode 100644 index 000000000..c4cc4648c --- /dev/null +++ b/doc/nl/TermsOfService.md @@ -0,0 +1,5 @@ +Gebruikersvoorwaarden +================ + +#include doc/SiteTOS.md; + diff --git a/doc/roadmapv4.bb b/doc/roadmapv4.bb new file mode 100644 index 000000000..4670c73b3 --- /dev/null +++ b/doc/roadmapv4.bb @@ -0,0 +1,27 @@ +[h1]Project Roadmap V4[/h1] + +[h2]Hubzilla 2.0 - code name "Universal Thunder"[/h2] + +[h3]Project Core Development[/h3] + +Goals/Highlights: + + +Focus on visual website design tools, widgets, and sharing mechanisms + +App organisation. + +Conversion of core application to a composer format living under the namespace "Zotlabs" + +Conversion of Modules to a more general purpose Controllers layout with DB/memory based +controller routing as opposed to filesystem routing. + +Conversion of core Zot Protocol to a class library + +Abstraction of nomadic identity so that sending/receiving to/from singleton networks to/from any clone works flawlessly - [b]provided[/b] the clone physically connected to that singleton identity is up. + +[h3]Community Development[/h3] + +CalDAV/CardDAV + +E-Commerce \ No newline at end of file diff --git a/include/bbcode.php b/include/bbcode.php index 05802aa57..a8372d728 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -570,7 +570,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $urlchars = '[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,\@]'; if (strpos($Text,'http') !== false) { - $Text = preg_replace("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ism", '$1$2', $Text); + $Text = preg_replace("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ism", '$1$2', $Text); } if (strpos($Text,'[/share]') !== false) { @@ -582,21 +582,21 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) } } if (strpos($Text,'[/url]') !== false) { - $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '#^$1', $Text); - $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '#^$2', $Text); - $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $Text); - $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $Text); + $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '#^$1', $Text); + $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '#^$2', $Text); + $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $Text); + $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $Text); } if (strpos($Text,'[/zrl]') !== false) { - $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '#^$1', $Text); - $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '#^$2', $Text); - $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '$1', $Text); - $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '$2', $Text); + $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '#^$1', $Text); + $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '#^$2', $Text); + $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '$1', $Text); + $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '$2', $Text); } // Perform MAIL Search if (strpos($Text,'[/mail]') !== false) { - $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); - $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $Text); + $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); + $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $Text); } @@ -886,17 +886,17 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) // if video couldn't be embedded, link to it instead. if (strpos($Text,'[/video]') !== false) { - $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '$1', $Text); + $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '$1', $Text); } if (strpos($Text,'[/audio]') !== false) { - $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '$1', $Text); + $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '$1', $Text); } if (strpos($Text,'[/zvideo]') !== false) { - $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '$1', $Text); + $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '$1', $Text); } if (strpos($Text,'[/zaudio]') !== false) { - $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '$1', $Text); + $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '$1', $Text); } if ($tryoembed){ @@ -905,7 +905,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) } } else { if (strpos($Text,'[/iframe]') !== false) { - $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); + $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); } } diff --git a/include/conversation.php b/include/conversation.php index 57dc9d2a2..2c447acbc 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -674,7 +674,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ $unverified = ''; // $tags=array(); -// $terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_UNKNOWN)); +// $terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_UNKNOWN,TERM_COMMUNITYTAG)); // if(count($terms)) // foreach($terms as $tag) // $tags[] = format_term_for_display($tag); @@ -944,7 +944,7 @@ function item_photo_menu($item){ $menu = Array( t("View Source") => $vsrc_link, t("Follow Thread") => $sub_link, - t("Stop Following") => $unsub_link, + t("Unfollow Thread") => $unsub_link, t("View Status") => $status_link, t("View Profile") => $profile_link, t("View Photos") => $photos_link, diff --git a/include/features.php b/include/features.php index 74ae7b3d7..4e962b00e 100644 --- a/include/features.php +++ b/include/features.php @@ -60,6 +60,7 @@ function get_features() { array('content_encrypt', t('Even More Encryption'), t('Allow optional encryption of content end-to-end with a shared secret key'),false), array('consensus_tools', t('Enable Voting Tools'), t('Provide a class of post which others can vote on'),false), array('delayed_posting', t('Delayed Posting'), t('Allow posts to be published at a later date'),false), + array('suppress_duplicates', t('Suppress Duplicate Posts/Comments'), t('Prevent posts with identical content to be published with less than two minutes in between submissions.'),true), ), diff --git a/include/identity.php b/include/identity.php index 21d919508..4682cf624 100644 --- a/include/identity.php +++ b/include/identity.php @@ -1689,3 +1689,14 @@ function get_channel_default_perms($uid) { return 0; } + + +function profiles_build_sync($channel_id) { + + $r = q("select * from profile where uid = %d", + intval($channel_id) + ); + if($r) { + build_sync_packet($channel_id,array('profile' => $r)); + } +} diff --git a/include/items.php b/include/items.php index 43bbdda28..7d349c631 100755 --- a/include/items.php +++ b/include/items.php @@ -1408,7 +1408,7 @@ function encode_item_xchan($xchan) { function encode_item_terms($terms,$mirror = false) { $ret = array(); - $allowed_export_terms = array( TERM_UNKNOWN, TERM_HASHTAG, TERM_MENTION, TERM_CATEGORY, TERM_BOOKMARK ); + $allowed_export_terms = array( TERM_UNKNOWN, TERM_HASHTAG, TERM_MENTION, TERM_CATEGORY, TERM_BOOKMARK, TERM_COMMUNITYTAG ); if($mirror) { $allowed_export_terms[] = TERM_PCATEGORY; @@ -1432,7 +1432,7 @@ function encode_item_terms($terms,$mirror = false) { * @return string */ function termtype($t) { - $types = array('unknown','hashtag','mention','category','private_category','file','search','thing','bookmark'); + $types = array('unknown','hashtag','mention','category','private_category','file','search','thing','bookmark', 'hierarchy', 'communitytag'); return(($types[$t]) ? $types[$t] : 'unknown'); } @@ -1478,6 +1478,9 @@ function decode_tags($t) { case 'bookmark': $tag['type'] = TERM_BOOKMARK; break; + case 'communitytag': + $tag['type'] = TERM_COMMUNITYTAG; + break; default: case 'unknown': $tag['type'] = TERM_UNKNOWN; @@ -3032,7 +3035,7 @@ function tag_deliver($uid, $item_id) { if(is_array($j_obj['link'])) $taglink = get_rel_link($j_obj['link'],'alternate'); - store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_HASHTAG,$j_obj['title'],$j_obj['id']); + store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_COMMUNITYTAG,$j_obj['title'],$j_obj['id']); $x = q("update item set edited = '%s', received = '%s', changed = '%s' where mid = '%s' and uid = %d", dbesc(datetime_convert()), dbesc(datetime_convert()), @@ -3437,7 +3440,7 @@ function check_item_source($uid, $item) { foreach($words as $word) { if(substr($word,0,1) === '#' && $tags) { foreach($tags as $t) - if(($t['type'] == TERM_HASHTAG) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) + if((($t['type'] == TERM_HASHTAG) || ($t['type'] == TERM_COMMUNITYTAG)) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) return true; } elseif((strpos($word,'/') === 0) && preg_match($word,$text)) @@ -3490,7 +3493,7 @@ function post_is_importable($item,$abook) { continue; if(substr($word,0,1) === '#' && $tags) { foreach($tags as $t) - if(($t['type'] == TERM_HASHTAG) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) + if((($t['type'] == TERM_HASHTAG) || ($t['type'] == TERM_COMMUNITYTAG)) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) return false; } elseif((strpos($word,'/') === 0) && preg_match($word,$text)) @@ -3511,7 +3514,7 @@ function post_is_importable($item,$abook) { continue; if(substr($word,0,1) === '#' && $tags) { foreach($tags as $t) - if(($t['type'] == TERM_HASHTAG) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) + if((($t['type'] == TERM_HASHTAG) || ($t['type'] == TERM_COMMUNITYTAG)) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*'))) return true; } elseif((strpos($word,'/') === 0) && preg_match($word,$text)) @@ -4162,12 +4165,12 @@ function enumerate_permissions($obj) { function item_getfeedtags($item) { - $terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION)); + $terms = get_terms_oftype($item['term'],array(TERM_HASHTAG,TERM_MENTION,TERM_COMMUNITYTAG)); $ret = array(); if(count($terms)) { foreach($terms as $term) { - if($term['type'] == TERM_HASHTAG) + if(($term['type'] == TERM_HASHTAG) || ($term['type'] == TERM_COMMUNITYTAG)) $ret[] = array('#',$term['url'],$term['term']); else $ret[] = array('@',$term['url'],$term['term']); @@ -4875,7 +4878,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C if($arr['search']) { if(strpos($arr['search'],'#') === 0) - $sql_extra .= term_query('item',substr($arr['search'],1),TERM_HASHTAG); + $sql_extra .= term_query('item',substr($arr['search'],1),TERM_HASHTAG,TERM_COMMUNITYTAG); else $sql_extra .= sprintf(" AND item.body like '%s' ", dbesc(protect_sprintf('%' . $arr['search'] . '%')) diff --git a/include/network.php b/include/network.php index 65599bd05..026f5ee0a 100644 --- a/include/network.php +++ b/include/network.php @@ -320,6 +320,29 @@ function xml_status($st, $message = '') { killme(); } + + +/** + * @brief Send HTTP status header + * + * @param int $val + * integer HTTP status result value + * @param string $msg + * optional message + * @returns nil + */ +function http_status($val, $msg = '') { + if ($val >= 400) + $msg = (($msg) ? $msg : 'Error'); + if ($val >= 200 && $val < 300) + $msg = (($msg) ? $msg : 'OK'); + + logger('http_status_exit ' . $val . ' ' . $msg); + header($_SERVER['SERVER_PROTOCOL'] . ' ' . $val . ' ' . $msg); +} + + + /** * @brief Send HTTP status header and exit. * @@ -330,18 +353,12 @@ function xml_status($st, $message = '') { * @returns (does not return, process is terminated) */ function http_status_exit($val, $msg = '') { - - if ($val >= 400) - $msg = (($msg) ? $msg : 'Error'); - if ($val >= 200 && $val < 300) - $msg = (($msg) ? $msg : 'OK'); - - logger('http_status_exit ' . $val . ' ' . $msg); - header($_SERVER['SERVER_PROTOCOL'] . ' ' . $val . ' ' . $msg); + http_status($val, $msg); killme(); } + // convert an XML document to a normalised, case-corrected array // used by webfinger diff --git a/include/system_unavailable.php b/include/system_unavailable.php index dfe7c5e6b..4e0e6717b 100644 --- a/include/system_unavailable.php +++ b/include/system_unavailable.php @@ -1,6 +1,9 @@ System Unavailable diff --git a/include/taxonomy.php b/include/taxonomy.php index e68b9659f..b396d53f1 100644 --- a/include/taxonomy.php +++ b/include/taxonomy.php @@ -26,12 +26,21 @@ function file_tag_file_query($table,$s,$type = 'file') { ); } -function term_query($table,$s,$type = TERM_UNKNOWN) { +function term_query($table,$s,$type = TERM_UNKNOWN, $type2 = '') { - return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ", - intval($type), - protect_sprintf(dbesc($s)) - ); + if($type2) { + return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type in (%d, %d) and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ", + intval($type), + intval($type2), + protect_sprintf(dbesc($s)) + ); + } + else { + return sprintf(" AND " . (($table) ? dbesc($table) . '.' : '') . "id in (select term.oid from term where term.type = %d and term.term = '%s' and term.uid = " . (($table) ? dbesc($table) . '.' : '') . "uid ) ", + intval($type), + protect_sprintf(dbesc($s)) + ); + } } @@ -84,7 +93,7 @@ function get_terms_oftype($arr,$type) { function format_term_for_display($term) { $s = ''; - if($term['type'] == TERM_HASHTAG) + if(($term['type'] == TERM_HASHTAG) || ($term['type'] == TERM_COMMUNITYTAG)) $s .= '#'; elseif($term['type'] == TERM_MENTION) $s .= '@'; diff --git a/include/text.php b/include/text.php index 4053c15b2..eb9171b40 100644 --- a/include/text.php +++ b/include/text.php @@ -1298,7 +1298,7 @@ function format_categories(&$item,$writeable) { function format_hashtags(&$item) { $s = ''; - $terms = get_terms_oftype($item['term'], TERM_HASHTAG); + $terms = get_terms_oftype($item['term'], array(TERM_HASHTAG,TERM_COMMUNITYTAG)); if($terms) { foreach($terms as $t) { $term = htmlspecialchars($t['term'], ENT_COMPAT, 'UTF-8', false) ; @@ -1403,13 +1403,13 @@ function prepare_body(&$item,$attach = false) { // if original photo width is <= 640px prepend it to item body if($object['link'][0]['width'] && $object['link'][0]['width'] <= 640) { - $s = '
' . $s; + $s = '
' . $s; } // if original photo width is > 640px make it a cover photo if($object['link'][0]['width'] && $object['link'][0]['width'] > 640) { $scale = ((($object['link'][1]['width'] == 1024) || ($object['link'][1]['height'] == 1024)) ? 1 : 0); - $photo = ''; + $photo = ''; } } diff --git a/include/widgets.php b/include/widgets.php index 3f8e1f18c..a3f7444ec 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -662,6 +662,20 @@ function widget_conversations($arr) { return $o; } +function widget_eventsmenu($arr) { + if (! local_channel()) + return; + + return replace_macros(get_markup_template('events_side.tpl'), array( + '$title' => t('Events Menu'), + '$day' => t('Day View'), + '$week' => t('Week View'), + '$month' => t('Month View'), + '$export' => t('Export'), + '$upload' => t('Import'), + '$submit' => t('Submit') + )); +} function widget_design_tools($arr) { $a = get_app(); diff --git a/include/zot.php b/include/zot.php index 0a1a8ee51..23fb9c4ad 100644 --- a/include/zot.php +++ b/include/zot.php @@ -1933,11 +1933,12 @@ function remove_community_tag($sender, $arr, $uid) { return; } - q("delete from term where uid = %d and oid = %d and otype = %d and type = %d and term = '%s' and url = '%s'", + q("delete from term where uid = %d and oid = %d and otype = %d and type in ( %d, %d ) and term = '%s' and url = '%s'", intval($uid), intval($r[0]['id']), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), + intval(TERM_COMMUNITYTAG), dbesc($i['object']['title']), dbesc(get_rel_link($i['object']['link'],'alternate')) ); diff --git a/index.php b/index.php index 3758b38b0..6ed7eeb11 100755 --- a/index.php +++ b/index.php @@ -36,6 +36,10 @@ require_once('include/dba/dba_driver.php'); if(! $a->install) { $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type, $a->install); + if(! $db->connected) { + system_unavailable(); + } + unset($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type); /** diff --git a/library/fullcalendar/CHANGELOG.txt b/library/fullcalendar/CHANGELOG.txt new file mode 100644 index 000000000..b583228fc --- /dev/null +++ b/library/fullcalendar/CHANGELOG.txt @@ -0,0 +1,905 @@ + +v2.5.0-beta (2015-11-15) +------------------------ + +internal refactor of the "grid" system, providing increased flexbility for plugins like +[fullcalendar-scheduler](https://github.com/fullcalendar/fullcalendar-scheduler/releases) + + +v2.4.0 (2015-08-16) +------------------- + +- add new buttons to the header via `customButtons` ([225]) +- control stacking order of events via `eventOrder` ([364]) +- control frequency of slot text via `slotLabelInterval` ([946]) +- `displayEventTime` ([1904]) +- `on` and `off` methods ([1910]) +- renamed `axisFormat` to `slotLabelFormat` + +[225]: https://code.google.com/p/fullcalendar/issues/detail?id=225 +[364]: https://code.google.com/p/fullcalendar/issues/detail?id=364 +[946]: https://code.google.com/p/fullcalendar/issues/detail?id=946 +[1904]: https://code.google.com/p/fullcalendar/issues/detail?id=1904 +[1910]: https://code.google.com/p/fullcalendar/issues/detail?id=1910 + + +v2.3.2 (2015-06-14) +------------------- + +- minor code adjustment in preparation for plugins + + +v2.3.1 (2015-03-08) +------------------- + +- Fix week view column title for en-gb ([PR220]) +- Publish to NPM ([2447]) +- Detangle bower from npm package ([PR179]) + +[PR220]: https://github.com/arshaw/fullcalendar/pull/220 +[2447]: https://code.google.com/p/fullcalendar/issues/detail?id=2447 +[PR179]: https://github.com/arshaw/fullcalendar/pull/179 + + +v2.3.0 (2015-02-21) +------------------- + +- internal refactoring in preparation for other views +- businessHours now renders on whole-days in addition to timed areas +- events in "more" popover not sorted by time ([2385]) +- avoid using moment's deprecated zone method ([2443]) +- destroying the calendar sometimes causes all window resize handlers to be unbound ([2432]) +- multiple calendars on one page, can't accept external elements after navigating ([2433]) +- accept external events from jqui sortable ([1698]) +- external jqui drop processed before reverting ([1661]) +- IE8 fix: month view renders incorrectly ([2428]) +- IE8 fix: eventLimit:true wouldn't activate "more" link ([2330]) +- IE8 fix: dragging an event with an href +- IE8 fix: invisible element while dragging agenda view events +- IE8 fix: erratic external element dragging + +[2385]: https://code.google.com/p/fullcalendar/issues/detail?id=2385 +[2443]: https://code.google.com/p/fullcalendar/issues/detail?id=2443 +[2432]: https://code.google.com/p/fullcalendar/issues/detail?id=2432 +[2433]: https://code.google.com/p/fullcalendar/issues/detail?id=2433 +[1698]: https://code.google.com/p/fullcalendar/issues/detail?id=1698 +[1661]: https://code.google.com/p/fullcalendar/issues/detail?id=1661 +[2428]: https://code.google.com/p/fullcalendar/issues/detail?id=2428 +[2330]: https://code.google.com/p/fullcalendar/issues/detail?id=2330 + + +v2.2.7 (2015-02-10) +------------------- + +- view.title wasn't defined in viewRender callback ([2407]) +- FullCalendar versions >= 2.2.5 brokenness with Moment versions <= 2.8.3 ([2417]) +- Support Bokmal Norwegian language specifically ([2427]) + +[2407]: https://code.google.com/p/fullcalendar/issues/detail?id=2407 +[2417]: https://code.google.com/p/fullcalendar/issues/detail?id=2417 +[2427]: https://code.google.com/p/fullcalendar/issues/detail?id=2427 + + +v2.2.6 (2015-01-11) +------------------- + +- Compatibility with Moment v2.9. Was breaking GCal plugin ([2408]) +- View object's `title` property mistakenly omitted ([2407]) +- Single-day views with hiddens days could cause prev/next misbehavior ([2406]) +- Don't let the current date ever be a hidden day (solves [2395]) +- Hebrew locale ([2157]) + +[2408]: https://code.google.com/p/fullcalendar/issues/detail?id=2408 +[2407]: https://code.google.com/p/fullcalendar/issues/detail?id=2407 +[2406]: https://code.google.com/p/fullcalendar/issues/detail?id=2406 +[2395]: https://code.google.com/p/fullcalendar/issues/detail?id=2395 +[2157]: https://code.google.com/p/fullcalendar/issues/detail?id=2157 + + +v2.2.5 (2014-12-30) +------------------- + +- `buttonText` specified for custom views via the `views` option + - bugfix: wrong default value, couldn't override default + - feature: default value taken from locale + + +v2.2.4 (2014-12-29) +------------------- + +- Arbitrary durations for basic/agenda views with the `views` option ([692]) +- Specify view-specific options using the `views` option. fixes [2283] +- Deprecate view-option-hashes +- Formalize and expose View API ([1055]) +- updateEvent method, more intuitive behavior. fixes [2194] + +[692]: https://code.google.com/p/fullcalendar/issues/detail?id=692 +[2283]: https://code.google.com/p/fullcalendar/issues/detail?id=2283 +[1055]: https://code.google.com/p/fullcalendar/issues/detail?id=1055 +[2194]: https://code.google.com/p/fullcalendar/issues/detail?id=2194 + + +v2.2.3 (2014-11-26) +------------------- + +- removeEventSource with Google Calendar object source, would not remove ([2368]) +- Events with invalid end dates are still accepted and rendered ([2350], [2237], [2296]) +- Bug when rendering business hours and navigating away from original view ([2365]) +- Links to Google Calendar events will use current timezone ([2122]) +- Google Calendar plugin works with timezone names that have spaces +- Google Calendar plugin accepts person email addresses as calendar IDs +- Internally use numeric sort instead of alphanumeric sort ([2370]) + +[2368]: https://code.google.com/p/fullcalendar/issues/detail?id=2368 +[2350]: https://code.google.com/p/fullcalendar/issues/detail?id=2350 +[2237]: https://code.google.com/p/fullcalendar/issues/detail?id=2237 +[2296]: https://code.google.com/p/fullcalendar/issues/detail?id=2296 +[2365]: https://code.google.com/p/fullcalendar/issues/detail?id=2365 +[2122]: https://code.google.com/p/fullcalendar/issues/detail?id=2122 +[2370]: https://code.google.com/p/fullcalendar/issues/detail?id=2370 + + +v2.2.2 (2014-11-19) +------------------- + +- Fixes to Google Calendar API V3 code + - wouldn't recognize a lone-string Google Calendar ID if periods before the @ symbol + - removeEventSource wouldn't work when given a Google Calendar ID + + +v2.2.1 (2014-11-19) +------------------- + +- Migrate Google Calendar plugin to use V3 of the API ([1526]) + +[1526]: https://code.google.com/p/fullcalendar/issues/detail?id=1526 + + +v2.2.0 (2014-11-14) +------------------- + +- Background events. Event object's `rendering` property ([144], [1286]) +- `businessHours` option ([144]) +- Controlling where events can be dragged/resized and selections can go ([396], [1286], [2253]) + - `eventOverlap`, `selectOverlap`, and similar + - `eventConstraint`, `selectConstraint`, and similar +- Improvements to dragging and dropping external events ([2004]) + - Associating with real event data. used with `eventReceive` + - Associating a `duration` +- Performance boost for moment creation + - Be aware, FullCalendar-specific methods now attached directly to global moment.fn + - Helps with [issue 2259][2259] +- Reintroduced forgotten `dropAccept` option ([2312]) + +[144]: https://code.google.com/p/fullcalendar/issues/detail?id=144 +[396]: https://code.google.com/p/fullcalendar/issues/detail?id=396 +[1286]: https://code.google.com/p/fullcalendar/issues/detail?id=1286 +[2004]: https://code.google.com/p/fullcalendar/issues/detail?id=2004 +[2253]: https://code.google.com/p/fullcalendar/issues/detail?id=2253 +[2259]: https://code.google.com/p/fullcalendar/issues/detail?id=2259 +[2312]: https://code.google.com/p/fullcalendar/issues/detail?id=2312 + + +v2.1.1 (2014-08-29) +------------------- + +- removeEventSource not working with array ([2203]) +- mouseout not triggered after mouseover+updateEvent ([829]) +- agenda event's render with no href, not clickable ([2263]) + +[2203]: https://code.google.com/p/fullcalendar/issues/detail?id=2203 +[829]: https://code.google.com/p/fullcalendar/issues/detail?id=829 +[2263]: https://code.google.com/p/fullcalendar/issues/detail?id=2263 + + +v2.1.0 (2014-08-25) +------------------- + +Large code refactor with better OOP, better code reuse, and more comments. +**No more reliance on jQuery UI** for event dragging, resizing, or anything else. + +Significant changes to HTML/CSS skeleton: +- Leverages tables for liquid rendering of days and events. No costly manual repositioning ([809]) +- **Backwards-incompatibilities**: + - **Many classNames have changed. Custom CSS will likely need to be adjusted.** + - IE7 definitely not supported anymore + - In `eventRender` callback, `element` will not be attached to DOM yet + - Events are styled to be one line by default ([1992]). Can be undone through custom CSS, + but not recommended (might get gaps [like this][111] in certain situations). + +A "more..." link when there are too many events on a day ([304]). Works with month and basic views +as well as the all-day section of the agenda views. New options: +- `eventLimit`. a number or `true` +- `eventLimitClick`. the `"popover`" value will reveal all events in a raised panel (the default) +- `eventLimitText` +- `dayPopoverFormat` + +Changes related to height and scrollbars: +- `aspectRatio`/`height`/`contentHeight` values will be honored *no matter what* + - If too many events causing too much vertical space, scrollbars will be used ([728]). + This is default behavior for month view (**backwards-incompatibility**) + - If too few slots in agenda view, view will stretch to be the correct height ([2196]) +- `'auto'` value for `height`/`contentHeight` options. If content is too tall, the view will + vertically stretch to accomodate and no scrollbars will be used ([521]). +- Tall weeks in month view will borrow height from other weeks ([243]) +- Automatically scroll the view then dragging/resizing an event ([1025], [2078]) +- New `fixedWeekCount` option to determines the number of weeks in month view + - Supersedes `weekMode` (**deprecated**). Instead, use a combination of `fixedWeekCount` and + one of the height options, possibly with an `'auto'` value + +Much nicer, glitch-free rendering of calendar *for printers* ([35]). Things you might not expect: +- Buttons will become hidden +- Agenda views display a flat list of events where the time slots would be + +Other issues resolved along the way: +- Space on right side of agenda events configurable through CSS ([204]) +- Problem with window resize ([259]) +- Events sorting stays consistent across weeks ([510]) +- Agenda's columns misaligned on wide screens ([511]) +- Run `selectHelper` through `eventRender` callbacks ([629]) +- Keyboard access, tabbing ([637]) +- Run resizing events through `eventRender` ([714]) +- Resize an event to a different day in agenda views ([736]) +- Allow selection across days in agenda views ([778]) +- Mouseenter delegated event not working on event elements ([936]) +- Agenda event dragging, snapping to different columns is erratic ([1101]) +- Android browser cuts off Day view at 8 PM with no scroll bar ([1203]) +- Don't fire `eventMouseover`/`eventMouseout` while dragging/resizing ([1297]) +- Customize the resize handle text ("=") ([1326]) +- If agenda event is too short, don't overwrite `.fc-event-time` ([1700]) +- Zooming calendar causes events to misalign ([1996]) +- Event destroy callback on event removal ([2017]) +- Agenda views, when RTL, should have axis on right ([2132]) +- Make header buttons more accessibile ([2151]) +- daySelectionMousedown should interpret OSX ctrl+click as a right mouse click ([2169]) +- Best way to display time text on multi-day events *with times* ([2172]) +- Eliminate table use for header layout ([2186]) +- Event delegation used for event-related callbacks (like `eventClick`). Speedier. + +[35]: https://code.google.com/p/fullcalendar/issues/detail?id=35 +[204]: https://code.google.com/p/fullcalendar/issues/detail?id=204 +[243]: https://code.google.com/p/fullcalendar/issues/detail?id=243 +[259]: https://code.google.com/p/fullcalendar/issues/detail?id=259 +[304]: https://code.google.com/p/fullcalendar/issues/detail?id=304 +[510]: https://code.google.com/p/fullcalendar/issues/detail?id=510 +[511]: https://code.google.com/p/fullcalendar/issues/detail?id=511 +[521]: https://code.google.com/p/fullcalendar/issues/detail?id=521 +[629]: https://code.google.com/p/fullcalendar/issues/detail?id=629 +[637]: https://code.google.com/p/fullcalendar/issues/detail?id=637 +[714]: https://code.google.com/p/fullcalendar/issues/detail?id=714 +[728]: https://code.google.com/p/fullcalendar/issues/detail?id=728 +[736]: https://code.google.com/p/fullcalendar/issues/detail?id=736 +[778]: https://code.google.com/p/fullcalendar/issues/detail?id=778 +[809]: https://code.google.com/p/fullcalendar/issues/detail?id=809 +[936]: https://code.google.com/p/fullcalendar/issues/detail?id=936 +[1025]: https://code.google.com/p/fullcalendar/issues/detail?id=1025 +[1101]: https://code.google.com/p/fullcalendar/issues/detail?id=1101 +[1203]: https://code.google.com/p/fullcalendar/issues/detail?id=1203 +[1297]: https://code.google.com/p/fullcalendar/issues/detail?id=1297 +[1326]: https://code.google.com/p/fullcalendar/issues/detail?id=1326 +[1700]: https://code.google.com/p/fullcalendar/issues/detail?id=1700 +[1992]: https://code.google.com/p/fullcalendar/issues/detail?id=1992 +[1996]: https://code.google.com/p/fullcalendar/issues/detail?id=1996 +[2017]: https://code.google.com/p/fullcalendar/issues/detail?id=2017 +[2078]: https://code.google.com/p/fullcalendar/issues/detail?id=2078 +[2132]: https://code.google.com/p/fullcalendar/issues/detail?id=2132 +[2151]: https://code.google.com/p/fullcalendar/issues/detail?id=2151 +[2169]: https://code.google.com/p/fullcalendar/issues/detail?id=2169 +[2172]: https://code.google.com/p/fullcalendar/issues/detail?id=2172 +[2186]: https://code.google.com/p/fullcalendar/issues/detail?id=2186 +[2196]: https://code.google.com/p/fullcalendar/issues/detail?id=2196 +[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111 + + +v2.0.3 (2014-08-15) +------------------- + +- moment-2.8.1 compatibility ([2221]) +- relative path in bower.json ([PR 117]) +- upgraded jquery-ui and misc dev dependencies + +[2221]: https://code.google.com/p/fullcalendar/issues/detail?id=2221 +[PR 117]: https://github.com/arshaw/fullcalendar/pull/177 + + +v2.0.2 (2014-06-24) +------------------- + +- bug with persisting addEventSource calls ([2191]) +- bug with persisting removeEvents calls with an array source ([2187]) +- bug with removeEvents method when called with 0 removes all events ([2082]) + +[2191]: https://code.google.com/p/fullcalendar/issues/detail?id=2191 +[2187]: https://code.google.com/p/fullcalendar/issues/detail?id=2187 +[2082]: https://code.google.com/p/fullcalendar/issues/detail?id=2082 + + +v2.0.1 (2014-06-15) +------------------- + +- `delta` parameters reintroduced in `eventDrop` and `eventResize` handlers ([2156]) + - **Note**: this changes the argument order for `revertFunc` +- wrongfully triggering a windowResize when resizing an agenda view event ([1116]) +- `this` values in event drag-n-drop/resize handlers consistently the DOM node ([1177]) +- `displayEventEnd` - v2 workaround to force display of an end time ([2090]) +- don't modify passed-in eventSource items ([954]) +- destroy method now removes fc-ltr class ([2033]) +- weeks of last/next month still visible when weekends are hidden ([2095]) +- fixed memory leak when destroying calendar with selectable/droppable ([2137]) +- Icelandic language ([2180]) +- Bahasa Indonesia language ([PR 172]) + +[1116]: https://code.google.com/p/fullcalendar/issues/detail?id=1116 +[1177]: https://code.google.com/p/fullcalendar/issues/detail?id=1177 +[2090]: https://code.google.com/p/fullcalendar/issues/detail?id=2090 +[954]: https://code.google.com/p/fullcalendar/issues/detail?id=954 +[2033]: https://code.google.com/p/fullcalendar/issues/detail?id=2033 +[2095]: https://code.google.com/p/fullcalendar/issues/detail?id=2095 +[2137]: https://code.google.com/p/fullcalendar/issues/detail?id=2137 +[2156]: https://code.google.com/p/fullcalendar/issues/detail?id=2156 +[2180]: https://code.google.com/p/fullcalendar/issues/detail?id=2180 +[PR 172]: https://github.com/arshaw/fullcalendar/pull/172 + + +v2.0.0 (2014-06-01) +------------------- + +Internationalization support, timezone support, and [MomentJS] integration. Extensive changes, many +of which are backwards incompatible. + +[Full list of changes][Upgrading-to-v2] | [Affected Issues][Date-Milestone] + +An automated testing framework has been set up ([Karma] + [Jasmine]) and tests have been written +which cover about half of FullCalendar's functionality. Special thanks to @incre-d, @vidbina, and +@sirrocco for the help. + +In addition, the main development repo has been repurposed to also include the built distributable +JS/CSS for the project and will serve as the new [Bower] endpoint. + +[MomentJS]: http://momentjs.com/ +[Upgrading-to-v2]: http://arshaw.com/fullcalendar/wiki/Upgrading-to-v2/ +[Date-Milestone]: https://code.google.com/p/fullcalendar/issues/list?can=1&q=milestone%3Ddate +[Karma]: http://karma-runner.github.io/ +[Jasmine]: http://jasmine.github.io/ +[Bower]: http://bower.io/ + + +v1.6.4 (2013-09-01) +------------------- + +- better algorithm for positioning timed agenda events ([1115]) +- `slotEventOverlap` option to tweak timed agenda event overlapping ([218]) +- selection bug when slot height is customized ([1035]) +- supply view argument in `loading` callback ([1018]) +- fixed week number not displaying in agenda views ([1951]) +- fixed fullCalendar not initializing with no options ([1356]) +- NPM's `package.json`, no more warnings or errors ([1762]) +- building the bower component should output `bower.json` instead of `component.json` ([PR 125]) +- use bower internally for fetching new versions of jQuery and jQuery UI + +[1115]: https://code.google.com/p/fullcalendar/issues/detail?id=1115 +[218]: https://code.google.com/p/fullcalendar/issues/detail?id=218 +[1035]: https://code.google.com/p/fullcalendar/issues/detail?id=1035 +[1018]: https://code.google.com/p/fullcalendar/issues/detail?id=1018 +[1951]: https://code.google.com/p/fullcalendar/issues/detail?id=1951 +[1356]: https://code.google.com/p/fullcalendar/issues/detail?id=1356 +[1762]: https://code.google.com/p/fullcalendar/issues/detail?id=1762 +[PR 125]: https://github.com/arshaw/fullcalendar/pull/125 + + +v1.6.3 (2013-08-10) +------------------- + +- `viewRender` callback ([PR 15]) +- `viewDestroy` callback ([PR 15]) +- `eventDestroy` callback ([PR 111]) +- `handleWindowResize` option ([PR 54]) +- `eventStartEditable`/`startEditable` options ([PR 49]) +- `eventDurationEditable`/`durationEditable` options ([PR 49]) +- specify function for `$.ajax` `data` parameter for JSON event sources ([PR 59]) +- fixed bug with agenda event dropping in wrong column ([PR 55]) +- easier event element z-index customization ([PR 58]) +- classNames on past/future days ([PR 88]) +- allow `null`/`undefined` event titles ([PR 84]) +- small optimize for agenda event rendering ([PR 56]) +- deprecated: + - `viewDisplay` + - `disableDragging` + - `disableResizing` +- bundled with latest jQuery (1.10.2) and jQuery UI (1.10.3) + +[PR 15]: https://github.com/arshaw/fullcalendar/pull/15 +[PR 111]: https://github.com/arshaw/fullcalendar/pull/111 +[PR 54]: https://github.com/arshaw/fullcalendar/pull/54 +[PR 49]: https://github.com/arshaw/fullcalendar/pull/49 +[PR 59]: https://github.com/arshaw/fullcalendar/pull/59 +[PR 55]: https://github.com/arshaw/fullcalendar/pull/55 +[PR 58]: https://github.com/arshaw/fullcalendar/pull/58 +[PR 88]: https://github.com/arshaw/fullcalendar/pull/88 +[PR 84]: https://github.com/arshaw/fullcalendar/pull/84 +[PR 56]: https://github.com/arshaw/fullcalendar/pull/56 + + +v1.6.2 (2013-07-18) +------------------- + +- `hiddenDays` option ([686]) +- bugfix: when `eventRender` returns `false`, incorrect stacking of events ([762]) +- bugfix: couldn't change `event.backgroundImage` when calling `updateEvent` (thx @stephenharris) + +[686]: https://code.google.com/p/fullcalendar/issues/detail?id=686 +[762]: https://code.google.com/p/fullcalendar/issues/detail?id=762 + + +v1.6.1 (2013-04-14) +------------------- + +- fixed event inner content overflow bug ([1783]) +- fixed table header className bug [1772] +- removed text-shadow on events (better for general use, thx @tkrotoff) + +[1783]: https://code.google.com/p/fullcalendar/issues/detail?id=1783 +[1772]: https://code.google.com/p/fullcalendar/issues/detail?id=1772 + + +v1.6.0 (2013-03-18) +------------------- + +- visual facelift, with bootstrap-inspired buttons and colors +- simplified HTML/CSS for events and buttons +- `dayRender`, for modifying a day cell ([191], thx @althaus) +- week numbers on side of calendar ([295]) + - `weekNumber` + - `weekNumberCalculation` + - `weekNumberTitle` + - `W` formatting variable +- finer snapping granularity for agenda view events ([495], thx @ms-doodle-com) +- `eventAfterAllRender` ([753], thx @pdrakeweb) +- `eventDataTransform` (thx @joeyspo) +- `data-date` attributes on cells (thx @Jae) +- expose `$.fullCalendar.dateFormatters` +- when clicking fast on buttons, prevent text selection +- bundled with latest jQuery (1.9.1) and jQuery UI (1.10.2) +- Grunt/Lumbar build system for internal development +- build for Bower package manager +- build for jQuery plugin site + +[191]: https://code.google.com/p/fullcalendar/issues/detail?id=191 +[295]: https://code.google.com/p/fullcalendar/issues/detail?id=295 +[495]: https://code.google.com/p/fullcalendar/issues/detail?id=495 +[753]: https://code.google.com/p/fullcalendar/issues/detail?id=753 + + +v1.5.4 (2012-09-05) +------------------- + +- made compatible with jQuery 1.8.* (thx @archaeron) +- bundled with jQuery 1.8.1 and jQuery UI 1.8.23 + + +v1.5.3 (2012-02-06) +------------------- + +- fixed dragging issue with jQuery UI 1.8.16 ([1168]) +- bundled with jQuery 1.7.1 and jQuery UI 1.8.17 + +[1168]: https://code.google.com/p/fullcalendar/issues/detail?id=1168 + + +v1.5.2 (2011-08-21) +------------------- + +- correctly process UTC "Z" ISO8601 date strings ([750]) + +[750]: https://code.google.com/p/fullcalendar/issues/detail?id=750 + + +v1.5.1 (2011-04-09) +------------------- + +- more flexible ISO8601 date parsing ([814]) +- more flexible parsing of UNIX timestamps ([826]) +- FullCalendar now buildable from source on a Mac ([795]) +- FullCalendar QA'd in FF4 ([883]) +- upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11 + +[814]: https://code.google.com/p/fullcalendar/issues/detail?id=814 +[826]: https://code.google.com/p/fullcalendar/issues/detail?id=826 +[795]: https://code.google.com/p/fullcalendar/issues/detail?id=795 +[883]: https://code.google.com/p/fullcalendar/issues/detail?id=883 + + +v1.5 (2011-03-19) +----------------- + +- slicker default styling for buttons +- reworked a lot of the calendar's HTML and accompanying CSS (solves [327] and [395]) +- more printer-friendly (fullcalendar-print.css) +- fullcalendar now inherits styles from jquery-ui themes differently. + styles for buttons are distinct from styles for calendar cells. + (solves [299]) +- can now color events through FullCalendar options and Event-Object properties ([117]) + THIS IS NOW THE PREFERRED METHOD OF COLORING EVENTS (as opposed to using className and CSS) + - FullCalendar options: + - eventColor (changes both background and border) + - eventBackgroundColor + - eventBorderColor + - eventTextColor + - Event-Object options: + - color (changes both background and border) + - backgroundColor + - borderColor + - textColor +- can now specify an event source as an *object* with a `url` property (json feed) or + an `events` property (function or array) with additional properties that will + be applied to the entire event source: + - color (changes both background and border) + - backgroudColor + - borderColor + - textColor + - className + - editable + - allDayDefault + - ignoreTimezone + - startParam (for a feed) + - endParam (for a feed) + - ANY OF THE JQUERY $.ajax OPTIONS + allows for easily changing from GET to POST and sending additional parameters ([386]) + allows for easily attaching ajax handlers such as `error` ([754]) + allows for turning caching on ([355]) +- Google Calendar feeds are now specified differently: + - specify a simple string of your feed's URL + - specify an *object* with a `url` property of your feed's URL. + you can include any of the new Event-Source options in this object. + - the old `$.fullCalendar.gcalFeed` method still works +- no more IE7 SSL popup ([504]) +- remove `cacheParam` - use json event source `cache` option instead +- latest jquery/jquery-ui + +[327]: https://code.google.com/p/fullcalendar/issues/detail?id=327 +[395]: https://code.google.com/p/fullcalendar/issues/detail?id=395 +[299]: https://code.google.com/p/fullcalendar/issues/detail?id=299 +[117]: https://code.google.com/p/fullcalendar/issues/detail?id=117 +[386]: https://code.google.com/p/fullcalendar/issues/detail?id=386 +[754]: https://code.google.com/p/fullcalendar/issues/detail?id=754 +[355]: https://code.google.com/p/fullcalendar/issues/detail?id=355 +[504]: https://code.google.com/p/fullcalendar/issues/detail?id=504 + + +v1.4.11 (2011-02-22) +-------------------- + +- fixed rerenderEvents bug ([790]) +- fixed bug with faulty dragging of events from all-day slot in agenda views +- bundled with jquery 1.5 and jquery-ui 1.8.9 + +[790]: https://code.google.com/p/fullcalendar/issues/detail?id=790 + + +v1.4.10 (2011-01-02) +-------------------- + +- fixed bug with resizing event to different week in 5-day month view ([740]) +- fixed bug with events not sticking after a removeEvents call ([757]) +- fixed bug with underlying parseTime method, and other uses of parseInt ([688]) + +[740]: https://code.google.com/p/fullcalendar/issues/detail?id=740 +[757]: https://code.google.com/p/fullcalendar/issues/detail?id=757 +[688]: https://code.google.com/p/fullcalendar/issues/detail?id=688 + + +v1.4.9 (2010-11-16) +------------------- + +- new algorithm for vertically stacking events ([111]) +- resizing an event to a different week ([306]) +- bug: some events not rendered with consecutive calls to addEventSource ([679]) + +[111]: https://code.google.com/p/fullcalendar/issues/detail?id=111 +[306]: https://code.google.com/p/fullcalendar/issues/detail?id=306 +[679]: https://code.google.com/p/fullcalendar/issues/detail?id=679 + + +v1.4.8 (2010-10-16) +------------------- + +- ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates) +- bugfixes + - event refetching not being called under certain conditions ([417], [554]) + - event refetching being called multiple times under certain conditions ([586], [616]) + - selection cannot be triggered by right mouse button ([558]) + - agenda view left axis sized incorrectly ([465]) + - IE js error when calendar is too narrow ([517]) + - agenda view looks strange when no scrollbars ([235]) + - improved parsing of ISO8601 dates with UTC offsets +- $.fullCalendar.version +- an internal refactor of the code, for easier future development and modularity + +[417]: https://code.google.com/p/fullcalendar/issues/detail?id=417 +[554]: https://code.google.com/p/fullcalendar/issues/detail?id=554 +[586]: https://code.google.com/p/fullcalendar/issues/detail?id=586 +[616]: https://code.google.com/p/fullcalendar/issues/detail?id=616 +[558]: https://code.google.com/p/fullcalendar/issues/detail?id=558 +[465]: https://code.google.com/p/fullcalendar/issues/detail?id=465 +[517]: https://code.google.com/p/fullcalendar/issues/detail?id=517 +[235]: https://code.google.com/p/fullcalendar/issues/detail?id=235 + + +v1.4.7 (2010-07-05) +------------------- + +- "dropping" external objects onto the calendar + - droppable (boolean, to turn on/off) + - dropAccept (to filter which events the calendar will accept) + - drop (trigger) +- selectable options can now be specified with a View Option Hash +- bugfixes + - dragged & reverted events having wrong time text ([406]) + - bug rendering events that have an endtime with seconds, but no hours/minutes ([477]) + - gotoDate date overflow bug ([429]) + - wrong date reported when clicking on edge of last column in agenda views [412] +- support newlines in event titles +- select/unselect callbacks now passes native js event + +[406]: https://code.google.com/p/fullcalendar/issues/detail?id=406 +[477]: https://code.google.com/p/fullcalendar/issues/detail?id=477 +[429]: https://code.google.com/p/fullcalendar/issues/detail?id=429 +[412]: https://code.google.com/p/fullcalendar/issues/detail?id=412 + + +v1.4.6 (2010-05-31) +------------------- + +- "selecting" days or timeslots + - options: selectable, selectHelper, unselectAuto, unselectCancel + - callbacks: select, unselect + - methods: select, unselect +- when dragging an event, the highlighting reflects the duration of the event +- code compressing by Google Closure Compiler +- bundled with jQuery 1.4.2 and jQuery UI 1.8.1 + + +v1.4.5 (2010-02-21) +------------------- + +- lazyFetching option, which can force the calendar to fetch events on every view/date change +- scroll state of agenda views are preserved when switching back to view +- bugfixes + - calling methods on an uninitialized fullcalendar throws error + - IE6/7 bug where an entire view becomes invisible ([320]) + - error when rendering a hidden calendar (in jquery ui tabs for example) in IE ([340]) + - interconnected bugs related to calendar resizing and scrollbars + - when switching views or clicking prev/next, calendar would "blink" ([333]) + - liquid-width calendar's events shifted (depending on initial height of browser) ([341]) + - more robust underlying algorithm for calendar resizing + +[320]: https://code.google.com/p/fullcalendar/issues/detail?id=320 +[340]: https://code.google.com/p/fullcalendar/issues/detail?id=340 +[333]: https://code.google.com/p/fullcalendar/issues/detail?id=333 +[341]: https://code.google.com/p/fullcalendar/issues/detail?id=341 + + +v1.4.4 (2010-02-03) +------------------- + +- optimized event rendering in all views (events render in 1/10 the time) +- gotoDate() does not force the calendar to unnecessarily rerender +- render() method now correctly readjusts height + + +v1.4.3 (2009-12-22) +------------------- + +- added destroy method +- Google Calendar event pages respect currentTimezone +- caching now handled by jQuery's ajax +- protection from setting aspectRatio to zero +- bugfixes + - parseISO8601 and DST caused certain events to display day before + - button positioning problem in IE6 + - ajax event source removed after recently being added, events still displayed + - event not displayed when end is an empty string + - dynamically setting calendar height when no events have been fetched, throws error + + +v1.4.2 (2009-12-02) +------------------- + +- eventAfterRender trigger +- getDate & getView methods +- height & contentHeight options (explicitly sets the pixel height) +- minTime & maxTime options (restricts shown hours in agenda view) +- getters [for all options] and setters [for height, contentHeight, and aspectRatio ONLY! stay tuned..] +- render method now readjusts calendar's size +- bugfixes + - lightbox scripts that use iframes (like fancybox) + - day-of-week classNames were off when firstDay=1 + - guaranteed space on right side of agenda events (even when stacked) + - accepts ISO8601 dates with a space (instead of 'T') + + +v1.4.1 (2009-10-31) +------------------- + +- can exclude weekends with new 'weekends' option +- gcal feed 'currentTimezone' option +- bugfixes + - year/month/date option sometimes wouldn't set correctly (depending on current date) + - daylight savings issue caused agenda views to start at 1am (for BST users) +- cleanup of gcal.js code + + +v1.4 (2009-10-19) +----------------- + +- agendaWeek and agendaDay views +- added some options for agenda views: + - allDaySlot + - allDayText + - firstHour + - slotMinutes + - defaultEventMinutes + - axisFormat +- modified some existing options/triggers to work with agenda views: + - dragOpacity and timeFormat can now accept a "View Hash" (a new concept) + - dayClick now has an allDay parameter + - eventDrop now has an an allDay parameter + (this will affect those who use revertFunc, adjust parameter list) +- added 'prevYear' and 'nextYear' for buttons in header +- minor change for theme users, ui-state-hover not applied to active/inactive buttons +- added event-color-changing example in docs +- better defaults for right-to-left themed button icons + + +v1.3.2 (2009-10-13) +------------------- + +- Bugfixes (please upgrade from 1.3.1!) + - squashed potential infinite loop when addMonths and addDays + is called with an invalid date + - $.fullCalendar.parseDate() now correctly parses IETF format + - when switching views, the 'today' button sticks inactive, fixed +- gotoDate now can accept a single Date argument +- documentation for changes in 1.3.1 and 1.3.2 now on website + + +v1.3.1 (2009-09-30) +------------------- + +- Important Bugfixes (please upgrade from 1.3!) + - When current date was late in the month, for long months, and prev/next buttons + were clicked in month-view, some months would be skipped/repeated + - In certain time zones, daylight savings time would cause certain days + to be misnumbered in month-view +- Subtle change in way week interval is chosen when switching from month to basicWeek/basicDay view +- Added 'allDayDefault' option +- Added 'changeView' and 'render' methods + + +v1.3 (2009-09-21) +----------------- + +- different 'views': month/basicWeek/basicDay +- more flexible 'header' system for buttons +- themable by jQuery UI themes +- resizable events (require jQuery UI resizable plugin) +- rescoped & rewritten CSS, enhanced default look +- cleaner css & rendering techniques for right-to-left +- reworked options & API to support multiple views / be consistent with jQuery UI +- refactoring of entire codebase + - broken into different JS & CSS files, assembled w/ build scripts + - new test suite for new features, uses firebug-lite +- refactored docs +- Options + - + date + - + defaultView + - + aspectRatio + - + disableResizing + - + monthNames (use instead of $.fullCalendar.monthNames) + - + monthNamesShort (use instead of $.fullCalendar.monthAbbrevs) + - + dayNames (use instead of $.fullCalendar.dayNames) + - + dayNamesShort (use instead of $.fullCalendar.dayAbbrevs) + - + theme + - + buttonText + - + buttonIcons + - x draggable -> editable/disableDragging + - x fixedWeeks -> weekMode + - x abbrevDayHeadings -> columnFormat + - x buttons/title -> header + - x eventDragOpacity -> dragOpacity + - x eventRevertDuration -> dragRevertDuration + - x weekStart -> firstDay + - x rightToLeft -> isRTL + - x showTime (use 'allDay' CalEvent property instead) +- Triggered Actions + - + eventResizeStart + - + eventResizeStop + - + eventResize + - x monthDisplay -> viewDisplay + - x resize -> windowResize + - 'eventDrop' params changed, can revert if ajax cuts out +- CalEvent Properties + - x showTime -> allDay + - x draggable -> editable + - 'end' is now INCLUSIVE when allDay=true + - 'url' now produces a real tag, more native clicking/tab behavior +- Methods: + - + renderEvent + - x prevMonth -> prev + - x nextMonth -> next + - x prevYear/nextYear -> moveDate + - x refresh -> rerenderEvents/refetchEvents + - x removeEvent -> removeEvents + - x getEventsByID -> clientEvents +- Utilities: + - 'formatDate' format string completely changed (inspired by jQuery UI datepicker + datejs) + - 'formatDates' added to support date-ranges +- Google Calendar Options: + - x draggable -> editable +- Bugfixes + - gcal extension fetched 25 results max, now fetches all + + +v1.2.1 (2009-06-29) +------------------- + +- bugfixes + - allows and corrects invalid end dates for events + - doesn't throw an error in IE while rendering when display:none + - fixed 'loading' callback when used w/ multiple addEventSource calls + - gcal className can now be an array + + +v1.2 (2009-05-31) +----------------- + +- expanded API + - 'className' CalEvent attribute + - 'source' CalEvent attribute + - dynamically get/add/remove/update events of current month + - locale improvements: change month/day name text + - better date formatting ($.fullCalendar.formatDate) + - multiple 'event sources' allowed + - dynamically add/remove event sources +- options for prevYear and nextYear buttons +- docs have been reworked (include addition of Google Calendar docs) +- changed behavior of parseDate for number strings + (now interpets as unix timestamp, not MS times) +- bugfixes + - rightToLeft month start bug + - off-by-one errors with month formatting commands + - events from previous months sticking when clicking prev/next quickly +- Google Calendar API changed to work w/ multiple event sources + - can also provide 'className' and 'draggable' options +- date utilties moved from $ to $.fullCalendar +- more documentation in source code +- minified version of fullcalendar.js +- test suit (available from svn) +- top buttons now use `' + ) + .click(function(ev) { + // don't process clicks for disabled buttons + if (!button.hasClass(tm + '-state-disabled')) { + + buttonClick(ev); + + // after the click action, if the button becomes the "active" tab, or disabled, + // it should never have a hover class, so remove it now. + if ( + button.hasClass(tm + '-state-active') || + button.hasClass(tm + '-state-disabled') + ) { + button.removeClass(tm + '-state-hover'); + } + } + }) + .mousedown(function() { + // the *down* effect (mouse pressed in). + // only on buttons that are not the "active" tab, or disabled + button + .not('.' + tm + '-state-active') + .not('.' + tm + '-state-disabled') + .addClass(tm + '-state-down'); + }) + .mouseup(function() { + // undo the *down* effect + button.removeClass(tm + '-state-down'); + }) + .hover( + function() { + // the *hover* effect. + // only on buttons that are not the "active" tab, or disabled + button + .not('.' + tm + '-state-active') + .not('.' + tm + '-state-disabled') + .addClass(tm + '-state-hover'); + }, + function() { + // undo the *hover* effect + button + .removeClass(tm + '-state-hover') + .removeClass(tm + '-state-down'); // if mouseleave happens before mouseup + } + ); + + groupChildren = groupChildren.add(button); + } + } + }); + + if (isOnlyButtons) { + groupChildren + .first().addClass(tm + '-corner-left').end() + .last().addClass(tm + '-corner-right').end(); + } + + if (groupChildren.length > 1) { + groupEl = $('
'); + if (isOnlyButtons) { + groupEl.addClass('fc-button-group'); + } + groupEl.append(groupChildren); + sectionEl.append(groupEl); + } + else { + sectionEl.append(groupChildren); // 1 or 0 children + } + }); + } + + return sectionEl; + } + + + function updateTitle(text) { + el.find('h2').text(text); + } + + + function activateButton(buttonName) { + el.find('.fc-' + buttonName + '-button') + .addClass(tm + '-state-active'); + } + + + function deactivateButton(buttonName) { + el.find('.fc-' + buttonName + '-button') + .removeClass(tm + '-state-active'); + } + + + function disableButton(buttonName) { + el.find('.fc-' + buttonName + '-button') + .attr('disabled', 'disabled') + .addClass(tm + '-state-disabled'); + } + + + function enableButton(buttonName) { + el.find('.fc-' + buttonName + '-button') + .removeAttr('disabled') + .removeClass(tm + '-state-disabled'); + } + + + function getViewsWithButtons() { + return viewsWithButtons; + } } ;; -//BUG: unselect needs to be triggered when events are dragged+dropped +FC.sourceNormalizers = []; +FC.sourceFetchers = []; -function SelectionManager() { +var ajaxDefaults = { + dataType: 'json', + cache: false +}; + +var eventGUID = 1; + + +function EventManager(options) { // assumed to be a calendar var t = this; // exports - t.select = select; - t.unselect = unselect; - t.reportSelection = reportSelection; - t.daySelectionMousedown = daySelectionMousedown; + t.isFetchNeeded = isFetchNeeded; + t.fetchEvents = fetchEvents; + t.addEventSource = addEventSource; + t.removeEventSource = removeEventSource; + t.updateEvent = updateEvent; + t.renderEvent = renderEvent; + t.removeEvents = removeEvents; + t.clientEvents = clientEvents; + t.mutateEvent = mutateEvent; + t.normalizeEventRange = normalizeEventRange; + t.normalizeEventRangeTimes = normalizeEventRangeTimes; + t.ensureVisibleEventRange = ensureVisibleEventRange; // imports - var opt = t.opt; - var trigger = t.trigger; - var defaultSelectionEnd = t.defaultSelectionEnd; - var renderSelection = t.renderSelection; - var clearSelection = t.clearSelection; + var reportEvents = t.reportEvents; // locals - var selected = false; + var stickySource = { events: [] }; + var sources = [ stickySource ]; + var rangeStart, rangeEnd; + var currentFetchID = 0; + var pendingSourceCnt = 0; + var cache = []; // holds events that have already been expanded + $.each( + (options.events ? [ options.events ] : []).concat(options.eventSources || []), + function(i, sourceInput) { + var source = buildEventSource(sourceInput); + if (source) { + sources.push(source); + } + } + ); + + + + /* Fetching + -----------------------------------------------------------------------------*/ + + + function isFetchNeeded(start, end) { + return !rangeStart || // nothing has been fetched yet? + // or, a part of the new range is outside of the old range? (after normalizing) + start.clone().stripZone() < rangeStart.clone().stripZone() || + end.clone().stripZone() > rangeEnd.clone().stripZone(); + } + + + function fetchEvents(start, end) { + rangeStart = start; + rangeEnd = end; + cache = []; + var fetchID = ++currentFetchID; + var len = sources.length; + pendingSourceCnt = len; + for (var i=0; i"); - } - if (e[0].parentNode != parent[0]) { - e.appendTo(parent); - } - usedOverlays.push(e.css(rect).show()); - return e; + return cache; // else, return all } + + + /* Event Normalization + -----------------------------------------------------------------------------*/ - function clearOverlays() { - var e; - while (e = usedOverlays.shift()) { - unusedOverlays.push(e.hide().unbind()); + + // Given a raw object with key/value properties, returns an "abstract" Event object. + // An "abstract" event is an event that, if recurring, will not have been expanded yet. + // Will return `false` when input is invalid. + // `source` is optional + function buildEventFromInput(input, source) { + var out = {}; + var start, end; + var allDay; + + if (options.eventDataTransform) { + input = options.eventDataTransform(input); + } + if (source && source.eventDataTransform) { + input = source.eventDataTransform(input); } - } + // Copy all properties over to the resulting object. + // The special-case properties will be copied over afterwards. + $.extend(out, input); -} + if (source) { + out.source = source; + } -;; + out._id = input._id || (input.id === undefined ? '_fc' + eventGUID++ : input.id + ''); -function CoordinateGrid(buildFunc) { - - var t = this; - var rows; - var cols; - - - t.build = function() { - rows = []; - cols = []; - buildFunc(rows, cols); - }; - - - t.cell = function(x, y) { - var rowCnt = rows.length; - var colCnt = cols.length; - var i, r=-1, c=-1; - for (i=0; i= rows[i][0] && y < rows[i][1]) { - r = i; - break; + if (input.className) { + if (typeof input.className == 'string') { + out.className = input.className.split(/\s+/); + } + else { // assumed to be an array + out.className = input.className; } } - for (i=0; i= cols[i][0] && x < cols[i][1]) { - c = i; - break; - } + else { + out.className = []; } - return (r>=0 && c>=0) ? { row:r, col:c } : null; - }; - - - t.rect = function(row0, col0, row1, col1, originElement) { // row1,col1 is inclusive - var origin = originElement.offset(); - return { - top: rows[row0][0] - origin.top, - left: cols[col0][0] - origin.left, - width: cols[col1][1] - cols[col0][0], - height: rows[row1][1] - rows[row0][0] - }; - }; -} + start = input.start || input.date; // "date" is an alias for "start" + end = input.end; -;; + // parse as a time (Duration) if applicable + if (isTimeString(start)) { + start = moment.duration(start); + } + if (isTimeString(end)) { + end = moment.duration(end); + } -function HoverListener(coordinateGrid) { + if (input.dow || moment.isDuration(start) || moment.isDuration(end)) { + // the event is "abstract" (recurring) so don't calculate exact start/end dates just yet + out.start = start ? moment.duration(start) : null; // will be a Duration or null + out.end = end ? moment.duration(end) : null; // will be a Duration or null + out._recurring = true; // our internal marker + } + else { - var t = this; - var bindType; - var change; - var firstCell; - var cell; - - - t.start = function(_change, ev, _bindType) { - change = _change; - firstCell = cell = null; - coordinateGrid.build(); - mouse(ev); - bindType = _bindType || 'mousemove'; - $(document).bind(bindType, mouse); - }; - - - function mouse(ev) { - _fixUIEvent(ev); // see below - var newCell = coordinateGrid.cell(ev.pageX, ev.pageY); - if (!newCell != !cell || newCell && (newCell.row != cell.row || newCell.col != cell.col)) { - if (newCell) { - if (!firstCell) { - firstCell = newCell; + if (start) { + start = t.moment(start); + if (!start.isValid()) { + return false; } - change(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col); - }else{ - change(newCell, firstCell); } - cell = newCell; + + if (end) { + end = t.moment(end); + if (!end.isValid()) { + end = null; // let defaults take over + } + } + + allDay = input.allDay; + if (allDay === undefined) { // still undefined? fallback to default + allDay = firstDefined( + source ? source.allDayDefault : undefined, + options.allDayDefault + ); + // still undefined? normalizeEventRange will calculate it + } + + assignDatesToEvent(start, end, allDay, out); + } + + return out; + } + + + // Normalizes and assigns the given dates to the given partially-formed event object. + // NOTE: mutates the given start/end moments. does not make a copy. + function assignDatesToEvent(start, end, allDay, event) { + event.start = start; + event.end = end; + event.allDay = allDay; + normalizeEventRange(event); + backupEventDates(event); + } + + + // Ensures proper values for allDay/start/end. Accepts an Event object, or a plain object with event-ish properties. + // NOTE: Will modify the given object. + function normalizeEventRange(props) { + + normalizeEventRangeTimes(props); + + if (props.end && !props.end.isAfter(props.start)) { + props.end = null; + } + + if (!props.end) { + if (options.forceEventDuration) { + props.end = t.getDefaultEventEnd(props.allDay, props.start); + } + else { + props.end = null; + } } } - - - t.stop = function() { - $(document).unbind(bindType, mouse); - return cell; + + + // Ensures the allDay property exists and the timeliness of the start/end dates are consistent + function normalizeEventRangeTimes(range) { + if (range.allDay == null) { + range.allDay = !(range.start.hasTime() || (range.end && range.end.hasTime())); + } + + if (range.allDay) { + range.start.stripTime(); + if (range.end) { + // TODO: consider nextDayThreshold here? If so, will require a lot of testing and adjustment + range.end.stripTime(); + } + } + else { + if (!range.start.hasTime()) { + range.start = t.rezoneDate(range.start); // will assign a 00:00 time + } + if (range.end && !range.end.hasTime()) { + range.end = t.rezoneDate(range.end); // will assign a 00:00 time + } + } + } + + + // If `range` is a proper range with a start and end, returns the original object. + // If missing an end, computes a new range with an end, computing it as if it were an event. + // TODO: make this a part of the event -> eventRange system + function ensureVisibleEventRange(range) { + var allDay; + + if (!range.end) { + + allDay = range.allDay; // range might be more event-ish than we think + if (allDay == null) { + allDay = !range.start.hasTime(); + } + + range = $.extend({}, range); // make a copy, copying over other misc properties + range.end = t.getDefaultEventEnd(allDay, range.start); + } + return range; + } + + + // If the given event is a recurring event, break it down into an array of individual instances. + // If not a recurring event, return an array with the single original event. + // If given a falsy input (probably because of a failed buildEventFromInput call), returns an empty array. + // HACK: can override the recurring window by providing custom rangeStart/rangeEnd (for businessHours). + function expandEvent(abstractEvent, _rangeStart, _rangeEnd) { + var events = []; + var dowHash; + var dow; + var i; + var date; + var startTime, endTime; + var start, end; + var event; + + _rangeStart = _rangeStart || rangeStart; + _rangeEnd = _rangeEnd || rangeEnd; + + if (abstractEvent) { + if (abstractEvent._recurring) { + + // make a boolean hash as to whether the event occurs on each day-of-week + if ((dow = abstractEvent.dow)) { + dowHash = {}; + for (i = 0; i < dow.length; i++) { + dowHash[dow[i]] = true; + } + } + + // iterate through every day in the current range + date = _rangeStart.clone().stripTime(); // holds the date of the current day + while (date.isBefore(_rangeEnd)) { + + if (!dowHash || dowHash[date.day()]) { // if everyday, or this particular day-of-week + + startTime = abstractEvent.start; // the stored start and end properties are times (Durations) + endTime = abstractEvent.end; // " + start = date.clone(); + end = null; + + if (startTime) { + start = start.time(startTime); + } + if (endTime) { + end = date.clone().time(endTime); + } + + event = $.extend({}, abstractEvent); // make a copy of the original + assignDatesToEvent( + start, end, + !startTime && !endTime, // allDay? + event + ); + events.push(event); + } + + date.add(1, 'days'); + } + } + else { + events.push(abstractEvent); // return the original event. will be a one-item array + } + } + + return events; + } + + + + /* Event Modification Math + -----------------------------------------------------------------------------------------*/ + + + // Modifies an event and all related events by applying the given properties. + // Special date-diffing logic is used for manipulation of dates. + // If `props` does not contain start/end dates, the updated values are assumed to be the event's current start/end. + // All date comparisons are done against the event's pristine _start and _end dates. + // Returns an object with delta information and a function to undo all operations. + // For making computations in a granularity greater than day/time, specify largeUnit. + // NOTE: The given `newProps` might be mutated for normalization purposes. + function mutateEvent(event, newProps, largeUnit) { + var miscProps = {}; + var oldProps; + var clearEnd; + var startDelta; + var endDelta; + var durationDelta; + var undoFunc; + + // diffs the dates in the appropriate way, returning a duration + function diffDates(date1, date0) { // date1 - date0 + if (largeUnit) { + return diffByUnit(date1, date0, largeUnit); + } + else if (newProps.allDay) { + return diffDay(date1, date0); + } + else { + return diffDayTime(date1, date0); + } + } + + newProps = newProps || {}; + + // normalize new date-related properties + if (!newProps.start) { + newProps.start = event.start.clone(); + } + if (newProps.end === undefined) { + newProps.end = event.end ? event.end.clone() : null; + } + if (newProps.allDay == null) { // is null or undefined? + newProps.allDay = event.allDay; + } + normalizeEventRange(newProps); + + // create normalized versions of the original props to compare against + // need a real end value, for diffing + oldProps = { + start: event._start.clone(), + end: event._end ? event._end.clone() : t.getDefaultEventEnd(event._allDay, event._start), + allDay: newProps.allDay // normalize the dates in the same regard as the new properties + }; + normalizeEventRange(oldProps); + + // need to clear the end date if explicitly changed to null + clearEnd = event._end !== null && newProps.end === null; + + // compute the delta for moving the start date + startDelta = diffDates(newProps.start, oldProps.start); + + // compute the delta for moving the end date + if (newProps.end) { + endDelta = diffDates(newProps.end, oldProps.end); + durationDelta = endDelta.subtract(startDelta); + } + else { + durationDelta = null; + } + + // gather all non-date-related properties + $.each(newProps, function(name, val) { + if (isMiscEventPropName(name)) { + if (val !== undefined) { + miscProps[name] = val; + } + } + }); + + // apply the operations to the event and all related events + undoFunc = mutateEvents( + clientEvents(event._id), // get events with this ID + clearEnd, + newProps.allDay, + startDelta, + durationDelta, + miscProps + ); + + return { + dateDelta: startDelta, + durationDelta: durationDelta, + undo: undoFunc + }; + } + + + // Modifies an array of events in the following ways (operations are in order): + // - clear the event's `end` + // - convert the event to allDay + // - add `dateDelta` to the start and end + // - add `durationDelta` to the event's duration + // - assign `miscProps` to the event + // + // Returns a function that can be called to undo all the operations. + // + // TODO: don't use so many closures. possible memory issues when lots of events with same ID. + // + function mutateEvents(events, clearEnd, allDay, dateDelta, durationDelta, miscProps) { + var isAmbigTimezone = t.getIsAmbigTimezone(); + var undoFunctions = []; + + // normalize zero-length deltas to be null + if (dateDelta && !dateDelta.valueOf()) { dateDelta = null; } + if (durationDelta && !durationDelta.valueOf()) { durationDelta = null; } + + $.each(events, function(i, event) { + var oldProps; + var newProps; + + // build an object holding all the old values, both date-related and misc. + // for the undo function. + oldProps = { + start: event.start.clone(), + end: event.end ? event.end.clone() : null, + allDay: event.allDay + }; + $.each(miscProps, function(name) { + oldProps[name] = event[name]; + }); + + // new date-related properties. work off the original date snapshot. + // ok to use references because they will be thrown away when backupEventDates is called. + newProps = { + start: event._start, + end: event._end, + allDay: allDay // normalize the dates in the same regard as the new properties + }; + normalizeEventRange(newProps); // massages start/end/allDay + + // strip or ensure the end date + if (clearEnd) { + newProps.end = null; + } + else if (durationDelta && !newProps.end) { // the duration translation requires an end date + newProps.end = t.getDefaultEventEnd(newProps.allDay, newProps.start); + } + + if (dateDelta) { + newProps.start.add(dateDelta); + if (newProps.end) { + newProps.end.add(dateDelta); + } + } + + if (durationDelta) { + newProps.end.add(durationDelta); // end already ensured above + } + + // if the dates have changed, and we know it is impossible to recompute the + // timezone offsets, strip the zone. + if ( + isAmbigTimezone && + !newProps.allDay && + (dateDelta || durationDelta) + ) { + newProps.start.stripZone(); + if (newProps.end) { + newProps.end.stripZone(); + } + } + + $.extend(event, miscProps, newProps); // copy over misc props, then date-related props + backupEventDates(event); // regenerate internal _start/_end/_allDay + + undoFunctions.push(function() { + $.extend(event, oldProps); + backupEventDates(event); // regenerate internal _start/_end/_allDay + }); + }); + + return function() { + for (var i = 0; i < undoFunctions.length; i++) { + undoFunctions[i](); + } + }; + } + + + /* Business Hours + -----------------------------------------------------------------------------------------*/ + + t.getBusinessHoursEvents = getBusinessHoursEvents; + + + // Returns an array of events as to when the business hours occur in the given view. + // Abuse of our event system :( + function getBusinessHoursEvents(wholeDay) { + var optionVal = options.businessHours; + var defaultVal = { + className: 'fc-nonbusiness', + start: '09:00', + end: '17:00', + dow: [ 1, 2, 3, 4, 5 ], // monday - friday + rendering: 'inverse-background' + }; + var view = t.getView(); + var eventInput; + + if (optionVal) { // `true` (which means "use the defaults") or an override object + eventInput = $.extend( + {}, // copy to a new object in either case + defaultVal, + typeof optionVal === 'object' ? optionVal : {} // override the defaults + ); + } + + if (eventInput) { + + // if a whole-day series is requested, clear the start/end times + if (wholeDay) { + eventInput.start = null; + eventInput.end = null; + } + + return expandEvent( + buildEventFromInput(eventInput), + view.start, + view.end + ); + } + + return []; + } + + + /* Overlapping / Constraining + -----------------------------------------------------------------------------------------*/ + + t.isEventRangeAllowed = isEventRangeAllowed; + t.isSelectionRangeAllowed = isSelectionRangeAllowed; + t.isExternalDropRangeAllowed = isExternalDropRangeAllowed; + + + function isEventRangeAllowed(range, event) { + var source = event.source || {}; + var constraint = firstDefined( + event.constraint, + source.constraint, + options.eventConstraint + ); + var overlap = firstDefined( + event.overlap, + source.overlap, + options.eventOverlap + ); + + range = ensureVisibleEventRange(range); // ensure a proper range with an end for isRangeAllowed + + return isRangeAllowed(range, constraint, overlap, event); + } + + + function isSelectionRangeAllowed(range) { + return isRangeAllowed(range, options.selectConstraint, options.selectOverlap); + } + + + // when `eventProps` is defined, consider this an event. + // `eventProps` can contain misc non-date-related info about the event. + function isExternalDropRangeAllowed(range, eventProps) { + var eventInput; + var event; + + // note: very similar logic is in View's reportExternalDrop + if (eventProps) { + eventInput = $.extend({}, eventProps, range); + event = expandEvent(buildEventFromInput(eventInput))[0]; + } + + if (event) { + return isEventRangeAllowed(range, event); + } + else { // treat it as a selection + + range = ensureVisibleEventRange(range); // ensure a proper range with an end for isSelectionRangeAllowed + + return isSelectionRangeAllowed(range); + } + } + + + // Returns true if the given range (caused by an event drop/resize or a selection) is allowed to exist + // according to the constraint/overlap settings. + // `event` is not required if checking a selection. + function isRangeAllowed(range, constraint, overlap, event) { + var constraintEvents; + var anyContainment; + var peerEvents; + var i, peerEvent; + var peerOverlap; + + // normalize. fyi, we're normalizing in too many places :( + range = $.extend({}, range); // copy all properties in case there are misc non-date properties + range.start = range.start.clone().stripZone(); + range.end = range.end.clone().stripZone(); + + // the range must be fully contained by at least one of produced constraint events + if (constraint != null) { + + // not treated as an event! intermediate data structure + // TODO: use ranges in the future + constraintEvents = constraintToEvents(constraint); + + anyContainment = false; + for (i = 0; i < constraintEvents.length; i++) { + if (eventContainsRange(constraintEvents[i], range)) { + anyContainment = true; + break; + } + } + + if (!anyContainment) { + return false; + } + } + + peerEvents = t.getPeerEvents(event, range); + + for (i = 0; i < peerEvents.length; i++) { + peerEvent = peerEvents[i]; + + // there needs to be an actual intersection before disallowing anything + if (eventIntersectsRange(peerEvent, range)) { + + // evaluate overlap for the given range and short-circuit if necessary + if (overlap === false) { + return false; + } + // if the event's overlap is a test function, pass the peer event in question as the first param + else if (typeof overlap === 'function' && !overlap(peerEvent, event)) { + return false; + } + + // if we are computing if the given range is allowable for an event, consider the other event's + // EventObject-specific or Source-specific `overlap` property + if (event) { + peerOverlap = firstDefined( + peerEvent.overlap, + (peerEvent.source || {}).overlap + // we already considered the global `eventOverlap` + ); + if (peerOverlap === false) { + return false; + } + // if the peer event's overlap is a test function, pass the subject event as the first param + if (typeof peerOverlap === 'function' && !peerOverlap(event, peerEvent)) { + return false; + } + } + } + } + + return true; + } + + + // Given an event input from the API, produces an array of event objects. Possible event inputs: + // 'businessHours' + // An event ID (number or string) + // An object with specific start/end dates or a recurring event (like what businessHours accepts) + function constraintToEvents(constraintInput) { + + if (constraintInput === 'businessHours') { + return getBusinessHoursEvents(); + } + + if (typeof constraintInput === 'object') { + return expandEvent(buildEventFromInput(constraintInput)); + } + + return clientEvents(constraintInput); // probably an ID + } + + + // Does the event's date range fully contain the given range? + // start/end already assumed to have stripped zones :( + function eventContainsRange(event, range) { + var eventStart = event.start.clone().stripZone(); + var eventEnd = t.getEventEnd(event).stripZone(); + + return range.start >= eventStart && range.end <= eventEnd; + } + + + // Does the event's date range intersect with the given range? + // start/end already assumed to have stripped zones :( + function eventIntersectsRange(event, range) { + var eventStart = event.start.clone().stripZone(); + var eventEnd = t.getEventEnd(event).stripZone(); + + return range.start < eventEnd && range.end > eventStart; + } + + + t.getEventCache = function() { + return cache; }; - - + } +// Returns a list of events that the given event should be compared against when being considered for a move to +// the specified range. Attached to the Calendar's prototype because EventManager is a mixin for a Calendar. +Calendar.prototype.getPeerEvents = function(event, range) { + var cache = this.getEventCache(); + var peerEvents = []; + var i, otherEvent; -// this fix was only necessary for jQuery UI 1.8.16 (and jQuery 1.7 or 1.7.1) -// upgrading to jQuery UI 1.8.17 (and using either jQuery 1.7 or 1.7.1) fixed the problem -// but keep this in here for 1.8.16 users -// and maybe remove it down the line - -function _fixUIEvent(event) { // for issue 1168 - if (event.pageX === undefined) { - event.pageX = event.originalEvent.pageX; - event.pageY = event.originalEvent.pageY; + for (i = 0; i < cache.length; i++) { + otherEvent = cache[i]; + if ( + !event || + event._id !== otherEvent._id // don't compare the event to itself or other related [repeating] events + ) { + peerEvents.push(otherEvent); + } } -} -;; -function HorizontalPositionCache(getElement) { + return peerEvents; +}; - var t = this, - elements = {}, - lefts = {}, - rights = {}; - - function e(i) { - return elements[i] = elements[i] || getElement(i); - } - - t.left = function(i) { - return lefts[i] = lefts[i] === undefined ? e(i).position().left : lefts[i]; - }; - - t.right = function(i) { - return rights[i] = rights[i] === undefined ? t.left(i) + e(i).width() : rights[i]; - }; - - t.clear = function() { - elements = {}; - lefts = {}; - rights = {}; - }; - + +// updates the "backup" properties, which are preserved in order to compute diffs later on. +function backupEventDates(event) { + event._allDay = event.allDay; + event._start = event.start.clone(); + event._end = event.end ? event.end.clone() : null; } ;; -})(jQuery); \ No newline at end of file +/* An abstract class for the "basic" views, as well as month view. Renders one or more rows of day cells. +----------------------------------------------------------------------------------------------------------------------*/ +// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. +// It is responsible for managing width/height. + +var BasicView = FC.BasicView = View.extend({ + + dayGridClass: DayGrid, // class the dayGrid will be instantiated from (overridable by subclasses) + dayGrid: null, // the main subcomponent that does most of the heavy lifting + + dayNumbersVisible: false, // display day numbers on each day cell? + weekNumbersVisible: false, // display week numbers along the side? + + weekNumberWidth: null, // width of all the week-number cells running down the side + + headContainerEl: null, // div that hold's the dayGrid's rendered date header + headRowEl: null, // the fake row element of the day-of-week header + + + initialize: function() { + this.dayGrid = this.instantiateDayGrid(); + }, + + + // Generates the DayGrid object this view needs. Draws from this.dayGridClass + instantiateDayGrid: function() { + // generate a subclass on the fly with BasicView-specific behavior + // TODO: cache this subclass + var subclass = this.dayGridClass.extend(basicDayGridMethods); + + return new subclass(this); + }, + + + // Sets the display range and computes all necessary dates + setRange: function(range) { + View.prototype.setRange.call(this, range); // call the super-method + + this.dayGrid.breakOnWeeks = /year|month|week/.test(this.intervalUnit); // do before setRange + this.dayGrid.setRange(range); + }, + + + // Compute the value to feed into setRange. Overrides superclass. + computeRange: function(date) { + var range = View.prototype.computeRange.call(this, date); // get value from the super-method + + // year and month views should be aligned with weeks. this is already done for week + if (/year|month/.test(range.intervalUnit)) { + range.start.startOf('week'); + range.start = this.skipHiddenDays(range.start); + + // make end-of-week if not already + if (range.end.weekday()) { + range.end.add(1, 'week').startOf('week'); + range.end = this.skipHiddenDays(range.end, -1, true); // exclusively move backwards + } + } + + return range; + }, + + + // Renders the view into `this.el`, which should already be assigned + renderDates: function() { + + this.dayNumbersVisible = this.dayGrid.rowCnt > 1; // TODO: make grid responsible + this.weekNumbersVisible = this.opt('weekNumbers'); + this.dayGrid.numbersVisible = this.dayNumbersVisible || this.weekNumbersVisible; + + this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml()); + this.renderHead(); + + this.scrollerEl = this.el.find('.fc-day-grid-container'); + + this.dayGrid.setElement(this.el.find('.fc-day-grid')); + this.dayGrid.renderDates(this.hasRigidRows()); + }, + + + // render the day-of-week headers + renderHead: function() { + this.headContainerEl = + this.el.find('.fc-head-container') + .html(this.dayGrid.renderHeadHtml()); + this.headRowEl = this.headContainerEl.find('.fc-row'); + }, + + + // Unrenders the content of the view. Since we haven't separated skeleton rendering from date rendering, + // always completely kill the dayGrid's rendering. + unrenderDates: function() { + this.dayGrid.unrenderDates(); + this.dayGrid.removeElement(); + }, + + + renderBusinessHours: function() { + this.dayGrid.renderBusinessHours(); + }, + + + // Builds the HTML skeleton for the view. + // The day-grid component will render inside of a container defined by this HTML. + renderSkeletonHtml: function() { + return '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
' + + '
' + + '
' + + '
' + + '
'; + }, + + + // Generates an HTML attribute string for setting the width of the week number column, if it is known + weekNumberStyleAttr: function() { + if (this.weekNumberWidth !== null) { + return 'style="width:' + this.weekNumberWidth + 'px"'; + } + return ''; + }, + + + // Determines whether each row should have a constant height + hasRigidRows: function() { + var eventLimit = this.opt('eventLimit'); + return eventLimit && typeof eventLimit !== 'number'; + }, + + + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ + + + // Refreshes the horizontal dimensions of the view + updateWidth: function() { + if (this.weekNumbersVisible) { + // Make sure all week number cells running down the side have the same width. + // Record the width for cells created later. + this.weekNumberWidth = matchCellWidths( + this.el.find('.fc-week-number') + ); + } + }, + + + // Adjusts the vertical dimensions of the view to the specified values + setHeight: function(totalHeight, isAuto) { + var eventLimit = this.opt('eventLimit'); + var scrollerHeight; + + // reset all heights to be natural + unsetScroller(this.scrollerEl); + uncompensateScroll(this.headRowEl); + + this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed + + // is the event limit a constant level number? + if (eventLimit && typeof eventLimit === 'number') { + this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after + } + + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.setGridHeight(scrollerHeight, isAuto); + + // is the event limit dynamically calculated? + if (eventLimit && typeof eventLimit !== 'number') { + this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set + } + + if (!isAuto && setPotentialScroller(this.scrollerEl, scrollerHeight)) { // using scrollbars? + + compensateScroll(this.headRowEl, getScrollbarWidths(this.scrollerEl)); + + // doing the scrollbar compensation might have created text overflow which created more height. redo + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.scrollerEl.height(scrollerHeight); + } + }, + + + // Sets the height of just the DayGrid component in this view + setGridHeight: function(height, isAuto) { + if (isAuto) { + undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding + } + else { + distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows + } + }, + + + /* Hit Areas + ------------------------------------------------------------------------------------------------------------------*/ + // forward all hit-related method calls to dayGrid + + + prepareHits: function() { + this.dayGrid.prepareHits(); + }, + + + releaseHits: function() { + this.dayGrid.releaseHits(); + }, + + + queryHit: function(left, top) { + return this.dayGrid.queryHit(left, top); + }, + + + getHitSpan: function(hit) { + return this.dayGrid.getHitSpan(hit); + }, + + + getHitEl: function(hit) { + return this.dayGrid.getHitEl(hit); + }, + + + /* Events + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders the given events onto the view and populates the segments array + renderEvents: function(events) { + this.dayGrid.renderEvents(events); + + this.updateHeight(); // must compensate for events that overflow the row + }, + + + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.dayGrid.getEventSegs(); + }, + + + // Unrenders all event elements and clears internal segment data + unrenderEvents: function() { + this.dayGrid.unrenderEvents(); + + // we DON'T need to call updateHeight() because: + // A) a renderEvents() call always happens after this, which will eventually call updateHeight() + // B) in IE8, this causes a flash whenever events are rerendered + }, + + + /* Dragging (for both events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + return this.dayGrid.renderDrag(dropLocation, seg); + }, + + + unrenderDrag: function() { + this.dayGrid.unrenderDrag(); + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection + renderSelection: function(range) { + this.dayGrid.renderSelection(range); + }, + + + // Unrenders a visual indications of a selection + unrenderSelection: function() { + this.dayGrid.unrenderSelection(); + } + +}); + + +// Methods that will customize the rendering behavior of the BasicView's dayGrid +var basicDayGridMethods = { + + + // Generates the HTML that will go before the day-of week header cells + renderHeadIntroHtml: function() { + var view = this.view; + + if (view.weekNumbersVisible) { + return '' + + '' + + '' + // needed for matchCellWidths + htmlEscape(view.opt('weekNumberTitle')) + + '' + + ''; + } + + return ''; + }, + + + // Generates the HTML that will go before content-skeleton cells that display the day/week numbers + renderNumberIntroHtml: function(row) { + var view = this.view; + + if (view.weekNumbersVisible) { + return '' + + '' + + '' + // needed for matchCellWidths + this.getCellDate(row, 0).format('w') + + '' + + ''; + } + + return ''; + }, + + + // Generates the HTML that goes before the day bg cells for each day-row + renderBgIntroHtml: function() { + var view = this.view; + + if (view.weekNumbersVisible) { + return ''; + } + + return ''; + }, + + + // Generates the HTML that goes before every other type of row generated by DayGrid. + // Affects helper-skeleton and highlight-skeleton rows. + renderIntroHtml: function() { + var view = this.view; + + if (view.weekNumbersVisible) { + return ''; + } + + return ''; + } + +}; + +;; + +/* A month view with day cells running in rows (one-per-week) and columns +----------------------------------------------------------------------------------------------------------------------*/ + +var MonthView = FC.MonthView = BasicView.extend({ + + // Produces information about what range to display + computeRange: function(date) { + var range = BasicView.prototype.computeRange.call(this, date); // get value from super-method + var rowCnt; + + // ensure 6 weeks + if (this.isFixedWeeks()) { + rowCnt = Math.ceil(range.end.diff(range.start, 'weeks', true)); // could be partial weeks due to hiddenDays + range.end.add(6 - rowCnt, 'weeks'); + } + + return range; + }, + + + // Overrides the default BasicView behavior to have special multi-week auto-height logic + setGridHeight: function(height, isAuto) { + + isAuto = isAuto || this.opt('weekMode') === 'variable'; // LEGACY: weekMode is deprecated + + // if auto, make the height of each row the height that it would be if there were 6 weeks + if (isAuto) { + height *= this.rowCnt / 6; + } + + distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows + }, + + + isFixedWeeks: function() { + var weekMode = this.opt('weekMode'); // LEGACY: weekMode is deprecated + if (weekMode) { + return weekMode === 'fixed'; // if any other type of weekMode, assume NOT fixed + } + + return this.opt('fixedWeekCount'); + } + +}); + +;; + +fcViews.basic = { + 'class': BasicView +}; + +fcViews.basicDay = { + type: 'basic', + duration: { days: 1 } +}; + +fcViews.basicWeek = { + type: 'basic', + duration: { weeks: 1 } +}; + +fcViews.month = { + 'class': MonthView, + duration: { months: 1 }, // important for prev/next + defaults: { + fixedWeekCount: true + } +}; +;; + +/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically. +----------------------------------------------------------------------------------------------------------------------*/ +// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on). +// Responsible for managing width/height. + +var AgendaView = FC.AgendaView = View.extend({ + + timeGridClass: TimeGrid, // class used to instantiate the timeGrid. subclasses can override + timeGrid: null, // the main time-grid subcomponent of this view + + dayGridClass: DayGrid, // class used to instantiate the dayGrid. subclasses can override + dayGrid: null, // the "all-day" subcomponent. if all-day is turned off, this will be null + + axisWidth: null, // the width of the time axis running down the side + + headContainerEl: null, // div that hold's the timeGrid's rendered date header + noScrollRowEls: null, // set of fake row elements that must compensate when scrollerEl has scrollbars + + // when the time-grid isn't tall enough to occupy the given height, we render an
underneath + bottomRuleEl: null, + bottomRuleHeight: null, + + + initialize: function() { + this.timeGrid = this.instantiateTimeGrid(); + + if (this.opt('allDaySlot')) { // should we display the "all-day" area? + this.dayGrid = this.instantiateDayGrid(); // the all-day subcomponent of this view + } + }, + + + // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass + instantiateTimeGrid: function() { + var subclass = this.timeGridClass.extend(agendaTimeGridMethods); + + return new subclass(this); + }, + + + // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass + instantiateDayGrid: function() { + var subclass = this.dayGridClass.extend(agendaDayGridMethods); + + return new subclass(this); + }, + + + /* Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Sets the display range and computes all necessary dates + setRange: function(range) { + View.prototype.setRange.call(this, range); // call the super-method + + this.timeGrid.setRange(range); + if (this.dayGrid) { + this.dayGrid.setRange(range); + } + }, + + + // Renders the view into `this.el`, which has already been assigned + renderDates: function() { + + this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml()); + this.renderHead(); + + // the element that wraps the time-grid that will probably scroll + this.scrollerEl = this.el.find('.fc-time-grid-container'); + + this.timeGrid.setElement(this.el.find('.fc-time-grid')); + this.timeGrid.renderDates(); + + // the
that sometimes displays under the time-grid + this.bottomRuleEl = $('
') + .appendTo(this.timeGrid.el); // inject it into the time-grid + + if (this.dayGrid) { + this.dayGrid.setElement(this.el.find('.fc-day-grid')); + this.dayGrid.renderDates(); + + // have the day-grid extend it's coordinate area over the
dividing the two grids + this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight(); + } + + this.noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)'); // fake rows not within the scroller + }, + + + // render the day-of-week headers + renderHead: function() { + this.headContainerEl = + this.el.find('.fc-head-container') + .html(this.timeGrid.renderHeadHtml()); + }, + + + // Unrenders the content of the view. Since we haven't separated skeleton rendering from date rendering, + // always completely kill each grid's rendering. + unrenderDates: function() { + this.timeGrid.unrenderDates(); + this.timeGrid.removeElement(); + + if (this.dayGrid) { + this.dayGrid.unrenderDates(); + this.dayGrid.removeElement(); + } + }, + + + renderBusinessHours: function() { + this.timeGrid.renderBusinessHours(); + + if (this.dayGrid) { + this.dayGrid.renderBusinessHours(); + } + }, + + + // Builds the HTML skeleton for the view. + // The day-grid and time-grid components will render inside containers defined by this HTML. + renderSkeletonHtml: function() { + return '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
' + + (this.dayGrid ? + '
' + + '
' : + '' + ) + + '
' + + '
' + + '
' + + '
'; + }, + + + // Generates an HTML attribute string for setting the width of the axis, if it is known + axisStyleAttr: function() { + if (this.axisWidth !== null) { + return 'style="width:' + this.axisWidth + 'px"'; + } + return ''; + }, + + + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ + + + updateSize: function(isResize) { + this.timeGrid.updateSize(isResize); + + View.prototype.updateSize.call(this, isResize); // call the super-method + }, + + + // Refreshes the horizontal dimensions of the view + updateWidth: function() { + // make all axis cells line up, and record the width so newly created axis cells will have it + this.axisWidth = matchCellWidths(this.el.find('.fc-axis')); + }, + + + // Adjusts the vertical dimensions of the view to the specified values + setHeight: function(totalHeight, isAuto) { + var eventLimit; + var scrollerHeight; + + if (this.bottomRuleHeight === null) { + // calculate the height of the rule the very first time + this.bottomRuleHeight = this.bottomRuleEl.outerHeight(); + } + this.bottomRuleEl.hide(); // .show() will be called later if this
is necessary + + // reset all dimensions back to the original state + this.scrollerEl.css('overflow', ''); + unsetScroller(this.scrollerEl); + uncompensateScroll(this.noScrollRowEls); + + // limit number of events in the all-day area + if (this.dayGrid) { + this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed + + eventLimit = this.opt('eventLimit'); + if (eventLimit && typeof eventLimit !== 'number') { + eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure "auto" goes to a real number + } + if (eventLimit) { + this.dayGrid.limitRows(eventLimit); + } + } + + if (!isAuto) { // should we force dimensions of the scroll container, or let the contents be natural height? + + scrollerHeight = this.computeScrollerHeight(totalHeight); + if (setPotentialScroller(this.scrollerEl, scrollerHeight)) { // using scrollbars? + + // make the all-day and header rows lines up + compensateScroll(this.noScrollRowEls, getScrollbarWidths(this.scrollerEl)); + + // the scrollbar compensation might have changed text flow, which might affect height, so recalculate + // and reapply the desired height to the scroller. + scrollerHeight = this.computeScrollerHeight(totalHeight); + this.scrollerEl.height(scrollerHeight); + } + else { // no scrollbars + // still, force a height and display the bottom rule (marks the end of day) + this.scrollerEl.height(scrollerHeight).css('overflow', 'hidden'); // in case
goes outside + this.bottomRuleEl.show(); + } + } + }, + + + // Computes the initial pre-configured scroll state prior to allowing the user to change it + computeInitialScroll: function() { + var scrollTime = moment.duration(this.opt('scrollTime')); + var top = this.timeGrid.computeTimeTop(scrollTime); + + // zoom can give weird floating-point values. rather scroll a little bit further + top = Math.ceil(top); + + if (top) { + top++; // to overcome top border that slots beyond the first have. looks better + } + + return top; + }, + + + /* Hit Areas + ------------------------------------------------------------------------------------------------------------------*/ + // forward all hit-related method calls to the grids (dayGrid might not be defined) + + + prepareHits: function() { + this.timeGrid.prepareHits(); + if (this.dayGrid) { + this.dayGrid.prepareHits(); + } + }, + + + releaseHits: function() { + this.timeGrid.releaseHits(); + if (this.dayGrid) { + this.dayGrid.releaseHits(); + } + }, + + + queryHit: function(left, top) { + var hit = this.timeGrid.queryHit(left, top); + + if (!hit && this.dayGrid) { + hit = this.dayGrid.queryHit(left, top); + } + + return hit; + }, + + + getHitSpan: function(hit) { + // TODO: hit.component is set as a hack to identify where the hit came from + return hit.component.getHitSpan(hit); + }, + + + getHitEl: function(hit) { + // TODO: hit.component is set as a hack to identify where the hit came from + return hit.component.getHitEl(hit); + }, + + + /* Events + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders events onto the view and populates the View's segment array + renderEvents: function(events) { + var dayEvents = []; + var timedEvents = []; + var daySegs = []; + var timedSegs; + var i; + + // separate the events into all-day and timed + for (i = 0; i < events.length; i++) { + if (events[i].allDay) { + dayEvents.push(events[i]); + } + else { + timedEvents.push(events[i]); + } + } + + // render the events in the subcomponents + timedSegs = this.timeGrid.renderEvents(timedEvents); + if (this.dayGrid) { + daySegs = this.dayGrid.renderEvents(dayEvents); + } + + // the all-day area is flexible and might have a lot of events, so shift the height + this.updateHeight(); + }, + + + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.timeGrid.getEventSegs().concat( + this.dayGrid ? this.dayGrid.getEventSegs() : [] + ); + }, + + + // Unrenders all event elements and clears internal segment data + unrenderEvents: function() { + + // unrender the events in the subcomponents + this.timeGrid.unrenderEvents(); + if (this.dayGrid) { + this.dayGrid.unrenderEvents(); + } + + // we DON'T need to call updateHeight() because: + // A) a renderEvents() call always happens after this, which will eventually call updateHeight() + // B) in IE8, this causes a flash whenever events are rerendered + }, + + + /* Dragging (for events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + if (dropLocation.start.hasTime()) { + return this.timeGrid.renderDrag(dropLocation, seg); + } + else if (this.dayGrid) { + return this.dayGrid.renderDrag(dropLocation, seg); + } + }, + + + unrenderDrag: function() { + this.timeGrid.unrenderDrag(); + if (this.dayGrid) { + this.dayGrid.unrenderDrag(); + } + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection + renderSelection: function(range) { + if (range.start.hasTime() || range.end.hasTime()) { + this.timeGrid.renderSelection(range); + } + else if (this.dayGrid) { + this.dayGrid.renderSelection(range); + } + }, + + + // Unrenders a visual indications of a selection + unrenderSelection: function() { + this.timeGrid.unrenderSelection(); + if (this.dayGrid) { + this.dayGrid.unrenderSelection(); + } + } + +}); + + +// Methods that will customize the rendering behavior of the AgendaView's timeGrid +var agendaTimeGridMethods = { + + + // Generates the HTML that will go before the day-of week header cells + renderHeadIntroHtml: function() { + var view = this.view; + var weekText; + + if (view.opt('weekNumbers')) { + weekText = this.start.format(view.opt('smallWeekFormat')); + + return '' + + '' + + '' + // needed for matchCellWidths + htmlEscape(weekText) + + '' + + ''; + } + else { + return ''; + } + }, + + + // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column. + renderBgIntroHtml: function() { + var view = this.view; + + return ''; + }, + + + // Generates the HTML that goes before all other types of cells. + // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. + renderIntroHtml: function() { + var view = this.view; + + return ''; + } + +}; + + +// Methods that will customize the rendering behavior of the AgendaView's dayGrid +var agendaDayGridMethods = { + + + // Generates the HTML that goes before the all-day cells + renderBgIntroHtml: function() { + var view = this.view; + + return '' + + '' + + '' + // needed for matchCellWidths + (view.opt('allDayHtml') || htmlEscape(view.opt('allDayText'))) + + '' + + ''; + }, + + + // Generates the HTML that goes before all other types of cells. + // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. + renderIntroHtml: function() { + var view = this.view; + + return ''; + } + +}; + +;; + +var AGENDA_ALL_DAY_EVENT_LIMIT = 5; + +// potential nice values for the slot-duration and interval-duration +// from largest to smallest +var AGENDA_STOCK_SUB_DURATIONS = [ + { hours: 1 }, + { minutes: 30 }, + { minutes: 15 }, + { seconds: 30 }, + { seconds: 15 } +]; + +fcViews.agenda = { + 'class': AgendaView, + defaults: { + allDaySlot: true, + allDayText: 'all-day', + slotDuration: '00:30:00', + minTime: '00:00:00', + maxTime: '24:00:00', + slotEventOverlap: true // a bad name. confused with overlap/constraint system + } +}; + +fcViews.agendaDay = { + type: 'agenda', + duration: { days: 1 } +}; + +fcViews.agendaWeek = { + type: 'agenda', + duration: { weeks: 1 } +}; +;; + +return FC; // export for Node/CommonJS +}); \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.min.css b/library/fullcalendar/fullcalendar.min.css new file mode 100644 index 000000000..f9c93ef7c --- /dev/null +++ b/library/fullcalendar/fullcalendar.min.css @@ -0,0 +1,5 @@ +/*! + * FullCalendar v2.5.0-beta Stylesheet + * Docs & License: http://fullcalendar.io/ + * (c) 2015 Adam Shaw + */.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-unthemed .fc-divider,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed .fc-today{background:#fcf8e3}.fc-highlight{background:#bce8f1;opacity:.3;filter:alpha(opacity=30)}.fc-bgevent{background:#8fdf82;opacity:.3;filter:alpha(opacity=30)}.fc-nonbusiness{background:#d7d7d7}.fc-icon{display:inline-block;width:1em;height:1em;line-height:1em;font-size:1em;text-align:center;overflow:hidden;font-family:"Courier New",Courier,monospace;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative;margin:0 -1em}.fc-icon-left-single-arrow:after{content:"\02039";font-weight:700;font-size:200%;top:-7%;left:3%}.fc-icon-right-single-arrow:after{content:"\0203A";font-weight:700;font-size:200%;top:-7%;left:-3%}.fc-icon-left-double-arrow:after{content:"\000AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\000BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%;left:-2%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%;left:2%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\000D7";font-size:200%;top:6%}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-default{background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.fc-button-group{display:inline-block}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{cursor:pointer}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc-bg{bottom:0}.fc-bg table{height:100%}.fc table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent;border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{overflow-y:scroll;overflow-x:hidden}.fc-scroller>*{position:relative;width:100%;overflow:hidden}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad;background-color:#3a87ad;font-weight:400}.fc-event,.fc-event:hover,.ui-widget .fc-event{color:#fff;text-decoration:none}.fc-event.fc-draggable,.fc-event[href]{cursor:pointer}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25;filter:alpha(opacity=25)}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:3}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-h-event .fc-resizer{top:-1px;bottom:-1px;left:-1px;right:-1px;width:5px}.fc-ltr .fc-h-event .fc-start-resizer,.fc-ltr .fc-h-event .fc-start-resizer:after,.fc-ltr .fc-h-event .fc-start-resizer:before,.fc-rtl .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-end-resizer:after,.fc-rtl .fc-h-event .fc-end-resizer:before{right:auto;cursor:w-resize}.fc-ltr .fc-h-event .fc-end-resizer,.fc-ltr .fc-h-event .fc-end-resizer:after,.fc-ltr .fc-h-event .fc-end-resizer:before,.fc-rtl .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-start-resizer:after,.fc-rtl .fc-h-event .fc-start-resizer:before{left:auto;cursor:e-resize}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-day-grid-event .fc-resizer{left:-3px;right:-3px;width:7px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-toolbar{text-align:center;margin-bottom:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:0 2px}.fc-basic-view td.fc-day-number,.fc-basic-view td.fc-week-number span{padding-top:2px;padding-bottom:2px}.fc-basic-view .fc-week-number{text-align:center}.fc-basic-view .fc-week-number span{display:inline-block;min-width:1.25em}.fc-ltr .fc-basic-view .fc-day-number{text-align:right}.fc-rtl .fc-basic-view .fc-day-number{text-align:left}.fc-day-number.fc-other-month{opacity:.3;filter:alpha(opacity=30)}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-bgevent-skeleton,.fc-time-grid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-time-grid .fc-bgevent-skeleton{z-index:3}.fc-time-grid .fc-highlight-skeleton{z-index:4}.fc-time-grid .fc-content-skeleton{z-index:5}.fc-time-grid .fc-helper-skeleton{z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-time-grid .fc-highlight-container{position:relative}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-time-grid .fc-bgevent-container,.fc-time-grid .fc-event-container{position:relative}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\000A0-\000A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event .fc-resizer:after{content:"="} \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.min.js b/library/fullcalendar/fullcalendar.min.js index 2f07418e3..b152237bd 100644 --- a/library/fullcalendar/fullcalendar.min.js +++ b/library/fullcalendar/fullcalendar.min.js @@ -1,7 +1,9 @@ /*! - * FullCalendar v1.6.0 - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v2.5.0-beta + * Docs & License: http://fullcalendar.io/ + * (c) 2015 Adam Shaw */ -(function(t,e){function n(e){t.extend(!0,ye,e)}function r(n,r,l){function u(t){G?(S(),C(),R(),b(t)):f()}function f(){K=r.theme?"ui":"fc",n.addClass("fc"),r.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),r.theme&&n.addClass("ui-widget"),G=t("
").prependTo(n),$=new a(Z,r),Q=$.render(),Q&&n.prepend(Q),y(r.defaultView),t(window).resize(x),m()||v()}function v(){setTimeout(function(){!te.start&&m()&&b()},0)}function h(){t(window).unbind("resize",x),$.destroy(),G.remove(),n.removeClass("fc fc-rtl ui-widget")}function g(){return 0!==se.offsetWidth}function m(){return 0!==t("body")[0].offsetWidth}function y(e){if(!te||e!=te.name){ue++,W();var n,r=te;r?((r.beforeHide||I)(),q(G,G.height()),r.element.hide()):q(G,1),G.css("overflow","hidden"),te=ce[e],te?te.element.show():te=ce[e]=new De[e](n=re=t("
").appendTo(G),Z),r&&$.deactivateButton(r.name),$.activateButton(e),b(),G.css("overflow",""),r&&q(G,1),n||(te.afterShow||I)(),ue--}}function b(t){if(g()){ue++,W(),ne===e&&S();var r=!1;!te.start||t||te.start>fe||fe>=te.end?(te.render(fe,t||0),E(!0),r=!0):te.sizeDirty?(te.clearEvents(),E(),r=!0):te.eventsDirty&&(te.clearEvents(),r=!0),te.sizeDirty=!1,te.eventsDirty=!1,T(r),ee=n.outerWidth(),$.updateTitle(te.title);var a=new Date;a>=te.start&&te.end>a?$.disableButton("today"):$.enableButton("today"),ue--,te.trigger("viewDisplay",se)}}function M(){C(),g()&&(S(),E(),W(),te.clearEvents(),te.renderEvents(de),te.sizeDirty=!1)}function C(){t.each(ce,function(t,e){e.sizeDirty=!0})}function S(){ne=r.contentHeight?r.contentHeight:r.height?r.height-(Q?Q.height():0)-L(G):Math.round(G.width()/Math.max(r.aspectRatio,.5))}function E(t){ue++,te.setHeight(ne,t),re&&(re.css("position","relative"),re=null),te.setWidth(G.width(),t),ue--}function x(){if(!ue)if(te.start){var t=++le;setTimeout(function(){t==le&&!ue&&g()&&ee!=(ee=n.outerWidth())&&(ue++,M(),te.trigger("windowResize",se),ue--)},200)}else v()}function T(t){!r.lazyFetching||oe(te.visStart,te.visEnd)?k():t&&F()}function k(){ie(te.visStart,te.visEnd)}function H(t){de=t,F()}function z(t){F(t)}function F(t){R(),g()&&(te.clearEvents(),te.renderEvents(de,t),te.eventsDirty=!1)}function R(){t.each(ce,function(t,e){e.eventsDirty=!0})}function N(t,n,r){te.select(t,n,r===e?!0:r)}function W(){te&&te.unselect()}function A(){b(-1)}function _(){b(1)}function O(){i(fe,-1),b()}function B(){i(fe,1),b()}function Y(){fe=new Date,b()}function j(t,e,n){t instanceof Date?fe=d(t):p(fe,t,e,n),b()}function P(t,n,r){t!==e&&i(fe,t),n!==e&&s(fe,n),r!==e&&c(fe,r),b()}function J(){return d(fe)}function V(){return te}function X(t,n){return n===e?r[t]:(("height"==t||"contentHeight"==t||"aspectRatio"==t)&&(r[t]=n,M()),e)}function U(t,n){return r[t]?r[t].apply(n||se,Array.prototype.slice.call(arguments,2)):e}var Z=this;Z.options=r,Z.render=u,Z.destroy=h,Z.refetchEvents=k,Z.reportEvents=H,Z.reportEventChange=z,Z.rerenderEvents=F,Z.changeView=y,Z.select=N,Z.unselect=W,Z.prev=A,Z.next=_,Z.prevYear=O,Z.nextYear=B,Z.today=Y,Z.gotoDate=j,Z.incrementDate=P,Z.formatDate=function(t,e){return w(t,e,r)},Z.formatDates=function(t,e,n){return D(t,e,n,r)},Z.getDate=J,Z.getView=V,Z.option=X,Z.trigger=U,o.call(Z,r,l);var $,Q,G,K,te,ee,ne,re,ae,oe=Z.isFetchNeeded,ie=Z.fetchEvents,se=n[0],ce={},le=0,ue=0,fe=new Date,de=[];p(fe,r.year,r.month,r.date),r.droppable&&t(document).bind("dragstart",function(e,n){var a=e.target,o=t(a);if(!o.parents(".fc").length){var i=r.dropAccept;(t.isFunction(i)?i.call(a,o):o.is(i))&&(ae=a,te.dragStart(ae,e,n))}}).bind("dragstop",function(t,e){ae&&(te.dragStop(ae,t,e),ae=null)})}function a(n,r){function a(){v=r.theme?"ui":"fc";var n=r.header;return n?h=t("").append(t("").append(i("left")).append(i("center")).append(i("right"))):e}function o(){h.remove()}function i(e){var a=t(""+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+""},renderHeadDateCellsHtml:function(){var a,b,c=[];for(a=0;a1?' colspan="'+b+'"':"")+">"+Y(a.format(this.colHeadFormat))+""},renderBgTrHtml:function(a){return""+(this.isRTL?"":this.renderBgIntroHtml(a))+this.renderBgCellsHtml(a)+(this.isRTL?this.renderBgIntroHtml(a):"")+""},renderBgIntroHtml:function(a){return this.renderIntroHtml()},renderBgCellsHtml:function(a){var b,c,d=[];for(b=0;b'},renderIntroHtml:function(){},bookendCells:function(a){var b=this.renderIntroHtml();b&&(this.isRTL?a.append(b):a.prepend(b))}},mb=Pa.DayGrid=kb.extend(lb,{numbersVisible:!1,bottomCoordPadding:0,rowEls:null,cellEls:null,helperEls:null,rowCoordCache:null,colCoordCache:null,renderDates:function(a){var b,c,d=this.view,e=this.rowCnt,f=this.colCnt,g="";for(b=0;e>b;b++)g+=this.renderDayRowHtml(b,a);for(this.el.html(g),this.rowEls=this.el.find(".fc-row"),this.cellEls=this.el.find(".fc-day"),this.rowCoordCache=new gb({els:this.rowEls,isVertical:!0}),this.colCoordCache=new gb({els:this.cellEls.slice(0,this.colCnt),isHorizontal:!0}),b=0;e>b;b++)for(c=0;f>c;c++)d.trigger("dayRender",null,this.getCellDate(b,c),this.getCellEl(b,c))},unrenderDates:function(){this.removeSegPopover()},renderBusinessHours:function(){var a=this.view.calendar.getBusinessHoursEvents(!0),b=this.eventsToSegs(a);this.renderFill("businessHours",b,"bgevent")},renderDayRowHtml:function(a,b){var c=this.view,d=["fc-row","fc-week",c.widgetContentClass];return b&&d.push("fc-rigid"),'
"),o=r.header[e];return o&&t.each(o.split(" "),function(e){e>0&&a.append("");var o;t.each(this.split(","),function(e,i){if("title"==i)a.append("

 

"),o&&o.addClass(v+"-corner-right"),o=null;else{var s;if(n[i]?s=n[i]:De[i]&&(s=function(){u.removeClass(v+"-state-hover"),n.changeView(i)}),s){var c=r.theme?J(r.buttonIcons,i):null,l=J(r.buttonText,i),u=t(""+(c?""+"":l)+"").click(function(){u.hasClass(v+"-state-disabled")||s()}).mousedown(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-down")}).mouseup(function(){u.removeClass(v+"-state-down")}).hover(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-hover")},function(){u.removeClass(v+"-state-hover").removeClass(v+"-state-down")}).appendTo(a);U(u),o||u.addClass(v+"-corner-left"),o=u}}}),o&&o.addClass(v+"-corner-right")}),a}function s(t){h.find("h2").html(t)}function c(t){h.find("span.fc-button-"+t).addClass(v+"-state-active")}function l(t){h.find("span.fc-button-"+t).removeClass(v+"-state-active")}function u(t){h.find("span.fc-button-"+t).addClass(v+"-state-disabled")}function f(t){h.find("span.fc-button-"+t).removeClass(v+"-state-disabled")}var d=this;d.render=a,d.destroy=o,d.updateTitle=s,d.activateButton=c,d.deactivateButton=l,d.disableButton=u,d.enableButton=f;var v,h=t([])}function o(n,r){function a(t,e){return!S||S>t||e>E}function o(t,e){S=t,E=e,W=[];var n=++F,r=z.length;R=r;for(var a=0;r>a;a++)i(z[a],n)}function i(e,r){s(e,function(a){if(r==F){if(a){n.eventDataTransform&&(a=t.map(a,n.eventDataTransform)),e.eventDataTransform&&(a=t.map(a,e.eventDataTransform));for(var o=0;a.length>o;o++)a[o].source=e,b(a[o]);W=W.concat(a)}R--,R||k(W)}})}function s(r,a){var o,i,c=we.sourceFetchers;for(o=0;c.length>o;o++){if(i=c[o](r,S,E,a),i===!0)return;if("object"==typeof i)return s(i,a),e}var l=r.events;if(l)t.isFunction(l)?(p(),l(d(S),d(E),function(t){a(t),y()})):t.isArray(l)?a(l):a();else{var u=r.url;if(u){var f=r.success,v=r.error,h=r.complete,g=t.extend({},r.data||{}),m=K(r.startParam,n.startParam),b=K(r.endParam,n.endParam);m&&(g[m]=Math.round(+S/1e3)),b&&(g[b]=Math.round(+E/1e3)),p(),t.ajax(t.extend({},Me,r,{data:g,success:function(e){e=e||[];var n=G(f,this,arguments);t.isArray(n)&&(e=n),a(e)},error:function(){G(v,this,arguments),a()},complete:function(){G(h,this,arguments),y()}}))}else a()}}function c(t){t=l(t),t&&(R++,i(t,F))}function l(n){return t.isFunction(n)||t.isArray(n)?n={events:n}:"string"==typeof n&&(n={url:n}),"object"==typeof n?(w(n),z.push(n),n):e}function u(e){z=t.grep(z,function(t){return!D(t,e)}),W=t.grep(W,function(t){return!D(t.source,e)}),k(W)}function f(t){var e,n,r=W.length,a=T().defaultEventEnd,o=t.start-t._start,i=t.end?t.end-(t._end||a(t)):0;for(e=0;r>e;e++)n=W[e],n._id==t._id&&n!=t&&(n.start=new Date(+n.start+o),n.end=t.end?n.end?new Date(+n.end+i):new Date(+a(n)+i):null,n.title=t.title,n.url=t.url,n.allDay=t.allDay,n.className=t.className,n.editable=t.editable,n.color=t.color,n.backgroudColor=t.backgroudColor,n.borderColor=t.borderColor,n.textColor=t.textColor,b(n));b(t),k(W)}function v(t,e){b(t),t.source||(e&&(H.events.push(t),t.source=H),W.push(t)),k(W)}function h(e){if(e){if(!t.isFunction(e)){var n=e+"";e=function(t){return t._id==n}}W=t.grep(W,e,!0);for(var r=0;z.length>r;r++)t.isArray(z[r].events)&&(z[r].events=t.grep(z[r].events,e,!0))}else{W=[];for(var r=0;z.length>r;r++)t.isArray(z[r].events)&&(z[r].events=[])}k(W)}function g(e){return t.isFunction(e)?t.grep(W,e):e?(e+="",t.grep(W,function(t){return t._id==e})):W}function p(){N++||x("loading",null,!0)}function y(){--N||x("loading",null,!1)}function b(t){var r=t.source||{},a=K(r.ignoreTimezone,n.ignoreTimezone);t._id=t._id||(t.id===e?"_fc"+Ce++:t.id+""),t.date&&(t.start||(t.start=t.date),delete t.date),t._start=d(t.start=m(t.start,a)),t.end=m(t.end,a),t.end&&t.end<=t.start&&(t.end=null),t._end=t.end?d(t.end):null,t.allDay===e&&(t.allDay=K(r.allDayDefault,n.allDayDefault)),t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[]}function w(t){t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[];for(var e=we.sourceNormalizers,n=0;e.length>n;n++)e[n](t)}function D(t,e){return t&&e&&M(t)==M(e)}function M(t){return("object"==typeof t?t.events||t.url:"")||t}var C=this;C.isFetchNeeded=a,C.fetchEvents=o,C.addEventSource=c,C.removeEventSource=u,C.updateEvent=f,C.renderEvent=v,C.removeEvents=h,C.clientEvents=g,C.normalizeEvent=b;for(var S,E,x=C.trigger,T=C.getView,k=C.reportEvents,H={events:[]},z=[H],F=0,R=0,N=0,W=[],A=0;r.length>A;A++)l(r[A])}function i(t,e,n){return t.setFullYear(t.getFullYear()+e),n||f(t),t}function s(t,e,n){if(+t){var r=t.getMonth()+e,a=d(t);for(a.setDate(1),a.setMonth(r),t.setMonth(r),n||f(t);t.getMonth()!=a.getMonth();)t.setDate(t.getDate()+(a>t?1:-1))}return t}function c(t,e,n){if(+t){var r=t.getDate()+e,a=d(t);a.setHours(9),a.setDate(r),t.setDate(r),n||f(t),l(t,a)}return t}function l(t,e){if(+t)for(;t.getDate()!=e.getDate();)t.setTime(+t+(e>t?1:-1)*xe)}function u(t,e){return t.setMinutes(t.getMinutes()+e),t}function f(t){return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t}function d(t,e){return e?f(new Date(+t)):new Date(+t)}function v(){var t,e=0;do t=new Date(1970,e++,1);while(t.getHours());return t}function h(t,e,n){for(e=e||1;!t.getDay()||n&&1==t.getDay()||!n&&6==t.getDay();)c(t,e);return t}function g(t,e){return Math.round((d(t,!0)-d(e,!0))/Ee)}function p(t,n,r,a){n!==e&&n!=t.getFullYear()&&(t.setDate(1),t.setMonth(0),t.setFullYear(n)),r!==e&&r!=t.getMonth()&&(t.setDate(1),t.setMonth(r)),a!==e&&t.setDate(a)}function m(t,n){return"object"==typeof t?t:"number"==typeof t?new Date(1e3*t):"string"==typeof t?t.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(t)):(n===e&&(n=!0),y(t,n)||(t?new Date(t):null)):null}function y(t,e){var n=t.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!n)return null;var r=new Date(n[1],0,1);if(e||!n[13]){var a=new Date(n[1],0,1,9,0);n[3]&&(r.setMonth(n[3]-1),a.setMonth(n[3]-1)),n[5]&&(r.setDate(n[5]),a.setDate(n[5])),l(r,a),n[7]&&r.setHours(n[7]),n[8]&&r.setMinutes(n[8]),n[10]&&r.setSeconds(n[10]),n[12]&&r.setMilliseconds(1e3*Number("0."+n[12])),l(r,a)}else if(r.setUTCFullYear(n[1],n[3]?n[3]-1:0,n[5]||1),r.setUTCHours(n[7]||0,n[8]||0,n[10]||0,n[12]?1e3*Number("0."+n[12]):0),n[14]){var o=60*Number(n[16])+(n[18]?Number(n[18]):0);o*="-"==n[15]?1:-1,r=new Date(+r+1e3*60*o)}return r}function b(t){if("number"==typeof t)return 60*t;if("object"==typeof t)return 60*t.getHours()+t.getMinutes();var e=t.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(e){var n=parseInt(e[1],10);return e[3]&&(n%=12,"p"==e[3].toLowerCase().charAt(0)&&(n+=12)),60*n+(e[2]?parseInt(e[2],10):0)}}function w(t,e,n){return D(t,null,e,n)}function D(t,e,n,r){r=r||ye;var a,o,i,s,c=t,l=e,u=n.length,f="";for(a=0;u>a;a++)if(o=n.charAt(a),"'"==o){for(i=a+1;u>i;i++)if("'"==n.charAt(i)){c&&(f+=i==a+1?"'":n.substring(a+1,i),a=i);break}}else if("("==o){for(i=a+1;u>i;i++)if(")"==n.charAt(i)){var d=w(c,n.substring(a+1,i),r);parseInt(d.replace(/\D/,""),10)&&(f+=d),a=i;break}}else if("["==o){for(i=a+1;u>i;i++)if("]"==n.charAt(i)){var v=n.substring(a+1,i),d=w(c,v,r);d!=w(l,v,r)&&(f+=d),a=i;break}}else if("{"==o)c=e,l=t;else if("}"==o)c=t,l=e;else{for(i=u;i>a;i--)if(s=ke[n.substring(a,i)]){c&&(f+=s(c,r)),a=i-1;break}i==a&&c&&(f+=o)}return f}function M(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1}function C(t){return t.end?S(t.end,t.allDay):c(d(t.start),1)}function S(t,e){return t=d(t),e||t.getHours()||t.getMinutes()?c(t,1):f(t)}function E(t,e){return 100*(e.msLength-t.msLength)+(t.event.start-e.event.start)}function x(t,e){return t.end>e.start&&t.starta;a++)o=t[a],i=o.start,s=e[a],s>n&&r>i&&(n>i?(c=d(n),u=!1):(c=i,u=!0),s>r?(l=d(r),f=!1):(l=s,f=!0),v.push({event:o,start:c,end:l,isStart:u,isEnd:f,msLength:l-c}));return v.sort(E)}function k(t){var e,n,r,a,o,i=[],s=t.length;for(e=0;s>e;e++){for(n=t[e],r=0;;){if(a=!1,i[r])for(o=0;i[r].length>o;o++)if(x(i[r][o],n)){a=!0;break}if(!a)break;r++}i[r]?i[r].push(n):i[r]=[n]}return i}function H(n,r,a){n.unbind("mouseover").mouseover(function(n){for(var o,i,s,c=n.target;c!=this;)o=c,c=c.parentNode;(i=o._fci)!==e&&(o._fci=e,s=r[i],a(s.event,s.element,s),t(n.target).trigger(n)),n.stopPropagation()})}function z(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.width(Math.max(0,n-R(a,r)))}function F(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.height(Math.max(0,n-L(a,r)))}function R(t,e){return N(t)+A(t)+(e?W(t):0)}function N(e){return(parseFloat(t.css(e[0],"paddingLeft",!0))||0)+(parseFloat(t.css(e[0],"paddingRight",!0))||0)}function W(e){return(parseFloat(t.css(e[0],"marginLeft",!0))||0)+(parseFloat(t.css(e[0],"marginRight",!0))||0)}function A(e){return(parseFloat(t.css(e[0],"borderLeftWidth",!0))||0)+(parseFloat(t.css(e[0],"borderRightWidth",!0))||0)}function L(t,e){return _(t)+B(t)+(e?O(t):0)}function _(e){return(parseFloat(t.css(e[0],"paddingTop",!0))||0)+(parseFloat(t.css(e[0],"paddingBottom",!0))||0)}function O(e){return(parseFloat(t.css(e[0],"marginTop",!0))||0)+(parseFloat(t.css(e[0],"marginBottom",!0))||0)}function B(e){return(parseFloat(t.css(e[0],"borderTopWidth",!0))||0)+(parseFloat(t.css(e[0],"borderBottomWidth",!0))||0)}function q(t,e){e="number"==typeof e?e+"px":e,t.each(function(t,n){n.style.cssText+=";min-height:"+e+";_height:"+e})}function I(){}function Y(t,e){return t-e}function j(t){return Math.max.apply(Math,t)}function P(t){return(10>t?"0":"")+t}function J(t,n){if(t[n]!==e)return t[n];for(var r,a=n.split(/(?=[A-Z])/),o=a.length-1;o>=0;o--)if(r=t[a[o].toLowerCase()],r!==e)return r;return t[""]}function V(t){return t.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function X(t){return t.id+"/"+t.className+"/"+t.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/gi,"")}function U(t){t.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function Z(t){t.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function $(t,e){t.each(function(t,n){n.className=n.className.replace(/^fc-\w*/,"fc-"+Se[e.getDay()])})}function Q(t,e){var n=t.source||{},r=t.color,a=n.color,o=e("eventColor"),i=t.backgroundColor||r||n.backgroundColor||a||e("eventBackgroundColor")||o,s=t.borderColor||r||n.borderColor||a||e("eventBorderColor")||o,c=t.textColor||n.textColor||e("eventTextColor"),l=[];return i&&l.push("background-color:"+i),s&&l.push("border-color:"+s),c&&l.push("color:"+c),l.join(";")}function G(e,n,r){if(t.isFunction(e)&&(e=[e]),e){var a,o;for(a=0;e.length>a;a++)o=e[a].apply(n,r)||o;return o}}function K(){for(var t=0;arguments.length>t;t++)if(arguments[t]!==e)return arguments[t]}function te(t,e){function n(t,e){e&&(s(t,e),t.setDate(1));var n=d(t,!0);n.setDate(1);var l=s(d(n),1),u=d(n),f=d(l),v=a("firstDay"),g=a("weekends")?0:1;g&&(h(u),h(f,-1,!0)),c(u,-((u.getDay()-Math.max(v,g)+7)%7)),c(f,(7-f.getDay()+Math.max(v,g))%7);var p=Math.round((f-u)/(7*Ee));"fixed"==a("weekMode")&&(c(f,7*(6-p)),p=6),r.title=i(n,a("titleFormat")),r.start=n,r.end=l,r.visStart=u,r.visEnd=f,o(p,g?5:7,!0)}var r=this;r.render=n,re.call(r,t,e,"month");var a=r.opt,o=r.renderBasic,i=e.formatDate}function ee(t,e){function n(t,e){e&&c(t,7*e);var n=c(d(t),-((t.getDay()-a("firstDay")+7)%7)),s=c(d(n),7),l=d(n),u=d(s),f=a("weekends");f||(h(l),h(u,-1,!0)),r.title=i(l,c(d(u),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=l,r.visEnd=u,o(1,f?7:5,!1)}var r=this;r.render=n,re.call(r,t,e,"basicWeek");var a=r.opt,o=r.renderBasic,i=e.formatDates}function ne(t,e){function n(t,e){e&&(c(t,e),a("weekends")||h(t,0>e?-1:1)),r.title=i(t,a("titleFormat")),r.start=r.visStart=d(t,!0),r.end=r.visEnd=c(d(r.start),1),o(1,1,!1)}var r=this;r.render=n,re.call(r,t,e,"basicDay");var a=r.opt,o=r.renderBasic,i=e.formatDate}function re(e,n,r){function a(t,e,n){ne=t,re=e,o();var r=!P;r?i():Te(),s(n)}function o(){ce=Ee("isRTL"),ce?(le=-1,fe=re-1):(le=1,fe=0),pe=Ee("firstDay"),ye=Ee("weekends")?0:1,be=Ee("theme")?"ui":"fc",we=Ee("columnFormat"),De=Ee("weekNumbers"),Me=Ee("weekNumberTitle"),Ce="iso"!=Ee("weekNumberCalculation")?"w":"W"}function i(){Q=t("
").appendTo(e)}function s(n){var r,a,o,i,s="",c=be+"-widget-header",l=be+"-widget-content",u=B.start.getMonth(),d=f(new Date);for(s+="",De&&(s+="",r=0;ne>r;r++){for(s+="",De&&(s+=""),a=0;re>a;a++)o=F(r,a),i=["fc-day","fc-"+Se[o.getDay()],l],o.getMonth()!=u&&i.push("fc-other-month"),+o==+d&&(i.push("fc-today"),i.push(be+"-state-highlight")),s+="";s+=""}s+="
"),r=0;re>r;r++)s+="";for(s+="
"+"
"+"
"+"
",n&&(s+="
"+o.getDate()+"
"),s+="
 
",_(),I&&I.remove(),I=t(s).appendTo(e),Y=I.find("thead"),j=Y.find(".fc-day-header"),P=I.find("tbody"),J=P.find("tr"),V=P.find(".fc-day"),X=J.find("td:first-child"),$=J.eq(0).find(".fc-day-content > div"),Z(Y.add(Y.find("tr"))),Z(J),J.eq(0).addClass("fc-first"),J.filter(":last").addClass("fc-last"),De&&Y.find(".fc-week-number").text(Me),j.each(function(e,n){var r=R(e);t(n).text(Fe(r,we))}),De&&P.find(".fc-week-number > div").each(function(e,n){var r=F(e,0);t(n).text(Fe(r,Ce))}),V.each(function(e,n){var r=R(e);xe("dayRender",B,r,t(n))}),v(V)}function l(e){K=e;var n,r,a,o=K-Y.height();"variable"==Ee("weekMode")?n=r=Math.floor(o/(1==ne?2:6)):(n=Math.floor(o/ne),r=o-n*(ne-1)),X.each(function(e,o){ne>e&&(a=t(o),q(a.find("> div"),(e==ne-1?r:n)-L(a)))}),O()}function u(t){G=t,se.clear(),ee=0,De&&(ee=Y.find("th.fc-week-number").outerWidth()),te=Math.floor((G-ee)/re),z(j.slice(0,-1),te)}function v(t){t.click(h).mousedown(ze)}function h(e){if(!Ee("selectable")){var n=y(t(this).data("date"));xe("dayClick",this,n,!0,e)}}function p(t,e,n){n&&oe.build();for(var r=d(B.visStart),a=c(d(r),re),o=0;ne>o;o++){var i=new Date(Math.max(r,t)),s=new Date(Math.min(a,e));if(s>i){var l,u;ce?(l=g(s,r)*le+fe+1,u=g(i,r)*le+fe+1):(l=g(i,r),u=g(s,r)),v(m(o,l,o,u-1))}c(r,7),c(a,7)}}function m(t,n,r,a){var o=oe.rect(t,n,r,a,e);return ke(o,e)}function b(t){return d(t)}function w(t,e){p(t,c(d(e),1),!0)}function D(){He()}function M(t,e,n){var r=k(t),a=V[r.row*re+r.col];xe("dayClick",a,t,e,n)}function C(t,e){ie.start(function(t){He(),t&&m(t.row,t.col,t.row,t.col)},e)}function S(t,e,n){var r=ie.stop();if(He(),r){var a=H(r);xe("drop",t,a,!0,e,n)}}function E(t){return d(t.start)}function x(t){return se.left(t)}function T(t){return se.right(t)}function k(t){return{row:Math.floor(g(t,B.visStart)/7),col:N(t.getDay())}}function H(t){return F(t.row,t.col)}function F(t,e){return c(d(B.visStart),7*t+e*le+fe)}function R(t){return F(Math.floor(t/re),t%re)}function N(t){return(t-Math.max(pe,ye)+re)%re*le+fe}function W(t){return J.eq(t)}function A(){var t=0;return De&&(t+=ee),{left:t,right:G}}function _(){q(e,e.height())}function O(){q(e,1)}var B=this;B.renderBasic=a,B.setHeight=l,B.setWidth=u,B.renderDayOverlay=p,B.defaultSelectionEnd=b,B.renderSelection=w,B.clearSelection=D,B.reportDayClick=M,B.dragStart=C,B.dragStop=S,B.defaultEventEnd=E,B.getHoverListener=function(){return ie},B.colContentLeft=x,B.colContentRight=T,B.dayOfWeekCol=N,B.dateCell=k,B.cellDate=H,B.cellIsAllDay=function(){return!0},B.allDayRow=W,B.allDayBounds=A,B.getRowCnt=function(){return ne},B.getColCnt=function(){return re},B.getColWidth=function(){return te},B.getDaySegmentContainer=function(){return Q},ue.call(B,e,n,r),ve.call(B),de.call(B),ae.call(B);var I,Y,j,P,J,V,X,$,Q,G,K,te,ee,ne,re,oe,ie,se,ce,le,fe,pe,ye,be,we,De,Me,Ce,Ee=B.opt,xe=B.trigger,Te=B.clearEvents,ke=B.renderOverlay,He=B.clearOverlays,ze=B.daySelectionMousedown,Fe=n.formatDate;U(e.addClass("fc-grid")),oe=new he(function(e,n){var r,a,o;j.each(function(e,i){r=t(i),a=r.offset().left,e&&(o[1]=a),o=[a],n[e]=o}),o[1]=a+r.outerWidth(),J.each(function(n,i){ne>n&&(r=t(i),a=r.offset().top,n&&(o[1]=a),o=[a],e[n]=o)}),o[1]=a+r.outerHeight()}),ie=new ge(oe),se=new me(function(t){return $.eq(t)})}function ae(){function e(t,e){v(t),x(r(t),e),l("eventAfterAllRender")}function n(){h(),b().empty()}function r(e){var n,r,a,o,s,l,u=S(),f=E(),v=d(i.visStart),h=c(d(v),f),g=t.map(e,C),p=[];for(n=0;u>n;n++){for(r=k(T(e,g,v,h)),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)l=o[s],l.row=n,l.level=a,p.push(l);c(v,7),c(h,7)}return p}function a(t,e,n){u(t)&&o(t,e),n.isEnd&&f(t)&&H(t,e,n),g(t,e)}function o(t,e){var n,r=w();e.draggable({zIndex:9,delay:50,opacity:s("dragOpacity"),revertDuration:s("dragRevertDuration"),start:function(a,o){l("eventDragStart",e,t,a,o),m(t,e),r.start(function(r,a,o,i){e.draggable("option","revert",!r||!o&&!i),M(),r?(n=7*o+i*(s("isRTL")?-1:1),D(c(d(t.start),n),c(C(t),n))):n=0},a,"drag")},stop:function(a,o){r.stop(),M(),l("eventDragStop",e,t,a,o),n?y(this,t,n,0,t.allDay,a,o):(e.css("filter",""),p(t,e))}})}var i=this;i.renderEvents=e,i.compileDaySegs=r,i.clearEvents=n,i.bindDaySeg=a,fe.call(i);var s=i.opt,l=i.trigger,u=i.isEventDraggable,f=i.isEventResizable,v=i.reportEvents,h=i.reportEventClear,g=i.eventElementHandlers,p=i.showEvents,m=i.hideEvents,y=i.eventDrop,b=i.getDaySegmentContainer,w=i.getHoverListener,D=i.renderDayOverlay,M=i.clearOverlays,S=i.getRowCnt,E=i.getColCnt,x=i.renderDaySegs,H=i.resizableDayEvent}function oe(t,e){function n(t,e){e&&c(t,7*e);var n=c(d(t),-((t.getDay()-a("firstDay")+7)%7)),s=c(d(n),7),l=d(n),u=d(s),f=a("weekends");f||(h(l),h(u,-1,!0)),r.title=i(l,c(d(u),-1),a("titleFormat")),r.start=n,r.end=s,r.visStart=l,r.visEnd=u,o(f?7:5)}var r=this;r.render=n,se.call(r,t,e,"agendaWeek");var a=r.opt,o=r.renderAgenda,i=e.formatDates}function ie(t,e){function n(t,e){e&&(c(t,e),a("weekends")||h(t,0>e?-1:1));var n=d(t,!0),s=c(d(n),1);r.title=i(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=s,o(1)}var r=this;r.render=n,se.call(r,t,e,"agendaDay");var a=r.opt,o=r.renderAgenda,i=e.formatDate}function se(n,r,a){function o(t){Le=t,i(),te?nn():s(),l()}function i(){Ye=tn("theme")?"ui":"fc",Pe=tn("weekends")?0:1,je=tn("firstDay"),(Je=tn("isRTL"))?(Ve=-1,Xe=Le-1):(Ve=1,Xe=0),Ue=b(tn("minTime")),Ze=b(tn("maxTime")),$e=tn("columnFormat"),Qe=tn("weekNumbers"),Ge=tn("weekNumberTitle"),Ke="iso"!=tn("weekNumberCalculation")?"w":"W",Ne=tn("snapMinutes")||tn("slotMinutes")}function s(){var e,r,a,o,i,s=Ye+"-widget-header",c=Ye+"-widget-content",l=0==tn("slotMinutes")%15;for(e="",e+=Qe?"",r=0;Le>r;r++)e+=""+""+""+""+""+"",r=0;Le>r;r++)e+="";for(e+=""+""+""+"
":" ";for(e+=" 
 "+"
"+"
"+"
 
"+"
"+"
"+"
 
",te=t(e).appendTo(n),ee=te.find("thead"),ne=ee.find("th").slice(1,-1),re=te.find("tbody"),ae=re.find("td").slice(0,-1),oe=ae.find("div.fc-day-content div"),ie=ae.eq(0),se=ie.find("> div"),Z(ee.add(ee.find("tr"))),Z(re.add(re.find("tr"))),Se=ee.find("th:first"),Ee=te.find(".fc-agenda-gutter"),le=t("
").appendTo(n),tn("allDaySlot")?(fe=t("
").appendTo(le),e=""+""+""+""+"
"+tn("allDayText")+""+"
"+"
 
",pe=t(e).appendTo(le),ye=pe.find("tr"),D(ye.find("td")),Se=Se.add(pe.find("th:first")),Ee=Ee.add(pe.find("th.fc-agenda-gutter")),le.append("
"+"
"+"
")):fe=t([]),be=t("
").appendTo(le),we=t("
").appendTo(be),De=t("
").appendTo(we),e="",a=v(),o=u(d(a),Ze),u(a,Ue),_e=0,r=0;o>a;r++)i=a.getMinutes(),e+=""+""+""+"",u(a,tn("slotMinutes")),_e++;e+="
"+(l&&i?" ":un(a,tn("axisFormat")))+""+"
 
"+"
",Me=t(e).appendTo(we),Ce=Me.find("div:first"),M(Me.find("td")),Se=Se.add(Me.find("th:first"))}function l(){var t,e,n,r,a=f(new Date);if(Qe){var o=un(N(0),Ke);Je?o+=Ge:o=Ge+o,ee.find(".fc-week-number").text(o)}for(t=0;Le>t;t++)r=N(t),e=ne.eq(t),e.html(un(r,$e)),n=ae.eq(t),+r==+a?n.addClass(Ye+"-state-highlight fc-today"):n.removeClass(Ye+"-state-highlight fc-today"),$(e.add(n),r)}function h(t,n){t===e&&(t=ke),ke=t,fn={};var r=re.position().top,a=be.position().top,o=Math.min(t-r,Me.height()+a+1);se.height(o-L(ie)),le.css("top",r),be.height(o-a-1),Re=Ce.height()+1,We=tn("slotMinutes")/Ne,Ae=Re/We,n&&m()}function p(e){Te=e,qe.clear(),He=0,z(Se.width("").each(function(e,n){He=Math.max(He,t(n).outerWidth())}),He);var n=be[0].clientWidth;Fe=be.width()-n,Fe?(z(Ee,Fe),Ee.show().prev().removeClass("fc-last")):Ee.hide().prev().addClass("fc-last"),ze=Math.floor((n-He)/Le),z(ne.slice(0,-1),ze)}function m(){function t(){be.scrollTop(r)}var e=v(),n=d(e);n.setHours(tn("firstHour"));var r=_(e,n)+1;t(),setTimeout(t,0)}function y(){Ie=be.scrollTop()}function w(){be.scrollTop(Ie)}function D(t){t.click(C).mousedown(cn)}function M(t){t.click(C).mousedown(V)}function C(t){if(!tn("selectable")){var e=Math.min(Le-1,Math.floor((t.pageX-te.offset().left-He)/ze)),n=N(e),r=this.parentNode.className.match(/fc-slot(\d+)/);if(r){var a=parseInt(r[1])*tn("slotMinutes"),o=Math.floor(a/60);n.setHours(o),n.setMinutes(a%60+Ue),en("dayClick",ae[e],n,!1,t)}else en("dayClick",ae[e],n,!0,t)}}function S(t,e,n){n&&Oe.build();var r,a,o=d(K.visStart);Je?(r=g(e,o)*Ve+Xe+1,a=g(t,o)*Ve+Xe+1):(r=g(t,o),a=g(e,o)),r=Math.max(0,r),a=Math.min(Le,a),a>r&&D(E(0,r,0,a-1))}function E(t,e,n,r){var a=Oe.rect(t,e,n,r,le);return rn(a,le)}function x(t,e){for(var n=d(K.visStart),r=c(d(n),1),a=0;Le>a;a++){var o=new Date(Math.max(n,t)),i=new Date(Math.min(r,e));if(i>o){var s=a*Ve+Xe,l=Oe.rect(0,s,0,s,we),u=_(n,o),f=_(n,i);l.top=u,l.height=f-u,M(rn(l,we))}c(n,1),c(r,1)}}function T(t){return qe.left(t)}function k(t){return qe.right(t)}function H(t){return{row:Math.floor(g(t,K.visStart)/7),col:A(t.getDay())}}function R(t){var e=N(t.col),n=t.row;return tn("allDaySlot")&&n--,n>=0&&u(e,Ue+n*Ne),e}function N(t){return c(d(K.visStart),t*Ve+Xe)}function W(t){return tn("allDaySlot")&&!t.row}function A(t){return(t-Math.max(je,Pe)+Le)%Le*Ve+Xe}function _(t,n){if(t=d(t,!0),u(d(t),Ue)>n)return 0;if(n>=u(d(t),Ze))return Me.height();var r=tn("slotMinutes"),a=60*n.getHours()+n.getMinutes()-Ue,o=Math.floor(a/r),i=fn[o];return i===e&&(i=fn[o]=Me.find("tr:eq("+o+") td div")[0].offsetTop),Math.max(0,Math.round(i-1+Re*(a%r/r)))}function O(){return{left:He,right:Te-Fe}}function B(){return ye}function q(t){var e=d(t.start);return t.allDay?e:u(e,tn("defaultEventMinutes"))}function I(t,e){return e?d(t):u(d(t),tn("slotMinutes"))}function j(t,e,n){n?tn("allDaySlot")&&S(t,c(d(e),1),!0):P(t,e)}function P(e,n){var r=tn("selectHelper");if(Oe.build(),r){var a=g(e,K.visStart)*Ve+Xe;if(a>=0&&Le>a){var o=Oe.rect(0,a,0,a,we),i=_(e,e),s=_(e,n);if(s>i){if(o.top=i,o.height=s-i,o.left+=2,o.width-=5,t.isFunction(r)){var c=r(e,n);c&&(o.position="absolute",o.zIndex=8,xe=t(c).css(o).appendTo(we))}else o.isStart=!0,o.isEnd=!0,xe=t(ln({title:"",start:e,end:n,className:["fc-select-helper"],editable:!1},o)),xe.css("opacity",tn("dragOpacity"));xe&&(M(xe),we.append(xe),z(xe,o.width,!0),F(xe,o.height,!0))}}}else x(e,n)}function J(){an(),xe&&(xe.remove(),xe=null)}function V(e){if(1==e.which&&tn("selectable")){sn(e);var n;Be.start(function(t,e){if(J(),t&&t.col==e.col&&!W(t)){var r=R(e),a=R(t);n=[r,u(d(r),Ne),a,u(d(a),Ne)].sort(Y),P(n[0],n[3])}else n=null},e),t(document).one("mouseup",function(t){Be.stop(),n&&(+n[0]==+n[1]&&X(n[0],!1,t),on(n[0],n[3],!1,t))})}}function X(t,e,n){en("dayClick",ae[A(t.getDay())],t,e,n)}function Q(t,e){Be.start(function(t){if(an(),t)if(W(t))E(t.row,t.col,t.row,t.col);else{var e=R(t),n=u(d(e),tn("defaultEventMinutes"));x(e,n)}},e)}function G(t,e,n){var r=Be.stop();an(),r&&en("drop",t,R(r),W(r),e,n)}var K=this;K.renderAgenda=o,K.setWidth=p,K.setHeight=h,K.beforeHide=y,K.afterShow=w,K.defaultEventEnd=q,K.timePosition=_,K.dayOfWeekCol=A,K.dateCell=H,K.cellDate=R,K.cellIsAllDay=W,K.allDayRow=B,K.allDayBounds=O,K.getHoverListener=function(){return Be},K.colContentLeft=T,K.colContentRight=k,K.getDaySegmentContainer=function(){return fe},K.getSlotSegmentContainer=function(){return De},K.getMinMinute=function(){return Ue},K.getMaxMinute=function(){return Ze},K.getBodyContent=function(){return we},K.getRowCnt=function(){return 1},K.getColCnt=function(){return Le},K.getColWidth=function(){return ze},K.getSnapHeight=function(){return Ae},K.getSnapMinutes=function(){return Ne},K.defaultSelectionEnd=I,K.renderDayOverlay=S,K.renderSelection=j,K.clearSelection=J,K.reportDayClick=X,K.dragStart=Q,K.dragStop=G,ue.call(K,n,r,a),ve.call(K),de.call(K),ce.call(K);var te,ee,ne,re,ae,oe,ie,se,le,fe,pe,ye,be,we,De,Me,Ce,Se,Ee,xe,Te,ke,He,ze,Fe,Re,Ne,We,Ae,Le,_e,Oe,Be,qe,Ie,Ye,je,Pe,Je,Ve,Xe,Ue,Ze,$e,Qe,Ge,Ke,tn=K.opt,en=K.trigger,nn=K.clearEvents,rn=K.renderOverlay,an=K.clearOverlays,on=K.reportSelection,sn=K.unselect,cn=K.daySelectionMousedown,ln=K.slotSegHtml,un=r.formatDate,fn={};U(n.addClass("fc-agenda")),Oe=new he(function(e,n){function r(t){return Math.max(c,Math.min(l,t))}var a,o,i;ne.each(function(e,r){a=t(r),o=a.offset().left,e&&(i[1]=o),i=[o],n[e]=i}),i[1]=o+a.outerWidth(),tn("allDaySlot")&&(a=ye,o=a.offset().top,e[0]=[o,o+a.outerHeight()]);for(var s=we.offset().top,c=be.offset().top,l=c+be.outerHeight(),u=0;_e*We>u;u++)e.push([r(s+Ae*u),r(s+Ae*(u+1))])}),Be=new ge(Oe),qe=new me(function(t){return oe.eq(t)})}function ce(){function n(t,e){S(t);var n,r=t.length,i=[],c=[];for(n=0;r>n;n++)t[n].allDay?i.push(t[n]):c.push(t[n]);y("allDaySlot")&&(Y(a(i),e),z()),s(o(c),e),b("eventAfterAllRender")}function r(){E(),N().empty(),W().empty()}function a(e){var n,r,a,o,i=k(T(e,t.map(e,C),m.visStart,m.visEnd)),s=i.length,c=[];for(n=0;s>n;n++)for(r=i[n],a=0;r.length>a;a++)o=r[a],o.row=0,o.level=n,c.push(o);return c}function o(e){var n,r,a,o,s,l,f=P(),v=O(),h=_(),g=u(d(m.visStart),v),p=t.map(e,i),y=[];for(n=0;f>n;n++){for(r=k(T(e,p,g,u(d(g),h-v))),le(r),a=0;r.length>a;a++)for(o=r[a],s=0;o.length>s;s++)l=o[s],l.col=n,l.level=a,y.push(l);c(g,1,!0)}return y}function i(t){return t.end?d(t.end):u(d(t.start),y("defaultEventMinutes"))}function s(n,r){var a,o,i,s,c,u,f,d,h,g,p,m,w,D,M,C,S,E,x,T,k,z,F=n.length,N="",A={},_={},O=W(),Y=P();for((T=y("isRTL"))?(k=-1,z=Y-1):(k=1,z=0),a=0;F>a;a++)o=n[a],i=o.event,s=B(o.start,o.start),c=B(o.start,o.end),u=o.col,f=o.level,d=o.forward||0,h=q(u*k+z),g=I(u*k+z)-h,g=Math.min(g-6,.95*g),p=f?g/(f+d+1):d?2*(g/(d+1)-6):g,m=h+g/(f+d+1)*f*k+(T?g-p:0),o.top=s,o.left=m,o.outerWidth=p,o.outerHeight=c-s,N+=l(i,o); -for(O[0].innerHTML=N,w=O.children(),a=0;F>a;a++)o=n[a],i=o.event,D=t(w[a]),M=b("eventRender",i,i,D),M===!1?D.remove():(M&&M!==!0&&(D.remove(),D=t(M).css({position:"absolute",top:o.top,left:o.left}).appendTo(O)),o.element=D,i._id===r?v(i,D,o):D[0]._fci=a,G(i,D));for(H(O,n,v),a=0;F>a;a++)o=n[a],(D=o.element)&&(S=A[C=o.key=X(D[0])],o.vsides=S===e?A[C]=L(D,!0):S,S=_[C],o.hsides=S===e?_[C]=R(D,!0):S,E=D.find(".fc-event-title"),E.length&&(o.contentTop=E[0].offsetTop));for(a=0;F>a;a++)o=n[a],(D=o.element)&&(D[0].style.width=Math.max(0,o.outerWidth-o.hsides)+"px",x=Math.max(0,o.outerHeight-o.vsides),D[0].style.height=x+"px",i=o.event,o.contentTop!==e&&10>x-o.contentTop&&(D.find("div.fc-event-time").text(ie(i.start,y("timeFormat"))+" - "+i.title),D.find("div.fc-event-title").remove()),b("eventAfterRender",i,i,D))}function l(t,e){var n="<",r=t.url,a=Q(t,y),o=["fc-event","fc-event-vert"];return w(t)&&o.push("fc-event-draggable"),e.isStart&&o.push("fc-event-start"),e.isEnd&&o.push("fc-event-end"),o=o.concat(t.className),t.source&&(o=o.concat(t.source.className||[])),n+=r?"a href='"+V(t.url)+"'":"div",n+=" class='"+o.join(" ")+"'"+" style='position:absolute;z-index:8;top:"+e.top+"px;left:"+e.left+"px;"+a+"'"+">"+"
"+"
"+V(se(t.start,t.end,y("timeFormat")))+"
"+"
"+V(t.title)+"
"+"
"+"
",e.isEnd&&D(t)&&(n+="
=
"),n+=""}function f(t,e,n){w(t)&&h(t,e,n.isStart),n.isEnd&&D(t)&&j(t,e,n),x(t,e)}function v(t,e,n){var r=e.find("div.fc-event-time");w(t)&&g(t,e,r),n.isEnd&&D(t)&&p(t,e,r),x(t,e)}function h(t,e,n){function r(){s||(e.width(a).height("").draggable("option","grid",null),s=!0)}var a,o,i,s=!0,l=y("isRTL")?-1:1,u=A(),f=J(),v=U(),h=Z(),g=O();e.draggable({zIndex:9,opacity:y("dragOpacity","month"),revertDuration:y("dragRevertDuration"),start:function(g,p){b("eventDragStart",e,t,g,p),te(t,e),a=e.width(),u.start(function(a,u,g,p){ae(),a?(o=!1,i=p*l,a.row?n?s&&(e.width(f-10),F(e,v*Math.round((t.end?(t.end-t.start)/Te:y("defaultEventMinutes"))/h)),e.draggable("option","grid",[f,1]),s=!1):o=!0:(re(c(d(t.start),i),c(C(t),i)),r()),o=o||s&&!i):(r(),o=!0),e.draggable("option","revert",o)},g,"drag")},stop:function(n,a){if(u.stop(),ae(),b("eventDragStop",e,t,n,a),o)r(),e.css("filter",""),K(t,e);else{var c=0;s||(c=Math.round((e.offset().top-$().offset().top)/v)*h+g-(60*t.start.getHours()+t.start.getMinutes())),ee(this,t,i,c,s,n,a)}}})}function g(t,e,n){function r(e){var r,a=u(d(t.start),e);t.end&&(r=u(d(t.end),e)),n.text(se(a,r,y("timeFormat")))}function a(){f&&(n.css("display",""),e.draggable("option","grid",[p,m]),f=!1)}var o,i,s,l,f=!1,v=y("isRTL")?-1:1,h=A(),g=P(),p=J(),m=U(),w=Z();e.draggable({zIndex:9,scroll:!1,grid:[p,m],axis:1==g?"y":!1,opacity:y("dragOpacity"),revertDuration:y("dragRevertDuration"),start:function(r,u){b("eventDragStart",e,t,r,u),te(t,e),o=e.position(),s=l=0,h.start(function(r,o,s,l){e.draggable("option","revert",!r),ae(),r&&(i=l*v,y("allDaySlot")&&!r.row?(f||(f=!0,n.hide(),e.draggable("option","grid",null)),re(c(d(t.start),i),c(C(t),i))):a())},r,"drag")},drag:function(t,e){s=Math.round((e.position.top-o.top)/m)*w,s!=l&&(f||r(s),l=s)},stop:function(n,c){var l=h.stop();ae(),b("eventDragStop",e,t,n,c),l&&(i||s||f)?ee(this,t,i,f?0:s,f,n,c):(a(),e.css("filter",""),e.css(o),r(0),K(t,e))}})}function p(t,e,n){var r,a,o=U(),i=Z();e.resizable({handles:{s:".ui-resizable-handle"},grid:o,start:function(n,o){r=a=0,te(t,e),e.css("z-index",9),b("eventResizeStart",this,t,n,o)},resize:function(s,c){r=Math.round((Math.max(o,e.height())-c.originalSize.height)/o),r!=a&&(n.text(se(t.start,r||t.end?u(M(t),i*r):null,y("timeFormat"))),a=r)},stop:function(n,a){b("eventResizeStop",this,t,n,a),r?ne(this,t,0,i*r,n,a):(e.css("z-index",8),K(t,e))}})}var m=this;m.renderEvents=n,m.compileDaySegs=a,m.clearEvents=r,m.slotSegHtml=l,m.bindDaySeg=f,fe.call(m);var y=m.opt,b=m.trigger,w=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,S=m.reportEvents,E=m.reportEventClear,x=m.eventElementHandlers,z=m.setHeight,N=m.getDaySegmentContainer,W=m.getSlotSegmentContainer,A=m.getHoverListener,_=m.getMaxMinute,O=m.getMinMinute,B=m.timePosition,q=m.colContentLeft,I=m.colContentRight,Y=m.renderDaySegs,j=m.resizableDayEvent,P=m.getColCnt,J=m.getColWidth,U=m.getSnapHeight,Z=m.getSnapMinutes,$=m.getBodyContent,G=m.reportEventElement,K=m.showEvents,te=m.hideEvents,ee=m.eventDrop,ne=m.eventResize,re=m.renderDayOverlay,ae=m.clearOverlays,oe=m.calendar,ie=oe.formatDate,se=oe.formatDates}function le(t){var e,n,r,a,o,i;for(e=t.length-1;e>0;e--)for(a=t[e],n=0;a.length>n;n++)for(o=a[n],r=0;t[e-1].length>r;r++)i=t[e-1][r],x(o,i)&&(i.forward=Math.max(i.forward||0,(o.forward||0)+1))}function ue(t,n,r){function a(t,e){var n=F[t];return"object"==typeof n?J(n,e||r):n}function o(t,e){return n.trigger.apply(n,[t,e||S].concat(Array.prototype.slice.call(arguments,2),[S]))}function i(t){return l(t)&&!a("disableDragging")}function s(t){return l(t)&&!a("disableResizing")}function l(t){return K(t.editable,(t.source||{}).editable,a("editable"))}function f(t){k={};var e,n,r=t.length;for(e=0;r>e;e++)n=t[e],k[n._id]?k[n._id].push(n):k[n._id]=[n]}function v(t){return t.end?d(t.end):E(t)}function h(t,e){H.push(e),z[t._id]?z[t._id].push(e):z[t._id]=[e]}function g(){H=[],z={}}function p(t,n){n.click(function(r){return n.hasClass("ui-draggable-dragging")||n.hasClass("ui-resizable-resizing")?e:o("eventClick",this,t,r)}).hover(function(e){o("eventMouseover",this,t,e)},function(e){o("eventMouseout",this,t,e)})}function m(t,e){b(t,e,"show")}function y(t,e){b(t,e,"hide")}function b(t,e,n){var r,a=z[t._id],o=a.length;for(r=0;o>r;r++)e&&a[r][0]==e[0]||a[r][n]()}function w(t,e,n,r,a,i,s){var c=e.allDay,l=e._id;M(k[l],n,r,a),o("eventDrop",t,e,n,r,a,function(){M(k[l],-n,-r,c),T(l)},i,s),T(l)}function D(t,e,n,r,a,i){var s=e._id;C(k[s],n,r),o("eventResize",t,e,n,r,function(){C(k[s],-n,-r),T(s)},a,i),T(s)}function M(t,n,r,a){r=r||0;for(var o,i=t.length,s=0;i>s;s++)o=t[s],a!==e&&(o.allDay=a),u(c(o.start,n,!0),r),o.end&&(o.end=u(c(o.end,n,!0),r)),x(o,F)}function C(t,e,n){n=n||0;for(var r,a=t.length,o=0;a>o;o++)r=t[o],r.end=u(c(v(r),e,!0),n),x(r,F)}var S=this;S.element=t,S.calendar=n,S.name=r,S.opt=a,S.trigger=o,S.isEventDraggable=i,S.isEventResizable=s,S.reportEvents=f,S.eventEnd=v,S.reportEventElement=h,S.reportEventClear=g,S.eventElementHandlers=p,S.showEvents=m,S.hideEvents=y,S.eventDrop=w,S.eventResize=D;var E=S.defaultEventEnd,x=n.normalizeEvent,T=n.reportEventChange,k={},H=[],z={},F=n.options}function fe(){function n(t,e){var n,r,c,d,p,m,y,b,w=B(),D=T(),M=k(),C=0,S=t.length;for(w[0].innerHTML=a(t),o(t,w.children()),i(t),s(t,w,e),l(t),u(t),f(t),n=v(),r=0;D>r;r++){for(c=0,d=[],p=0;M>p;p++)d[p]=0;for(;S>C&&(m=t[C]).row==r;){for(y=j(d.slice(m.startCol,m.endCol)),m.top=y,y+=m.outerHeight,b=m.startCol;m.endCol>b;b++)d[b]=y;C++}n[r].height(j(d))}g(t,h(n))}function r(e,n,r){var i,s,c,d=t("
"),p=B(),m=e.length;for(d[0].innerHTML=a(e),i=d.children(),p.append(i),o(e,i),l(e),u(e),f(e),g(e,h(v())),i=[],s=0;m>s;s++)c=e[s].element,c&&(e[s].row===n&&c.css("top",r),i.push(c[0]));return t(i)}function a(t){var e,n,r,a,o,i,s,c,l,u,f=y("isRTL"),d=t.length,v=F(),h=v.left,g=v.right,p="";for(e=0;d>e;e++)n=t[e],r=n.event,o=["fc-event","fc-event-hori"],w(r)&&o.push("fc-event-draggable"),n.isStart&&o.push("fc-event-start"),n.isEnd&&o.push("fc-event-end"),f?(i=A(n.end.getDay()-1),s=A(n.start.getDay()),c=n.isEnd?N(i):h,l=n.isStart?W(s):g):(i=A(n.start.getDay()),s=A(n.end.getDay()-1),c=n.isStart?N(i):h,l=n.isEnd?W(s):g),o=o.concat(r.className),r.source&&(o=o.concat(r.source.className||[])),a=r.url,u=Q(r,y),p+=a?""+"
",!r.allDay&&n.isStart&&(p+=""+V(I(r.start,r.end,y("timeFormat")))+""),p+=""+V(r.title)+""+"
",n.isEnd&&D(r)&&(p+="
"+"   "+"
"),p+="",n.left=c,n.outerWidth=l-c,n.startCol=i,n.endCol=s+1;return p}function o(e,n){var r,a,o,i,s,c=e.length;for(r=0;c>r;r++)a=e[r],o=a.event,i=t(n[r]),s=b("eventRender",o,o,i),s===!1?i.remove():(s&&s!==!0&&(s=t(s).css({position:"absolute",left:a.left}),i.replaceWith(s),i=s),a.element=i)}function i(t){var e,n,r,a=t.length;for(e=0;a>e;e++)n=t[e],r=n.element,r&&C(n.event,r)}function s(t,e,n){var r,a,o,i,s=t.length;for(r=0;s>r;r++)a=t[r],o=a.element,o&&(i=a.event,i._id===n?q(i,o,a):o[0]._fci=r);H(e,t,q)}function l(t){var n,r,a,o,i,s=t.length,c={};for(n=0;s>n;n++)r=t[n],a=r.element,a&&(o=r.key=X(a[0]),i=c[o],i===e&&(i=c[o]=R(a,!0)),r.hsides=i)}function u(t){var e,n,r,a=t.length;for(e=0;a>e;e++)n=t[e],r=n.element,r&&(r[0].style.width=Math.max(0,n.outerWidth-n.hsides)+"px")}function f(t){var n,r,a,o,i,s=t.length,c={};for(n=0;s>n;n++)r=t[n],a=r.element,a&&(o=r.key,i=c[o],i===e&&(i=c[o]=O(a)),r.outerHeight=a[0].offsetHeight+i)}function v(){var t,e=T(),n=[];for(t=0;e>t;t++)n[t]=z(t).find("div.fc-day-content > div");return n}function h(t){var e,n=t.length,r=[];for(e=0;n>e;e++)r[e]=t[e][0].offsetTop;return r}function g(t,e){var n,r,a,o,i=t.length;for(n=0;i>n;n++)r=t[n],a=r.element,a&&(a[0].style.top=e[r.row]+(r.top||0)+"px",o=r.event,b("eventAfterRender",o,o,a))}function p(e,n,a){var o=y("isRTL"),i=o?"w":"e",s=n.find(".ui-resizable-"+i),l=!1;U(n),n.mousedown(function(t){t.preventDefault()}).click(function(t){l&&(t.preventDefault(),t.stopImmediatePropagation())}),s.mousedown(function(s){function u(n){b("eventResizeStop",this,e,n),t("body").css("cursor",""),h.stop(),P(),f&&x(this,e,f,0,n),setTimeout(function(){l=!1},0)}if(1==s.which){l=!0;var f,v,h=m.getHoverListener(),g=T(),p=k(),y=o?-1:1,w=o?p-1:0,D=n.css("top"),C=t.extend({},e),H=L(e.start);J(),t("body").css("cursor",i+"-resize").one("mouseup",u),b("eventResizeStart",this,e,s),h.start(function(t,n){if(t){var s=Math.max(H.row,t.row),l=t.col;1==g&&(s=0),s==H.row&&(l=o?Math.min(H.col,l):Math.max(H.col,l)),f=7*s+l*y+w-(7*n.row+n.col*y+w);var u=c(M(e),f,!0);if(f){C.end=u;var h=v;v=r(_([C]),a.row,D),v.find("*").css("cursor",i+"-resize"),h&&h.remove(),E(e)}else v&&(S(e),v.remove(),v=null);P(),Y(e.start,c(d(u),1))}},s)}})}var m=this;m.renderDaySegs=n,m.resizableDayEvent=p;var y=m.opt,b=m.trigger,w=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,C=m.reportEventElement,S=m.showEvents,E=m.hideEvents,x=m.eventResize,T=m.getRowCnt,k=m.getColCnt;m.getColWidth;var z=m.allDayRow,F=m.allDayBounds,N=m.colContentLeft,W=m.colContentRight,A=m.dayOfWeekCol,L=m.dateCell,_=m.compileDaySegs,B=m.getDaySegmentContainer,q=m.bindDaySeg,I=m.calendar.formatDates,Y=m.renderDayOverlay,P=m.clearOverlays,J=m.clearSelection}function de(){function e(t,e,a){n(),e||(e=c(t,a)),l(t,e,a),r(t,e,a)}function n(t){f&&(f=!1,u(),s("unselect",null,t))}function r(t,e,n,r){f=!0,s("select",null,t,e,n,r)}function a(e){var a=o.cellDate,s=o.cellIsAllDay,c=o.getHoverListener(),f=o.reportDayClick;if(1==e.which&&i("selectable")){n(e);var d;c.start(function(t,e){u(),t&&s(t)?(d=[a(e),a(t)].sort(Y),l(d[0],d[1],!0)):d=null},e),t(document).one("mouseup",function(t){c.stop(),d&&(+d[0]==+d[1]&&f(d[0],!0,t),r(d[0],d[1],!0,t))})}}var o=this;o.select=e,o.unselect=n,o.reportSelection=r,o.daySelectionMousedown=a;var i=o.opt,s=o.trigger,c=o.defaultSelectionEnd,l=o.renderSelection,u=o.clearSelection,f=!1;i("selectable")&&i("unselectAuto")&&t(document).mousedown(function(e){var r=i("unselectCancel");r&&t(e.target).parents(r).length||n(e)})}function ve(){function e(e,n){var r=o.shift();return r||(r=t("
")),r[0].parentNode!=n[0]&&r.appendTo(n),a.push(r.css(e).show()),r}function n(){for(var t;t=a.shift();)o.push(t.hide().unbind())}var r=this;r.renderOverlay=e,r.clearOverlays=n;var a=[],o=[]}function he(t){var e,n,r=this;r.build=function(){e=[],n=[],t(e,n)},r.cell=function(t,r){var a,o=e.length,i=n.length,s=-1,c=-1;for(a=0;o>a;a++)if(r>=e[a][0]&&e[a][1]>r){s=a;break}for(a=0;i>a;a++)if(t>=n[a][0]&&n[a][1]>t){c=a;break}return s>=0&&c>=0?{row:s,col:c}:null},r.rect=function(t,r,a,o,i){var s=i.offset();return{top:e[t][0]-s.top,left:n[r][0]-s.left,width:n[o][1]-n[r][0],height:e[a][1]-e[t][0]}}}function ge(e){function n(t){pe(t);var n=e.cell(t.pageX,t.pageY);(!n!=!i||n&&(n.row!=i.row||n.col!=i.col))&&(n?(o||(o=n),a(n,o,n.row-o.row,n.col-o.col)):a(n,o),i=n)}var r,a,o,i,s=this;s.start=function(s,c,l){a=s,o=i=null,e.build(),n(c),r=l||"mousemove",t(document).bind(r,n)},s.stop=function(){return t(document).unbind(r,n),i}}function pe(t){t.pageX===e&&(t.pageX=t.originalEvent.pageX,t.pageY=t.originalEvent.pageY)}function me(t){function n(e){return a[e]=a[e]||t(e)}var r=this,a={},o={},i={};r.left=function(t){return o[t]=o[t]===e?n(t).position().left:o[t]},r.right=function(t){return i[t]=i[t]===e?r.left(t)+n(t).width():i[t]},r.clear=function(){a={},o={},i={}}}var ye={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '—'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"",next:"",prevYear:"«",nextYear:"»",today:"today",month:"month",week:"week",day:"day"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*"},be={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"",next:"",prevYear:"»",nextYear:"«"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},we=t.fullCalendar={version:"1.6.0"},De=we.views={};t.fn.fullCalendar=function(n){if("string"==typeof n){var a,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var r=t.data(this,"fullCalendar");if(r&&t.isFunction(r[n])){var i=r[n].apply(r,o);a===e&&(a=i),"destroy"==n&&t.removeData(this,"fullCalendar")}}),a!==e?a:this}var i=n.eventSources||[];return delete n.eventSources,n.events&&(i.push(n.events),delete n.events),n=t.extend(!0,{},ye,n.isRTL||n.isRTL===e&&ye.isRTL?be:{},n),this.each(function(e,a){var o=t(a),s=new r(o,n,i);o.data("fullCalendar",s),s.render()}),this},we.sourceNormalizers=[],we.sourceFetchers=[];var Me={dataType:"json",cache:!1},Ce=1;we.addDays=c,we.cloneDate=d,we.parseDate=m,we.parseISO8601=y,we.parseTime=b,we.formatDate=w,we.formatDates=D;var Se=["sun","mon","tue","wed","thu","fri","sat"],Ee=864e5,xe=36e5,Te=6e4,ke={s:function(t){return t.getSeconds()},ss:function(t){return P(t.getSeconds())},m:function(t){return t.getMinutes()},mm:function(t){return P(t.getMinutes())},h:function(t){return t.getHours()%12||12},hh:function(t){return P(t.getHours()%12||12)},H:function(t){return t.getHours()},HH:function(t){return P(t.getHours())},d:function(t){return t.getDate()},dd:function(t){return P(t.getDate())},ddd:function(t,e){return e.dayNamesShort[t.getDay()]},dddd:function(t,e){return e.dayNames[t.getDay()]},M:function(t){return t.getMonth()+1},MM:function(t){return P(t.getMonth()+1)},MMM:function(t,e){return e.monthNamesShort[t.getMonth()]},MMMM:function(t,e){return e.monthNames[t.getMonth()]},yy:function(t){return(t.getFullYear()+"").substring(2)},yyyy:function(t){return t.getFullYear()},t:function(t){return 12>t.getHours()?"a":"p"},tt:function(t){return 12>t.getHours()?"am":"pm"},T:function(t){return 12>t.getHours()?"A":"P"},TT:function(t){return 12>t.getHours()?"AM":"PM"},u:function(t){return w(t,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(t){var e=t.getDate();return e>10&&20>e?"th":["st","nd","rd"][e%10-1]||"th"},w:function(t,e){return e.weekNumberCalculation(t)},W:function(t){return M(t)}};we.dateFormatters=ke,we.applyAll=G,De.month=te,De.basicWeek=ee,De.basicDay=ne,n({weekMode:"fixed"}),De.agendaWeek=oe,De.agendaDay=ie,n({allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24})})(jQuery); \ No newline at end of file +!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):"object"==typeof exports?module.exports=a(require("jquery"),require("moment")):a(jQuery,moment)}(function(a,b){function c(a){return Q(a,Ra)}function d(b){var c,d={views:b.views||{}};return a.each(b,function(b,e){"views"!=b&&(a.isPlainObject(e)&&!/(time|duration|interval)$/i.test(b)&&-1==a.inArray(b,Ra)?(c=null,a.each(e,function(a,e){/^(month|week|day|default|basic(Week|Day)?|agenda(Week|Day)?)$/.test(a)?(d.views[a]||(d.views[a]={}),d.views[a][b]=e):(c||(c={}),c[a]=e)}),c&&(d[b]=c)):d[b]=e)}),d}function e(a,b){b.left&&a.css({"border-left-width":1,"margin-left":b.left-1}),b.right&&a.css({"border-right-width":1,"margin-right":b.right-1})}function f(a){a.css({"margin-left":"","margin-right":"","border-left-width":"","border-right-width":""})}function g(){a("body").addClass("fc-not-allowed")}function h(){a("body").removeClass("fc-not-allowed")}function i(b,c,d){var e=Math.floor(c/b.length),f=Math.floor(c-e*(b.length-1)),g=[],h=[],i=[],k=0;j(b),b.each(function(c,d){var j=c===b.length-1?f:e,l=a(d).outerHeight(!0);j>l?(g.push(d),h.push(l),i.push(a(d).height())):k+=l}),d&&(c-=k,e=Math.floor(c/g.length),f=Math.floor(c-e*(g.length-1))),a(g).each(function(b,c){var d=b===g.length-1?f:e,j=h[b],k=i[b],l=d-(j-k);d>j&&a(c).height(l)})}function j(a){a.height("")}function k(b){var c=0;return b.find("> *").each(function(b,d){var e=a(d).outerWidth();e>c&&(c=e)}),c++,b.width(c),c}function l(a,b){return a.height(b).addClass("fc-scroller"),a[0].scrollHeight-1>a[0].clientHeight?!0:(m(a),!1)}function m(a){a.height("").removeClass("fc-scroller")}function n(b){var c=b.css("position"),d=b.parents().filter(function(){var b=a(this);return/(auto|scroll)/.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&d.length?d:a(b[0].ownerDocument||document)}function o(a){var b=a.offset();return{left:b.left,right:b.left+a.outerWidth(),top:b.top,bottom:b.top+a.outerHeight()}}function p(a){var b=a.offset(),c=r(a),d=b.left+u(a,"border-left-width")+c.left,e=b.top+u(a,"border-top-width")+c.top;return{left:d,right:d+a[0].clientWidth,top:e,bottom:e+a[0].clientHeight}}function q(a){var b=a.offset(),c=b.left+u(a,"border-left-width")+u(a,"padding-left"),d=b.top+u(a,"border-top-width")+u(a,"padding-top");return{left:c,right:c+a.width(),top:d,bottom:d+a.height()}}function r(a){var b=a.innerWidth()-a[0].clientWidth,c={left:0,right:0,top:0,bottom:a.innerHeight()-a[0].clientHeight};return s()&&"rtl"==a.css("direction")?c.left=b:c.right=b,c}function s(){return null===Sa&&(Sa=t()),Sa}function t(){var b=a("
").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),c=b.children(),d=c.offset().left>b.offset().left;return b.remove(),d}function u(a,b){return parseFloat(a.css(b))||0}function v(a){return 1==a.which&&!a.ctrlKey}function w(a,b){var c={left:Math.max(a.left,b.left),right:Math.min(a.right,b.right),top:Math.max(a.top,b.top),bottom:Math.min(a.bottom,b.bottom)};return c.lefti&&j>g?(g>=i?(c=g.clone(),e=!0):(c=i.clone(),e=!1),j>=h?(d=h.clone(),f=!0):(d=j.clone(),f=!1),{start:c,end:d,isStart:e,isEnd:f}):void 0}function F(a,c){return b.duration({days:a.clone().stripTime().diff(c.clone().stripTime(),"days"),ms:a.time()-c.time()})}function G(a,c){return b.duration({days:a.clone().stripTime().diff(c.clone().stripTime(),"days")})}function H(a,c,d){return b.duration(Math.round(a.diff(c,d,!0)),d)}function I(a,b){var c,d,e;for(c=0;c=1&&ba(e)));c++);return d}function J(a,c,d){return null!=d?d.diff(c,a,!0):b.isDuration(c)?c.as(a):c.end.diff(c.start,a,!0)}function K(a,b,c){var d;return N(c)?(b-a)/c:(d=c.asMonths(),Math.abs(d)>=1&&ba(d)?b.diff(a,"months",!0)/d:b.diff(a,"days",!0)/c.asDays())}function L(a,b){var c,d;return N(a)||N(b)?a/b:(c=a.asMonths(),d=b.asMonths(),Math.abs(c)>=1&&ba(c)&&Math.abs(d)>=1&&ba(d)?c/d:a.asDays()/b.asDays())}function M(a,c){var d;return N(a)?b.duration(a*c):(d=a.asMonths(),Math.abs(d)>=1&&ba(d)?b.duration({months:d*c}):b.duration({days:a.asDays()*c}))}function N(a){return Boolean(a.hours()||a.minutes()||a.seconds()||a.milliseconds())}function O(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function P(a){return/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(a)}function Q(a,b){var c,d,e,f,g,h,i={};if(b)for(c=0;c=0;f--)if(g=a[f][d],"object"==typeof g)e.unshift(g);else if(void 0!==g){i[d]=g;break}e.length&&(i[d]=Q(e))}for(c=a.length-1;c>=0;c--){h=a[c];for(d in h)d in i||(i[d]=h[d])}return i}function R(a){var b=function(){};return b.prototype=a,new b}function S(a,b){for(var c in a)U(a,c)&&(b[c]=a[c])}function T(a,b){var c,d,e=["constructor","toString","valueOf"];for(c=0;c/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function Z(a){return a.replace(/&.*?;/g,"")}function $(b){var c=[];return a.each(b,function(a,b){null!=b&&c.push(a+":"+b)}),c.join(";")}function _(a){return a.charAt(0).toUpperCase()+a.slice(1)}function aa(a,b){return a-b}function ba(a){return a%1===0}function ca(a,b){var c=a[b];return function(){return c.apply(a,arguments)}}function da(a,b){var c,d,e,f,g=function(){var h=+new Date-f;b>h&&h>0?c=setTimeout(g,b-h):(c=null,a.apply(e,d),c||(e=d=null))};return function(){e=this,d=arguments,f=+new Date,c||(c=setTimeout(g,b))}}function ea(c,d,e){var f,g,h,i,j=c[0],k=1==c.length&&"string"==typeof j;return b.isMoment(j)?(i=b.apply(null,c),ga(j,i)):O(j)||void 0===j?i=b.apply(null,c):(f=!1,g=!1,k?Za.test(j)?(j+="-01",c=[j],f=!0,g=!0):(h=$a.exec(j))&&(f=!h[5],g=!0):a.isArray(j)&&(g=!0),i=d||f?b.utc.apply(b,c):b.apply(null,c),f?(i._ambigTime=!0,i._ambigZone=!0):e&&(g?i._ambigZone=!0:k&&(i.utcOffset?i.utcOffset(j):i.zone(j)))),i._fullCalendar=!0,i}function fa(a,c){var d,e,f=!1,g=!1,h=a.length,i=[];for(d=0;h>d;d++)e=a[d],b.isMoment(e)||(e=Pa.moment.parseZone(e)),f=f||e._ambigTime,g=g||e._ambigZone,i.push(e);for(d=0;h>d;d++)e=i[d],c||!f||e._ambigTime?g&&!e._ambigZone&&(i[d]=e.clone().stripZone()):i[d]=e.clone().stripTime();return i}function ga(a,b){a._ambigTime?b._ambigTime=!0:b._ambigTime&&(b._ambigTime=!1),a._ambigZone?b._ambigZone=!0:b._ambigZone&&(b._ambigZone=!1)}function ha(a,b){a.year(b[0]||0).month(b[1]||0).date(b[2]||0).hours(b[3]||0).minutes(b[4]||0).seconds(b[5]||0).milliseconds(b[6]||0)}function ia(a,b){return ab.format.call(a,b)}function ja(a,b){return ka(a,pa(b))}function ka(a,b){var c,d="";for(c=0;cg&&(f=oa(a,b,c[h]),f!==!1);h--)k=f+k;for(i=g;h>=i;i++)l+=la(a,c[i]),m+=la(b,c[i]);return(l||m)&&(n=e?m+d+l:l+d+m),j+n+k}function oa(a,b,c){var d,e;return"string"==typeof c?c:(d=c.token)&&(e=cb[d.charAt(0)],e&&a.isSame(b,e))?ia(a,d):!1}function pa(a){return a in db?db[a]:db[a]=qa(a)}function qa(a){for(var b,c=[],d=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;b=d.exec(a);)b[1]?c.push(b[1]):b[2]?c.push({maybe:qa(b[2])}):b[3]?c.push({token:b[3]}):b[5]&&c.push(b[5]);return c}function ra(){}function sa(a,b){var c;return U(b,"constructor")&&(c=b.constructor),"function"!=typeof c&&(c=b.constructor=function(){a.apply(this,arguments)}),c.prototype=R(a.prototype),S(b,c.prototype),T(b,c.prototype),S(a,c),c}function ta(a,b){S(b.prototype||b,a.prototype)}function ua(a,b){return a||b?a&&b?a.component===b.component&&va(a,b)&&va(b,a):!1:!0}function va(a,b){for(var c in a)if(!/^(component|left|right|top|bottom)$/.test(c)&&a[c]!==b[c])return!1;return!0}function wa(a){var b=ya(a);return"background"===b||"inverse-background"===b}function xa(a){return"inverse-background"===ya(a)}function ya(a){return X((a.source||{}).rendering,a.rendering)}function za(a){var b,c,d={};for(b=0;b=a.leftCol)return!0;return!1}function Da(a,b){return a.leftCol-b.leftCol}function Ea(a){var b,c,d,e=[];for(b=0;bb.top&&a.top").prependTo(c),S=N.header=new Ma(N,O),T=S.render(),T&&c.prepend(T),i(O.defaultView),O.handleWindowResize&&(Y=da(m,O.windowResizeDelay),a(window).resize(Y))}function g(){W&&W.removeElement(),S.removeElement(),U.remove(),c.removeClass("fc fc-ltr fc-rtl fc-unthemed ui-widget"),Y&&a(window).unbind("resize",Y)}function h(){return c.is(":visible")}function i(b){ca++,W&&b&&W.type!==b&&(S.deactivateButton(W.type),H(),W.removeElement(),W=N.view=null),!W&&b&&(W=N.view=ba[b]||(ba[b]=N.instantiateView(b)),W.setElement(a("
").appendTo(U)),S.activateButton(b)),W&&(Z=W.massageCurrentDate(Z),W.displaying&&Z.isWithin(W.intervalStart,W.intervalEnd)||h()&&(H(),W.display(Z),I(),u(),v(),q())),I(),ca--}function j(a){return h()?(a&&l(),ca++,W.updateSize(!0),ca--,!0):void 0}function k(){h()&&l()}function l(){X="number"==typeof O.contentHeight?O.contentHeight:"number"==typeof O.height?O.height-(T?T.outerHeight(!0):0):Math.round(U.width()/Math.max(O.aspectRatio,.5))}function m(a){!ca&&a.target===window&&W.start&&j(!0)&&W.trigger("windowResize",aa)}function n(){p(),r()}function o(){h()&&(H(),W.displayEvents(ea),I())}function p(){H(),W.clearEvents(),I()}function q(){!O.lazyFetching||$(W.start,W.end)?r():o()}function r(){_(W.start,W.end)}function s(a){ea=a,o()}function t(){o()}function u(){S.updateTitle(W.title)}function v(){var a=N.getNow();a.isWithin(W.intervalStart,W.intervalEnd)?S.disableButton("today"):S.enableButton("today")}function w(a,b){W.select(N.buildSelectRange.apply(N,arguments))}function x(){W&&W.unselect()}function y(){Z=W.computePrevDate(Z),i()}function z(){Z=W.computeNextDate(Z),i()}function A(){Z.add(-1,"years"),i()}function B(){Z.add(1,"years"),i()}function C(){Z=N.getNow(),i()}function D(a){Z=N.moment(a),i()}function E(a){Z.add(b.duration(a)),i()}function F(a,b){var c;b=b||"day",c=N.getViewSpec(b)||N.getUnitViewSpec(b),Z=a,i(c?c.type:null)}function G(){return Z.clone()}function H(){U.css({width:"100%",height:U.height(),overflow:"hidden"})}function I(){U.css({width:"",height:"",overflow:""})}function J(){return N}function K(){return W}function L(a,b){return void 0===b?O[a]:void(("height"==a||"contentHeight"==a||"aspectRatio"==a)&&(O[a]=b,j(!0)))}function M(a,b){var c=Array.prototype.slice.call(arguments,2);return b=b||aa,this.triggerWith(a,b,c),O[a]?O[a].apply(b,c):void 0}var N=this;N.initOptions(d||{});var O=this.options;N.render=e,N.destroy=g,N.refetchEvents=n,N.reportEvents=s,N.reportEventChange=t,N.rerenderEvents=o,N.changeView=i,N.select=w,N.unselect=x,N.prev=y,N.next=z,N.prevYear=A,N.nextYear=B,N.today=C,N.gotoDate=D,N.incrementDate=E,N.zoomTo=F,N.getDate=G,N.getCalendar=J,N.getView=K,N.option=L,N.trigger=M;var P=R(La(O.lang));if(O.monthNames&&(P._months=O.monthNames),O.monthNamesShort&&(P._monthsShort=O.monthNamesShort),O.dayNames&&(P._weekdays=O.dayNames),O.dayNamesShort&&(P._weekdaysShort=O.dayNamesShort),null!=O.firstDay){var Q=R(P._week);Q.dow=O.firstDay,P._week=Q}P._fullCalendar_weekCalc=function(a){return"function"==typeof a?a:"local"===a?a:"iso"===a||"ISO"===a?"ISO":void 0}(O.weekNumberCalculation),N.defaultAllDayEventDuration=b.duration(O.defaultAllDayEventDuration),N.defaultTimedEventDuration=b.duration(O.defaultTimedEventDuration),N.moment=function(){var a;return"local"===O.timezone?(a=Pa.moment.apply(null,arguments),a.hasTime()&&a.local()):a="UTC"===O.timezone?Pa.moment.utc.apply(null,arguments):Pa.moment.parseZone.apply(null,arguments),"_locale"in a?a._locale=P:a._lang=P,a},N.getIsAmbigTimezone=function(){return"local"!==O.timezone&&"UTC"!==O.timezone},N.rezoneDate=function(a){return N.moment(a.toArray())},N.getNow=function(){var a=O.now;return"function"==typeof a&&(a=a()),N.moment(a)},N.getEventEnd=function(a){return a.end?a.end.clone():N.getDefaultEventEnd(a.allDay,a.start)},N.getDefaultEventEnd=function(a,b){var c=b.clone();return a?c.stripTime().add(N.defaultAllDayEventDuration):c.add(N.defaultTimedEventDuration),N.getIsAmbigTimezone()&&c.stripZone(),c},N.humanizeDuration=function(a){return(a.locale||a.lang).call(a,O.lang).humanize()},Na.call(N,O);var S,T,U,V,W,X,Y,Z,$=N.isFetchNeeded,_=N.fetchEvents,aa=c[0],ba={},ca=0,ea=[];Z=null!=O.defaultDate?N.moment(O.defaultDate):N.getNow(),N.getSuggestedViewHeight=function(){return void 0===X&&k(),X},N.isHeightAuto=function(){return"auto"===O.contentHeight||"auto"===O.height},N.initialize()}function Ka(b){a.each(tb,function(a,c){null==b[a]&&(b[a]=c(b))})}function La(a){var c=b.localeData||b.langData;return c.call(b,a)||c.call(b,"en")}function Ma(b,c){function d(){var b=c.header;return n=c.theme?"ui":"fc",b?o=a("
").append(f("left")).append(f("right")).append(f("center")).append('
'):void 0}function e(){o.remove(),o=a()}function f(d){var e=a('
'),f=c.header[d];return f&&a.each(f.split(" "),function(d){var f,g=a(),h=!0;a.each(this.split(","),function(d,e){var f,i,j,k,l,m,o,q,r,s;"title"==e?(g=g.add(a("

 

")),h=!1):((f=(b.options.customButtons||{})[e])?(j=function(a){f.click&&f.click.call(s[0],a)},k="",l=f.text):(i=b.getViewSpec(e))?(j=function(){b.changeView(e)},p.push(e),k=i.buttonTextOverride,l=i.buttonTextDefault):b[e]&&(j=function(){b[e]()},k=(b.overrides.buttonText||{})[e],l=c.buttonText[e]),j&&(m=f?f.themeIcon:c.themeButtonIcons[e],o=f?f.icon:c.buttonIcons[e],q=k?Y(k):m&&c.theme?"":o&&!c.theme?"":Y(l),r=["fc-"+e+"-button",n+"-button",n+"-state-default"],s=a('").click(function(a){s.hasClass(n+"-state-disabled")||(j(a),(s.hasClass(n+"-state-active")||s.hasClass(n+"-state-disabled"))&&s.removeClass(n+"-state-hover"))}).mousedown(function(){s.not("."+n+"-state-active").not("."+n+"-state-disabled").addClass(n+"-state-down")}).mouseup(function(){s.removeClass(n+"-state-down")}).hover(function(){s.not("."+n+"-state-active").not("."+n+"-state-disabled").addClass(n+"-state-hover")},function(){s.removeClass(n+"-state-hover").removeClass(n+"-state-down")}),g=g.add(s)))}),h&&g.first().addClass(n+"-corner-left").end().last().addClass(n+"-corner-right").end(),g.length>1?(f=a("
"),h&&f.addClass("fc-button-group"),f.append(g),e.append(f)):e.append(g)}),e}function g(a){o.find("h2").text(a)}function h(a){o.find(".fc-"+a+"-button").addClass(n+"-state-active")}function i(a){o.find(".fc-"+a+"-button").removeClass(n+"-state-active")}function j(a){o.find(".fc-"+a+"-button").attr("disabled","disabled").addClass(n+"-state-disabled")}function k(a){o.find(".fc-"+a+"-button").removeAttr("disabled").removeClass(n+"-state-disabled")}function l(){return p}var m=this;m.render=d,m.removeElement=e,m.updateTitle=g,m.activateButton=h,m.deactivateButton=i,m.disableButton=j,m.enableButton=k,m.getViewsWithButtons=l;var n,o=a(),p=[]}function Na(c){function d(a,b){return!M||a.clone().stripZone()N.clone().stripZone()}function e(a,b){M=a,N=b,U=[];var c=++S,d=R.length;T=d;for(var e=0;d>e;e++)f(R[e],c)}function f(b,c){g(b,function(d){var e,f,g,h=a.isArray(b.events);if(c==S){if(d)for(e=0;e=c&&b.end<=d}function K(a,b){var c=a.start.clone().stripZone(),d=L.getEventEnd(a).stripZone();return b.startc}var L=this;L.isFetchNeeded=d,L.fetchEvents=e,L.addEventSource=h,L.removeEventSource=j,L.updateEvent=m,L.renderEvent=p,L.removeEvents=q,L.clientEvents=r,L.mutateEvent=y,L.normalizeEventRange=u,L.normalizeEventRangeTimes=v,L.ensureVisibleEventRange=w;var M,N,O=L.reportEvents,Q={events:[]},R=[Q],S=0,T=0,U=[];a.each((c.events?[c.events]:[]).concat(c.eventSources||[]),function(a,b){var c=i(b);c&&R.push(c)}),L.getBusinessHoursEvents=A,L.isEventRangeAllowed=B,L.isSelectionRangeAllowed=C,L.isExternalDropRangeAllowed=D,L.getEventCache=function(){return U}}function Oa(a){a._allDay=a.allDay,a._start=a.start.clone(),a._end=a.end?a.end.clone():null}var Pa=a.fullCalendar={version:"2.5.0-beta"},Qa=Pa.views={};a.fn.fullCalendar=function(b){var c=Array.prototype.slice.call(arguments,1),d=this;return this.each(function(e,f){var g,h=a(f),i=h.data("fullCalendar");"string"==typeof b?i&&a.isFunction(i[b])&&(g=i[b].apply(i,c),e||(d=g),"destroy"===b&&h.removeData("fullCalendar")):i||(i=new pb(h,b),h.data("fullCalendar",i),i.render())}),d};var Ra=["header","buttonText","buttonIcons","themeButtonIcons"];Pa.intersectionToSeg=E,Pa.applyAll=W,Pa.debounce=da,Pa.isInt=ba,Pa.htmlEscape=Y,Pa.cssToStr=$,Pa.proxy=ca,Pa.capitaliseFirstLetter=_,Pa.getOuterRect=o,Pa.getClientRect=p,Pa.getContentRect=q,Pa.getScrollbarWidths=r;var Sa=null;Pa.intersectRects=w,Pa.parseFieldSpecs=A,Pa.compareByFieldSpecs=B,Pa.compareByFieldSpec=C,Pa.flexibleCompare=D,Pa.computeIntervalUnit=I,Pa.divideRangeByDuration=K,Pa.divideDurationByDuration=L,Pa.multiplyDuration=M,Pa.durationHasTime=N;var Ta=["sun","mon","tue","wed","thu","fri","sat"],Ua=["year","month","week","day","hour","minute","second","millisecond"];Pa.log=function(){var a=window.console;return a&&a.log?a.log.apply(a,arguments):void 0},Pa.warn=function(){var a=window.console;return a&&a.warn?a.warn.apply(a,arguments):Pa.log.apply(Pa,arguments)};var Va,Wa,Xa,Ya={}.hasOwnProperty,Za=/^\s*\d{4}-\d\d$/,$a=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/,_a=b.fn,ab=a.extend({},_a);Pa.moment=function(){return ea(arguments)},Pa.moment.utc=function(){var a=ea(arguments,!0);return a.hasTime()&&a.utc(),a},Pa.moment.parseZone=function(){return ea(arguments,!0,!0)},_a.clone=function(){var a=ab.clone.apply(this,arguments);return ga(this,a),this._fullCalendar&&(a._fullCalendar=!0),a},_a.week=_a.weeks=function(a){var b=(this._locale||this._lang)._fullCalendar_weekCalc;return null==a&&"function"==typeof b?b(this):"ISO"===b?ab.isoWeek.apply(this,arguments):ab.week.apply(this,arguments)},_a.time=function(a){if(!this._fullCalendar)return ab.time.apply(this,arguments);if(null==a)return b.duration({hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()});this._ambigTime=!1,b.isDuration(a)||b.isMoment(a)||(a=b.duration(a));var c=0;return b.isDuration(a)&&(c=24*Math.floor(a.asDays())),this.hours(c+a.hours()).minutes(a.minutes()).seconds(a.seconds()).milliseconds(a.milliseconds())},_a.stripTime=function(){var a;return this._ambigTime||(a=this.toArray(),this.utc(),Wa(this,a.slice(0,3)),this._ambigTime=!0,this._ambigZone=!0),this},_a.hasTime=function(){return!this._ambigTime},_a.stripZone=function(){var a,b;return this._ambigZone||(a=this.toArray(),b=this._ambigTime,this.utc(),Wa(this,a),this._ambigTime=b||!1,this._ambigZone=!0),this},_a.hasZone=function(){return!this._ambigZone},_a.local=function(){var a=this.toArray(),b=this._ambigZone;return ab.local.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,b&&Xa(this,a),this},_a.utc=function(){return ab.utc.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,this},a.each(["zone","utcOffset"],function(a,b){ab[b]&&(_a[b]=function(a){return null!=a&&(this._ambigTime=!1,this._ambigZone=!1),ab[b].apply(this,arguments)})}),_a.format=function(){return this._fullCalendar&&arguments[0]?ja(this,arguments[0]):this._ambigTime?ia(this,"YYYY-MM-DD"):this._ambigZone?ia(this,"YYYY-MM-DD[T]HH:mm:ss"):ab.format.apply(this,arguments)},_a.toISOString=function(){return this._ambigTime?ia(this,"YYYY-MM-DD"):this._ambigZone?ia(this,"YYYY-MM-DD[T]HH:mm:ss"):ab.toISOString.apply(this,arguments)},_a.isWithin=function(a,b){var c=fa([this,a,b]);return c[0]>=c[1]&&c[0]a;a++)b=arguments[a],c-1>a&&ta(this,b);return sa(this,b||{})},ra.mixin=function(a){ta(this,a)};var eb=Pa.Emitter=ra.extend({callbackHash:null,on:function(a,b){return this.getCallbacks(a).add(b),this},off:function(a,b){return this.getCallbacks(a).remove(b),this},trigger:function(a){var b=Array.prototype.slice.call(arguments,1);return this.triggerWith(a,this,b),this},triggerWith:function(a,b,c){var d=this.getCallbacks(a);return d.fireWith(b,c),this},getCallbacks:function(b){var c;return this.callbackHash||(this.callbackHash={}),c=this.callbackHash[b],c||(c=this.callbackHash[b]=a.Callbacks()),c}}),fb=ra.extend({isHidden:!0,options:null,el:null,documentMousedownProxy:null,margin:10,constructor:function(a){this.options=a||{}},show:function(){this.isHidden&&(this.el||this.render(),this.el.show(),this.position(),this.isHidden=!1,this.trigger("show"))},hide:function(){this.isHidden||(this.el.hide(),this.isHidden=!0,this.trigger("hide"))},render:function(){var b=this,c=this.options;this.el=a('
').addClass(c.className||"").css({top:0,left:0}).append(c.content).appendTo(c.parentEl),this.el.on("click",".fc-close",function(){b.hide()}),c.autoHide&&a(document).on("mousedown",this.documentMousedownProxy=ca(this,"documentMousedown"))},documentMousedown:function(b){this.el&&!a(b.target).closest(this.el).length&&this.hide()},removeElement:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),a(document).off("mousedown",this.documentMousedownProxy)},position:function(){var b,c,d,e,f,g=this.options,h=this.el.offsetParent().offset(),i=this.el.outerWidth(),j=this.el.outerHeight(),k=a(window),l=n(this.el);e=g.top||0,f=void 0!==g.left?g.left:void 0!==g.right?g.right-i:0,l.is(window)||l.is(document)?(l=k,b=0,c=0):(d=l.offset(),b=d.top,c=d.left),b+=k.scrollTop(),c+=k.scrollLeft(),g.viewportConstrain!==!1&&(e=Math.min(e,b+l.outerHeight()-j-this.margin), +e=Math.max(e,b+this.margin),f=Math.min(f,c+l.outerWidth()-i-this.margin),f=Math.max(f,c+this.margin)),this.el.css({top:e-h.top,left:f-h.left})},trigger:function(a){this.options[a]&&this.options[a].apply(this,Array.prototype.slice.call(arguments,1))}}),gb=Pa.CoordCache=ra.extend({els:null,origin:null,boundingRect:null,isHorizontal:!1,isVertical:!1,lefts:null,rights:null,tops:null,bottoms:null,constructor:function(b){this.els=a(b.els),this.isHorizontal=b.isHorizontal,this.isVertical=b.isVertical},build:function(){this.origin=this.els.eq(0).offsetParent().offset(),this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},clear:function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},queryBoundingRect:function(){var a=n(this.els.eq(0));return a.is(document)?void 0:p(a)},buildElHorizontals:function(){var b=[],c=[];this.els.each(function(d,e){var f=a(e),g=f.offset().left,h=f.outerWidth();b.push(g),c.push(g+h)}),this.lefts=b,this.rights=c},buildElVerticals:function(){var b=[],c=[];this.els.each(function(d,e){var f=a(e),g=f.offset().top,h=f.outerHeight();b.push(g),c.push(g+h)}),this.tops=b,this.bottoms=c},getHorizontalIndex:function(a){var b,c=this.boundingRect,d=this.lefts,e=this.rights,f=d.length;if(!c||a>=c.left&&ab;b++)if(a>=d[b]&&a=c.top&&ab;b++)if(a>=d[b]&&a=b*b&&this.startDrag(a)),this.isDragging&&this.drag(d,e,a)},startDrag:function(a){this.isListening||this.startListening(),this.isDragging||(this.isDragging=!0,this.dragStart(a))},dragStart:function(a){var b=this.subjectEl;this.trigger("dragStart",a),(this.subjectHref=b?b.attr("href"):null)&&b.removeAttr("href")},drag:function(a,b,c){this.trigger("drag",a,b,c),this.updateScroll(c)},mouseup:function(a){this.stopListening(a)},stopDrag:function(a){this.isDragging&&(this.stopScrolling(),this.dragStop(a),this.isDragging=!1)},dragStop:function(a){var b=this;this.trigger("dragStop",a),setTimeout(function(){b.subjectHref&&b.subjectEl.attr("href",b.subjectHref)},0)},stopListening:function(b){this.stopDrag(b),this.isListening&&(this.scrollEl&&(this.scrollEl.off("scroll",this.scrollHandlerProxy),this.scrollHandlerProxy=null),a(document).off("mousemove",this.mousemoveProxy).off("mouseup",this.mouseupProxy).off("selectstart",this.preventDefault),this.mousemoveProxy=null,this.mouseupProxy=null,this.isListening=!1,this.listenStop(b))},listenStop:function(a){this.trigger("listenStop",a)},trigger:function(a){this.options[a]&&this.options[a].apply(this,Array.prototype.slice.call(arguments,1))},preventDefault:function(a){a.preventDefault()},computeScrollBounds:function(){var a=this.scrollEl;this.scrollBounds=a?o(a):null},updateScroll:function(a){var b,c,d,e,f=this.scrollSensitivity,g=this.scrollBounds,h=0,i=0;g&&(b=(f-(a.pageY-g.top))/f,c=(f-(g.bottom-a.pageY))/f,d=(f-(a.pageX-g.left))/f,e=(f-(g.right-a.pageX))/f,b>=0&&1>=b?h=b*this.scrollSpeed*-1:c>=0&&1>=c&&(h=c*this.scrollSpeed),d>=0&&1>=d?i=d*this.scrollSpeed*-1:e>=0&&1>=e&&(i=e*this.scrollSpeed)),this.setScrollVel(h,i)},setScrollVel:function(a,b){this.scrollTopVel=a,this.scrollLeftVel=b,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(ca(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var a=this.scrollEl;this.scrollTopVel<0?a.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&a.scrollTop()+a[0].clientHeight>=a[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?a.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&a.scrollLeft()+a[0].clientWidth>=a[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var a=this.scrollEl,b=this.scrollIntervalMs/1e3;this.scrollTopVel&&a.scrollTop(a.scrollTop()+this.scrollTopVel*b),this.scrollLeftVel&&a.scrollLeft(a.scrollLeft()+this.scrollLeftVel*b),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.stopScrolling()},stopScrolling:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.scrollStop())},scrollHandler:function(){this.scrollIntervalId||this.scrollStop()},scrollStop:function(){}}),ib=hb.extend({component:null,origHit:null,hit:null,coordAdjust:null,constructor:function(a,b){hb.call(this,b),this.component=a},listenStart:function(a){var b,c,d,e=this.subjectEl;hb.prototype.listenStart.apply(this,arguments),this.computeCoords(),a?(c={left:a.pageX,top:a.pageY},d=c,e&&(b=o(e),d=x(d,b)),this.origHit=this.queryHit(d.left,d.top),e&&this.options.subjectCenter&&(this.origHit&&(b=w(this.origHit,b)||b),d=y(b)),this.coordAdjust=z(d,c)):(this.origHit=null,this.coordAdjust=null)},computeCoords:function(){this.component.prepareHits(),this.computeScrollBounds()},dragStart:function(a){var b;hb.prototype.dragStart.apply(this,arguments),b=this.queryHit(a.pageX,a.pageY),b&&this.hitOver(b)},drag:function(a,b,c){var d;hb.prototype.drag.apply(this,arguments),d=this.queryHit(c.pageX,c.pageY),ua(d,this.hit)||(this.hit&&this.hitOut(),d&&this.hitOver(d))},dragStop:function(){this.hitDone(),hb.prototype.dragStop.apply(this,arguments)},hitOver:function(a){var b=ua(a,this.origHit);this.hit=a,this.trigger("hitOver",this.hit,b,this.origHit)},hitOut:function(){this.hit&&(this.trigger("hitOut",this.hit),this.hitDone(),this.hit=null)},hitDone:function(){this.hit&&this.trigger("hitDone",this.hit)},listenStop:function(){hb.prototype.listenStop.apply(this,arguments),this.origHit=null,this.hit=null,this.component.releaseHits()},scrollStop:function(){hb.prototype.scrollStop.apply(this,arguments),this.computeCoords()},queryHit:function(a,b){return this.coordAdjust&&(a+=this.coordAdjust.left,b+=this.coordAdjust.top),this.component.queryHit(a,b)}}),jb=ra.extend({options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,mouseY0:null,mouseX0:null,topDelta:null,leftDelta:null,mousemoveProxy:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(b,c){this.options=c=c||{},this.sourceEl=b,this.parentEl=c.parentEl?a(c.parentEl):b.parent()},start:function(b){this.isFollowing||(this.isFollowing=!0,this.mouseY0=b.pageY,this.mouseX0=b.pageX,this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),a(document).on("mousemove",this.mousemoveProxy=ca(this,"mousemove")))},stop:function(b,c){function d(){this.isAnimating=!1,e.removeElement(),this.top0=this.left0=null,c&&c()}var e=this,f=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,a(document).off("mousemove",this.mousemoveProxy),b&&f&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:f,complete:d})):d())},getEl:function(){var a=this.el;return a||(this.sourceEl.width(),a=this.el=this.sourceEl.clone().css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}).appendTo(this.parentEl)),a},removeElement:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var a,b;this.getEl(),null===this.top0&&(this.sourceEl.width(),a=this.sourceEl.offset(),b=this.el.offsetParent().offset(),this.top0=a.top-b.top,this.left0=a.left-b.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},mousemove:function(a){this.topDelta=a.pageY-this.mouseY0,this.leftDelta=a.pageX-this.mouseX0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),kb=Pa.Grid=ra.extend({view:null,isRTL:null,start:null,end:null,el:null,elsByFill:null,externalDragStartProxy:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,minResizeDuration:null,largeUnit:null,constructor:function(a){this.view=a,this.isRTL=a.opt("isRTL"),this.elsByFill={},this.externalDragStartProxy=ca(this,"externalDragStart")},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(a){this.start=a.start.clone(),this.end=a.end.clone(),this.rangeUpdated(),this.processRangeOptions()},rangeUpdated:function(){},processRangeOptions:function(){var a,b,c=this.view;this.eventTimeFormat=c.opt("eventTimeFormat")||c.opt("timeFormat")||this.computeEventTimeFormat(),a=c.opt("displayEventTime"),null==a&&(a=this.computeDisplayEventTime()),b=c.opt("displayEventEnd"),null==b&&(b=this.computeDisplayEventEnd()),this.displayEventTime=a,this.displayEventEnd=b},rangeToSegs:function(a){},diffDates:function(a,b){return this.largeUnit?H(a,b,this.largeUnit):F(a,b)},prepareHits:function(){},releaseHits:function(){},queryHit:function(a,b){},getHitSpan:function(a){},getHitEl:function(a){},setElement:function(b){var c=this;this.el=b,b.on("mousedown",function(b){a(b.target).is(".fc-event-container *, .fc-more")||a(b.target).closest(".fc-popover").length||c.dayMousedown(b)}),this.bindSegHandlers(),this.bindGlobalHandlers()},removeElement:function(){this.unbindGlobalHandlers(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},bindGlobalHandlers:function(){a(document).on("dragstart sortstart",this.externalDragStartProxy)},unbindGlobalHandlers:function(){a(document).off("dragstart sortstart",this.externalDragStartProxy)},dayMousedown:function(a){var b,c,d=this,e=this.view,f=e.opt("selectable"),i=new ib(this,{scroll:e.opt("dragScroll"),dragStart:function(){e.unselect()},hitOver:function(a,e,h){h&&(b=e?a:null,f&&(c=d.computeSelection(d.getHitSpan(h),d.getHitSpan(a)),c?d.renderSelection(c):c===!1&&g()))},hitOut:function(){b=null,c=null,d.unrenderSelection(),h()},listenStop:function(a){b&&e.triggerDayClick(d.getHitSpan(b).start,d.getHitEl(b),a),c&&e.reportSelection(c,a),h()}});i.mousedown(a)},renderRangeHelper:function(a,b){var c=this.fabricateHelperEvent(a,b);this.renderHelper(c,b)},fabricateHelperEvent:function(a,b){var c=b?R(b.event):{};return c.start=a.start.clone(),c.end=a.end?a.end.clone():null,c.allDay=null,this.view.calendar.normalizeEventRange(c),c.className=(c.className||[]).concat("fc-helper"),b||(c.editable=!1),c},renderHelper:function(a,b){},unrenderHelper:function(){},renderSelection:function(a){this.renderHighlight(this.selectionRangeToSegs(a))},unrenderSelection:function(){this.unrenderHighlight()},computeSelection:function(a,b){var c,d=[a.start,a.end,b.start,b.end];return d.sort(aa),c={start:d[0].clone(),end:d[3].clone()},this.view.calendar.isSelectionRangeAllowed(c)?c:!1},selectionRangeToSegs:function(a){return this.rangeToSegs(a)},renderHighlight:function(a){this.renderFill("highlight",a)},unrenderHighlight:function(){this.unrenderFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderFill:function(a,b){},unrenderFill:function(a){var b=this.elsByFill[a];b&&(b.remove(),delete this.elsByFill[a])},renderFillSegEls:function(b,c){var d,e=this,f=this[b+"SegEl"],g="",h=[];if(c.length){for(d=0;d"},getDayClasses:function(a){var b=this.view,c=b.calendar.getNow().stripTime(),d=["fc-"+Ta[a.day()]];return 1==b.intervalDuration.as("months")&&a.month()!=b.intervalStart.month()&&d.push("fc-other-month"),a.isSame(c,"day")?d.push("fc-today",b.highlightStateClass):c>a?d.push("fc-past"):d.push("fc-future"),d}});kb.mixin({mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(a){var b,c,d=this.eventsToSegs(a),e=[],f=[];for(b=0;b *",function(c){var e=a(this).data("fc-seg");return!e||b.isDraggingSeg||b.isResizingSeg?void 0:d.call(this,e,c)})})},triggerSegMouseover:function(a,b){this.mousedOverSeg||(this.mousedOverSeg=a,this.view.trigger("eventMouseover",a.el[0],a.event,b))},triggerSegMouseout:function(a,b){b=b||{},this.mousedOverSeg&&(a=a||this.mousedOverSeg,this.mousedOverSeg=null,this.view.trigger("eventMouseout",a.el[0],a.event,b))},segDragMousedown:function(a,b){var c,d=this,e=this.view,f=e.calendar,i=a.el,j=a.event,k=new jb(a.el,{parentEl:e.el,opacity:e.opt("dragOpacity"),revertDuration:e.opt("dragRevertDuration"),zIndex:2}),l=new ib(e,{distance:5,scroll:e.opt("dragScroll"),subjectEl:i,subjectCenter:!0,listenStart:function(a){k.hide(),k.start(a)},dragStart:function(b){d.triggerSegMouseout(a,b),d.segDragStart(a,b),e.hideEvent(j)},hitOver:function(b,h,i){a.hit&&(i=a.hit),c=d.computeEventDrop(i.component.getHitSpan(i),b.component.getHitSpan(b),j),c&&!f.isEventRangeAllowed(c,j)&&(g(),c=null),c&&e.renderDrag(c,a)?k.hide():k.show(),h&&(c=null)},hitOut:function(){e.unrenderDrag(),k.show(),c=null},hitDone:function(){h()},dragStop:function(b){k.stop(!c,function(){e.unrenderDrag(),e.showEvent(j),d.segDragStop(a,b),c&&e.reportEventDrop(j,c,this.largeUnit,i,b)})},listenStop:function(){k.stop()}});l.mousedown(b)},segDragStart:function(a,b){this.isDraggingSeg=!0,this.view.trigger("eventDragStart",a.el[0],a.event,b,{})},segDragStop:function(a,b){this.isDraggingSeg=!1,this.view.trigger("eventDragStop",a.el[0],a.event,b,{})},computeEventDrop:function(a,b,c){var d,e,f=this.view.calendar,g=a.start,h=b.start;return g.hasTime()===h.hasTime()?(d=this.diffDates(h,g),c.allDay&&N(d)?(e={start:c.start.clone(),end:f.getEventEnd(c),allDay:!1},f.normalizeEventRangeTimes(e)):e={start:c.start.clone(),end:c.end?c.end.clone():null,allDay:c.allDay},e.start.add(d),e.end&&e.end.add(d)):e={start:h.clone(),end:null,allDay:!h.hasTime()},e},applyDragOpacity:function(a){var b=this.view.opt("dragOpacity");null!=b&&a.each(function(a,c){c.style.opacity=b})},externalDragStart:function(b,c){var d,e,f=this.view;f.opt("droppable")&&(d=a((c?c.item:null)||b.target),e=f.opt("dropAccept"),(a.isFunction(e)?e.call(d[0],d):d.is(e))&&(this.isDraggingExternal||this.listenToExternalDrag(d,b,c)))},listenToExternalDrag:function(a,b,c){var d,e=this,f=Ba(a),i=new ib(this,{listenStart:function(){e.isDraggingExternal=!0},hitOver:function(a){d=e.computeExternalDrop(a.component.getHitSpan(a),f),d?e.renderDrag(d):g()},hitOut:function(){d=null,e.unrenderDrag(),h()},dragStop:function(){e.unrenderDrag(),h(),d&&e.view.reportExternalDrop(f,d,a,b,c)},listenStop:function(){e.isDraggingExternal=!1}});i.startDrag(b)},computeExternalDrop:function(a,b){var c={start:a.start,end:null};return b.startTime&&!c.start.hasTime()&&c.start.time(b.startTime),b.duration&&(c.end=c.start.clone().add(b.duration)),this.view.calendar.isExternalDropRangeAllowed(c,b.eventProps)?c:null},renderDrag:function(a,b){},unrenderDrag:function(){},segResizeMousedown:function(a,b,c){var d,e=this,f=this.view,i=f.calendar,j=a.el,k=a.event,l=i.getEventEnd(k),m=new ib(this,{distance:5,scroll:f.opt("dragScroll"),subjectEl:j,dragStart:function(b){e.triggerSegMouseout(a,b),e.segResizeStart(a,b)},hitOver:function(b,h,j){var m=e.getHitSpan(j),n=e.getHitSpan(b);d=c?e.computeEventStartResize(m,n,k):e.computeEventEndResize(m,n,k),d&&(i.isEventRangeAllowed(d,k)?d.start.isSame(k.start)&&d.end.isSame(l)&&(d=null):(g(),d=null)),d&&(f.hideEvent(k),e.renderEventResize(d,a))},hitOut:function(){d=null},hitDone:function(){e.unrenderEventResize(),f.showEvent(k),h()},dragStop:function(b){e.segResizeStop(a,b),d&&f.reportEventResize(k,d,this.largeUnit,j,b)}});m.mousedown(b)},segResizeStart:function(a,b){this.isResizingSeg=!0,this.view.trigger("eventResizeStart",a.el[0],a.event,b,{})},segResizeStop:function(a,b){this.isResizingSeg=!1,this.view.trigger("eventResizeStop",a.el[0],a.event,b,{})},computeEventStartResize:function(a,b,c){return this.computeEventResize("start",a,b,c)},computeEventEndResize:function(a,b,c){return this.computeEventResize("end",a,b,c)},computeEventResize:function(a,b,c,d){var e,f,g=this.view.calendar,h=this.diffDates(c[a],b[a]);return e={start:d.start.clone(),end:g.getEventEnd(d),allDay:d.allDay},e.allDay&&N(h)&&(e.allDay=!1,g.normalizeEventRangeTimes(e)),e[a].add(h),e.start.isBefore(e.end)||(f=this.minResizeDuration||(d.allDay?g.defaultAllDayEventDuration:g.defaultTimedEventDuration),"start"==a?e.start=e.end.clone().subtract(f):e.end=e.start.clone().add(f)),e},renderEventResize:function(a,b){},unrenderEventResize:function(){},getEventTimeText:function(a,b,c){return null==b&&(b=this.eventTimeFormat),null==c&&(c=this.displayEventEnd),this.displayEventTime&&a.start.hasTime()?c&&a.end?this.view.formatRange(a,b):a.start.format(b):""},getSegClasses:function(a,b,c){var d=a.event,e=["fc-event",a.isStart?"fc-start":"fc-not-start",a.isEnd?"fc-end":"fc-not-end"].concat(d.className,d.source?d.source.className:[]);return b&&e.push("fc-draggable"),c&&e.push("fc-resizable"),e},getEventSkinCss:function(a){var b=this.view,c=a.source||{},d=a.color,e=c.color,f=b.opt("eventColor");return{"background-color":a.backgroundColor||d||c.backgroundColor||e||b.opt("eventBackgroundColor")||f,"border-color":a.borderColor||d||c.borderColor||e||b.opt("eventBorderColor")||f,color:a.textColor||c.textColor||b.opt("eventTextColor")}},eventsToSegs:function(a,b){var c,d=this.eventsToRanges(a),e=[];for(c=0;cj&&h.push({event:i,start:j,end:c.start}),j=c.end;return f>j&&h.push({event:i,start:j,end:f}),h},eventRangeToSegs:function(a,b){var c,d,e;for(a=this.view.calendar.ensureVisibleEventRange(a),c=b?b(a):this.rangeToSegs(a),d=0;dc?b[0]-1:c>=b.length?b[b.length-1]+1:b[c]},computeColHeadFormat:function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},sliceRangeByRow:function(a){var b,c,d,e,f,g=this.daysPerRow,h=this.view.computeDayRange(a),i=this.getDateDayIndex(h.start),j=this.getDateDayIndex(h.end.clone().subtract(1,"days")),k=[];for(b=0;b=e&&k.push({row:b,firstRowDayIndex:e-c,lastRowDayIndex:f-c,isStart:e===i,isEnd:f===j});return k},sliceRangeByDay:function(a){var b,c,d,e,f,g,h=this.daysPerRow,i=this.view.computeDayRange(a),j=this.getDateDayIndex(i.start),k=this.getDateDayIndex(i.end.clone().subtract(1,"days")),l=[];for(b=0;b=e;e++)f=Math.max(j,e),g=Math.min(k,e),f=Math.ceil(f),g=Math.floor(g),g>=f&&l.push({row:b,firstRowDayIndex:f-c,lastRowDayIndex:g-c,isStart:f===j,isEnd:g===k});return l},renderHeadHtml:function(){var a=this.view;return'
'+this.renderHeadTrHtml()+"
"},renderHeadIntroHtml:function(){return this.renderIntroHtml()},renderHeadTrHtml:function(){return"
'+this.renderBgTrHtml(a)+'
'+(this.numbersVisible?""+this.renderNumberTrHtml(a)+"":"")+"
"},renderNumberTrHtml:function(a){return""+(this.isRTL?"":this.renderNumberIntroHtml(a))+this.renderNumberCellsHtml(a)+(this.isRTL?this.renderNumberIntroHtml(a):"")+""},renderNumberIntroHtml:function(a){return this.renderIntroHtml()},renderNumberCellsHtml:function(a){var b,c,d=[];for(b=0;b'+a.date()+""):""},computeEventTimeFormat:function(){return this.view.opt("extraSmallTimeFormat")},computeDisplayEventEnd:function(){return 1==this.colCnt},rangeUpdated:function(){this.updateDayTable()},rangeToSegs:function(a){var b,c,d=this.sliceRangeByRow(a);for(b=0;b');g=c&&c.row===b?c.el.position().top:h.find(".fc-content-skeleton tbody").position().top,i.css("top",g).find("table").append(d[b].tbodyEl),h.append(i),e.push(i[0])}),this.helperEls=a(e)},unrenderHelper:function(){this.helperEls&&(this.helperEls.remove(),this.helperEls=null)},fillSegTag:"td",renderFill:function(b,c,d){var e,f,g,h=[];for(c=this.renderFillSegEls(b,c),e=0;e
'),f=e.find("tr"),h>0&&f.append(''),f.append(c.el.attr("colspan",i-h)),g>i&&f.append(''),this.bookendCells(f),e}});mb.mixin({rowStructs:null,unrenderEvents:function(){this.removeSegPopover(),kb.prototype.unrenderEvents.apply(this,arguments)},getEventSegs:function(){return kb.prototype.getEventSegs.call(this).concat(this.popoverSegs||[])},renderBgSegs:function(b){var c=a.grep(b,function(a){return a.event.allDay});return kb.prototype.renderBgSegs.call(this,c)},renderFgSegs:function(b){var c;return b=this.renderFgSegEls(b),c=this.rowStructs=this.renderSegRows(b),this.rowEls.each(function(b,d){a(d).find(".fc-content-skeleton > table").append(c[b].tbodyEl)}),b},unrenderFgSegs:function(){for(var a,b=this.rowStructs||[];a=b.pop();)a.tbodyEl.remove();this.rowStructs=null},renderSegRows:function(a){var b,c,d=[];for(b=this.groupSegRows(a),c=0;c'+Y(c)+"")),d=''+(Y(f.title||"")||" ")+"",'
'+(this.isRTL?d+" "+l:l+" "+d)+"
"+(h?'
':"")+(i?'
':"")+""},renderSegRow:function(b,c){ +function d(b){for(;b>g;)k=(r[e-1]||[])[g],k?k.attr("rowspan",parseInt(k.attr("rowspan")||1,10)+1):(k=a(""),h.append(k)),q[e][g]=k,r[e][g]=k,g++}var e,f,g,h,i,j,k,l=this.colCnt,m=this.buildSegLevels(c),n=Math.max(1,m.length),o=a(""),p=[],q=[],r=[];for(e=0;n>e;e++){if(f=m[e],g=0,h=a(""),p.push([]),q.push([]),r.push([]),f)for(i=0;i').append(j.el),j.leftCol!=j.rightCol?k.attr("colspan",j.rightCol-j.leftCol+1):r[e][g]=k;g<=j.rightCol;)q[e][g]=k,p[e][g]=j,g++;h.append(k)}d(l),this.bookendCells(h),o.append(h)}return{row:b,tbodyEl:o,cellMatrix:q,segMatrix:p,segLevels:m,segs:c}},buildSegLevels:function(a){var b,c,d,e=[];for(this.sortSegs(a),b=0;b td > :first-child").each(c),e.position().top+f>h)return d;return!1},limitRow:function(b,c){function d(d){for(;d>w;)j=t.getCellSegs(b,w,c),j.length&&(m=f[c-1][w],s=t.renderMoreLink(b,w,j),r=a("
").append(s),m.append(r),v.push(r[0])),w++}var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=this,u=this.rowStructs[b],v=[],w=0;if(c&&c').attr("rowspan",n),j=l[p],s=this.renderMoreLink(b,i.leftCol+p,[i].concat(j)),r=a("
").append(s),q.append(r),o.push(q[0]),v.push(q[0]);m.addClass("fc-limited").after(a(o)),g.push(m[0])}}d(this.colCnt),u.moreEls=a(v),u.limitedEls=a(g)}},unlimitRow:function(a){var b=this.rowStructs[a];b.moreEls&&(b.moreEls.remove(),b.moreEls=null),b.limitedEls&&(b.limitedEls.removeClass("fc-limited"),b.limitedEls=null)},renderMoreLink:function(b,c,d){var e=this,f=this.view;return a('').text(this.getMoreLinkText(d.length)).on("click",function(g){var h=f.opt("eventLimitClick"),i=e.getCellDate(b,c),j=a(this),k=e.getCellEl(b,c),l=e.getCellSegs(b,c),m=e.resliceDaySegs(l,i),n=e.resliceDaySegs(d,i);"function"==typeof h&&(h=f.trigger("eventLimitClick",null,{date:i,dayEl:k,moreEl:j,segs:m,hiddenSegs:n},g)),"popover"===h?e.showSegPopover(b,c,j,m):"string"==typeof h&&f.calendar.zoomTo(i,h)})},showSegPopover:function(a,b,c,d){var e,f,g=this,h=this.view,i=c.parent();e=1==this.rowCnt?h.el:this.rowEls.eq(a),f={className:"fc-more-popover",content:this.renderSegPopoverContent(a,b,d),parentEl:this.el,top:e.offset().top,autoHide:!0,viewportConstrain:h.opt("popoverViewportConstrain"),hide:function(){g.segPopover.removeElement(),g.segPopover=null,g.popoverSegs=null}},this.isRTL?f.right=i.offset().left+i.outerWidth()+1:f.left=i.offset().left-1,this.segPopover=new fb(f),this.segPopover.show()},renderSegPopoverContent:function(b,c,d){var e,f=this.view,g=f.opt("theme"),h=this.getCellDate(b,c).format(f.opt("dayPopoverFormat")),i=a('
'+Y(h)+'
'),j=i.find(".fc-event-container");for(d=this.renderFgSegEls(d,!0),this.popoverSegs=d,e=0;e'+this.renderBgTrHtml(0)+'
'+this.renderSlatRowHtml()+"
"},renderSlatRowHtml:function(){for(var a,c,d,e=this.view,f=this.isRTL,g="",h=b.duration(+this.minTime);h"+(c?""+Y(a.format(this.labelFormat))+"":"")+"",g+=""+(f?"":d)+''+(f?d:"")+"",h.add(this.slotDuration);return g},processOptions:function(){var c,d=this.view,e=d.opt("slotDuration"),f=d.opt("snapDuration");e=b.duration(e),f=f?b.duration(f):e,this.slotDuration=e,this.snapDuration=f,this.snapsPerSlot=e/f,this.minResizeDuration=f,this.minTime=b.duration(d.opt("minTime")),this.maxTime=b.duration(d.opt("maxTime")),c=d.opt("slotLabelFormat"),a.isArray(c)&&(c=c[c.length-1]),this.labelFormat=c||d.opt("axisFormat")||d.opt("smallTimeFormat"),c=d.opt("slotLabelInterval"),this.labelInterval=c?b.duration(c):this.computeLabelInterval(e)},computeLabelInterval:function(a){var c,d,e;for(c=Db.length-1;c>=0;c--)if(d=b.duration(Db[c]),e=L(d,a),ba(e)&&e>1)return d;return b.duration(a)},computeEventTimeFormat:function(){return this.view.opt("noMeridiemTimeFormat")},computeDisplayEventEnd:function(){return!0},prepareHits:function(){this.colCoordCache.build(),this.slatCoordCache.build()},releaseHits:function(){this.colCoordCache.clear()},queryHit:function(a,b){var c=this.snapsPerSlot,d=this.colCoordCache,e=this.slatCoordCache,f=d.getHorizontalIndex(a),g=e.getVerticalIndex(b);if(null!=f&&null!=g){var h=e.getTopOffset(g),i=e.getHeight(g),j=(b-h)/i,k=Math.floor(j*c),l=g*c+k,m=h+k/c*i,n=h+(k+1)/c*i;return{col:f,snap:l,component:this,left:d.getLeftOffset(f),right:d.getRightOffset(f),top:m,bottom:n}}},getHitSpan:function(a){var b,c=this.getCellDate(0,a.col),d=this.computeSnapTime(a.snap),e=this.view.calendar.rezoneDate(c);return e.time(d),b=e.clone().add(this.snapDuration),{start:e,end:b}},getHitEl:function(a){return this.colEls.eq(a.col)},rangeUpdated:function(){this.updateDayTable()},computeSnapTime:function(a){return b.duration(this.minTime+this.snapDuration*a)},rangeToSegs:function(a){var b,c=this.sliceRangeByTimes(a);for(b=0;b').append(d).appendTo(this.el)},unrenderHelper:function(){this.helperEl&&(this.helperEl.remove(),this.helperEl=null)},renderSelection:function(a){this.view.opt("selectHelper")?this.renderRangeHelper(a):this.renderHighlight(this.selectionRangeToSegs(a))},unrenderSelection:function(){this.unrenderHelper(),this.unrenderHighlight()},renderFill:function(b,c,d){var e,f,g,h,i,j,k,l,m,n;if(c.length){for(c=this.renderFillSegEls(b,c),e=this.groupSegCols(c),d=d||b.toLowerCase(),f=a('
'),g=f.find("tr"),h=0;h").appendTo(g),i.length)for(k=a('
').appendTo(j),l=this.getCellDate(0,h),m=0;m').append(this.renderSegTable(b))),b},unrenderFgSegs:function(a){this.eventSkeletonEl&&(this.eventSkeletonEl.remove(),this.eventSkeletonEl=null)},renderSegTable:function(b){var c,d,e,f,g,h,i=a("
"),j=i.find("tr");for(c=this.groupSegCols(b),this.computeSegVerticals(b),f=0;f'),d=0;d").append(h))}return this.bookendCells(j),i},placeSlotSegs:function(a){var b,c,d;if(this.sortSegs(a),b=Ea(a),Fa(b),c=b[0]){for(d=0;d
'+(c?'
'+Y(c)+"
":"")+(g.title?'
'+Y(g.title)+"
":"")+'
'+(j?'
':"")+""},generateSegPositionCss:function(a){var b,c,d=this.view.opt("slotEventOverlap"),e=a.backwardCoord,f=a.forwardCoord,g=this.generateSegVerticalCss(a);return d&&(f=Math.min(1,e+2*(f-e))),this.isRTL?(b=1-f,c=e):(b=e,c=1-f),g.zIndex=a.level+1,g.left=100*b+"%",g.right=100*c+"%",d&&a.forwardPressure&&(g[this.isRTL?"marginLeft":"marginRight"]=20),g},generateSegVerticalCss:function(a){return{top:a.top,bottom:-a.bottom}},groupSegCols:function(a){var b,c=[];for(b=0;b1?"ll":"LL"},formatRange:function(a,b,c){var d=a.end;return d.hasTime()||(d=d.clone().subtract(1)),ma(a.start,d,b,c,this.opt("isRTL"))},setElement:function(a){this.el=a,this.bindGlobalHandlers()},removeElement:function(){this.clear(),this.isSkeletonRendered&&(this.unrenderSkeleton(),this.isSkeletonRendered=!1),this.unbindGlobalHandlers(),this.el.remove()},display:function(b){var c=this,d=null;return this.displaying&&(d=this.queryScroll()),this.clear().then(function(){return c.displaying=a.when(c.displayView(b)).then(function(){c.forceScroll(c.computeInitialScroll(d)),c.triggerRender()})})},clear:function(){var b=this,c=this.displaying;return c?c.then(function(){return b.displaying=null,b.clearEvents(),b.clearView()}):a.when()},displayView:function(a){this.isSkeletonRendered||(this.renderSkeleton(),this.isSkeletonRendered=!0),this.setDate(a),this.render&&this.render(),this.renderDates(),this.updateSize(),this.renderBusinessHours()},clearView:function(){this.unselect(),this.triggerUnrender(),this.unrenderBusinessHours(),this.unrenderDates(),this.destroy&&this.destroy()},renderSkeleton:function(){},unrenderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},renderBusinessHours:function(){},unrenderBusinessHours:function(){},triggerRender:function(){this.trigger("viewRender",this,this,this.el)},triggerUnrender:function(){this.trigger("viewDestroy",this,this,this.el)},bindGlobalHandlers:function(){a(document).on("mousedown",this.documentMousedownProxy)},unbindGlobalHandlers:function(){a(document).off("mousedown",this.documentMousedownProxy)},initThemingProps:function(){var a=this.opt("theme")?"ui":"fc";this.widgetHeaderClass=a+"-widget-header",this.widgetContentClass=a+"-widget-content",this.highlightStateClass=a+"-state-highlight"},updateSize:function(a){var b;a&&(b=this.queryScroll()),this.updateHeight(a),this.updateWidth(a),a&&this.setScroll(b)},updateWidth:function(a){},updateHeight:function(a){var b=this.calendar;this.setHeight(b.getSuggestedViewHeight(),b.isHeightAuto())},setHeight:function(a,b){},computeScrollerHeight:function(a){var b,c,d=this.scrollerEl;return b=this.el.add(d),b.css({position:"relative",left:-1}),c=this.el.outerHeight()-d.height(),b.css({position:"",left:""}),a-c},computeInitialScroll:function(a){return 0},queryScroll:function(){return this.scrollerEl?this.scrollerEl.scrollTop():void 0},setScroll:function(a){return this.scrollerEl?this.scrollerEl.scrollTop(a):void 0},forceScroll:function(a){var b=this;this.setScroll(a),setTimeout(function(){b.setScroll(a)},0)},displayEvents:function(a){var b=this.queryScroll();this.clearEvents(),this.renderEvents(a),this.isEventsRendered=!0,this.setScroll(b),this.triggerEventRender()},clearEvents:function(){this.isEventsRendered&&(this.triggerEventUnrender(),this.destroyEvents&&this.destroyEvents(),this.unrenderEvents(),this.isEventsRendered=!1)},renderEvents:function(a){},unrenderEvents:function(){},triggerEventRender:function(){this.renderedEventSegEach(function(a){this.trigger("eventAfterRender",a.event,a.event,a.el)}),this.trigger("eventAfterAllRender")},triggerEventUnrender:function(){this.renderedEventSegEach(function(a){this.trigger("eventDestroy",a.event,a.event,a.el)})},resolveEventEl:function(b,c){var d=this.trigger("eventRender",b,b,c);return d===!1?c=null:d&&d!==!0&&(c=a(d)),c},showEvent:function(a){this.renderedEventSegEach(function(a){a.el.css("visibility","")},a)},hideEvent:function(a){this.renderedEventSegEach(function(a){a.el.css("visibility","hidden")},a)},renderedEventSegEach:function(a,b){var c,d=this.getEventSegs();for(c=0;cb;b++)(d[b]=-1!==a.inArray(b,c))||e++;if(!e)throw"invalid hiddenDays";this.isHiddenDayHash=d},isHiddenDay:function(a){return b.isMoment(a)&&(a=a.day()),this.isHiddenDayHash[a]},skipHiddenDays:function(a,b,c){var d=a.clone();for(b=b||1;this.isHiddenDayHash[(d.day()+(c?b:0)+7)%7];)d.add(b,"days");return d},computeDayRange:function(a){var b,c=a.start.clone().stripTime(),d=a.end,e=null;return d&&(e=d.clone().stripTime(),b=+d.time(),b&&b>=this.nextDayThreshold&&e.add(1,"days")),(!d||c>=e)&&(e=c.clone().add(1,"days")),{start:c,end:e}},isMultiDayEvent:function(a){var b=this.computeDayRange(a);return b.end.diff(b.start,"days")>1}}),pb=Pa.Calendar=ra.extend({dirDefaults:null,langDefaults:null,overrides:null,options:null,viewSpecCache:null,view:null,header:null,loadingLevel:0,constructor:Ja,initialize:function(){},initOptions:function(a){var b,e,f,g;a=d(a),b=a.lang,e=qb[b],e||(b=pb.defaults.lang,e=qb[b]||{}),f=X(a.isRTL,e.isRTL,pb.defaults.isRTL),g=f?pb.rtlDefaults:{},this.dirDefaults=g,this.langDefaults=e,this.overrides=a,this.options=c([pb.defaults,g,e,a]),Ka(this.options),this.viewSpecCache={}},getViewSpec:function(a){var b=this.viewSpecCache;return b[a]||(b[a]=this.buildViewSpec(a))},getUnitViewSpec:function(b){var c,d,e;if(-1!=a.inArray(b,Ua))for(c=this.header.getViewsWithButtons(),a.each(Pa.views,function(a){c.push(a)}),d=0;d1,this.weekNumbersVisible=this.opt("weekNumbers"),this.dayGrid.numbersVisible=this.dayNumbersVisible||this.weekNumbersVisible,this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scrollerEl=this.el.find(".fc-day-grid-container"),this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(this.hasRigidRows())},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.dayGrid.renderHeadHtml()),this.headRowEl=this.headContainerEl.find(".fc-row")},unrenderDates:function(){this.dayGrid.unrenderDates(),this.dayGrid.removeElement()},renderBusinessHours:function(){this.dayGrid.renderBusinessHours()},renderSkeletonHtml:function(){return'
'},weekNumberStyleAttr:function(){return null!==this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},hasRigidRows:function(){var a=this.opt("eventLimit");return a&&"number"!=typeof a},updateWidth:function(){this.weekNumbersVisible&&(this.weekNumberWidth=k(this.el.find(".fc-week-number")))},setHeight:function(a,b){var c,d=this.opt("eventLimit");m(this.scrollerEl),f(this.headRowEl),this.dayGrid.removeSegPopover(),d&&"number"==typeof d&&this.dayGrid.limitRows(d),c=this.computeScrollerHeight(a),this.setGridHeight(c,b),d&&"number"!=typeof d&&this.dayGrid.limitRows(d),!b&&l(this.scrollerEl,c)&&(e(this.headRowEl,r(this.scrollerEl)),c=this.computeScrollerHeight(a),this.scrollerEl.height(c))},setGridHeight:function(a,b){b?j(this.dayGrid.rowEls):i(this.dayGrid.rowEls,a,!0)},prepareHits:function(){this.dayGrid.prepareHits()},releaseHits:function(){this.dayGrid.releaseHits()},queryHit:function(a,b){return this.dayGrid.queryHit(a,b)},getHitSpan:function(a){return this.dayGrid.getHitSpan(a)},getHitEl:function(a){return this.dayGrid.getHitEl(a)},renderEvents:function(a){this.dayGrid.renderEvents(a),this.updateHeight()},getEventSegs:function(){return this.dayGrid.getEventSegs()},unrenderEvents:function(){this.dayGrid.unrenderEvents()},renderDrag:function(a,b){return this.dayGrid.renderDrag(a,b)},unrenderDrag:function(){this.dayGrid.unrenderDrag()},renderSelection:function(a){this.dayGrid.renderSelection(a)},unrenderSelection:function(){this.dayGrid.unrenderSelection()}}),xb={renderHeadIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'"+Y(a.opt("weekNumberTitle"))+"":""},renderNumberIntroHtml:function(a){var b=this.view;return b.weekNumbersVisible?'"+this.getCellDate(a,0).format("w")+"":""},renderBgIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'":""},renderIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'":""; +}},yb=Pa.MonthView=wb.extend({computeRange:function(a){var b,c=wb.prototype.computeRange.call(this,a);return this.isFixedWeeks()&&(b=Math.ceil(c.end.diff(c.start,"weeks",!0)),c.end.add(6-b,"weeks")),c},setGridHeight:function(a,b){b=b||"variable"===this.opt("weekMode"),b&&(a*=this.rowCnt/6),i(this.dayGrid.rowEls,a,!b)},isFixedWeeks:function(){var a=this.opt("weekMode");return a?"fixed"===a:this.opt("fixedWeekCount")}});Qa.basic={"class":wb},Qa.basicDay={type:"basic",duration:{days:1}},Qa.basicWeek={type:"basic",duration:{weeks:1}},Qa.month={"class":yb,duration:{months:1},defaults:{fixedWeekCount:!0}};var zb=Pa.AgendaView=ob.extend({timeGridClass:nb,timeGrid:null,dayGridClass:mb,dayGrid:null,axisWidth:null,headContainerEl:null,noScrollRowEls:null,bottomRuleEl:null,bottomRuleHeight:null,initialize:function(){this.timeGrid=this.instantiateTimeGrid(),this.opt("allDaySlot")&&(this.dayGrid=this.instantiateDayGrid())},instantiateTimeGrid:function(){var a=this.timeGridClass.extend(Ab);return new a(this)},instantiateDayGrid:function(){var a=this.dayGridClass.extend(Bb);return new a(this)},setRange:function(a){ob.prototype.setRange.call(this,a),this.timeGrid.setRange(a),this.dayGrid&&this.dayGrid.setRange(a)},renderDates:function(){this.el.addClass("fc-agenda-view").html(this.renderSkeletonHtml()),this.renderHead(),this.scrollerEl=this.el.find(".fc-time-grid-container"),this.timeGrid.setElement(this.el.find(".fc-time-grid")),this.timeGrid.renderDates(),this.bottomRuleEl=a('
').appendTo(this.timeGrid.el),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight()),this.noScrollRowEls=this.el.find(".fc-row:not(.fc-scroller *)")},renderHead:function(){this.headContainerEl=this.el.find(".fc-head-container").html(this.timeGrid.renderHeadHtml())},unrenderDates:function(){this.timeGrid.unrenderDates(),this.timeGrid.removeElement(),this.dayGrid&&(this.dayGrid.unrenderDates(),this.dayGrid.removeElement())},renderBusinessHours:function(){this.timeGrid.renderBusinessHours(),this.dayGrid&&this.dayGrid.renderBusinessHours()},renderSkeletonHtml:function(){return'
'+(this.dayGrid?'

':"")+'
'},axisStyleAttr:function(){return null!==this.axisWidth?'style="width:'+this.axisWidth+'px"':""},updateSize:function(a){this.timeGrid.updateSize(a),ob.prototype.updateSize.call(this,a)},updateWidth:function(){this.axisWidth=k(this.el.find(".fc-axis"))},setHeight:function(a,b){var c,d;null===this.bottomRuleHeight&&(this.bottomRuleHeight=this.bottomRuleEl.outerHeight()),this.bottomRuleEl.hide(),this.scrollerEl.css("overflow",""),m(this.scrollerEl),f(this.noScrollRowEls),this.dayGrid&&(this.dayGrid.removeSegPopover(),c=this.opt("eventLimit"),c&&"number"!=typeof c&&(c=Cb),c&&this.dayGrid.limitRows(c)),b||(d=this.computeScrollerHeight(a),l(this.scrollerEl,d)?(e(this.noScrollRowEls,r(this.scrollerEl)),d=this.computeScrollerHeight(a),this.scrollerEl.height(d)):(this.scrollerEl.height(d).css("overflow","hidden"),this.bottomRuleEl.show()))},computeInitialScroll:function(){var a=b.duration(this.opt("scrollTime")),c=this.timeGrid.computeTimeTop(a);return c=Math.ceil(c),c&&c++,c},prepareHits:function(){this.timeGrid.prepareHits(),this.dayGrid&&this.dayGrid.prepareHits()},releaseHits:function(){this.timeGrid.releaseHits(),this.dayGrid&&this.dayGrid.releaseHits()},queryHit:function(a,b){var c=this.timeGrid.queryHit(a,b);return!c&&this.dayGrid&&(c=this.dayGrid.queryHit(a,b)),c},getHitSpan:function(a){return a.component.getHitSpan(a)},getHitEl:function(a){return a.component.getHitEl(a)},renderEvents:function(a){var b,c,d=[],e=[],f=[];for(c=0;c"+Y(a)+""):'"},renderBgIntroHtml:function(){var a=this.view;return'"},renderIntroHtml:function(){var a=this.view;return'"}},Bb={renderBgIntroHtml:function(){var a=this.view;return'"+(a.opt("allDayHtml")||Y(a.opt("allDayText")))+""},renderIntroHtml:function(){var a=this.view;return'"}},Cb=5,Db=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];return Qa.agenda={"class":zb,defaults:{allDaySlot:!0,allDayText:"all-day",slotDuration:"00:30:00",minTime:"00:00:00",maxTime:"24:00:00",slotEventOverlap:!0}},Qa.agendaDay={type:"agenda",duration:{days:1}},Qa.agendaWeek={type:"agenda",duration:{weeks:1}},Pa}); \ No newline at end of file diff --git a/library/fullcalendar/fullcalendar.print.css b/library/fullcalendar/fullcalendar.print.css index e92f900cd..07b3414d1 100644 --- a/library/fullcalendar/fullcalendar.print.css +++ b/library/fullcalendar/fullcalendar.print.css @@ -1,7 +1,7 @@ /*! - * FullCalendar v1.6.0 Print Stylesheet - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v2.5.0-beta Print Stylesheet + * Docs & License: http://fullcalendar.io/ + * (c) 2015 Adam Shaw */ /* @@ -9,24 +9,194 @@ * When including this stylesheet, use the media='print' attribute of the tag. * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. */ - - - /* Events ------------------------------------------------------*/ - + +.fc { + max-width: 100% !important; +} + + +/* Global Event Restyling +--------------------------------------------------------------------------------------------------*/ + .fc-event { background: #fff !important; color: #000 !important; - } - -/* for vertical events */ - -.fc-event-bg { + page-break-inside: avoid; +} + +.fc-event .fc-resizer { + display: none; +} + + +/* Table & Day-Row Restyling +--------------------------------------------------------------------------------------------------*/ + +th, +td, +hr, +thead, +tbody, +.fc-row { + border-color: #ccc !important; + background: #fff !important; +} + +/* kill the overlaid, absolutely-positioned common components */ +.fc-bg, +.fc-bgevent-skeleton, +.fc-highlight-skeleton, +.fc-helper-skeleton { + display: none; +} + +/* don't force a min-height on rows (for DayGrid) */ +.fc tbody .fc-row { + height: auto !important; /* undo height that JS set in distributeHeight */ + min-height: 0 !important; /* undo the min-height from each view's specific stylesheet */ +} + +.fc tbody .fc-row .fc-content-skeleton { + position: static; /* undo .fc-rigid */ + padding-bottom: 0 !important; /* use a more border-friendly method for this... */ +} + +.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */ + padding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */ +} + +.fc tbody .fc-row .fc-content-skeleton table { + /* provides a min-height for the row, but only effective for IE, which exaggerates this value, + making it look more like 3em. for other browers, it will already be this tall */ + height: 1em; +} + + +/* Undo month-view event limiting. Display all events and hide the "more" links +--------------------------------------------------------------------------------------------------*/ + +.fc-more-cell, +.fc-more { display: none !important; - } - -.fc-event .ui-resizable-handle { - display: none !important; - } - - +} + +.fc tr.fc-limited { + display: table-row !important; +} + +.fc td.fc-limited { + display: table-cell !important; +} + +.fc-popover { + display: none; /* never display the "more.." popover in print mode */ +} + + +/* TimeGrid Restyling +--------------------------------------------------------------------------------------------------*/ + +/* undo the min-height 100% trick used to fill the container's height */ +.fc-time-grid { + min-height: 0 !important; +} + +/* don't display the side axis at all ("all-day" and time cells) */ +.fc-agenda-view .fc-axis { + display: none; +} + +/* don't display the horizontal lines */ +.fc-slats, +.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */ + display: none !important; /* important overrides inline declaration */ +} + +/* let the container that holds the events be naturally positioned and create real height */ +.fc-time-grid .fc-content-skeleton { + position: static; +} + +/* in case there are no events, we still want some height */ +.fc-time-grid .fc-content-skeleton table { + height: 4em; +} + +/* kill the horizontal spacing made by the event container. event margins will be done below */ +.fc-time-grid .fc-event-container { + margin: 0 !important; +} + + +/* TimeGrid *Event* Restyling +--------------------------------------------------------------------------------------------------*/ + +/* naturally position events, vertically stacking them */ +.fc-time-grid .fc-event { + position: static !important; + margin: 3px 2px !important; +} + +/* for events that continue to a future day, give the bottom border back */ +.fc-time-grid .fc-event.fc-not-end { + border-bottom-width: 1px !important; +} + +/* indicate the event continues via "..." text */ +.fc-time-grid .fc-event.fc-not-end:after { + content: "..."; +} + +/* for events that are continuations from previous days, give the top border back */ +.fc-time-grid .fc-event.fc-not-start { + border-top-width: 1px !important; +} + +/* indicate the event is a continuation via "..." text */ +.fc-time-grid .fc-event.fc-not-start:before { + content: "..."; +} + +/* time */ + +/* undo a previous declaration and let the time text span to a second line */ +.fc-time-grid .fc-event .fc-time { + white-space: normal !important; +} + +/* hide the the time that is normally displayed... */ +.fc-time-grid .fc-event .fc-time span { + display: none; +} + +/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */ +.fc-time-grid .fc-event .fc-time:after { + content: attr(data-full); +} + + +/* Vertical Scroller & Containers +--------------------------------------------------------------------------------------------------*/ + +/* kill the scrollbars and allow natural height */ +.fc-scroller, +.fc-day-grid-container, /* these divs might be assigned height, which we need to cleared */ +.fc-time-grid-container { /* */ + overflow: visible !important; + height: auto !important; +} + +/* kill the horizontal border/padding used to compensate for scrollbars */ +.fc-row { + border: 0 !important; + margin: 0 !important; +} + + +/* Button Controls +--------------------------------------------------------------------------------------------------*/ + +.fc-button-group, +.fc button { + display: none; /* don't display any button-related controls */ +} diff --git a/library/fullcalendar/gcal.js b/library/fullcalendar/gcal.js index 64263fcf3..8dc96fa14 100644 --- a/library/fullcalendar/gcal.js +++ b/library/fullcalendar/gcal.js @@ -1,107 +1,180 @@ /*! - * FullCalendar v1.6.0 Google Calendar Plugin - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v2.5.0-beta Google Calendar Plugin + * Docs & License: http://fullcalendar.io/ + * (c) 2015 Adam Shaw */ -(function($) { +(function(factory) { + if (typeof define === 'function' && define.amd) { + define([ 'jquery' ], factory); + } + else if (typeof exports === 'object') { // Node/CommonJS + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +})(function($) { -var fc = $.fullCalendar; -var formatDate = fc.formatDate; -var parseISO8601 = fc.parseISO8601; -var addDays = fc.addDays; -var applyAll = fc.applyAll; +var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'; +var FC = $.fullCalendar; +var applyAll = FC.applyAll; -fc.sourceNormalizers.push(function(sourceOptions) { - if (sourceOptions.dataType == 'gcal' || - sourceOptions.dataType === undefined && - (sourceOptions.url || '').match(/^(http|https):\/\/www.google.com\/calendar\/feeds\//)) { - sourceOptions.dataType = 'gcal'; - if (sourceOptions.editable === undefined) { - sourceOptions.editable = false; - } +FC.sourceNormalizers.push(function(sourceOptions) { + var googleCalendarId = sourceOptions.googleCalendarId; + var url = sourceOptions.url; + var match; + + // if the Google Calendar ID hasn't been explicitly defined + if (!googleCalendarId && url) { + + // detect if the ID was specified as a single string. + // will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars. + if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) { + googleCalendarId = url; } -}); + // try to scrape it out of a V1 or V3 API feed URL + else if ( + (match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) || + (match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url)) + ) { + googleCalendarId = decodeURIComponent(match[1]); + } + + if (googleCalendarId) { + sourceOptions.googleCalendarId = googleCalendarId; + } + } -fc.sourceFetchers.push(function(sourceOptions, start, end) { - if (sourceOptions.dataType == 'gcal') { - return transformOptions(sourceOptions, start, end); + if (googleCalendarId) { // is this a Google Calendar? + + // make each Google Calendar source uneditable by default + if (sourceOptions.editable == null) { + sourceOptions.editable = false; + } + + // We want removeEventSource to work, but it won't know about the googleCalendarId primitive. + // Shoehorn it into the url, which will function as the unique primitive. Won't cause side effects. + // This hack is obsolete since 2.2.3, but keep it so this plugin file is compatible with old versions. + sourceOptions.url = googleCalendarId; } }); -function transformOptions(sourceOptions, start, end) { +FC.sourceFetchers.push(function(sourceOptions, start, end, timezone) { + if (sourceOptions.googleCalendarId) { + return transformOptions(sourceOptions, start, end, timezone, this); // `this` is the calendar + } +}); + +function transformOptions(sourceOptions, start, end, timezone, calendar) { + var url = API_BASE + '/' + encodeURIComponent(sourceOptions.googleCalendarId) + '/events?callback=?'; // jsonp + var apiKey = sourceOptions.googleCalendarApiKey || calendar.options.googleCalendarApiKey; var success = sourceOptions.success; - var data = $.extend({}, sourceOptions.data || {}, { - 'start-min': formatDate(start, 'u'), - 'start-max': formatDate(end, 'u'), - 'singleevents': true, - 'max-results': 9999 - }); - - var ctz = sourceOptions.currentTimezone; - if (ctz) { - data.ctz = ctz = ctz.replace(' ', '_'); + var data; + var timezoneArg; // populated when a specific timezone. escaped to Google's liking + + function reportError(message, apiErrorObjs) { + var errorObjs = apiErrorObjs || [ { message: message } ]; // to be passed into error handlers + + // call error handlers + (sourceOptions.googleCalendarError || $.noop).apply(calendar, errorObjs); + (calendar.options.googleCalendarError || $.noop).apply(calendar, errorObjs); + + // print error to debug console + FC.warn.apply(null, [ message ].concat(apiErrorObjs || [])); } + if (!apiKey) { + reportError("Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"); + return {}; // an empty source to use instead. won't fetch anything. + } + + // The API expects an ISO8601 datetime with a time and timezone part. + // Since the calendar's timezone offset isn't always known, request the date in UTC and pad it by a day on each + // side, guaranteeing we will receive all events in the desired range, albeit a superset. + // .utc() will set a zone and give it a 00:00:00 time. + if (!start.hasZone()) { + start = start.clone().utc().add(-1, 'day'); + } + if (!end.hasZone()) { + end = end.clone().utc().add(1, 'day'); + } + + // when sending timezone names to Google, only accepts underscores, not spaces + if (timezone && timezone != 'local') { + timezoneArg = timezone.replace(' ', '_'); + } + + data = $.extend({}, sourceOptions.data || {}, { + key: apiKey, + timeMin: start.format(), + timeMax: end.format(), + timeZone: timezoneArg, + singleEvents: true, + maxResults: 9999 + }); + return $.extend({}, sourceOptions, { - url: sourceOptions.url.replace(/\/basic$/, '/full') + '?alt=json-in-script&callback=?', - dataType: 'jsonp', + googleCalendarId: null, // prevents source-normalizing from happening again + url: url, data: data, - startParam: false, - endParam: false, + startParam: false, // `false` omits this parameter. we already included it above + endParam: false, // same + timezoneParam: false, // same success: function(data) { var events = []; - if (data.feed.entry) { - $.each(data.feed.entry, function(i, entry) { - var startStr = entry['gd$when'][0]['startTime']; - var start = parseISO8601(startStr, true); - var end = parseISO8601(entry['gd$when'][0]['endTime'], true); - var allDay = startStr.indexOf('T') == -1; - var url; - $.each(entry.link, function(i, link) { - if (link.type == 'text/html') { - url = link.href; - if (ctz) { - url += (url.indexOf('?') == -1 ? '?' : '&') + 'ctz=' + ctz; - } - } - }); - if (allDay) { - addDays(end, -1); // make inclusive + var successArgs; + var successRes; + + if (data.error) { + reportError('Google Calendar API: ' + data.error.message, data.error.errors); + } + else if (data.items) { + $.each(data.items, function(i, entry) { + var url = entry.htmlLink; + + // make the URLs for each event show times in the correct timezone + if (timezoneArg) { + url = injectQsComponent(url, 'ctz=' + timezoneArg); } + events.push({ - id: entry['gCal$uid']['value'], - title: entry['title']['$t'], + id: entry.id, + title: entry.summary, + start: entry.start.dateTime || entry.start.date, // try timed. will fall back to all-day + end: entry.end.dateTime || entry.end.date, // same url: url, - start: start, - end: end, - allDay: allDay, - location: entry['gd$where'][0]['valueString'], - description: entry['content']['$t'] + location: entry.location, + description: entry.description }); }); + + // call the success handler(s) and allow it to return a new events array + successArgs = [ events ].concat(Array.prototype.slice.call(arguments, 1)); // forward other jq args + successRes = applyAll(success, this, successArgs); + if ($.isArray(successRes)) { + return successRes; + } } - var args = [events].concat(Array.prototype.slice.call(arguments, 1)); - var res = applyAll(success, this, args); - if ($.isArray(res)) { - return res; - } + return events; } }); - } -// legacy -fc.gcalFeed = function(url, sourceOptions) { - return $.extend({}, sourceOptions, { url: url, dataType: 'gcal' }); -}; +// Injects a string like "arg=value" into the querystring of a URL +function injectQsComponent(url, component) { + // inject it after the querystring but before the fragment + return url.replace(/(\?.*?)?(#|$)/, function(whole, qs, hash) { + return (qs ? qs + '&' : '?') + component + hash; + }); +} -})(jQuery); +}); diff --git a/library/fullcalendar/lang-all.js b/library/fullcalendar/lang-all.js new file mode 100644 index 000000000..94bb2999e --- /dev/null +++ b/library/fullcalendar/lang-all.js @@ -0,0 +1,4 @@ +!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){!function(){(b.defineLocale||b.lang).call(b,"ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang("ar-ma","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-ma",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){var c={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},d={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};(b.defineLocale||b.lang).call(b,"ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang("ar-sa","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-sa",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){(b.defineLocale||b.lang).call(b,"ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("ar-tn","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar-tn",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){var c={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},d={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},e=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},f={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},g=function(a){return function(b,c,d,g){var h=e(b),i=f[a][e(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},h=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"];(b.defineLocale||b.lang).call(b,"ar",{months:h,monthsShort:h,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:g("s"),m:g("m"),mm:g("m"),h:g("h"),hh:g("h"),d:g("d"),dd:g("d"),M:g("M"),MM:g("M"),y:g("y"),yy:g("y")},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang("ar","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ar",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى"})}(),function(){(b.defineLocale||b.lang).call(b,"bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("bg","bg",{closeText:"затвори",prevText:"<назад",nextText:"напред>",nextBigText:">>",currentText:"днес",monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек"],dayNames:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],dayNamesShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("bg",{buttonText:{month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(a){return"+още "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return("w"===b||"W"===b)&&(c="a"),a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ca",{buttonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia",eventLimitText:"més"})}(),function(){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+" ";switch(d){case"s":return b||e?"pár sekund":"pár sekundami";case"m":return b?"minuta":e?"minutu":"minutou";case"mm":return b||e?f+(c(a)?"minuty":"minut"):f+"minutami";case"h":return b?"hodina":e?"hodinu":"hodinou";case"hh":return b||e?f+(c(a)?"hodiny":"hodin"):f+"hodinami";case"d":return b||e?"den":"dnem";case"dd":return b||e?f+(c(a)?"dny":"dní"):f+"dny";case"M":return b||e?"měsíc":"měsícem";case"MM":return b||e?f+(c(a)?"měsíce":"měsíců"):f+"měsíci";case"y":return b||e?"rok":"rokem";case"yy":return b||e?f+(c(a)?"roky":"let"):f+"lety"}}var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),f="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");(b.defineLocale||b.lang).call(b,"cs",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(e,f),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("cs","cs",{closeText:"Zavřít",prevText:"<Dříve",nextText:"Později>",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("cs",{buttonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(a){return"+další: "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("da","da",{closeText:"Luk",prevText:"<Forrige",nextText:"Næste>",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("da",{buttonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere"})}(),function(){function c(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,"de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("de-at","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de-at",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})}(),function(){function c(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,"de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("de","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Σήμερα",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο",eventLimitText:"περισσότερα"})}(),function(){(b.defineLocale||b.lang).call(b,"en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("en-au")}(),function(){(b.defineLocale||b.lang).call(b,"en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.fullCalendar.lang("en-ca")}(),function(){(b.defineLocale||b.lang).call(b,"en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("en-gb")}(),function(){var c="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),d="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");(b.defineLocale||b.lang).call(b,"es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("es","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
el día",eventLimitText:"más"})}(),function(){var c={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},d={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};(b.defineLocale||b.lang).call(b,"fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return d[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang("fa","fa",{closeText:"بستن",prevText:"<قبلی",nextText:"بعدی>",currentText:"امروز",monthNames:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ی","د","س","چ","پ","ج","ش"],dayNamesMin:["ی","د","س","چ","پ","ج","ش"],weekHeader:"هف",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fa",{buttonText:{month:"ماه",week:"هفته",day:"روز",list:"برنامه" +},allDayText:"تمام روز",eventLimitText:function(a){return"بیش از "+a}})}(),function(){function c(a,b,c,e){var f="";switch(c){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=d(a,e)+" "+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),f=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,"fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fi","fi",{closeText:"Sulje",prevText:"«Edellinen",nextText:"Seuraava»",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää"})}(),function(){(b.defineLocale||b.lang).call(b,"fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")}}),a.fullCalendar.datepickerLang("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr-ca",{buttonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
journée",eventLimitText:"en plus"})}(),function(){(b.defineLocale||b.lang).call(b,"fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr",{buttonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
journée",eventLimitText:"en plus"})}(),function(){(b.defineLocale||b.lang).call(b,"he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY LT",LLLL:"dddd, D [ב]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}}}),a.fullCalendar.datepickerLang("he","he",{closeText:"סגור",prevText:"<הקודם",nextText:"הבא>",currentText:"היום",monthNames:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","אפר","מאי","יוני","יולי","אוג","ספט","אוק","נוב","דצמ"],dayNames:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayNamesMin:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("he",{defaultButtonText:{month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},weekNumberTitle:"שבוע",allDayText:"כל היום",eventLimitText:"אחר"})}(),function(){var c={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},d={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};(b.defineLocale||b.lang).call(b,"hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}}),a.fullCalendar.datepickerLang("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून","जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthNamesShort:["जन","फर","मार्च","अप्रेल","मई","जून","जूलाई","अग","सित","अक्ट","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],dayNamesMin:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],weekHeader:"हफ्ता",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("hi",{buttonText:{month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},allDayText:"सभी दिन",eventLimitText:function(a){return"+अधिक "+a}})}(),function(){function c(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}(b.defineLocale||b.lang).call(b,"hr",{months:"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:c,mm:c,h:c,hh:c,d:"dan",dd:c,M:"mjesec",MM:c,y:"godinu",yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("hr","hr",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("hr",{buttonText:{month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(a){return"+ još "+a}})}(),function(){function c(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function d(a){return(a?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");(b.defineLocale||b.lang).call(b,"hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return d.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return d.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további"})}(),function(){(b.defineLocale||b.lang).call(b,"id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"LT.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("id","id",{closeText:"Tutup",prevText:"<mundur",nextText:"maju>",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari
penuh",eventLimitText:"lebih"})}(),function(){function c(a){return a%100===11?!0:a%10===1?!1:!0}function d(a,b,d,e){var f=a+" ";switch(d){case"s":return b||e?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return c(a)?f+(b||e?"mínútur":"mínútum"):b?f+"mínúta":f+"mínútu";case"hh":return c(a)?f+(b||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case"d":return b?"dagur":e?"dag":"degi";case"dd":return c(a)?b?f+"dagar":f+(e?"daga":"dögum"):b?f+"dagur":f+(e?"dag":"degi");case"M":return b?"mánuður":e?"mánuð":"mánuði";case"MM":return c(a)?b?f+"mánuðir":f+(e?"mánuði":"mánuðum"):b?f+"mánuður":f+(e?"mánuð":"mánuði");case"y":return b||e?"ár":"ári";case"yy":return c(a)?f+(b||e?"ár":"árum"):f+(b||e?"ár":"ári")}}(b.defineLocale||b.lang).call(b,"is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:d,m:d,mm:d,h:"klukkustund",hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("is","is",{closeText:"Loka",prevText:"< Fyrri",nextText:"Næsti >",currentText:"Í dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("is",{buttonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayHtml:"Allan
daginn",eventLimitText:"meira"})}(),function(){(b.defineLocale||b.lang).call(b,"it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("it","it",{closeText:"Chiudi",prevText:"<Prec",nextText:"Succ>",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il
giorno",eventLimitText:function(a){return"+altri "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"LTs秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),a.fullCalendar.datepickerLang("ja","ja",{closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("ja",{buttonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日",eventLimitText:function(a){return"他 "+a+" 件"}})}(),function(){(b.defineLocale||b.lang).call(b,"ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 LT",LLLL:"YYYY년 MMMM D일 dddd LT"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}}),a.fullCalendar.datepickerLang("ko","ko",{closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"}),a.fullCalendar.lang("ko",{buttonText:{month:"월",week:"주",day:"일",list:"일정목록"},allDayText:"종일",eventLimitText:"개"})}(),function(){function c(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function d(a,b,c,d){return b?f(c)[0]:d?f(c)[1]:f(c)[2]}function e(a){return a%10===0||a>10&&20>a}function f(a){return i[a].split("_")}function g(a,b,c,g){var h=a+" ";return 1===a?h+d(a,b,c[0],g):b?h+(e(a)?f(c)[1]:f(c)[0]):g?h+f(c)[1]:h+(e(a)?f(c)[1]:f(c)[2])}function h(a,b){var c=-1===b.indexOf("dddd HH:mm"),d=j[a.day()];return c?d:d.substring(0,d.length-2)+"į"}var i={m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"},j="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");(b.defineLocale||b.lang).call(b,"lt",{months:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:h,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], LT [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, LT [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], LT [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, LT [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:c,m:d,mm:g,h:d,hh:g,d:d,dd:g,M:d,MM:g,y:d,yy:g},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("lt","lt",{closeText:"Uždaryti",prevText:"<Atgal",nextText:"Pirmyn>",currentText:"Šiandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","šeš"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Še"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("lt",{buttonText:{month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},allDayText:"Visą dieną",eventLimitText:"daugiau"})}(),function(){function c(a,b,c){var d=a.split("_");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function d(a,b,d){return a+" "+c(e[d],a,b)}var e={mm:"minūti_minūtes_minūte_minūtes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mēnesi_mēnešus_mēnesis_mēneši",yy:"gadu_gadus_gads_gadi"};(b.defineLocale||b.lang).call(b,"lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:d,h:"stundu",hh:d,d:"dienu",dd:d,M:"mēnesi",MM:d,y:"gadu",yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("lv","lv",{closeText:"Aizvērt",prevText:"Iepr.",nextText:"Nāk.",currentText:"Šodien",monthNames:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],dayNames:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("lv",{buttonText:{month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},allDayText:"Visu dienu",eventLimitText:function(a){return"+vēl "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",LTS:"LT.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nb","nb",{closeText:"Lukk",prevText:"«Forrige",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nb",{buttonText:{month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til"})}(),function(){var c="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),d="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");(b.defineLocale||b.lang).call(b,"nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"], +monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra"})}(),function(){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+" ";switch(d){case"m":return b?"minuta":"minutę";case"mm":return e+(c(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return e+(c(a)?"godziny":"godzin");case"MM":return e+(c(a)?"miesiące":"miesięcy");case"yy":return e+(c(a)?"lata":"lat")}}var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),f="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");(b.defineLocale||b.lang).call(b,"pl",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:d,mm:d,h:d,hh:d,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:d,y:"rok",yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pl","pl",{closeText:"Zamknij",prevText:"<Poprzedni",nextText:"Następny>",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pl",{buttonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień",eventLimitText:"więcej"})}(),function(){(b.defineLocale||b.lang).call(b,"pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),a.fullCalendar.datepickerLang("pt-br","pt-BR",{closeText:"Fechar",prevText:"<Anterior",nextText:"Próximo>",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(a){return"mais +"+a}})}(),function(){(b.defineLocale||b.lang).call(b,"pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais"})}(),function(){function c(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}(b.defineLocale||b.lang).call(b,"ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:c,h:"o oră",hh:c,d:"o zi",dd:c,M:"o lună",MM:c,y:"un an",yy:c},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("ro","ro",{closeText:"Închide",prevText:"« Luna precedentă",nextText:"Luna următoare »",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ro",{buttonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua",eventLimitText:function(a){return"+alte "+a}})}(),function(){function c(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?b?"минута":"минуту":a+" "+c(e[d],+a)}function e(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function g(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,"ru",{months:e,monthsShort:f,weekdays:g,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:d,mm:d,h:"час",hh:d,d:"день",dd:d,M:"месяц",MM:d,y:"год",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("ru","ru",{closeText:"Закрыть",prevText:"<Пред",nextText:"След>",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ru",{buttonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день",eventLimitText:function(a){return"+ ещё "+a}})}(),function(){function c(a){return a>1&&5>a}function d(a,b,d,e){var f=a+" ";switch(d){case"s":return b||e?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":e?"minútu":"minútou";case"mm":return b||e?f+(c(a)?"minúty":"minút"):f+"minútami";case"h":return b?"hodina":e?"hodinu":"hodinou";case"hh":return b||e?f+(c(a)?"hodiny":"hodín"):f+"hodinami";case"d":return b||e?"deň":"dňom";case"dd":return b||e?f+(c(a)?"dni":"dní"):f+"dňami";case"M":return b||e?"mesiac":"mesiacom";case"MM":return b||e?f+(c(a)?"mesiace":"mesiacov"):f+"mesiacmi";case"y":return b||e?"rok":"rokom";case"yy":return b||e?f+(c(a)?"roky":"rokov"):f+"rokmi"}}var e="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),f="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");(b.defineLocale||b.lang).call(b,"sk",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(e,f),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("sk","sk",{closeText:"Zavrieť",prevText:"<Predchádzajúci",nextText:"Nasledujúci>",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Št","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sk",{buttonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň",eventLimitText:function(a){return"+ďalšie: "+a}})}(),function(){function c(a,b,c){var d=a+" ";switch(c){case"m":return b?"ena minuta":"eno minuto";case"mm":return d+=1===a?"minuta":2===a?"minuti":3===a||4===a?"minute":"minut";case"h":return b?"ena ura":"eno uro";case"hh":return d+=1===a?"ura":2===a?"uri":3===a||4===a?"ure":"ur";case"dd":return d+=1===a?"dan":"dni";case"MM":return d+=1===a?"mesec":2===a?"meseca":3===a||4===a?"mesece":"mesecev";case"yy":return d+=1===a?"leto":2===a?"leti":3===a||4===a?"leta":"let"}}(b.defineLocale||b.lang).call(b,"sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"%s nazaj",s:"nekaj sekund",m:c,mm:c,h:c,hh:c,d:"en dan",dd:c,M:"en mesec",MM:c,y:"eno leto",yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("sl","sl",{closeText:"Zapri",prevText:"<Prejšnji",nextText:"Naslednji>",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","Če","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sl",{buttonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan",eventLimitText:"več"})}(),function(){var c={words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+" "+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,"sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:"дан",dd:c.translate,M:"месец",MM:c.translate,y:"годину",yy:c.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("sr-cyrl","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr-cyrl",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})}(),function(){var c={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+" "+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,"sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:"dan",dd:c.translate,M:"mesec",MM:c.translate,y:"godinu",yy:c.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("sr","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("sv","sv",{closeText:"Stäng",prevText:"«Förra",nextText:"Nästa»",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sv",{buttonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till"})}(),function(){(b.defineLocale||b.lang).call(b,"th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"LT s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),a.fullCalendar.datepickerLang("th","th",{closeText:"ปิด",prevText:"« ย้อน",nextText:"ถัดไป »",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม"})}(),function(){var c={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};(b.defineLocale||b.lang).call(b,"tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("tr","tr",{closeText:"kapat",prevText:"<geri",nextText:"ileri>",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla"})}(),function(){function c(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===d?b?"хвилина":"хвилину":"h"===d?b?"година":"годину":a+" "+c(e[d],+a)}function e(a,b){var c={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},d=/D[oD]? *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function g(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}(b.defineLocale||b.lang).call(b,"uk",{months:e,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:f,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:g("[Сьогодні "),nextDay:g("[Завтра "),lastDay:g("[Вчора "),nextWeek:g("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return g("[Минулої] dddd [").call(this);case 1:case 2:case 4:return g("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:d,mm:d,h:"годину",hh:d,d:"день",dd:d,M:"місяць",MM:d,y:"рік",yy:d},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("uk","uk",{closeText:"Закрити",prevText:"<",nextText:">",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],dayNames:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"],dayNamesShort:["нед","пнд","вів","срд","чтв","птн","сбт"],dayNamesMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("uk",{buttonText:{month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},allDayText:"Увесь день",eventLimitText:function(a){return"+ще "+a+"..."}})}(),function(){(b.defineLocale||b.lang).call(b,"vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY LT",LLLL:"dddd, D MMMM [năm] YYYY LT",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}), +a.fullCalendar.datepickerLang("vi","vi",{closeText:"Đóng",prevText:"<Trước",nextText:"Tiếp>",currentText:"Hôm nay",monthNames:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("vi",{buttonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày",eventLimitText:function(a){return"+ thêm "+a}})}(),function(){(b.defineLocale||b.lang).call(b,"zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()-a.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}}),a.fullCalendar.datepickerLang("zh-tw","zh-TW",{closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("zh-tw",{buttonText:{month:"月",week:"週",day:"天",list:"待辦事項"},allDayText:"全天",eventLimitText:"更多"})}(),(b.locale||b.lang).call(b,"en"),a.fullCalendar.lang("en"),a.datepicker&&a.datepicker.setDefaults(a.datepicker.regional[""])}); \ No newline at end of file diff --git a/library/fullcalendar/license.txt b/library/fullcalendar/license.txt deleted file mode 100644 index dd7b48e8b..000000000 --- a/library/fullcalendar/license.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2013 Adam Shaw - -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. diff --git a/library/moment/CHANGELOG.md b/library/moment/CHANGELOG.md new file mode 100644 index 000000000..7da0b1fc0 --- /dev/null +++ b/library/moment/CHANGELOG.md @@ -0,0 +1,459 @@ +Changelog +========= + +### 2.10.6 + +[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced +in `2.10.5` related to `moment.ISO_8601` parsing. + +### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2) + +Important changes: +* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates + this fixes day to year conversions to work around end-of-year (~365 days). As + a side effect 365 days is 11 months and 30 days, and 366 days is one year. +* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results + Return invalid result if any of the inputs is invalid +* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format + This brings the benefits of YY to YYYY +* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement + + +### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f) + +* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`) +* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja)) +* performance improvements + +### 2.10.2 + +* fixed moment-with-locales in browser env caused by esperanto change + +### 2.10.1 + +* regression: Add moment.duration.fn back + +### 2.10.0 + +Ported code to es6 modules. + +### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +languages: +* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test +* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale + +deprecations: +* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `momen.fn.zone` + +features: +* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween +* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in + moment-timezone) +* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method +* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration +* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units +* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters +* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +Features: + +* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds +* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938 +* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight. +* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object +* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +### 2.8.3 + +Bugfixes: + +* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic +* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration +* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 +* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech +* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions +* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds +* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same +* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs +* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array +* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) +* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) + +### 2.8.2 + +Minor bugfixes: + +* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty` + instead of `obj.hasOwnProperty` (ie8 bug) +* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()` +* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian +* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek +* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de +* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement + +### 2.8.1 + +* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility + +### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4) + +* incompatible changes + * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation + * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway) + * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk. + +* deprecations (old behavior will be dropped in 3.0) + * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales + * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead. + * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention. + +* new locales + * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo) + * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af) + * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my) + * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be) + +* bugfixes, locale bugfixes, performance improvements, features + +### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7) + +* new languages + + * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn) + * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az) + * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa) + * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at) + +* features + + * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds + * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar + * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format + * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods + * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract + * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager) + +* bugfixes + +### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682) + +* languages + * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr) + * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km) + +* features + * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST + * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear + * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing + * [#1499](https://github.com/moment/moment/issues/1499) composer support + * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future + * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten + * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment + * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway) + * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing + +* 18 bugs fixed + +### 2.5.1 + +* languages + * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am) + +* bugfixes + * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation + * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh + * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching + * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning + * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing + * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats + * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan + +* testing + * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis + +### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451) + +* New languages + * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247) + * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319) + * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324) + * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337) + +* Features + * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q` + * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196)) + * 0d30bb7 add jspm support + * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing + * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean + +* 22 bugfixes + +### 2.4.0 + +* **Deprecate** globally exported moment, will be removed in next major +* New languages + * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206) + * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197) + * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215) +* Bugfixes + * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187) + * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076) + * fix language tests [#1177](https://github.com/moment/moment/issues/1177) + * remove some failing tests (that should have never existed :)) + [#1185](https://github.com/moment/moment/issues/1185) + [#1183](https://github.com/moment/moment/issues/1183) + * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195) + +### 2.3.1 + +Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171). + +### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354) + +Changed isValid, added strict parsing. +Week tokens parsing. + +### 2.2.1 + +Fixed bug in string prototype test. +Updated authors and contributors. + +### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4) + +Added bower support. + +Language files now use UMD. + +Creating moment defaults to current date/month/year. + +Added a bundle of moment and all language files. + +### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5) + +Added better week support. + +Added ability to set offset with `moment#zone`. + +Added ability to set month or weekday from a string. + +Added `moment#min` and `moment#max` + +### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51) + +Added short form localized tokens. + +Added ability to define language a string should be parsed in. + +Added support for reversed add/subtract arguments. + +Added support for `endOf('week')` and `startOf('week')`. + +Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')` + +`moment#diff` now floors instead of rounds. + +Normalized `moment#toString`. + +Added `isSame`, `isAfter`, and `isBefore` methods. + +Added better week support. + +Added `moment#toJSON` + +Bugfix: Fixed parsing of first century dates + +Bugfix: Parsing 10Sep2001 should work as expected + +Bugfix: Fixed wierdness with `moment.utc()` parsing. + +Changed language ordinal method to return the number + ordinal instead of just the ordinal. + +Changed two digit year parsing cutoff to match strptime. + +Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + +Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + +Removed the lang data objects from the top level namespace. + +Duplicate `Date` passed to `moment()` instead of referencing it. + +### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456) + +Bugfixes + +### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384) + +Bugfixes + +### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288) + +Added `moment.fn.endOf()` and `moment.fn.startOf()`. + +Added validation via `moment.fn.isValid()`. + +Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions + +Add support for month/weekday callbacks in `moment.fn.format()` + +Added instance specific languages. + +Added two letter weekday abbreviations with the formatting token `dd`. + +Various language updates. + +Various bugfixes. + +### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268) + +Added Durations. + +Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD). + +Added support for millisecond parsing and formatting tokens (S SS SSS) + +Added a getter for `moment.lang()` + +Various bugfixes. + +There are a few things deprecated in the 1.6.0 release. + +1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background. + +2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances. + +3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222). + +### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed) + +Added UTC mode. + +Added automatic ISO8601 parsing. + +Various bugfixes. + +### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed) + +Added `moment.fn.toDate` as a replacement for `moment.fn.native`. + +Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day. + +Various bugfixes. + +### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed) + +Added support for parsing month names in the current language. + +Added escape blocks for parsing tokens. + +Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'. + +Added `moment.fn.day` as a setter. + +Various bugfixes + +### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed) + +Added timezones to parser and formatter. + +Added `moment.fn.isDST`. + +Added `moment.fn.zone` to get the timezone offset in minutes. + +### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed) + +Various bugfixes + +### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed) + +Added time specific diffs (months, days, hours, etc) + +### 1.1.0 + +Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29) + +Fixed [issue 31](https://github.com/timrwood/moment/pull/31). + +### 1.0.1 + +Added `moment.version` to get the current version. + +Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25) + +### 1.0.0 + +Added convenience methods for getting and setting date parts. + +Added better support for `moment.add()`. + +Added better lang support in NodeJS. + +Renamed library from underscore.date to Moment.js + +### 0.6.1 + +Added Portuguese, Italian, and French language support + +### 0.6.0 + +Added _date.lang() support. +Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]); +Made parse from string and single format 25% faster. + +### 0.5.2 + +Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9). + +### 0.5.1 + +Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5). + +### 0.5.0 + +Dropped the redundant `_date.date()` in favor of `_date()`. +Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters. +Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead. +Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function. + +### 0.4.1 + +Added date input formats for input strings. + +### 0.4.0 + +Added underscore.date to npm. Removed dependencies on underscore. + +### 0.3.2 + +Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes. + +### 0.3.1 + +Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object. + +### 0.3.0 + +Switched to the Underscore methodology of not mucking with the native objects' prototypes. +Made chaining possible. + +### 0.2.1 + +Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'. +Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`. + +### 0.2.0 + +Changed function names to be more concise. +Changed date format from php date format to custom format. + +### 0.1.0 + +Initial release + diff --git a/library/moment/LICENSE b/library/moment/LICENSE new file mode 100644 index 000000000..34f5b3707 --- /dev/null +++ b/library/moment/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2011-2015 Tim Wood, Iskren Chernev, Moment.js contributors + +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. diff --git a/library/moment/README.md b/library/moment/README.md new file mode 100644 index 000000000..d59f056e5 --- /dev/null +++ b/library/moment/README.md @@ -0,0 +1,58 @@ +[![Join the chat at https://gitter.im/moment/moment](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/moment/moment?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +[![NPM version][npm-version-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![MIT License][license-image]][license-url] [![Build Status][travis-image]][travis-url] +[![Coverage Status](https://coveralls.io/repos/moment/moment/badge.svg?branch=master)](https://coveralls.io/r/moment/moment?branch=master) + +A lightweight JavaScript date library for parsing, validating, manipulating, and formatting dates. + +## [Documentation](http://momentjs.com/docs/) + +## Port to ES6 (version 2.10.0) + +Moment 2.10.0 does not bring any new features, but the code is now written in +es6 modules and placed inside `src/`. Previously `moment.js`, `locale/*.js` and +`test/moment/*.js`, `test/locale/*.js` contained the source of the project. Now +the source is in `src/`, temporary build (es5) files are placed under +`build/umd/` (for running tests during development), and the `moment.js` and +`locale/*.js` files are updated only on release. + +If you want to use a particular revision of the code, make sure to run +`grunt transpile update-index`, so `moment.js` and `locales/*.js` are synced +with `src/*`. We might place that in a commit hook in the future. + +## Upgrading to 2.0.0 + +There are a number of small backwards incompatible changes with version 2.0.0. [See the full descriptions here](https://gist.github.com/timrwood/e72f2eef320ed9e37c51#backwards-incompatible-changes) + + * Changed language ordinal method to return the number + ordinal instead of just the ordinal. + + * Changed two digit year parsing cutoff to match strptime. + + * Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + + * Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + + * Removed the lang data objects from the top level namespace. + + * Duplicate `Date` passed to `moment()` instead of referencing it. + +## [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) + +## [Contributing](https://github.com/moment/moment/blob/develop/CONTRIBUTING.md) + +We're looking for co-maintainers! If you want to become a master of time please +write to [ichernev](https://github.com/ichernev). + +## License + +Moment.js is freely distributable under the terms of the [MIT license](https://github.com/moment/moment/blob/develop/LICENSE). + +[license-image]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat +[license-url]: LICENSE + +[npm-url]: https://npmjs.org/package/moment +[npm-version-image]: http://img.shields.io/npm/v/moment.svg?style=flat +[npm-downloads-image]: http://img.shields.io/npm/dm/moment.svg?style=flat + +[travis-url]: http://travis-ci.org/moment/moment +[travis-image]: http://img.shields.io/travis/moment/moment/develop.svg?style=flat diff --git a/library/moment/moment.js b/library/moment/moment.js new file mode 100644 index 000000000..23cd3ede1 --- /dev/null +++ b/library/moment/moment.js @@ -0,0 +1,3195 @@ +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (typeof from._isAMomentObject !== 'undefined') { + to._isAMomentObject = from._isAMomentObject; + } + if (typeof from._i !== 'undefined') { + to._i = from._i; + } + if (typeof from._f !== 'undefined') { + to._f = from._f; + } + if (typeof from._l !== 'undefined') { + to._l = from._l; + } + if (typeof from._strict !== 'undefined') { + to._strict = from._strict; + } + if (typeof from._tzm !== 'undefined') { + to._tzm = from._tzm; + } + if (typeof from._isUTC !== 'undefined') { + to._isUTC = from._isUTC; + } + if (typeof from._offset !== 'undefined') { + to._offset = from._offset; + } + if (typeof from._pf !== 'undefined') { + to._pf = getParsingFlags(from); + } + if (typeof from._locale !== 'undefined') { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (typeof val !== 'undefined') { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && typeof module !== 'undefined' && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (typeof values === 'undefined') { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } + + function get_set__set (mom, unit, value) { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + var regexes = {}; + + function isFunction (sth) { + // https://github.com/moment/moment/issues/2325 + return typeof sth === 'function' && + Object.prototype.toString.call(sth) === '[object Function]'; + } + + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', matchWord); + addRegexToken('MMMM', matchWord); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m) { + return this._months[m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m) { + return this._monthsShort[m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + var from_string__isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], + ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], + ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], + ['GGGG-[W]WW', /\d{4}-W\d{2}/], + ['YYYY-DDD', /\d{4}-\d{3}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], + ['HH:mm', /(T| )\d\d:\d\d/], + ['HH', /(T| )\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = from_string__isoRegex.exec(string); + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + config._f = isoDates[i][0]; + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + // match[6] should be 'T' or space + config._f += (match[6] || ' ') + isoTimes[i][0]; + break; + } + } + if (string.match(matchOffset)) { + config._f += 'Z'; + } + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear; + if (d < firstDayOfWeek) { + d += 7; + } + + weekday = weekday != null ? 1 * weekday : firstDayOfWeek; + + dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday; + + return { + year: dayOfYear > 0 ? year : year - 1, + dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; + } + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()]; + } + return [now.getFullYear(), now.getMonth(), now.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } + } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other < this ? this : other; + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other > this ? this : other; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchOffset); + addRegexToken('ZZ', matchOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(string) { + var matches = ((string || '').match(matchOffset) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (typeof this._isDSTShifted !== 'undefined') { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return !this._isUTC; + } + + function isUtcOffset () { + return this._isUTC; + } + + function isUtc () { + return this._isUTC && this._offset === 0; + } + + var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = create__isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this > +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return inputMs < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this < +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return +this.clone().endOf(units) < inputMs; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var inputMs; + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this === +input; + } else { + inputMs = +local__createLocal(input); + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function diff (input, units, asFloat) { + var that = cloneWithOffset(input, this), + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4, + delta, output; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if ('function' === typeof Date.prototype.toISOString) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function weeksInYear(year, dow, doy) { + return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week; + } + + // MOMENTS + + function getSetWeekYear (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getSetISOWeekYear (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + addFormatToken('Q', 0, 0, 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) { + var weekday = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m) { + return this._weekdays[m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName) { + var i, mom, regex; + + this._weekdaysParse = this._weekdaysParse || []; + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = local__createLocal([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, function () { + return this.hours() % 12 || 12; + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = moment_format__toISOString; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.10.6'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/library/moment/moment.min.js b/library/moment/moment.min.js new file mode 100644 index 000000000..8e6866af0 --- /dev/null +++ b/library/moment/moment.min.js @@ -0,0 +1,7 @@ +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Hc.apply(null,arguments)}function b(a){Hc=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in Jc)d=Jc[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Kc===!1&&(Kc=!0,a.updateOffset(this),Kc=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=p(b)),c}function r(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function s(){}function t(a){return a?a.toLowerCase().replace("_","-"):a}function u(a){for(var b,c,d,e,f=0;f0;){if(d=v(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&r(e,c,!0)>=b-1)break;b--}f++}return null}function v(a){var b=null;if(!Lc[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Ic._abbr,require("./locale/"+a),w(b)}catch(c){}return Lc[a]}function w(a,b){var c;return a&&(c="undefined"==typeof b?y(a):x(a,b),c&&(Ic=c)),Ic._abbr}function x(a,b){return null!==b?(b.abbr=a,Lc[a]=Lc[a]||new s,Lc[a].set(b),w(a),Lc[a]):(delete Lc[a],null)}function y(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Ic;if(!c(a)){if(b=v(a))return b;a=[a]}return u(a)}function z(a,b){var c=a.toLowerCase();Mc[c]=Mc[c+"s"]=Mc[b]=a}function A(a){return"string"==typeof a?Mc[a]||Mc[a.toLowerCase()]:void 0}function B(a){var b,c,d={};for(c in a)f(a,c)&&(b=A(c),b&&(d[b]=a[c]));return d}function C(b,c){return function(d){return null!=d?(E(this,b,d),a.updateOffset(this,c),this):D(this,b)}}function D(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function E(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function F(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=A(a),"function"==typeof this[a])return this[a](b);return this}function G(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function H(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Qc[a]=e),b&&(Qc[b[0]]=function(){return G(e.apply(this,arguments),b[1],b[2])}),c&&(Qc[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function I(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function J(a){var b,c,d=a.match(Nc);for(b=0,c=d.length;c>b;b++)Qc[d[b]]?d[b]=Qc[d[b]]:d[b]=I(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function K(a,b){return a.isValid()?(b=L(b,a.localeData()),Pc[b]=Pc[b]||J(b),Pc[b](a)):a.localeData().invalidDate()}function L(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Oc.lastIndex=0;d>=0&&Oc.test(a);)a=a.replace(Oc,c),Oc.lastIndex=0,d-=1;return a}function M(a){return"function"==typeof a&&"[object Function]"===Object.prototype.toString.call(a)}function N(a,b,c){dd[a]=M(b)?b:function(a){return a&&c?c:b}}function O(a,b){return f(dd,a)?dd[a](b._strict,b._locale):new RegExp(P(a))}function P(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=q(a)}),c=0;cd;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function X(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),T(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function Y(b){return null!=b?(X(this,b),a.updateOffset(this,!0),this):D(this,"Month")}function Z(){return T(this.year(),this.month())}function $(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[gd]<0||c[gd]>11?gd:c[hd]<1||c[hd]>T(c[fd],c[gd])?hd:c[id]<0||c[id]>24||24===c[id]&&(0!==c[jd]||0!==c[kd]||0!==c[ld])?id:c[jd]<0||c[jd]>59?jd:c[kd]<0||c[kd]>59?kd:c[ld]<0||c[ld]>999?ld:-1,j(a)._overflowDayOfYear&&(fd>b||b>hd)&&(b=hd),j(a).overflow=b),a}function _(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function aa(a,b){var c=!0;return g(function(){return c&&(_(a+"\n"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ba(a,b){od[a]||(_(b),od[a]=!0)}function ca(a){var b,c,d=a._i,e=pd.exec(d);if(e){for(j(a).iso=!0,b=0,c=qd.length;c>b;b++)if(qd[b][1].exec(d)){a._f=qd[b][0];break}for(b=0,c=rd.length;c>b;b++)if(rd[b][1].exec(d)){a._f+=(e[6]||" ")+rd[b][0];break}d.match(ad)&&(a._f+="Z"),va(a)}else a._isValid=!1}function da(b){var c=sd.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ca(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a){return ha(a)?366:365}function ha(a){return a%4===0&&a%100!==0||a%400===0}function ia(){return ha(this.year())}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Da(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a){return ja(a,this._week.dow,this._week.doy).week}function la(){return this._week.dow}function ma(){return this._week.doy}function na(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function oa(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function pa(a,b,c,d,e){var f,g=6+e-d,h=fa(a,0,1+g),i=h.getUTCDay();return e>i&&(i+=7),c=null!=c?1*c:e,f=1+g+7*(b-1)-i+c,{year:f>0?a:a-1,dayOfYear:f>0?f:ga(a-1)+f}}function qa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function ra(a,b,c){return null!=a?a:null!=b?b:c}function sa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ta(a){var b,c,d,e,f=[];if(!a._d){for(d=sa(a),a._w&&null==a._a[hd]&&null==a._a[gd]&&ua(a),a._dayOfYear&&(e=ra(a._a[fd],d[fd]),a._dayOfYear>ga(e)&&(j(a)._overflowDayOfYear=!0),c=fa(e,0,a._dayOfYear),a._a[gd]=c.getUTCMonth(),a._a[hd]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[id]&&0===a._a[jd]&&0===a._a[kd]&&0===a._a[ld]&&(a._nextDay=!0,a._a[id]=0),a._d=(a._useUTC?fa:ea).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[id]=24)}}function ua(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ra(b.GG,a._a[fd],ja(Da(),1,4).year),d=ra(b.W,1),e=ra(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ra(b.gg,a._a[fd],ja(Da(),f,g).year),d=ra(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=pa(c,d,e,g,f),a._a[fd]=h.year,a._dayOfYear=h.dayOfYear}function va(b){if(b._f===a.ISO_8601)return void ca(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=L(b._f,b._locale).match(Nc)||[],c=0;c0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Qc[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),S(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[id]<=12&&b._a[id]>0&&(j(b).bigHour=void 0),b._a[id]=wa(b._locale,b._a[id],b._meridiem),ta(b),$(b)}function wa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function xa(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function ya(a){if(!a._d){var b=B(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ta(a)}}function za(a){var b=new n($(Aa(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Aa(a){var b=a._i,e=a._f;return a._locale=a._locale||y(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),o(b)?new n($(b)):(c(e)?xa(a):e?va(a):d(b)?a._d=b:Ba(a),a))}function Ba(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?da(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ta(b)):"object"==typeof f?ya(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ca(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,za(f)}function Da(a,b,c,d){return Ca(a,b,c,d,!1)}function Ea(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Da();for(d=b[0],e=1;ea&&(a=-a,c="-"),c+G(~~(a/60),2)+b+G(~~a%60,2)})}function Ka(a){var b=(a||"").match(ad)||[],c=b[b.length-1]||[],d=(c+"").match(xd)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?e:-e}function La(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Da(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Da(b).local()}function Ma(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Na(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ka(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ma(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?bb(this,Ya(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ma(this)}function Oa(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Pa(a){return this.utcOffset(0,a)}function Qa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ma(this),"m")),this}function Ra(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ka(this._i)),this}function Sa(a){return a=a?Da(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Ta(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ua(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var a={};if(m(a,this),a=Aa(a),a._a){var b=a._isUTC?h(a._a):Da(a._a);this._isDSTShifted=this.isValid()&&r(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Va(){return!this._isUTC}function Wa(){return this._isUTC}function Xa(){return this._isUTC&&0===this._offset}function Ya(a,b){var c,d,e,g=a,h=null;return Ia(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=yd.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[hd])*c,h:q(h[id])*c,m:q(h[jd])*c,s:q(h[kd])*c,ms:q(h[ld])*c}):(h=zd.exec(a))?(c="-"===h[1]?-1:1,g={y:Za(h[2],c),M:Za(h[3],c),d:Za(h[4],c),h:Za(h[5],c),m:Za(h[6],c),s:Za(h[7],c),w:Za(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=_a(Da(g.from),Da(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ha(g),Ia(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Za(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function $a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function _a(a,b){var c;return b=La(b,a),a.isBefore(b)?c=$a(a,b):(c=$a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function ab(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ba(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Ya(c,d),bb(this,e,a),this}}function bb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&E(b,"Date",D(b,"Date")+g*d),h&&X(b,D(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function cb(a,b){var c=a||Da(),d=La(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(b&&b[f]||this.localeData().calendar(f,this,Da(c)))}function db(){return new n(this)}function eb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this>+a):(c=o(a)?+a:+Da(a),c<+this.clone().startOf(b))}function fb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+a>+this):(c=o(a)?+a:+Da(a),+this.clone().endOf(b)b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function kb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function lb(){var a=this.clone().utc();return 0b;b++)if(this._weekdaysParse[b]||(c=Da([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Pb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Kb(a,this.localeData()),this.add(a-b,"d")):b}function Qb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Rb(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Sb(a,b){H(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Tb(a,b){return b._meridiemParse}function Ub(a){return"p"===(a+"").toLowerCase().charAt(0)}function Vb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wb(a,b){b[ld]=q(1e3*("0."+a))}function Xb(){return this._isUTC?"UTC":""}function Yb(){return this._isUTC?"Coordinated Universal Time":""}function Zb(a){return Da(1e3*a)}function $b(){return Da.apply(null,arguments).parseZone()}function _b(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function bc(){return this._invalidDate}function cc(a){return this._ordinal.replace("%d",a)}function dc(a){return a}function ec(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function gc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hc(a,b,c,d){var e=y(),f=h().set(d,b);return e[c](f,a)}function ic(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return hc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=hc(a,f,c,e);return g}function jc(a,b){return ic(a,b,"months",12,"month")}function kc(a,b){return ic(a,b,"monthsShort",12,"month")}function lc(a,b){return ic(a,b,"weekdays",7,"day")}function mc(a,b){return ic(a,b,"weekdaysShort",7,"day")}function nc(a,b){return ic(a,b,"weekdaysMin",7,"day")}function oc(){var a=this._data;return this._milliseconds=Wd(this._milliseconds),this._days=Wd(this._days),this._months=Wd(this._months),a.milliseconds=Wd(a.milliseconds),a.seconds=Wd(a.seconds),a.minutes=Wd(a.minutes),a.hours=Wd(a.hours),a.months=Wd(a.months),a.years=Wd(a.years),this}function pc(a,b,c,d){var e=Ya(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function qc(a,b){return pc(this,a,b,1)}function rc(a,b){return pc(this,a,b,-1)}function sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*sc(vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=p(f/1e3),i.seconds=a%60,b=p(a/60),i.minutes=b%60,c=p(b/60),i.hours=c%24,g+=p(c/24),e=p(uc(g)),h+=e,g-=sc(vc(e)),d=p(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function uc(a){return 4800*a/146097}function vc(a){return 146097*a/4800}function wc(a){var b,c,d=this._milliseconds;if(a=A(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)}function yc(a){return function(){return this.as(a)}}function zc(a){return a=A(a),this[a+"s"]()}function Ac(a){return function(){return this._data[a]}}function Bc(){return p(this.days()/7)}function Cc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Dc(a,b,c){var d=Ya(a).abs(),e=ke(d.as("s")),f=ke(d.as("m")),g=ke(d.as("h")),h=ke(d.as("d")),i=ke(d.as("M")),j=ke(d.as("y")),k=e0,k[4]=c,Cc.apply(null,k)}function Ec(a,b){return void 0===le[a]?!1:void 0===b?le[a]:(le[a]=b,!0)}function Fc(a){var b=this.localeData(),c=Dc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Gc(){var a,b,c,d=me(this._milliseconds)/1e3,e=me(this._days),f=me(this._months);a=p(d/60),b=p(a/60),d%=60,a%=60,c=p(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var Hc,Ic,Jc=a.momentProperties=[],Kc=!1,Lc={},Mc={},Nc=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Oc=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Pc={},Qc={},Rc=/\d/,Sc=/\d\d/,Tc=/\d{3}/,Uc=/\d{4}/,Vc=/[+-]?\d{6}/,Wc=/\d\d?/,Xc=/\d{1,3}/,Yc=/\d{1,4}/,Zc=/[+-]?\d{1,6}/,$c=/\d+/,_c=/[+-]?\d+/,ad=/Z|[+-]\d\d:?\d\d/gi,bd=/[+-]?\d+(\.\d{1,3})?/,cd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,dd={},ed={},fd=0,gd=1,hd=2,id=3,jd=4,kd=5,ld=6;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),H("MMMM",0,0,function(a){return this.localeData().months(this,a)}),z("month","M"),N("M",Wc),N("MM",Wc,Sc),N("MMM",cd),N("MMMM",cd),Q(["M","MM"],function(a,b){b[gd]=q(a)-1}),Q(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[gd]=e:j(c).invalidMonth=a});var md="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),nd="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),od={};a.suppressDeprecationWarnings=!1;var pd=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,qd=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],rd=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],sd=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),N("Y",_c),N("YY",Wc,Sc),N("YYYY",Yc,Uc),N("YYYYY",Zc,Vc),N("YYYYYY",Zc,Vc),Q(["YYYYY","YYYYYY"],fd),Q("YYYY",function(b,c){c[fd]=2===b.length?a.parseTwoDigitYear(b):q(b)}),Q("YY",function(b,c){c[fd]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return q(a)+(q(a)>68?1900:2e3)};var td=C("FullYear",!1);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),N("w",Wc),N("ww",Wc,Sc),N("W",Wc),N("WW",Wc,Sc),R(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=q(a)});var ud={dow:0,doy:6};H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),N("DDD",Xc),N("DDDD",Tc),Q(["DDD","DDDD"],function(a,b,c){c._dayOfYear=q(a)}),a.ISO_8601=function(){};var vd=aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return this>a?this:a}),wd=aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return a>this?this:a});Ja("Z",":"),Ja("ZZ",""),N("Z",ad),N("ZZ",ad),Q(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ka(a)});var xd=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var yd=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,zd=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Ya.fn=Ha.prototype;var Ad=ab(1,"add"),Bd=ab(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Cd=aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Db("gggg","weekYear"),Db("ggggg","weekYear"),Db("GGGG","isoWeekYear"),Db("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),N("G",_c),N("g",_c),N("GG",Wc,Sc),N("gg",Wc,Sc),N("GGGG",Yc,Uc),N("gggg",Yc,Uc),N("GGGGG",Zc,Vc),N("ggggg",Zc,Vc),R(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=q(a)}),R(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),H("Q",0,0,"quarter"),z("quarter","Q"),N("Q",Rc),Q("Q",function(a,b){b[gd]=3*(q(a)-1)}),H("D",["DD",2],"Do","date"),z("date","D"),N("D",Wc),N("DD",Wc,Sc),N("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),Q(["D","DD"],hd),Q("Do",function(a,b){b[hd]=q(a.match(Wc)[0],10)});var Dd=C("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),H("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),H("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),N("d",Wc),N("e",Wc),N("E",Wc),N("dd",cd),N("ddd",cd),N("dddd",cd),R(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),R(["d","e","E"],function(a,b,c,d){b[d]=q(a)});var Ed="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gd="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("H",["HH",2],0,"hour"),H("h",["hh",2],0,function(){return this.hours()%12||12}),Sb("a",!0),Sb("A",!1),z("hour","h"),N("a",Tb),N("A",Tb),N("H",Wc),N("h",Wc),N("HH",Wc,Sc),N("hh",Wc,Sc),Q(["H","HH"],id),Q(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),Q(["h","hh"],function(a,b,c){b[id]=q(a),j(c).bigHour=!0});var Hd=/[ap]\.?m?\.?/i,Id=C("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),N("m",Wc),N("mm",Wc,Sc),Q(["m","mm"],jd);var Jd=C("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),N("s",Wc),N("ss",Wc,Sc),Q(["s","ss"],kd);var Kd=C("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),N("S",Xc,Rc),N("SS",Xc,Sc),N("SSS",Xc,Tc);var Ld;for(Ld="SSSS";Ld.length<=9;Ld+="S")N(Ld,$c);for(Ld="S";Ld.length<=9;Ld+="S")Q(Ld,Wb);var Md=C("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Nd=n.prototype;Nd.add=Ad,Nd.calendar=cb,Nd.clone=db,Nd.diff=ib,Nd.endOf=ub,Nd.format=mb,Nd.from=nb,Nd.fromNow=ob,Nd.to=pb,Nd.toNow=qb,Nd.get=F,Nd.invalidAt=Cb,Nd.isAfter=eb,Nd.isBefore=fb,Nd.isBetween=gb,Nd.isSame=hb,Nd.isValid=Ab,Nd.lang=Cd,Nd.locale=rb,Nd.localeData=sb,Nd.max=wd,Nd.min=vd,Nd.parsingFlags=Bb,Nd.set=F,Nd.startOf=tb,Nd.subtract=Bd,Nd.toArray=yb,Nd.toObject=zb,Nd.toDate=xb,Nd.toISOString=lb,Nd.toJSON=lb,Nd.toString=kb,Nd.unix=wb,Nd.valueOf=vb,Nd.year=td,Nd.isLeapYear=ia,Nd.weekYear=Fb,Nd.isoWeekYear=Gb,Nd.quarter=Nd.quarters=Jb,Nd.month=Y,Nd.daysInMonth=Z,Nd.week=Nd.weeks=na,Nd.isoWeek=Nd.isoWeeks=oa,Nd.weeksInYear=Ib,Nd.isoWeeksInYear=Hb,Nd.date=Dd,Nd.day=Nd.days=Pb,Nd.weekday=Qb,Nd.isoWeekday=Rb,Nd.dayOfYear=qa,Nd.hour=Nd.hours=Id,Nd.minute=Nd.minutes=Jd,Nd.second=Nd.seconds=Kd, +Nd.millisecond=Nd.milliseconds=Md,Nd.utcOffset=Na,Nd.utc=Pa,Nd.local=Qa,Nd.parseZone=Ra,Nd.hasAlignedHourOffset=Sa,Nd.isDST=Ta,Nd.isDSTShifted=Ua,Nd.isLocal=Va,Nd.isUtcOffset=Wa,Nd.isUtc=Xa,Nd.isUTC=Xa,Nd.zoneAbbr=Xb,Nd.zoneName=Yb,Nd.dates=aa("dates accessor is deprecated. Use date instead.",Dd),Nd.months=aa("months accessor is deprecated. Use month instead",Y),Nd.years=aa("years accessor is deprecated. Use year instead",td),Nd.zone=aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Oa);var Od=Nd,Pd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Qd={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Rd="Invalid date",Sd="%d",Td=/\d{1,2}/,Ud={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Vd=s.prototype;Vd._calendar=Pd,Vd.calendar=_b,Vd._longDateFormat=Qd,Vd.longDateFormat=ac,Vd._invalidDate=Rd,Vd.invalidDate=bc,Vd._ordinal=Sd,Vd.ordinal=cc,Vd._ordinalParse=Td,Vd.preparse=dc,Vd.postformat=dc,Vd._relativeTime=Ud,Vd.relativeTime=ec,Vd.pastFuture=fc,Vd.set=gc,Vd.months=U,Vd._months=md,Vd.monthsShort=V,Vd._monthsShort=nd,Vd.monthsParse=W,Vd.week=ka,Vd._week=ud,Vd.firstDayOfYear=ma,Vd.firstDayOfWeek=la,Vd.weekdays=Lb,Vd._weekdays=Ed,Vd.weekdaysMin=Nb,Vd._weekdaysMin=Gd,Vd.weekdaysShort=Mb,Vd._weekdaysShort=Fd,Vd.weekdaysParse=Ob,Vd.isPM=Ub,Vd._meridiemParse=Hd,Vd.meridiem=Vb,w("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=aa("moment.lang is deprecated. Use moment.locale instead.",w),a.langData=aa("moment.langData is deprecated. Use moment.localeData instead.",y);var Wd=Math.abs,Xd=yc("ms"),Yd=yc("s"),Zd=yc("m"),$d=yc("h"),_d=yc("d"),ae=yc("w"),be=yc("M"),ce=yc("y"),de=Ac("milliseconds"),ee=Ac("seconds"),fe=Ac("minutes"),ge=Ac("hours"),he=Ac("days"),ie=Ac("months"),je=Ac("years"),ke=Math.round,le={s:45,m:45,h:22,d:26,M:11},me=Math.abs,ne=Ha.prototype;ne.abs=oc,ne.add=qc,ne.subtract=rc,ne.as=wc,ne.asMilliseconds=Xd,ne.asSeconds=Yd,ne.asMinutes=Zd,ne.asHours=$d,ne.asDays=_d,ne.asWeeks=ae,ne.asMonths=be,ne.asYears=ce,ne.valueOf=xc,ne._bubble=tc,ne.get=zc,ne.milliseconds=de,ne.seconds=ee,ne.minutes=fe,ne.hours=ge,ne.days=he,ne.weeks=Bc,ne.months=ie,ne.years=je,ne.humanize=Fc,ne.toISOString=Gc,ne.toString=Gc,ne.toJSON=Gc,ne.locale=rb,ne.localeData=sb,ne.toIsoString=aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gc),ne.lang=Cd,H("X",0,0,"unix"),H("x",0,0,"valueOf"),N("x",_c),N("X",bd),Q("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),Q("x",function(a,b,c){c._d=new Date(q(a))}),a.version="2.10.6",b(Da),a.fn=Od,a.min=Fa,a.max=Ga,a.utc=h,a.unix=Zb,a.months=jc,a.isDate=d,a.locale=w,a.invalid=l,a.duration=Ya,a.isMoment=o,a.weekdays=lc,a.parseZone=$b,a.localeData=y,a.isDuration=Ia,a.monthsShort=kc,a.weekdaysMin=nc,a.defineLocale=x,a.weekdaysShort=mc,a.normalizeUnits=A,a.relativeTimeThreshold=Ec;var oe=a;return oe}); \ No newline at end of file diff --git a/mod/admin.php b/mod/admin.php index 3f1a69ca6..4b7cb3cd9 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -395,9 +395,10 @@ function admin_page_site(&$a) { } /* Banner */ + $banner = get_config('system', 'banner'); - if($banner == false) - $banner = 'red'; + if($banner === false) + $banner = get_config('system','sitename'); $banner = htmlspecialchars($banner); diff --git a/mod/channel.php b/mod/channel.php index 0af2666cc..2b9d0ed89 100644 --- a/mod/channel.php +++ b/mod/channel.php @@ -189,7 +189,7 @@ function channel_content(&$a, $update = 0, $load = false) { $sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY)); } if(x($hashtags)) { - $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG)); + $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG)); } if($datequery) { diff --git a/mod/dirsearch.php b/mod/dirsearch.php index 937564a79..548acbd08 100644 --- a/mod/dirsearch.php +++ b/mod/dirsearch.php @@ -124,8 +124,6 @@ function dirsearch_content(&$a) { if($keywords) $sql_extra .= dir_query_build($joiner,'xprof_keywords',$keywords); - if($forums) - $safesql .= dir_flag_build(' AND ','xchan_flags',XCHAN_FLAGS_PUBFORUM, $forums); // we only support an age range currently. You must set both agege // (greater than or equal) and agele (less than or equal) @@ -173,6 +171,9 @@ function dirsearch_content(&$a) { if($safe < 0) $safesql = " and ( xchan_censored = 1 OR xchan_selfcensored = 1 ) "; + if($forums) + $safesql .= " and xchan_pubforum = " . ((intval($forums)) ? '1 ' : '0 '); + if($limit) $qlimit = " LIMIT $limit "; else { @@ -185,7 +186,6 @@ function dirsearch_content(&$a) { } } - if($sort_order == 'normal') { $order = " order by xchan_name asc "; @@ -202,6 +202,7 @@ function dirsearch_content(&$a) { else $order = " order by xchan_name_date desc "; + if($sync) { $spkt = array('transactions' => array()); $r = q("select * from updates where ud_date >= '%s' and ud_guid != '' order by ud_date desc", @@ -245,15 +246,20 @@ function dirsearch_content(&$a) { json_return_and_die($spkt); } else { + $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) $hub_query and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql $order $qlimit " ); + + + $ret['page'] = $page + 1; $ret['records'] = count($r); } + if($r) { $entries = array(); diff --git a/mod/events.php b/mod/events.php index d76602a33..c3731bf1c 100755 --- a/mod/events.php +++ b/mod/events.php @@ -280,22 +280,17 @@ function events_content(&$a) { // $plaintext = false; - $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array( '$baseurl' => $a->get_baseurl(), - '$editselect' => (($plaintext) ? 'none' : 'textareas') + '$editselect' => (($plaintext) ? 'none' : 'textareas'), + '$lang' => $a->language )); $o =""; - // tabs $channel = $a->get_channel(); - $tabs = profile_tabs($a, True, $channel['channel_address']); - - - $mode = 'view'; $y = 0; $m = 0; @@ -378,10 +373,10 @@ function events_content(&$a) { if (argv(1) === 'json'){ - if (x($_GET,'start')) $start = date("Y-m-d h:i:s", $_GET['start']); - if (x($_GET,'end')) $finish = date("Y-m-d h:i:s", $_GET['end']); + if (x($_GET,'start')) $start = $_GET['start']; + if (x($_GET,'end')) $finish = $_GET['end']; } - + $start = datetime_convert('UTC','UTC',$start); $finish = datetime_convert('UTC','UTC',$finish); @@ -413,18 +408,21 @@ function events_content(&$a) { $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan from event left join item on event_hash = resource_id - where resource_type = 'event' and event.uid = %d $ignored - AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' ) - OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )) ", + where resource_type = 'event' and event.uid = %d $ignored + AND (( adjust = 0 AND ( finish >= '%s' or nofinish = 1 ) AND start <= '%s' ) + OR ( adjust = 1 AND ( finish >= '%s' or nofinish = 1 ) AND start <= '%s' )) ", intval(local_channel()), dbesc($start), dbesc($finish), dbesc($adjust_start), dbesc($adjust_finish) ); + } + + $links = array(); if($r && ! $export) { @@ -500,7 +498,7 @@ function events_content(&$a) { } } - + if($export) { header('Content-type: text/calendar'); header('content-disposition: attachment; filename="' . t('calendar') . '-' . $channel['channel_address'] . '.ics"' ); @@ -522,16 +520,18 @@ function events_content(&$a) { $o = replace_macros($tpl, array( '$baseurl' => $a->get_baseurl(), - '$tabs' => $tabs, '$title' => t('Events'), - '$new_event'=> array($a->get_baseurl().'/events/new',t('Create New Event'),'',''), + '$new_event'=> array($a->get_baseurl().'/events/new',t('New Event'),'',''), '$previus' => array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''), '$next' => array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''), '$export' => array($a->get_baseurl()."/events/$y/$m/export",t('Export'),'',''), '$calendar' => cal($y,$m,$links, ' eventcal'), '$events' => $events, '$upload' => t('Import'), - '$submit' => t('Submit') + '$submit' => t('Submit'), + '$prev' => t('Previous'), + '$next' => t('Next'), + '$today' => t('Today') )); if (x($_GET,'id')){ echo $o; killme(); } diff --git a/mod/invite.php b/mod/invite.php index 46fa7b413..bda808142 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -143,4 +143,4 @@ function invite_content(&$a) { )); return $o; -} \ No newline at end of file +} diff --git a/mod/item.php b/mod/item.php index b66d71797..34484eff7 100644 --- a/mod/item.php +++ b/mod/item.php @@ -651,6 +651,29 @@ function item_post(&$a) { } } + if($orig_post) { + // preserve original tags + $t = q("select * from term where oid = %d and otype = %d and uid = %d and type in ( %d, %d, %d )", + intval($orig_post['id']), + intval(TERM_OBJ_POST), + intval($profile_uid), + intval(TERM_UNKNOWN), + intval(TERM_FILE), + intval(TERM_COMMUNITYTAG) + ); + if($t) { + foreach($t as $t1) { + $post_tags[] = array( + 'uid' => $profile_uid, + 'type' => $t1['type'], + 'otype' => TERM_OBJ_POST, + 'term' => $t1['term'], + 'url' => $t1['url'], + ); + } + } + } + $item_unseen = ((local_channel() != $profile_uid) ? 1 : 0); $item_wall = (($post_type === 'wall' || $post_type === 'wall-comment') ? 1 : 0); @@ -703,6 +726,10 @@ function item_post(&$a) { $plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $mid; } + + + + $datarray['aid'] = $channel['channel_account_id']; $datarray['uid'] = $profile_uid; @@ -781,6 +808,22 @@ function item_post(&$a) { if($orig_post) $datarray['edit'] = true; + + + if(feature_enabled($profile_uid,'suppress_duplicates')) { + + $z = q("select created from item where uid = %d and body = '%s'", + intval($profile_uid), + dbesc($body) + ); + + if($z && $z[0]['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) { + $datarray['cancel'] = 1; + notice( t('Duplicate post suppressed.') . EOL); + logger('Duplicate post. Faking plugin cancel.'); + } + } + call_hooks('post_local',$datarray); if(x($datarray,'cancel')) { diff --git a/mod/network.php b/mod/network.php index 53de975a4..9f0604296 100644 --- a/mod/network.php +++ b/mod/network.php @@ -248,7 +248,7 @@ function network_content(&$a, $update = 0, $load = false) { $sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY)); } if(x($hashtags)) { - $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG)); + $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG)); } if(! $update) { @@ -313,7 +313,7 @@ function network_content(&$a, $update = 0, $load = false) { if(x($_GET,'search')) { $search = escape_tags($_GET['search']); if(strpos($search,'#') === 0) { - $sql_extra .= term_query('item',substr($search,1),TERM_HASHTAG); + $sql_extra .= term_query('item',substr($search,1),TERM_HASHTAG,TERM_COMMUNITYTAG); } else { $sql_extra .= sprintf(" AND item.body like '%s' ", diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 7067a9f76..2884505f0 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -6,6 +6,7 @@ */ require_once('include/photo/photo_driver.php'); +require_once('include/identity.php'); /* @brief Function for sync'ing permissions of profile-photos and their profile * @@ -195,6 +196,8 @@ function profile_photo_post(&$a) { ); } + profiles_build_sync(local_channel()); + // We'll set the updated profile-photo timestamp even if it isn't the default profile, // so that browsers will do a cache update unconditionally diff --git a/mod/profiles.php b/mod/profiles.php index 19e5ffc50..282d741ac 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -1,5 +1,6 @@ get_baseurl(true) . '/profiles'); return; // NOTREACHED } @@ -118,7 +125,10 @@ function profiles_init(&$a) { dbesc($name) ); info( t('New profile created.') . EOL); - if(count($r3) == 1) + + profiles_build_sync(local_channel()); + + if(($r3) && (count($r3) == 1)) goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']); goaway($a->get_baseurl(true) . '/profiles'); @@ -193,7 +203,6 @@ function profiles_post(&$a) { $namechanged = false; - call_hooks('profile_post', $_POST); // import from json export file. // Only import fields that are allowed on this hub @@ -220,6 +229,7 @@ function profiles_post(&$a) { } } + call_hooks('profile_post', $_POST); if((argc() > 1) && (argv(1) !== "new") && intval(argv(1))) { @@ -564,8 +574,6 @@ function profiles_post(&$a) { } - - function profiles_content(&$a) { $o = ''; diff --git a/mod/search.php b/mod/search.php index a0085fca9..555d46f6a 100644 --- a/mod/search.php +++ b/mod/search.php @@ -75,9 +75,10 @@ function search_content(&$a,$update = 0, $load = false) { return $o; if($tag) { - $sql_extra = sprintf(" AND `item`.`id` IN (select `oid` from term where otype = %d and type = %d and term = '%s') ", + $sql_extra = sprintf(" AND `item`.`id` IN (select `oid` from term where otype = %d and type in ( %d , %d) and term = '%s') ", intval(TERM_OBJ_POST), intval(TERM_HASHTAG), + intval(TERM_COMMUNITYTAG), dbesc(protect_sprintf($search)) ); } diff --git a/mod/search_ac.php b/mod/search_ac.php index e42945d43..19c1dc940 100644 --- a/mod/search_ac.php +++ b/mod/search_ac.php @@ -42,8 +42,9 @@ function search_ac_init(&$a){ } } - $r = q("select distinct term, tid, url from term where type = %d $tag_sql_extra group by term order by term asc", - intval(TERM_HASHTAG) + $r = q("select distinct term, tid, url from term where type in ( %d, %d ) $tag_sql_extra group by term order by term asc", + intval(TERM_HASHTAG), + intval(TERM_COMMUNITYTAG) ); if(count($r)) { diff --git a/mod/subthread.php b/mod/subthread.php index 162545a2f..74d742b6a 100755 --- a/mod/subthread.php +++ b/mod/subthread.php @@ -11,18 +11,24 @@ function subthread_content(&$a) { return; } + $item_id = ((argc() > 2) ? notags(trim(argv(2))) : 0); + if(argv(1) === 'sub') $activity = ACTIVITY_FOLLOW; elseif(argv(1) === 'unsub') $activity = ACTIVITY_UNFOLLOW; - $item_id = ((argc() > 2) ? notags(trim(argv(2))) : 0); - $r = q("SELECT * FROM `item` WHERE `parent` = '%s' OR `parent_mid` = '%s' and parent = id LIMIT 1", - dbesc($item_id), + $r = q("SELECT parent FROM item WHERE id = '%s'", dbesc($item_id) ); + if($r) { + $r = q("select * from item where id = parent and id = %d limit 1", + dbesc($r[0]['parent']) + ); + } + if((! $item_id) || (! $r)) { logger('subthread: no item ' . $item_id); return; diff --git a/mod/tagger.php b/mod/tagger.php index 9f9855ed8..27a8a15ea 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -123,7 +123,7 @@ function tagger_content(&$a) { $arr['object'] = $obj; $arr['parent_mid'] = $item['mid']; - store_item_tag($item['uid'],$item['id'],TERM_OBJ_POST,TERM_HASHTAG,$term,$tagid); + store_item_tag($item['uid'],$item['id'],TERM_OBJ_POST,TERM_COMMUNITYTAG,$term,$tagid); $ret = post_activity_item($arr); if($ret['success']) diff --git a/util/hmessages.po b/util/hmessages.po index 7bcb498f9..00610c180 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2015-11-13.1215\n" +"Project-Id-Version: 2015-11-20.1222\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-13 00:03-0800\n" +"POT-Creation-Date: 2015-11-20 00:03-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,13 +17,1254 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../include/conversation.php:120 ../../include/text.php:1873 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 +#: ../../include/Import/import_diaspora.php:17 +msgid "No username found in import file." +msgstr "" + +#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 +msgid "Unable to create a unique channel address. Import failed." +msgstr "" + +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:107 +#: ../../include/RedDAV/RedBrowser.php:239 +msgid "parent" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2546 +msgid "Collection" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:134 +msgid "Principal" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:137 +msgid "Addressbook" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:140 +msgid "Calendar" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:143 +msgid "Schedule Inbox" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:146 +msgid "Schedule Outbox" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/conversation.php:1026 +#: ../../include/apps.php:360 ../../include/apps.php:415 +#: ../../include/widgets.php:1317 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1628 +#: ../../include/apps.php:135 ../../include/nav.php:93 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:227 +msgid "Total" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:229 +msgid "Shared" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:230 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 +#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 +#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 +msgid "Create" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:231 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:450 +msgid "Upload" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../mod/sharedwithme.php:95 +msgid "Name" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:236 +msgid "Type" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1247 +#: ../../mod/sharedwithme.php:97 +msgid "Size" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 +msgid "Last Modified" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 +#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 +#: ../../include/apps.php:259 ../../include/ItemObject.php:100 +#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 +#: ../../mod/editpost.php:112 ../../mod/menu.php:108 +#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 +#: ../../mod/settings.php:646 ../../mod/connections.php:235 +#: ../../mod/connections.php:248 ../../mod/connections.php:267 +#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +msgid "Edit" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/apps.php:260 ../../include/ItemObject.php:120 +#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 +#: ../../mod/editblock.php:181 ../../mod/admin.php:809 ../../mod/admin.php:968 +#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 +#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 +#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 +msgid "Delete" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:282 +#, php-format +msgid "You are using %1$s of your available file storage." +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:287 +#, php-format +msgid "You are using %1$s of %2$s available file storage. (%3$s%)" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:299 +msgid "WARNING:" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:302 +msgid "Create new folder" +msgstr "" + +#: ../../include/RedDAV/RedBrowser.php:304 +msgid "Upload file" +msgstr "" + +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "" + +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" +msgstr "" + +#: ../../include/permissions.php:28 +msgid "Can view my connections" +msgstr "" + +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" +msgstr "" + +#: ../../include/permissions.php:30 +msgid "Can view my webpages" +msgstr "" + +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" +msgstr "" + +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" +msgstr "" + +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" +msgstr "" + +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" +msgstr "" + +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" +msgstr "" + +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" +msgstr "" + +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "" + +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" +msgstr "" + +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" +msgstr "" + +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" +msgstr "" + +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" +msgstr "" + +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" +msgstr "" + +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" +msgstr "" + +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" +msgstr "" + +#: ../../include/permissions.php:46 +msgid "Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "" + +#: ../../include/permissions.php:867 +msgid "Social Networking" +msgstr "" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Mostly Public" +msgstr "" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Restricted" +msgstr "" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +msgid "Private" +msgstr "" + +#: ../../include/permissions.php:868 +msgid "Community Forum" +msgstr "" + +#: ../../include/permissions.php:869 +msgid "Feed Republish" +msgstr "" + +#: ../../include/permissions.php:870 +msgid "Special Purpose" +msgstr "" + +#: ../../include/permissions.php:870 +msgid "Celebrity/Soapbox" +msgstr "" + +#: ../../include/permissions.php:870 +msgid "Group Repository" +msgstr "" + +#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 +msgid "Other" +msgstr "" + +#: ../../include/permissions.php:871 +msgid "Custom/Expert Mode" +msgstr "" + +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "" + +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "" + +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "" + +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "" + +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../include/photos.php:29 ../../include/attach.php:140 +#: ../../include/attach.php:188 ../../include/attach.php:251 +#: ../../include/attach.php:265 ../../include/attach.php:272 +#: ../../include/attach.php:337 ../../include/attach.php:351 +#: ../../include/attach.php:358 ../../include/attach.php:436 +#: ../../include/attach.php:884 ../../include/attach.php:955 +#: ../../include/attach.php:1107 ../../mod/achievements.php:30 +#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 +#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 +#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 +#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 +#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 +#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 +#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 +#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 +#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 +#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 +#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 +#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 +#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 +#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 +#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/message.php:16 +#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 +#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 +#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 +#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 +#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 +#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 +#: ../../mod/api.php:31 ../../mod/connections.php:29 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 +#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 +#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 +#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 +#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 +#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 +#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 +msgid "Permission denied." +msgstr "" + +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "" + +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "" + +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "" + +#: ../../include/datetime.php:235 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:689 +msgid "Required" +msgstr "" + +#: ../../include/datetime.php:262 ../../boot.php:2289 +msgid "never" +msgstr "" + +#: ../../include/datetime.php:268 +msgid "less than a second ago" +msgstr "" + +#: ../../include/datetime.php:271 +msgid "year" +msgstr "" + +#: ../../include/datetime.php:271 +msgid "years" +msgstr "" + +#: ../../include/datetime.php:272 +msgid "month" +msgstr "" + +#: ../../include/datetime.php:272 +msgid "months" +msgstr "" + +#: ../../include/datetime.php:273 +msgid "week" +msgstr "" + +#: ../../include/datetime.php:273 +msgid "weeks" +msgstr "" + +#: ../../include/datetime.php:274 +msgid "day" +msgstr "" + +#: ../../include/datetime.php:274 +msgid "days" +msgstr "" + +#: ../../include/datetime.php:275 +msgid "hour" +msgstr "" + +#: ../../include/datetime.php:275 +msgid "hours" +msgstr "" + +#: ../../include/datetime.php:276 +msgid "minute" +msgstr "" + +#: ../../include/datetime.php:276 +msgid "minutes" +msgstr "" + +#: ../../include/datetime.php:277 +msgid "second" +msgstr "" + +#: ../../include/datetime.php:277 +msgid "seconds" +msgstr "" + +#: ../../include/datetime.php:285 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "" + +#: ../../include/datetime.php:519 +#, php-format +msgid "%1$s's birthday" +msgstr "" + +#: ../../include/datetime.php:520 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "" + +#: ../../include/features.php:38 +msgid "General Features" +msgstr "" + +#: ../../include/features.php:40 +msgid "Content Expiration" +msgstr "" + +#: ../../include/features.php:40 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "" + +#: ../../include/features.php:41 +msgid "Multiple Profiles" +msgstr "" + +#: ../../include/features.php:41 +msgid "Ability to create multiple profiles" +msgstr "" + +#: ../../include/features.php:42 +msgid "Advanced Profiles" +msgstr "" + +#: ../../include/features.php:42 +msgid "Additional profile sections and selections" +msgstr "" + +#: ../../include/features.php:43 +msgid "Profile Import/Export" +msgstr "" + +#: ../../include/features.php:43 +msgid "Save and load profile details across sites/channels" +msgstr "" + +#: ../../include/features.php:44 +msgid "Web Pages" +msgstr "" + +#: ../../include/features.php:44 +msgid "Provide managed web pages on your channel" +msgstr "" + +#: ../../include/features.php:45 +msgid "Private Notes" +msgstr "" + +#: ../../include/features.php:45 +msgid "Enables a tool to store notes and reminders" +msgstr "" + +#: ../../include/features.php:46 +msgid "Navigation Channel Select" +msgstr "" + +#: ../../include/features.php:46 +msgid "Change channels directly from within the navigation dropdown menu" +msgstr "" + +#: ../../include/features.php:47 +msgid "Photo Location" +msgstr "" + +#: ../../include/features.php:47 +msgid "If location data is available on uploaded photos, link this to a map." +msgstr "" + +#: ../../include/features.php:49 +msgid "Expert Mode" +msgstr "" + +#: ../../include/features.php:49 +msgid "Enable Expert Mode to provide advanced configuration options" +msgstr "" + +#: ../../include/features.php:50 +msgid "Premium Channel" +msgstr "" + +#: ../../include/features.php:50 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "" + +#: ../../include/features.php:55 +msgid "Post Composition Features" +msgstr "" + +#: ../../include/features.php:57 +msgid "Use Markdown" +msgstr "" + +#: ../../include/features.php:57 +msgid "Allow use of \"Markdown\" to format posts" +msgstr "" + +#: ../../include/features.php:58 +msgid "Large Photos" +msgstr "" + +#: ../../include/features.php:58 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" +msgstr "" + +#: ../../include/features.php:59 ../../include/widgets.php:546 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "" + +#: ../../include/features.php:59 +msgid "Automatically import channel content from other channels or feeds" +msgstr "" + +#: ../../include/features.php:60 +msgid "Even More Encryption" +msgstr "" + +#: ../../include/features.php:60 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "" + +#: ../../include/features.php:61 +msgid "Enable Voting Tools" +msgstr "" + +#: ../../include/features.php:61 +msgid "Provide a class of post which others can vote on" +msgstr "" + +#: ../../include/features.php:62 +msgid "Delayed Posting" +msgstr "" + +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" +msgstr "" + +#: ../../include/features.php:63 +msgid "Suppress Duplicate Posts/Comments" +msgstr "" + +#: ../../include/features.php:63 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." +msgstr "" + +#: ../../include/features.php:69 +msgid "Network and Stream Filtering" +msgstr "" + +#: ../../include/features.php:70 +msgid "Search by Date" +msgstr "" + +#: ../../include/features.php:70 +msgid "Ability to select posts by date ranges" +msgstr "" + +#: ../../include/features.php:71 +msgid "Collections Filter" +msgstr "" + +#: ../../include/features.php:71 +msgid "Enable widget to display Network posts only from selected collections" +msgstr "" + +#: ../../include/features.php:72 ../../include/widgets.php:274 +msgid "Saved Searches" +msgstr "" + +#: ../../include/features.php:72 +msgid "Save search terms for re-use" +msgstr "" + +#: ../../include/features.php:73 +msgid "Network Personal Tab" +msgstr "" + +#: ../../include/features.php:73 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "" + +#: ../../include/features.php:74 +msgid "Network New Tab" +msgstr "" + +#: ../../include/features.php:74 +msgid "Enable tab to display all new Network activity" +msgstr "" + +#: ../../include/features.php:75 +msgid "Affinity Tool" +msgstr "" + +#: ../../include/features.php:75 +msgid "Filter stream activity by depth of relationships" +msgstr "" + +#: ../../include/features.php:76 +msgid "Connection Filtering" +msgstr "" + +#: ../../include/features.php:76 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "" + +#: ../../include/features.php:77 +msgid "Suggest Channels" +msgstr "" + +#: ../../include/features.php:77 +msgid "Show channel suggestions" +msgstr "" + +#: ../../include/features.php:82 +msgid "Post/Comment Tools" +msgstr "" + +#: ../../include/features.php:83 +msgid "Tagging" +msgstr "" + +#: ../../include/features.php:83 +msgid "Ability to tag existing posts" +msgstr "" + +#: ../../include/features.php:84 +msgid "Post Categories" +msgstr "" + +#: ../../include/features.php:84 +msgid "Add categories to your posts" +msgstr "" + +#: ../../include/features.php:85 ../../include/contact_widgets.php:57 +#: ../../include/widgets.php:304 +msgid "Saved Folders" +msgstr "" + +#: ../../include/features.php:85 +msgid "Ability to file posts under folders" +msgstr "" + +#: ../../include/features.php:86 +msgid "Dislike Posts" +msgstr "" + +#: ../../include/features.php:86 +msgid "Ability to dislike posts/comments" +msgstr "" + +#: ../../include/features.php:87 +msgid "Star Posts" +msgstr "" + +#: ../../include/features.php:87 +msgid "Ability to mark special posts with a star indicator" +msgstr "" + +#: ../../include/features.php:88 +msgid "Tag Cloud" +msgstr "" + +#: ../../include/features.php:88 +msgid "Provide a personal tag cloud on your channel page" +msgstr "" + +#: ../../include/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "" + +#: ../../include/js_strings.php:5 +msgid "Delete this item?" +msgstr "" + +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 +#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +msgid "Comment" +msgstr "" + +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +msgid "[+] show all" +msgstr "" + +#: ../../include/js_strings.php:8 +msgid "[-] show less" +msgstr "" + +#: ../../include/js_strings.php:9 +msgid "[+] expand" +msgstr "" + +#: ../../include/js_strings.php:10 +msgid "[-] collapse" +msgstr "" + +#: ../../include/js_strings.php:11 +msgid "Password too short" +msgstr "" + +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" +msgstr "" + +#: ../../include/js_strings.php:13 ../../mod/photos.php:41 +msgid "everybody" +msgstr "" + +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" +msgstr "" + +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" +msgstr "" + +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." +msgstr "" + +#: ../../include/js_strings.php:17 +msgid "close all" +msgstr "" + +#: ../../include/js_strings.php:18 +msgid "Nothing new here" +msgstr "" + +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" +msgstr "" + +#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 +#: ../../mod/rate.php:157 +msgid "Rating" +msgstr "" + +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" +msgstr "" + +#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 +#: ../../include/widgets.php:676 ../../mod/fsuggest.php:108 +#: ../../mod/mitem.php:231 ../../mod/connedit.php:715 ../../mod/mood.php:135 +#: ../../mod/pconfig.php:108 ../../mod/filestorage.php:156 +#: ../../mod/poke.php:171 ../../mod/chat.php:184 ../../mod/chat.php:213 +#: ../../mod/rate.php:168 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/admin.php:435 +#: ../../mod/admin.php:802 ../../mod/admin.php:966 ../../mod/admin.php:1103 +#: ../../mod/admin.php:1297 ../../mod/admin.php:1382 ../../mod/appman.php:99 +#: ../../mod/pdledit.php:58 ../../mod/events.php:531 ../../mod/events.php:710 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/thing.php:313 ../../mod/thing.php:359 +#: ../../mod/invite.php:142 ../../mod/mail.php:371 ../../mod/settings.php:584 +#: ../../mod/settings.php:696 ../../mod/settings.php:724 +#: ../../mod/settings.php:747 ../../mod/settings.php:832 +#: ../../mod/settings.php:1021 ../../mod/xchan.php:11 ../../mod/group.php:81 +#: ../../mod/connect.php:93 ../../mod/locs.php:116 ../../mod/setup.php:331 +#: ../../mod/setup.php:371 ../../mod/profiles.php:667 +#: ../../mod/import_items.php:122 ../../view/theme/redbasic/php/config.php:99 +msgid "Submit" +msgstr "" + +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" +msgstr "" + +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" +msgstr "" + +#: ../../include/js_strings.php:26 +msgid "timeago.prefixAgo" +msgstr "" + +#: ../../include/js_strings.php:27 +msgid "timeago.prefixFromNow" +msgstr "" + +#: ../../include/js_strings.php:28 +msgid "ago" +msgstr "" + +#: ../../include/js_strings.php:29 +msgid "from now" +msgstr "" + +#: ../../include/js_strings.php:30 +msgid "less than a minute" +msgstr "" + +#: ../../include/js_strings.php:31 +msgid "about a minute" +msgstr "" + +#: ../../include/js_strings.php:32 +#, php-format +msgid "%d minutes" +msgstr "" + +#: ../../include/js_strings.php:33 +msgid "about an hour" +msgstr "" + +#: ../../include/js_strings.php:34 +#, php-format +msgid "about %d hours" +msgstr "" + +#: ../../include/js_strings.php:35 +msgid "a day" +msgstr "" + +#: ../../include/js_strings.php:36 +#, php-format +msgid "%d days" +msgstr "" + +#: ../../include/js_strings.php:37 +msgid "about a month" +msgstr "" + +#: ../../include/js_strings.php:38 +#, php-format +msgid "%d months" +msgstr "" + +#: ../../include/js_strings.php:39 +msgid "about a year" +msgstr "" + +#: ../../include/js_strings.php:40 +#, php-format +msgid "%d years" +msgstr "" + +#: ../../include/js_strings.php:41 +msgid " " +msgstr "" + +#: ../../include/js_strings.php:42 +msgid "timeago.numbers" +msgstr "" + +#: ../../include/js_strings.php:44 ../../include/text.php:1164 +msgid "January" +msgstr "" + +#: ../../include/js_strings.php:45 ../../include/text.php:1164 +msgid "February" +msgstr "" + +#: ../../include/js_strings.php:46 ../../include/text.php:1164 +msgid "March" +msgstr "" + +#: ../../include/js_strings.php:47 ../../include/text.php:1164 +msgid "April" +msgstr "" + +#: ../../include/js_strings.php:48 +msgctxt "long" +msgid "May" +msgstr "" + +#: ../../include/js_strings.php:49 ../../include/text.php:1164 +msgid "June" +msgstr "" + +#: ../../include/js_strings.php:50 ../../include/text.php:1164 +msgid "July" +msgstr "" + +#: ../../include/js_strings.php:51 ../../include/text.php:1164 +msgid "August" +msgstr "" + +#: ../../include/js_strings.php:52 ../../include/text.php:1164 +msgid "September" +msgstr "" + +#: ../../include/js_strings.php:53 ../../include/text.php:1164 +msgid "October" +msgstr "" + +#: ../../include/js_strings.php:54 ../../include/text.php:1164 +msgid "November" +msgstr "" + +#: ../../include/js_strings.php:55 ../../include/text.php:1164 +msgid "December" +msgstr "" + +#: ../../include/js_strings.php:56 +msgid "Jan" +msgstr "" + +#: ../../include/js_strings.php:57 +msgid "Feb" +msgstr "" + +#: ../../include/js_strings.php:58 +msgid "Mar" +msgstr "" + +#: ../../include/js_strings.php:59 +msgid "Apr" +msgstr "" + +#: ../../include/js_strings.php:60 +msgctxt "short" +msgid "May" +msgstr "" + +#: ../../include/js_strings.php:61 +msgid "Jun" +msgstr "" + +#: ../../include/js_strings.php:62 +msgid "Jul" +msgstr "" + +#: ../../include/js_strings.php:63 +msgid "Aug" +msgstr "" + +#: ../../include/js_strings.php:64 +msgid "Sep" +msgstr "" + +#: ../../include/js_strings.php:65 +msgid "Oct" +msgstr "" + +#: ../../include/js_strings.php:66 +msgid "Nov" +msgstr "" + +#: ../../include/js_strings.php:67 +msgid "Dec" +msgstr "" + +#: ../../include/js_strings.php:68 ../../include/text.php:1160 +msgid "Sunday" +msgstr "" + +#: ../../include/js_strings.php:69 ../../include/text.php:1160 +msgid "Monday" +msgstr "" + +#: ../../include/js_strings.php:70 ../../include/text.php:1160 +msgid "Tuesday" +msgstr "" + +#: ../../include/js_strings.php:71 ../../include/text.php:1160 +msgid "Wednesday" +msgstr "" + +#: ../../include/js_strings.php:72 ../../include/text.php:1160 +msgid "Thursday" +msgstr "" + +#: ../../include/js_strings.php:73 ../../include/text.php:1160 +msgid "Friday" +msgstr "" + +#: ../../include/js_strings.php:74 ../../include/text.php:1160 +msgid "Saturday" +msgstr "" + +#: ../../include/js_strings.php:75 +msgid "Sun" +msgstr "" + +#: ../../include/js_strings.php:76 +msgid "Mon" +msgstr "" + +#: ../../include/js_strings.php:77 +msgid "Tue" +msgstr "" + +#: ../../include/js_strings.php:78 +msgid "Wed" +msgstr "" + +#: ../../include/js_strings.php:79 +msgid "Thu" +msgstr "" + +#: ../../include/js_strings.php:80 +msgid "Fri" +msgstr "" + +#: ../../include/js_strings.php:81 +msgid "Sat" +msgstr "" + +#: ../../include/js_strings.php:82 +msgctxt "calendar" +msgid "today" +msgstr "" + +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "month" +msgstr "" + +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "week" +msgstr "" + +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "day" +msgstr "" + +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "All day" +msgstr "" + +#: ../../include/contact_selectors.php:56 +msgid "Frequently" +msgstr "" + +#: ../../include/contact_selectors.php:57 +msgid "Hourly" +msgstr "" + +#: ../../include/contact_selectors.php:58 +msgid "Twice daily" +msgstr "" + +#: ../../include/contact_selectors.php:59 +msgid "Daily" +msgstr "" + +#: ../../include/contact_selectors.php:60 +msgid "Weekly" +msgstr "" + +#: ../../include/contact_selectors.php:61 +msgid "Monthly" +msgstr "" + +#: ../../include/contact_selectors.php:76 +msgid "Friendica" +msgstr "" + +#: ../../include/contact_selectors.php:77 +msgid "OStatus" +msgstr "" + +#: ../../include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "" + +#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 +#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../boot.php:1488 +msgid "Email" +msgstr "" + +#: ../../include/contact_selectors.php:80 +msgid "Diaspora" +msgstr "" + +#: ../../include/contact_selectors.php:81 +msgid "Facebook" +msgstr "" + +#: ../../include/contact_selectors.php:82 +msgid "Zot!" +msgstr "" + +#: ../../include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "" + +#: ../../include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "" + +#: ../../include/contact_selectors.php:85 +msgid "MySpace" +msgstr "" + +#: ../../include/activities.php:42 +msgid " and " +msgstr "" + +#: ../../include/activities.php:50 +msgid "public profile" +msgstr "" + +#: ../../include/activities.php:59 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "" + +#: ../../include/activities.php:60 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "" + +#: ../../include/activities.php:63 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "" + +#: ../../include/Contact.php:101 ../../include/conversation.php:952 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/identity.php:952 ../../mod/directory.php:318 +#: ../../mod/match.php:64 ../../mod/suggest.php:52 +msgid "Connect" +msgstr "" + +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "" + +#: ../../include/Contact.php:119 +msgid "Open the selected location in a different window or browser tab" +msgstr "" + +#: ../../include/Contact.php:237 +#, php-format +msgid "User '%s' deleted" +msgstr "" + +#: ../../include/dba/dba_driver.php:141 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" +msgstr "" + +#: ../../include/items.php:423 ../../mod/like.php:280 +#: ../../mod/subthread.php:58 ../../mod/dreport.php:6 ../../mod/dreport.php:45 +#: ../../mod/group.php:68 ../../mod/profperm.php:23 +#: ../../mod/import_items.php:114 ../../index.php:360 +msgid "Permission denied" +msgstr "" + +#: ../../include/items.php:1128 ../../include/items.php:1174 +msgid "(Unknown)" +msgstr "" + +#: ../../include/items.php:1371 +msgid "Visible to anybody on the internet." +msgstr "" + +#: ../../include/items.php:1373 +msgid "Visible to you only." +msgstr "" + +#: ../../include/items.php:1375 +msgid "Visible to anybody in this network." +msgstr "" + +#: ../../include/items.php:1377 +msgid "Visible to anybody authenticated." +msgstr "" + +#: ../../include/items.php:1379 +#, php-format +msgid "Visible to anybody on %s." +msgstr "" + +#: ../../include/items.php:1381 +msgid "Visible to all connections." +msgstr "" + +#: ../../include/items.php:1383 +msgid "Visible to approved connections." +msgstr "" + +#: ../../include/items.php:1385 +msgid "Visible to specific connections." +msgstr "" + +#: ../../include/items.php:4317 ../../mod/display.php:36 +#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 +#: ../../mod/admin.php:1005 ../../mod/admin.php:1210 ../../mod/thing.php:86 +#: ../../mod/viewsrc.php:20 +msgid "Item not found." +msgstr "" + +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 +msgid "Collection not found." +msgstr "" + +#: ../../include/items.php:4842 +msgid "Collection is empty." +msgstr "" + +#: ../../include/items.php:4849 +#, php-format +msgid "Collection: %s" +msgstr "" + +#: ../../include/items.php:4859 ../../mod/connedit.php:683 +#, php-format +msgid "Connection: %s" +msgstr "" + +#: ../../include/items.php:4861 +msgid "Connection not found." +msgstr "" + +#: ../../include/conversation.php:120 ../../include/text.php:1880 +#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:83 msgid "photo" msgstr "" #: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1876 ../../mod/like.php:363 ../../mod/tagger.php:47 +#: ../../include/text.php:1883 ../../mod/like.php:363 ../../mod/tagger.php:47 #: ../../mod/events.php:245 msgid "event" msgstr "" @@ -32,12 +1273,12 @@ msgstr "" msgid "channel" msgstr "" -#: ../../include/conversation.php:148 ../../include/text.php:1879 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 +#: ../../include/conversation.php:148 ../../include/text.php:1886 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 msgid "status" msgstr "" -#: ../../include/conversation.php:150 ../../include/text.php:1881 +#: ../../include/conversation.php:150 ../../include/text.php:1888 #: ../../mod/tagger.php:53 msgid "comment" msgstr "" @@ -62,7 +1303,7 @@ msgstr "" msgid "%1$s poked %2$s" msgstr "" -#: ../../include/conversation.php:243 ../../include/text.php:946 +#: ../../include/conversation.php:243 ../../include/text.php:953 msgid "poked" msgstr "" @@ -116,16 +1357,6 @@ msgstr "" msgid "Select" msgstr "" -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 -#: ../../mod/editblock.php:181 ../../mod/admin.php:808 ../../mod/admin.php:967 -#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 -#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 -#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 -msgid "Delete" -msgstr "" - #: ../../include/conversation.php:664 ../../include/ItemObject.php:89 msgid "Private Message" msgstr "" @@ -198,7 +1429,7 @@ msgid "Follow Thread" msgstr "" #: ../../include/conversation.php:947 -msgid "Stop Following" +msgid "Unfollow Thread" msgstr "" #: ../../include/conversation.php:948 @@ -218,13 +1449,6 @@ msgstr "" msgid "Activity/Posts" msgstr "" -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:952 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:318 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 -msgid "Connect" -msgstr "" - #: ../../include/conversation.php:953 msgid "Edit Connection" msgstr "" @@ -237,13 +1461,6 @@ msgstr "" msgid "Poke" msgstr "" -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../include/widgets.php:1281 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "" - #: ../../include/conversation.php:1069 #, php-format msgid "%s likes this." @@ -318,7 +1535,7 @@ msgstr "" msgid "Where are you right now?" msgstr "" -#: ../../include/conversation.php:1160 ../../mod/editpost.php:54 +#: ../../include/conversation.php:1160 ../../mod/editpost.php:56 #: ../../mod/mail.php:195 ../../mod/mail.php:309 msgid "Expires YYYY-MM-DD HH:MM" msgstr "" @@ -529,7 +1746,7 @@ msgstr "" msgid "Sort by Post Date" msgstr "" -#: ../../include/conversation.php:1525 ../../include/widgets.php:94 +#: ../../include/conversation.php:1525 ../../include/widgets.php:95 msgid "Personal" msgstr "" @@ -562,7 +1779,7 @@ msgstr "" msgid "Posts flagged as SPAM" msgstr "" -#: ../../include/conversation.php:1600 ../../mod/admin.php:972 +#: ../../include/conversation.php:1600 ../../mod/admin.php:973 msgid "Channel" msgstr "" @@ -587,12 +1804,6 @@ msgstr "" msgid "Photo Albums" msgstr "" -#: ../../include/conversation.php:1628 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "" - #: ../../include/conversation.php:1631 msgid "Files and Storage" msgstr "" @@ -626,7 +1837,7 @@ msgid "View all" msgstr "" #: ../../include/conversation.php:1720 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1263 ../../include/taxonomy.php:403 +#: ../../include/identity.php:1263 ../../include/taxonomy.php:412 #: ../../mod/photos.php:1086 msgctxt "noun" msgid "Like" @@ -684,1207 +1895,6 @@ msgid_plural "Abstains" msgstr[0] "" msgstr[1] "" -#: ../../include/Import/import_diaspora.php:17 -msgid "No username found in import file." -msgstr "" - -#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 -msgid "Unable to create a unique channel address. Import failed." -msgstr "" - -#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 -msgid "Import completed." -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:107 -#: ../../include/RedDAV/RedBrowser.php:239 -msgid "parent" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2539 -msgid "Collection" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:134 -msgid "Principal" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:137 -msgid "Addressbook" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:140 -msgid "Calendar" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:143 -msgid "Schedule Inbox" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:146 -msgid "Schedule Outbox" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:227 -msgid "Total" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:229 -msgid "Shared" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:230 -#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 -#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 -#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 -msgid "Create" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1293 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:450 -msgid "Upload" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 -#: ../../mod/sharedwithme.php:95 -msgid "Name" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:236 -msgid "Type" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1240 -#: ../../mod/sharedwithme.php:97 -msgid "Size" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 -msgid "Last Modified" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 -#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 -#: ../../include/apps.php:259 ../../include/ItemObject.php:100 -#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 -#: ../../mod/editpost.php:112 ../../mod/menu.php:108 -#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 -#: ../../mod/settings.php:646 ../../mod/connections.php:235 -#: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 -msgid "Edit" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:282 -#, php-format -msgid "You are using %1$s of your available file storage." -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:287 -#, php-format -msgid "You are using %1$s of %2$s available file storage. (%3$s%)" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:299 -msgid "WARNING:" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:302 -msgid "Create new folder" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:304 -msgid "Upload file" -msgstr "" - -#: ../../include/permissions.php:26 -msgid "Can view my normal stream and posts" -msgstr "" - -#: ../../include/permissions.php:27 -msgid "Can view my default channel profile" -msgstr "" - -#: ../../include/permissions.php:28 -msgid "Can view my connections" -msgstr "" - -#: ../../include/permissions.php:29 -msgid "Can view my file storage and photos" -msgstr "" - -#: ../../include/permissions.php:30 -msgid "Can view my webpages" -msgstr "" - -#: ../../include/permissions.php:33 -msgid "Can send me their channel stream and posts" -msgstr "" - -#: ../../include/permissions.php:34 -msgid "Can post on my channel page (\"wall\")" -msgstr "" - -#: ../../include/permissions.php:35 -msgid "Can comment on or like my posts" -msgstr "" - -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" -msgstr "" - -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" -msgstr "" - -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" -msgstr "" - -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "" - -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" -msgstr "" - -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" -msgstr "" - -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" -msgstr "" - -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" -msgstr "" - -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" -msgstr "" - -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" -msgstr "" - -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" -msgstr "" - -#: ../../include/permissions.php:46 -msgid "Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "" - -#: ../../include/permissions.php:867 -msgid "Social Networking" -msgstr "" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Mostly Public" -msgstr "" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Restricted" -msgstr "" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -msgid "Private" -msgstr "" - -#: ../../include/permissions.php:868 -msgid "Community Forum" -msgstr "" - -#: ../../include/permissions.php:869 -msgid "Feed Republish" -msgstr "" - -#: ../../include/permissions.php:870 -msgid "Special Purpose" -msgstr "" - -#: ../../include/permissions.php:870 -msgid "Celebrity/Soapbox" -msgstr "" - -#: ../../include/permissions.php:870 -msgid "Group Repository" -msgstr "" - -#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 -#: ../../include/profile_selectors.php:23 -#: ../../include/profile_selectors.php:61 -#: ../../include/profile_selectors.php:97 -msgid "Other" -msgstr "" - -#: ../../include/permissions.php:871 -msgid "Custom/Expert Mode" -msgstr "" - -#: ../../include/chat.php:23 -msgid "Missing room name" -msgstr "" - -#: ../../include/chat.php:32 -msgid "Duplicate room name" -msgstr "" - -#: ../../include/chat.php:82 ../../include/chat.php:90 -msgid "Invalid room specifier." -msgstr "" - -#: ../../include/chat.php:122 -msgid "Room not found." -msgstr "" - -#: ../../include/chat.php:133 ../../include/items.php:4390 -#: ../../include/photos.php:29 ../../include/attach.php:140 -#: ../../include/attach.php:188 ../../include/attach.php:251 -#: ../../include/attach.php:265 ../../include/attach.php:272 -#: ../../include/attach.php:337 ../../include/attach.php:351 -#: ../../include/attach.php:358 ../../include/attach.php:436 -#: ../../include/attach.php:884 ../../include/attach.php:955 -#: ../../include/attach.php:1107 ../../mod/achievements.php:30 -#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 -#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 -#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 -#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 -#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 -#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 -#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 -#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 -#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 -#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 -#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 -#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 -#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 -#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 -#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 -#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 -#: ../../mod/item.php:213 ../../mod/item.php:1006 ../../mod/message.php:16 -#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 -#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 -#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 -#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 -#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 -#: ../../mod/api.php:31 ../../mod/connections.php:29 -#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 -#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 -#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 -#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 -#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 -#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 -#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 -msgid "Permission denied." -msgstr "" - -#: ../../include/chat.php:143 -msgid "Room is full" -msgstr "" - -#: ../../include/datetime.php:48 -msgid "Miscellaneous" -msgstr "" - -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" -msgstr "" - -#: ../../include/datetime.php:235 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:689 -msgid "Required" -msgstr "" - -#: ../../include/datetime.php:262 ../../boot.php:2287 -msgid "never" -msgstr "" - -#: ../../include/datetime.php:268 -msgid "less than a second ago" -msgstr "" - -#: ../../include/datetime.php:271 -msgid "year" -msgstr "" - -#: ../../include/datetime.php:271 -msgid "years" -msgstr "" - -#: ../../include/datetime.php:272 -msgid "month" -msgstr "" - -#: ../../include/datetime.php:272 -msgid "months" -msgstr "" - -#: ../../include/datetime.php:273 -msgid "week" -msgstr "" - -#: ../../include/datetime.php:273 -msgid "weeks" -msgstr "" - -#: ../../include/datetime.php:274 -msgid "day" -msgstr "" - -#: ../../include/datetime.php:274 -msgid "days" -msgstr "" - -#: ../../include/datetime.php:275 -msgid "hour" -msgstr "" - -#: ../../include/datetime.php:275 -msgid "hours" -msgstr "" - -#: ../../include/datetime.php:276 -msgid "minute" -msgstr "" - -#: ../../include/datetime.php:276 -msgid "minutes" -msgstr "" - -#: ../../include/datetime.php:277 -msgid "second" -msgstr "" - -#: ../../include/datetime.php:277 -msgid "seconds" -msgstr "" - -#: ../../include/datetime.php:285 -#, php-format -msgctxt "e.g. 22 hours ago, 1 minute ago" -msgid "%1$d %2$s ago" -msgstr "" - -#: ../../include/datetime.php:519 -#, php-format -msgid "%1$s's birthday" -msgstr "" - -#: ../../include/datetime.php:520 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "" - -#: ../../include/features.php:38 -msgid "General Features" -msgstr "" - -#: ../../include/features.php:40 -msgid "Content Expiration" -msgstr "" - -#: ../../include/features.php:40 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "" - -#: ../../include/features.php:41 -msgid "Multiple Profiles" -msgstr "" - -#: ../../include/features.php:41 -msgid "Ability to create multiple profiles" -msgstr "" - -#: ../../include/features.php:42 -msgid "Advanced Profiles" -msgstr "" - -#: ../../include/features.php:42 -msgid "Additional profile sections and selections" -msgstr "" - -#: ../../include/features.php:43 -msgid "Profile Import/Export" -msgstr "" - -#: ../../include/features.php:43 -msgid "Save and load profile details across sites/channels" -msgstr "" - -#: ../../include/features.php:44 -msgid "Web Pages" -msgstr "" - -#: ../../include/features.php:44 -msgid "Provide managed web pages on your channel" -msgstr "" - -#: ../../include/features.php:45 -msgid "Private Notes" -msgstr "" - -#: ../../include/features.php:45 -msgid "Enables a tool to store notes and reminders" -msgstr "" - -#: ../../include/features.php:46 -msgid "Navigation Channel Select" -msgstr "" - -#: ../../include/features.php:46 -msgid "Change channels directly from within the navigation dropdown menu" -msgstr "" - -#: ../../include/features.php:47 -msgid "Photo Location" -msgstr "" - -#: ../../include/features.php:47 -msgid "If location data is available on uploaded photos, link this to a map." -msgstr "" - -#: ../../include/features.php:49 -msgid "Expert Mode" -msgstr "" - -#: ../../include/features.php:49 -msgid "Enable Expert Mode to provide advanced configuration options" -msgstr "" - -#: ../../include/features.php:50 -msgid "Premium Channel" -msgstr "" - -#: ../../include/features.php:50 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "" - -#: ../../include/features.php:55 -msgid "Post Composition Features" -msgstr "" - -#: ../../include/features.php:57 -msgid "Use Markdown" -msgstr "" - -#: ../../include/features.php:57 -msgid "Allow use of \"Markdown\" to format posts" -msgstr "" - -#: ../../include/features.php:58 -msgid "Large Photos" -msgstr "" - -#: ../../include/features.php:58 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" -msgstr "" - -#: ../../include/features.php:59 ../../include/widgets.php:545 -#: ../../mod/sources.php:88 -msgid "Channel Sources" -msgstr "" - -#: ../../include/features.php:59 -msgid "Automatically import channel content from other channels or feeds" -msgstr "" - -#: ../../include/features.php:60 -msgid "Even More Encryption" -msgstr "" - -#: ../../include/features.php:60 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" -msgstr "" - -#: ../../include/features.php:61 -msgid "Enable Voting Tools" -msgstr "" - -#: ../../include/features.php:61 -msgid "Provide a class of post which others can vote on" -msgstr "" - -#: ../../include/features.php:62 -msgid "Delayed Posting" -msgstr "" - -#: ../../include/features.php:62 -msgid "Allow posts to be published at a later date" -msgstr "" - -#: ../../include/features.php:68 -msgid "Network and Stream Filtering" -msgstr "" - -#: ../../include/features.php:69 -msgid "Search by Date" -msgstr "" - -#: ../../include/features.php:69 -msgid "Ability to select posts by date ranges" -msgstr "" - -#: ../../include/features.php:70 -msgid "Collections Filter" -msgstr "" - -#: ../../include/features.php:70 -msgid "Enable widget to display Network posts only from selected collections" -msgstr "" - -#: ../../include/features.php:71 ../../include/widgets.php:273 -msgid "Saved Searches" -msgstr "" - -#: ../../include/features.php:71 -msgid "Save search terms for re-use" -msgstr "" - -#: ../../include/features.php:72 -msgid "Network Personal Tab" -msgstr "" - -#: ../../include/features.php:72 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "" - -#: ../../include/features.php:73 -msgid "Network New Tab" -msgstr "" - -#: ../../include/features.php:73 -msgid "Enable tab to display all new Network activity" -msgstr "" - -#: ../../include/features.php:74 -msgid "Affinity Tool" -msgstr "" - -#: ../../include/features.php:74 -msgid "Filter stream activity by depth of relationships" -msgstr "" - -#: ../../include/features.php:75 -msgid "Connection Filtering" -msgstr "" - -#: ../../include/features.php:75 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "" - -#: ../../include/features.php:76 -msgid "Suggest Channels" -msgstr "" - -#: ../../include/features.php:76 -msgid "Show channel suggestions" -msgstr "" - -#: ../../include/features.php:81 -msgid "Post/Comment Tools" -msgstr "" - -#: ../../include/features.php:82 -msgid "Tagging" -msgstr "" - -#: ../../include/features.php:82 -msgid "Ability to tag existing posts" -msgstr "" - -#: ../../include/features.php:83 -msgid "Post Categories" -msgstr "" - -#: ../../include/features.php:83 -msgid "Add categories to your posts" -msgstr "" - -#: ../../include/features.php:84 ../../include/contact_widgets.php:57 -#: ../../include/widgets.php:303 -msgid "Saved Folders" -msgstr "" - -#: ../../include/features.php:84 -msgid "Ability to file posts under folders" -msgstr "" - -#: ../../include/features.php:85 -msgid "Dislike Posts" -msgstr "" - -#: ../../include/features.php:85 -msgid "Ability to dislike posts/comments" -msgstr "" - -#: ../../include/features.php:86 -msgid "Star Posts" -msgstr "" - -#: ../../include/features.php:86 -msgid "Ability to mark special posts with a star indicator" -msgstr "" - -#: ../../include/features.php:87 -msgid "Tag Cloud" -msgstr "" - -#: ../../include/features.php:87 -msgid "Provide a personal tag cloud on your channel page" -msgstr "" - -#: ../../include/comanche.php:34 ../../mod/admin.php:351 -msgid "Default" -msgstr "" - -#: ../../include/js_strings.php:5 -msgid "Delete this item?" -msgstr "" - -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 -msgid "Comment" -msgstr "" - -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 -msgid "[+] show all" -msgstr "" - -#: ../../include/js_strings.php:8 -msgid "[-] show less" -msgstr "" - -#: ../../include/js_strings.php:9 -msgid "[+] expand" -msgstr "" - -#: ../../include/js_strings.php:10 -msgid "[-] collapse" -msgstr "" - -#: ../../include/js_strings.php:11 -msgid "Password too short" -msgstr "" - -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" -msgstr "" - -#: ../../include/js_strings.php:13 ../../mod/photos.php:41 -msgid "everybody" -msgstr "" - -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" -msgstr "" - -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" -msgstr "" - -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." -msgstr "" - -#: ../../include/js_strings.php:17 -msgid "close all" -msgstr "" - -#: ../../include/js_strings.php:18 -msgid "Nothing new here" -msgstr "" - -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" -msgstr "" - -#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 -#: ../../mod/rate.php:157 -msgid "Rating" -msgstr "" - -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" -msgstr "" - -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 -#: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:715 ../../mod/mood.php:135 ../../mod/pconfig.php:108 -#: ../../mod/filestorage.php:156 ../../mod/poke.php:171 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/rate.php:168 ../../mod/photos.php:637 -#: ../../mod/photos.php:1008 ../../mod/photos.php:1048 -#: ../../mod/photos.php:1166 ../../mod/admin.php:434 ../../mod/admin.php:801 -#: ../../mod/admin.php:965 ../../mod/admin.php:1097 ../../mod/admin.php:1291 -#: ../../mod/admin.php:1376 ../../mod/appman.php:99 ../../mod/pdledit.php:58 -#: ../../mod/events.php:534 ../../mod/events.php:710 ../../mod/sources.php:104 -#: ../../mod/sources.php:138 ../../mod/import.php:527 ../../mod/thing.php:313 -#: ../../mod/thing.php:359 ../../mod/invite.php:142 ../../mod/mail.php:371 -#: ../../mod/settings.php:584 ../../mod/settings.php:696 -#: ../../mod/settings.php:724 ../../mod/settings.php:747 -#: ../../mod/settings.php:832 ../../mod/settings.php:1021 -#: ../../mod/xchan.php:11 ../../mod/group.php:81 ../../mod/connect.php:93 -#: ../../mod/locs.php:116 ../../mod/setup.php:331 ../../mod/setup.php:371 -#: ../../mod/profiles.php:667 ../../mod/import_items.php:122 -#: ../../view/theme/redbasic/php/config.php:99 -msgid "Submit" -msgstr "" - -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" -msgstr "" - -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" -msgstr "" - -#: ../../include/js_strings.php:26 -msgid "timeago.prefixAgo" -msgstr "" - -#: ../../include/js_strings.php:27 -msgid "timeago.prefixFromNow" -msgstr "" - -#: ../../include/js_strings.php:28 -msgid "ago" -msgstr "" - -#: ../../include/js_strings.php:29 -msgid "from now" -msgstr "" - -#: ../../include/js_strings.php:30 -msgid "less than a minute" -msgstr "" - -#: ../../include/js_strings.php:31 -msgid "about a minute" -msgstr "" - -#: ../../include/js_strings.php:32 -#, php-format -msgid "%d minutes" -msgstr "" - -#: ../../include/js_strings.php:33 -msgid "about an hour" -msgstr "" - -#: ../../include/js_strings.php:34 -#, php-format -msgid "about %d hours" -msgstr "" - -#: ../../include/js_strings.php:35 -msgid "a day" -msgstr "" - -#: ../../include/js_strings.php:36 -#, php-format -msgid "%d days" -msgstr "" - -#: ../../include/js_strings.php:37 -msgid "about a month" -msgstr "" - -#: ../../include/js_strings.php:38 -#, php-format -msgid "%d months" -msgstr "" - -#: ../../include/js_strings.php:39 -msgid "about a year" -msgstr "" - -#: ../../include/js_strings.php:40 -#, php-format -msgid "%d years" -msgstr "" - -#: ../../include/js_strings.php:41 -msgid " " -msgstr "" - -#: ../../include/js_strings.php:42 -msgid "timeago.numbers" -msgstr "" - -#: ../../include/js_strings.php:44 ../../include/text.php:1157 -msgid "January" -msgstr "" - -#: ../../include/js_strings.php:45 ../../include/text.php:1157 -msgid "February" -msgstr "" - -#: ../../include/js_strings.php:46 ../../include/text.php:1157 -msgid "March" -msgstr "" - -#: ../../include/js_strings.php:47 ../../include/text.php:1157 -msgid "April" -msgstr "" - -#: ../../include/js_strings.php:48 -msgctxt "long" -msgid "May" -msgstr "" - -#: ../../include/js_strings.php:49 ../../include/text.php:1157 -msgid "June" -msgstr "" - -#: ../../include/js_strings.php:50 ../../include/text.php:1157 -msgid "July" -msgstr "" - -#: ../../include/js_strings.php:51 ../../include/text.php:1157 -msgid "August" -msgstr "" - -#: ../../include/js_strings.php:52 ../../include/text.php:1157 -msgid "September" -msgstr "" - -#: ../../include/js_strings.php:53 ../../include/text.php:1157 -msgid "October" -msgstr "" - -#: ../../include/js_strings.php:54 ../../include/text.php:1157 -msgid "November" -msgstr "" - -#: ../../include/js_strings.php:55 ../../include/text.php:1157 -msgid "December" -msgstr "" - -#: ../../include/js_strings.php:56 -msgid "Jan" -msgstr "" - -#: ../../include/js_strings.php:57 -msgid "Feb" -msgstr "" - -#: ../../include/js_strings.php:58 -msgid "Mar" -msgstr "" - -#: ../../include/js_strings.php:59 -msgid "Apr" -msgstr "" - -#: ../../include/js_strings.php:60 -msgctxt "short" -msgid "May" -msgstr "" - -#: ../../include/js_strings.php:61 -msgid "Jun" -msgstr "" - -#: ../../include/js_strings.php:62 -msgid "Jul" -msgstr "" - -#: ../../include/js_strings.php:63 -msgid "Aug" -msgstr "" - -#: ../../include/js_strings.php:64 -msgid "Sep" -msgstr "" - -#: ../../include/js_strings.php:65 -msgid "Oct" -msgstr "" - -#: ../../include/js_strings.php:66 -msgid "Nov" -msgstr "" - -#: ../../include/js_strings.php:67 -msgid "Dec" -msgstr "" - -#: ../../include/js_strings.php:68 ../../include/text.php:1153 -msgid "Sunday" -msgstr "" - -#: ../../include/js_strings.php:69 ../../include/text.php:1153 -msgid "Monday" -msgstr "" - -#: ../../include/js_strings.php:70 ../../include/text.php:1153 -msgid "Tuesday" -msgstr "" - -#: ../../include/js_strings.php:71 ../../include/text.php:1153 -msgid "Wednesday" -msgstr "" - -#: ../../include/js_strings.php:72 ../../include/text.php:1153 -msgid "Thursday" -msgstr "" - -#: ../../include/js_strings.php:73 ../../include/text.php:1153 -msgid "Friday" -msgstr "" - -#: ../../include/js_strings.php:74 ../../include/text.php:1153 -msgid "Saturday" -msgstr "" - -#: ../../include/js_strings.php:75 -msgid "Sun" -msgstr "" - -#: ../../include/js_strings.php:76 -msgid "Mon" -msgstr "" - -#: ../../include/js_strings.php:77 -msgid "Tue" -msgstr "" - -#: ../../include/js_strings.php:78 -msgid "Wed" -msgstr "" - -#: ../../include/js_strings.php:79 -msgid "Thu" -msgstr "" - -#: ../../include/js_strings.php:80 -msgid "Fri" -msgstr "" - -#: ../../include/js_strings.php:81 -msgid "Sat" -msgstr "" - -#: ../../include/js_strings.php:82 -msgctxt "calendar" -msgid "today" -msgstr "" - -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "month" -msgstr "" - -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "week" -msgstr "" - -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "day" -msgstr "" - -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "All day" -msgstr "" - -#: ../../include/contact_selectors.php:56 -msgid "Frequently" -msgstr "" - -#: ../../include/contact_selectors.php:57 -msgid "Hourly" -msgstr "" - -#: ../../include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "" - -#: ../../include/contact_selectors.php:59 -msgid "Daily" -msgstr "" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "" - -#: ../../include/contact_selectors.php:76 -msgid "Friendica" -msgstr "" - -#: ../../include/contact_selectors.php:77 -msgid "OStatus" -msgstr "" - -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "" - -#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:804 ../../mod/admin.php:813 -#: ../../boot.php:1486 -msgid "Email" -msgstr "" - -#: ../../include/contact_selectors.php:80 -msgid "Diaspora" -msgstr "" - -#: ../../include/contact_selectors.php:81 -msgid "Facebook" -msgstr "" - -#: ../../include/contact_selectors.php:82 -msgid "Zot!" -msgstr "" - -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "" - -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "" - -#: ../../include/contact_selectors.php:85 -msgid "MySpace" -msgstr "" - -#: ../../include/activities.php:42 -msgid " and " -msgstr "" - -#: ../../include/activities.php:50 -msgid "public profile" -msgstr "" - -#: ../../include/activities.php:59 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "" - -#: ../../include/activities.php:60 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "" - -#: ../../include/activities.php:63 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "" - -#: ../../include/Contact.php:118 -msgid "New window" -msgstr "" - -#: ../../include/Contact.php:119 -msgid "Open the selected location in a different window or browser tab" -msgstr "" - -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "" - -#: ../../include/dba/dba_driver.php:141 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "" - -#: ../../include/items.php:423 ../../mod/like.php:280 -#: ../../mod/subthread.php:52 ../../mod/dreport.php:6 ../../mod/dreport.php:45 -#: ../../mod/group.php:68 ../../mod/profperm.php:23 -#: ../../mod/import_items.php:114 ../../index.php:360 -msgid "Permission denied" -msgstr "" - -#: ../../include/items.php:1128 ../../include/items.php:1174 -msgid "(Unknown)" -msgstr "" - -#: ../../include/items.php:1371 -msgid "Visible to anybody on the internet." -msgstr "" - -#: ../../include/items.php:1373 -msgid "Visible to you only." -msgstr "" - -#: ../../include/items.php:1375 -msgid "Visible to anybody in this network." -msgstr "" - -#: ../../include/items.php:1377 -msgid "Visible to anybody authenticated." -msgstr "" - -#: ../../include/items.php:1379 -#, php-format -msgid "Visible to anybody on %s." -msgstr "" - -#: ../../include/items.php:1381 -msgid "Visible to all connections." -msgstr "" - -#: ../../include/items.php:1383 -msgid "Visible to approved connections." -msgstr "" - -#: ../../include/items.php:1385 -msgid "Visible to specific connections." -msgstr "" - -#: ../../include/items.php:4311 ../../mod/display.php:36 -#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 -#: ../../mod/admin.php:1004 ../../mod/admin.php:1204 ../../mod/thing.php:86 -#: ../../mod/viewsrc.php:20 -msgid "Item not found." -msgstr "" - -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 -msgid "Collection not found." -msgstr "" - -#: ../../include/items.php:4836 -msgid "Collection is empty." -msgstr "" - -#: ../../include/items.php:4843 -#, php-format -msgid "Collection: %s" -msgstr "" - -#: ../../include/items.php:4853 ../../mod/connedit.php:683 -#, php-format -msgid "Connection: %s" -msgstr "" - -#: ../../include/items.php:4855 -msgid "Connection not found." -msgstr "" - #: ../../include/network.php:613 msgid "view full size" msgstr "" @@ -1947,19 +1957,6 @@ msgstr "" msgid "Close" msgstr "" -#: ../../include/import.php:23 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "" - -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." -msgstr "" - -#: ../../include/import.php:80 ../../mod/import.php:139 -msgid "Cloned channel not found. Import failed." -msgstr "" - #: ../../include/photos.php:112 #, php-format msgid "Image exceeds website size limit of %lu bytes" @@ -2173,9 +2170,9 @@ msgstr "" msgid "Sex Addict" msgstr "" -#: ../../include/profile_selectors.php:80 ../../include/identity.php:390 -#: ../../include/identity.php:391 ../../include/identity.php:398 -#: ../../include/widgets.php:429 ../../mod/connedit.php:573 +#: ../../include/profile_selectors.php:80 ../../include/widgets.php:430 +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../mod/connedit.php:573 #: ../../mod/settings.php:338 ../../mod/settings.php:342 #: ../../mod/settings.php:343 ../../mod/settings.php:346 #: ../../mod/settings.php:357 @@ -2330,7 +2327,7 @@ msgstr "" msgid "Address Book" msgstr "" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1484 +#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1486 msgid "Login" msgstr "" @@ -2343,8 +2340,8 @@ msgstr "" msgid "Grid" msgstr "" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 +#: ../../include/apps.php:134 ../../include/widgets.php:554 +#: ../../include/nav.php:202 ../../mod/admin.php:1064 ../../mod/admin.php:1264 msgid "Settings" msgstr "" @@ -2358,7 +2355,7 @@ msgid "Profile" msgstr "" #: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 +#: ../../mod/events.php:523 msgid "Events" msgstr "" @@ -2383,8 +2380,8 @@ msgstr "" msgid "Chat" msgstr "" -#: ../../include/apps.php:147 ../../include/text.php:859 -#: ../../include/text.php:871 ../../include/nav.php:159 +#: ../../include/apps.php:147 ../../include/text.php:866 +#: ../../include/text.php:878 ../../include/nav.php:159 #: ../../mod/search.php:40 msgid "Search" msgstr "" @@ -2435,10 +2432,23 @@ msgstr "" msgid "Purchase" msgstr "" -#: ../../include/api.php:1300 +#: ../../include/api.php:1302 msgid "Public Timeline" msgstr "" +#: ../../include/import.php:23 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "" + +#: ../../include/import.php:70 +msgid "Channel clone failed. Import failed." +msgstr "" + +#: ../../include/import.php:80 ../../mod/import.php:139 +msgid "Cloned channel not found. Import failed." +msgstr "" + #: ../../include/enotify.php:96 #, php-format msgid "%s " @@ -2468,152 +2478,152 @@ msgstr "" msgid "Please visit %s to view and/or reply to your private messages." msgstr "" -#: ../../include/enotify.php:158 +#: ../../include/enotify.php:160 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" msgstr "" -#: ../../include/enotify.php:166 +#: ../../include/enotify.php:168 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" msgstr "" -#: ../../include/enotify.php:175 +#: ../../include/enotify.php:177 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" msgstr "" -#: ../../include/enotify.php:186 +#: ../../include/enotify.php:188 #, php-format msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" msgstr "" -#: ../../include/enotify.php:187 +#: ../../include/enotify.php:189 #, php-format msgid "%1$s, %2$s commented on an item/conversation you have been following." msgstr "" -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 +#: ../../include/enotify.php:192 ../../include/enotify.php:207 +#: ../../include/enotify.php:233 ../../include/enotify.php:251 +#: ../../include/enotify.php:265 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "" -#: ../../include/enotify.php:196 +#: ../../include/enotify.php:198 #, php-format msgid "[Hubzilla:Notify] %s posted to your profile wall" msgstr "" -#: ../../include/enotify.php:198 +#: ../../include/enotify.php:200 #, php-format msgid "%1$s, %2$s posted to your profile wall at %3$s" msgstr "" -#: ../../include/enotify.php:200 +#: ../../include/enotify.php:202 #, php-format msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" msgstr "" -#: ../../include/enotify.php:224 +#: ../../include/enotify.php:226 #, php-format msgid "[Hubzilla:Notify] %s tagged you" msgstr "" -#: ../../include/enotify.php:225 +#: ../../include/enotify.php:227 #, php-format msgid "%1$s, %2$s tagged you at %3$s" msgstr "" -#: ../../include/enotify.php:226 +#: ../../include/enotify.php:228 #, php-format msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." msgstr "" -#: ../../include/enotify.php:238 +#: ../../include/enotify.php:240 #, php-format msgid "[Hubzilla:Notify] %1$s poked you" msgstr "" -#: ../../include/enotify.php:239 +#: ../../include/enotify.php:241 #, php-format msgid "%1$s, %2$s poked you at %3$s" msgstr "" -#: ../../include/enotify.php:240 +#: ../../include/enotify.php:242 #, php-format msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." msgstr "" -#: ../../include/enotify.php:256 +#: ../../include/enotify.php:258 #, php-format msgid "[Hubzilla:Notify] %s tagged your post" msgstr "" -#: ../../include/enotify.php:257 +#: ../../include/enotify.php:259 #, php-format msgid "%1$s, %2$s tagged your post at %3$s" msgstr "" -#: ../../include/enotify.php:258 +#: ../../include/enotify.php:260 #, php-format msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" msgstr "" -#: ../../include/enotify.php:270 +#: ../../include/enotify.php:272 msgid "[Hubzilla:Notify] Introduction received" msgstr "" -#: ../../include/enotify.php:271 +#: ../../include/enotify.php:273 #, php-format msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" msgstr "" -#: ../../include/enotify.php:272 +#: ../../include/enotify.php:274 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." msgstr "" -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/enotify.php:278 ../../include/enotify.php:297 #, php-format msgid "You may visit their profile at %s" msgstr "" -#: ../../include/enotify.php:278 +#: ../../include/enotify.php:280 #, php-format msgid "Please visit %s to approve or reject the connection request." msgstr "" -#: ../../include/enotify.php:285 +#: ../../include/enotify.php:287 msgid "[Hubzilla:Notify] Friend suggestion received" msgstr "" -#: ../../include/enotify.php:286 +#: ../../include/enotify.php:288 #, php-format msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" msgstr "" -#: ../../include/enotify.php:287 +#: ../../include/enotify.php:289 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s." msgstr "" -#: ../../include/enotify.php:293 +#: ../../include/enotify.php:295 msgid "Name:" msgstr "" -#: ../../include/enotify.php:294 +#: ../../include/enotify.php:296 msgid "Photo:" msgstr "" -#: ../../include/enotify.php:297 +#: ../../include/enotify.php:299 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "" -#: ../../include/enotify.php:511 +#: ../../include/enotify.php:514 msgid "[Hubzilla:Notify]" msgstr "" @@ -2669,7 +2679,7 @@ msgstr "" msgid "I like this (toggle)" msgstr "" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 +#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:326 msgid "like" msgstr "" @@ -2677,7 +2687,7 @@ msgstr "" msgid "I don't like this (toggle)" msgstr "" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 +#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:327 msgid "dislike" msgstr "" @@ -2768,12 +2778,12 @@ msgstr "" msgid "Unable to verify channel signature" msgstr "" -#: ../../include/zot.php:2264 +#: ../../include/zot.php:2265 #, php-format msgid "Unable to verify site signature for %s" msgstr "" -#: ../../include/zot.php:3591 +#: ../../include/zot.php:3592 msgid "invalid target signature" msgstr "" @@ -2969,7 +2979,7 @@ msgid_plural "%d invitations available" msgstr[0] "" msgstr[1] "" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:438 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 msgid "Advanced" msgstr "" @@ -3012,12 +3022,12 @@ msgid "Advanced example: name=fred and country=iceland" msgstr "" #: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:98 -#: ../../include/widgets.php:306 +#: ../../include/widgets.php:307 msgid "Everything" msgstr "" -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 +#: ../../include/contact_widgets.php:95 ../../include/widgets.php:36 +#: ../../include/taxonomy.php:280 msgid "Categories" msgstr "" @@ -3043,7 +3053,7 @@ msgstr "" msgid "Add new connections to this collection (privacy group)" msgstr "" -#: ../../include/group.php:251 ../../mod/admin.php:813 +#: ../../include/group.php:251 ../../mod/admin.php:814 msgid "All Channels" msgstr "" @@ -3067,10 +3077,311 @@ msgstr "" msgid "Channels not in any collection" msgstr "" -#: ../../include/group.php:300 ../../include/widgets.php:274 +#: ../../include/group.php:300 ../../include/widgets.php:275 msgid "add" msgstr "" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "" + +#: ../../include/widgets.php:93 +msgid "System" +msgstr "" + +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "" + +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "" + +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "" + +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "" + +#: ../../include/widgets.php:145 +msgid "See more..." +msgstr "" + +#: ../../include/widgets.php:166 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "" + +#: ../../include/widgets.php:172 +msgid "Add New Connection" +msgstr "" + +#: ../../include/widgets.php:173 +msgid "Enter the channel address" +msgstr "" + +#: ../../include/widgets.php:174 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "" + +#: ../../include/widgets.php:190 +msgid "Notes" +msgstr "" + +#: ../../include/widgets.php:192 ../../include/text.php:867 +#: ../../include/text.php:879 ../../mod/filer.php:49 ../../mod/admin.php:1442 +#: ../../mod/admin.php:1462 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +msgid "Save" +msgstr "" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "" + +#: ../../include/widgets.php:349 +msgid "Archives" +msgstr "" + +#: ../../include/widgets.php:428 ../../mod/connedit.php:571 +msgid "Me" +msgstr "" + +#: ../../include/widgets.php:429 ../../mod/connedit.php:572 +msgid "Family" +msgstr "" + +#: ../../include/widgets.php:431 ../../mod/connedit.php:574 +msgid "Acquaintances" +msgstr "" + +#: ../../include/widgets.php:432 ../../mod/connedit.php:575 +#: ../../mod/connections.php:88 ../../mod/connections.php:103 +msgid "All" +msgstr "" + +#: ../../include/widgets.php:451 +msgid "Refresh" +msgstr "" + +#: ../../include/widgets.php:485 +msgid "Account settings" +msgstr "" + +#: ../../include/widgets.php:491 +msgid "Channel settings" +msgstr "" + +#: ../../include/widgets.php:497 +msgid "Additional features" +msgstr "" + +#: ../../include/widgets.php:503 +msgid "Feature/Addon settings" +msgstr "" + +#: ../../include/widgets.php:509 +msgid "Display settings" +msgstr "" + +#: ../../include/widgets.php:515 +msgid "Connected apps" +msgstr "" + +#: ../../include/widgets.php:521 +msgid "Export channel" +msgstr "" + +#: ../../include/widgets.php:530 ../../mod/connedit.php:683 +msgid "Connection Default Permissions" +msgstr "" + +#: ../../include/widgets.php:538 +msgid "Premium Channel Settings" +msgstr "" + +#: ../../include/widgets.php:568 +msgid "Private Mail Menu" +msgstr "" + +#: ../../include/widgets.php:570 +msgid "Combined View" +msgstr "" + +#: ../../include/widgets.php:575 ../../include/nav.php:191 +msgid "Inbox" +msgstr "" + +#: ../../include/widgets.php:580 ../../include/nav.php:192 +msgid "Outbox" +msgstr "" + +#: ../../include/widgets.php:585 ../../include/nav.php:193 +msgid "New Message" +msgstr "" + +#: ../../include/widgets.php:604 ../../include/widgets.php:616 +msgid "Conversations" +msgstr "" + +#: ../../include/widgets.php:608 +msgid "Received Messages" +msgstr "" + +#: ../../include/widgets.php:612 +msgid "Sent Messages" +msgstr "" + +#: ../../include/widgets.php:626 +msgid "No messages." +msgstr "" + +#: ../../include/widgets.php:644 +msgid "Delete conversation" +msgstr "" + +#: ../../include/widgets.php:670 +msgid "Events Menu" +msgstr "" + +#: ../../include/widgets.php:671 +msgid "Day View" +msgstr "" + +#: ../../include/widgets.php:672 +msgid "Week View" +msgstr "" + +#: ../../include/widgets.php:673 +msgid "Month View" +msgstr "" + +#: ../../include/widgets.php:674 ../../mod/events.php:527 +msgid "Export" +msgstr "" + +#: ../../include/widgets.php:675 ../../mod/events.php:530 +msgid "Import" +msgstr "" + +#: ../../include/widgets.php:749 +msgid "Chat Rooms" +msgstr "" + +#: ../../include/widgets.php:769 +msgid "Bookmarked Chatrooms" +msgstr "" + +#: ../../include/widgets.php:789 +msgid "Suggested Chatrooms" +msgstr "" + +#: ../../include/widgets.php:916 ../../include/widgets.php:974 +msgid "photo/image" +msgstr "" + +#: ../../include/widgets.php:1069 ../../include/widgets.php:1071 +msgid "Rate Me" +msgstr "" + +#: ../../include/widgets.php:1075 +msgid "View Ratings" +msgstr "" + +#: ../../include/widgets.php:1086 +msgid "Public Hubs" +msgstr "" + +#: ../../include/widgets.php:1134 +msgid "Forums" +msgstr "" + +#: ../../include/widgets.php:1161 +msgid "Tasks" +msgstr "" + +#: ../../include/widgets.php:1170 +msgid "Documentation" +msgstr "" + +#: ../../include/widgets.php:1172 +msgid "Project/Site Information" +msgstr "" + +#: ../../include/widgets.php:1173 +msgid "For Members" +msgstr "" + +#: ../../include/widgets.php:1174 +msgid "For Administrators" +msgstr "" + +#: ../../include/widgets.php:1175 +msgid "For Developers" +msgstr "" + +#: ../../include/widgets.php:1200 ../../mod/admin.php:434 +msgid "Site" +msgstr "" + +#: ../../include/widgets.php:1201 +msgid "Accounts" +msgstr "" + +#: ../../include/widgets.php:1202 ../../mod/admin.php:965 +msgid "Channels" +msgstr "" + +#: ../../include/widgets.php:1203 ../../mod/admin.php:1062 +#: ../../mod/admin.php:1102 +msgid "Plugins" +msgstr "" + +#: ../../include/widgets.php:1204 ../../mod/admin.php:1262 +#: ../../mod/admin.php:1296 +msgid "Themes" +msgstr "" + +#: ../../include/widgets.php:1205 +msgid "Inspect queue" +msgstr "" + +#: ../../include/widgets.php:1206 +msgid "Profile Config" +msgstr "" + +#: ../../include/widgets.php:1207 +msgid "DB updates" +msgstr "" + +#: ../../include/widgets.php:1225 ../../include/widgets.php:1231 +#: ../../mod/admin.php:1381 +msgid "Logs" +msgstr "" + +#: ../../include/widgets.php:1229 ../../include/nav.php:210 +msgid "Admin" +msgstr "" + +#: ../../include/widgets.php:1230 +msgid "Plugin Features" +msgstr "" + +#: ../../include/widgets.php:1232 +msgid "User registrations waiting for confirmation" +msgstr "" + +#: ../../include/widgets.php:1311 ../../mod/photos.php:753 +#: ../../mod/photos.php:1286 +msgid "View Photo" +msgstr "" + +#: ../../include/widgets.php:1327 ../../mod/photos.php:782 +msgid "Edit Album" +msgstr "" + #: ../../include/message.php:18 msgid "No recipient provided." msgstr "" @@ -3326,35 +3637,35 @@ msgstr "" msgid "Like this thing" msgstr "" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 +#: ../../include/taxonomy.php:238 ../../include/taxonomy.php:259 msgid "Tags" msgstr "" -#: ../../include/taxonomy.php:294 +#: ../../include/taxonomy.php:303 msgid "Keywords" msgstr "" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "have" msgstr "" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "has" msgstr "" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "want" msgstr "" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "wants" msgstr "" -#: ../../include/taxonomy.php:317 +#: ../../include/taxonomy.php:326 msgid "likes" msgstr "" -#: ../../include/taxonomy.php:318 +#: ../../include/taxonomy.php:327 msgid "dislikes" msgstr "" @@ -3428,283 +3739,6 @@ msgstr "" msgid "$Projectname event notification:" msgstr "" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" -msgstr "" - -#: ../../include/widgets.php:92 -msgid "System" -msgstr "" - -#: ../../include/widgets.php:95 -msgid "Create Personal App" -msgstr "" - -#: ../../include/widgets.php:96 -msgid "Edit Personal App" -msgstr "" - -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" -msgstr "" - -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" -msgstr "" - -#: ../../include/widgets.php:144 -msgid "See more..." -msgstr "" - -#: ../../include/widgets.php:165 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "" - -#: ../../include/widgets.php:171 -msgid "Add New Connection" -msgstr "" - -#: ../../include/widgets.php:172 -msgid "Enter the channel address" -msgstr "" - -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "" - -#: ../../include/widgets.php:189 -msgid "Notes" -msgstr "" - -#: ../../include/widgets.php:191 ../../include/text.php:860 -#: ../../include/text.php:872 ../../mod/filer.php:49 ../../mod/admin.php:1436 -#: ../../mod/admin.php:1456 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -msgid "Save" -msgstr "" - -#: ../../include/widgets.php:265 -msgid "Remove term" -msgstr "" - -#: ../../include/widgets.php:348 -msgid "Archives" -msgstr "" - -#: ../../include/widgets.php:427 ../../mod/connedit.php:571 -msgid "Me" -msgstr "" - -#: ../../include/widgets.php:428 ../../mod/connedit.php:572 -msgid "Family" -msgstr "" - -#: ../../include/widgets.php:430 ../../mod/connedit.php:574 -msgid "Acquaintances" -msgstr "" - -#: ../../include/widgets.php:431 ../../mod/connedit.php:575 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "" - -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "" - -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "" - -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "" - -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "" - -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "" - -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "" - -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "" - -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "" - -#: ../../include/widgets.php:529 ../../mod/connedit.php:683 -msgid "Connection Default Permissions" -msgstr "" - -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "" - -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" -msgstr "" - -#: ../../include/widgets.php:569 -msgid "Combined View" -msgstr "" - -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" -msgstr "" - -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" -msgstr "" - -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" -msgstr "" - -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" -msgstr "" - -#: ../../include/widgets.php:607 -msgid "Received Messages" -msgstr "" - -#: ../../include/widgets.php:611 -msgid "Sent Messages" -msgstr "" - -#: ../../include/widgets.php:625 -msgid "No messages." -msgstr "" - -#: ../../include/widgets.php:643 -msgid "Delete conversation" -msgstr "" - -#: ../../include/widgets.php:734 -msgid "Chat Rooms" -msgstr "" - -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" -msgstr "" - -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" -msgstr "" - -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" -msgstr "" - -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" -msgstr "" - -#: ../../include/widgets.php:1060 -msgid "View Ratings" -msgstr "" - -#: ../../include/widgets.php:1071 -msgid "Public Hubs" -msgstr "" - -#: ../../include/widgets.php:1119 -msgid "Forums" -msgstr "" - -#: ../../include/widgets.php:1146 -msgid "Tasks" -msgstr "" - -#: ../../include/widgets.php:1155 -msgid "Documentation" -msgstr "" - -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" -msgstr "" - -#: ../../include/widgets.php:1158 -msgid "For Members" -msgstr "" - -#: ../../include/widgets.php:1159 -msgid "For Administrators" -msgstr "" - -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "" - -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "" - -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "" - -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "" - -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "" - -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "" - -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "" - -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "" - -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "" - -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "" - -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "" - -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "" - -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "" - -#: ../../include/widgets.php:1275 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "" - -#: ../../include/widgets.php:1291 ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "" - #: ../../include/text.php:393 msgid "prev" msgstr "" @@ -3729,222 +3763,222 @@ msgstr "" msgid "newer" msgstr "" -#: ../../include/text.php:777 +#: ../../include/text.php:784 msgid "No connections" msgstr "" -#: ../../include/text.php:789 +#: ../../include/text.php:796 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "" msgstr[1] "" -#: ../../include/text.php:802 ../../mod/viewconnections.php:101 +#: ../../include/text.php:809 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "" -#: ../../include/text.php:946 +#: ../../include/text.php:953 msgid "poke" msgstr "" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "ping" msgstr "" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "pinged" msgstr "" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prod" msgstr "" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prodded" msgstr "" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slap" msgstr "" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slapped" msgstr "" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "finger" msgstr "" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "fingered" msgstr "" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuff" msgstr "" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuffed" msgstr "" -#: ../../include/text.php:961 +#: ../../include/text.php:968 msgid "happy" msgstr "" -#: ../../include/text.php:962 +#: ../../include/text.php:969 msgid "sad" msgstr "" -#: ../../include/text.php:963 +#: ../../include/text.php:970 msgid "mellow" msgstr "" -#: ../../include/text.php:964 +#: ../../include/text.php:971 msgid "tired" msgstr "" -#: ../../include/text.php:965 +#: ../../include/text.php:972 msgid "perky" msgstr "" -#: ../../include/text.php:966 +#: ../../include/text.php:973 msgid "angry" msgstr "" -#: ../../include/text.php:967 +#: ../../include/text.php:974 msgid "stupified" msgstr "" -#: ../../include/text.php:968 +#: ../../include/text.php:975 msgid "puzzled" msgstr "" -#: ../../include/text.php:969 +#: ../../include/text.php:976 msgid "interested" msgstr "" -#: ../../include/text.php:970 +#: ../../include/text.php:977 msgid "bitter" msgstr "" -#: ../../include/text.php:971 +#: ../../include/text.php:978 msgid "cheerful" msgstr "" -#: ../../include/text.php:972 +#: ../../include/text.php:979 msgid "alive" msgstr "" -#: ../../include/text.php:973 +#: ../../include/text.php:980 msgid "annoyed" msgstr "" -#: ../../include/text.php:974 +#: ../../include/text.php:981 msgid "anxious" msgstr "" -#: ../../include/text.php:975 +#: ../../include/text.php:982 msgid "cranky" msgstr "" -#: ../../include/text.php:976 +#: ../../include/text.php:983 msgid "disturbed" msgstr "" -#: ../../include/text.php:977 +#: ../../include/text.php:984 msgid "frustrated" msgstr "" -#: ../../include/text.php:978 +#: ../../include/text.php:985 msgid "depressed" msgstr "" -#: ../../include/text.php:979 +#: ../../include/text.php:986 msgid "motivated" msgstr "" -#: ../../include/text.php:980 +#: ../../include/text.php:987 msgid "relaxed" msgstr "" -#: ../../include/text.php:981 +#: ../../include/text.php:988 msgid "surprised" msgstr "" -#: ../../include/text.php:1157 +#: ../../include/text.php:1164 msgid "May" msgstr "" -#: ../../include/text.php:1234 ../../include/text.php:1238 +#: ../../include/text.php:1241 ../../include/text.php:1245 msgid "Unknown Attachment" msgstr "" -#: ../../include/text.php:1240 +#: ../../include/text.php:1247 msgid "unknown" msgstr "" -#: ../../include/text.php:1276 +#: ../../include/text.php:1283 msgid "remove category" msgstr "" -#: ../../include/text.php:1353 +#: ../../include/text.php:1360 msgid "remove from file" msgstr "" -#: ../../include/text.php:1465 ../../include/text.php:1476 +#: ../../include/text.php:1472 ../../include/text.php:1483 msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1649 ../../mod/events.php:497 +#: ../../include/text.php:1656 ../../mod/events.php:495 msgid "Link to Source" msgstr "" -#: ../../include/text.php:1670 ../../include/text.php:1742 +#: ../../include/text.php:1677 ../../include/text.php:1749 msgid "default" msgstr "" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "Page layout" msgstr "" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "You can create your own with the layouts tool" msgstr "" -#: ../../include/text.php:1720 +#: ../../include/text.php:1727 msgid "Page content type" msgstr "" -#: ../../include/text.php:1754 +#: ../../include/text.php:1761 msgid "Select an alternate language" msgstr "" -#: ../../include/text.php:1886 +#: ../../include/text.php:1893 msgid "activity" msgstr "" -#: ../../include/text.php:2181 +#: ../../include/text.php:2188 msgid "Design Tools" msgstr "" -#: ../../include/text.php:2184 ../../mod/blocks.php:147 +#: ../../include/text.php:2191 ../../mod/blocks.php:147 msgid "Blocks" msgstr "" -#: ../../include/text.php:2185 ../../mod/menu.php:103 +#: ../../include/text.php:2192 ../../mod/menu.php:103 msgid "Menus" msgstr "" -#: ../../include/text.php:2186 ../../mod/layouts.php:174 +#: ../../include/text.php:2193 ../../mod/layouts.php:174 msgid "Layouts" msgstr "" -#: ../../include/text.php:2187 +#: ../../include/text.php:2194 msgid "Pages" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1483 +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 msgid "Logout" msgstr "" @@ -4017,7 +4051,7 @@ msgstr "" msgid "Home Page" msgstr "" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1460 +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 msgid "Register" msgstr "" @@ -4135,10 +4169,10 @@ msgstr "" #: ../../mod/mitem.php:229 ../../mod/connedit.php:635 #: ../../mod/connedit.php:684 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:409 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:410 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:106 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "No" msgstr "" @@ -4147,10 +4181,10 @@ msgstr "" #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:411 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:412 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:105 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "Yes" msgstr "" @@ -4780,11 +4814,11 @@ msgstr "" msgid "View recent posts and comments" msgstr "" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "" -#: ../../mod/connedit.php:519 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "" @@ -4940,7 +4974,7 @@ msgid "" "communication." msgstr "" -#: ../../mod/connedit.php:710 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "" @@ -5175,12 +5209,12 @@ msgstr "" msgid "%1$s's Chatrooms" msgstr "" -#: ../../mod/search.php:211 +#: ../../mod/search.php:212 #, php-format msgid "Items tagged with: %s" msgstr "" -#: ../../mod/search.php:213 +#: ../../mod/search.php:214 #, php-format msgid "Search results for: %s" msgstr "" @@ -5293,7 +5327,7 @@ msgstr "" msgid "Private Photo" msgstr "" -#: ../../mod/photos.php:905 ../../mod/events.php:528 +#: ../../mod/photos.php:905 ../../mod/events.php:525 ../../mod/events.php:532 msgid "Previous" msgstr "" @@ -5301,7 +5335,8 @@ msgstr "" msgid "View Full Size" msgstr "" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 +#: ../../mod/photos.php:914 ../../mod/events.php:526 ../../mod/events.php:533 +#: ../../mod/setup.php:285 msgid "Next" msgstr "" @@ -5398,7 +5433,7 @@ msgstr "" msgid "Item is not editable" msgstr "" -#: ../../mod/editpost.php:55 +#: ../../mod/editpost.php:57 msgid "Delete item?" msgstr "" @@ -5450,10 +5485,10 @@ msgstr "" msgid "Message queues" msgstr "" -#: ../../mod/admin.php:198 ../../mod/admin.php:432 ../../mod/admin.php:531 -#: ../../mod/admin.php:799 ../../mod/admin.php:963 ../../mod/admin.php:1055 -#: ../../mod/admin.php:1095 ../../mod/admin.php:1255 ../../mod/admin.php:1289 -#: ../../mod/admin.php:1374 +#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 +#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 +#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 +#: ../../mod/admin.php:1380 msgid "Administration" msgstr "" @@ -5465,7 +5500,7 @@ msgstr "" msgid "Registered accounts" msgstr "" -#: ../../mod/admin.php:203 ../../mod/admin.php:535 +#: ../../mod/admin.php:203 ../../mod/admin.php:536 msgid "Pending registrations" msgstr "" @@ -5473,7 +5508,7 @@ msgstr "" msgid "Registered channels" msgstr "" -#: ../../mod/admin.php:205 ../../mod/admin.php:536 +#: ../../mod/admin.php:205 ../../mod/admin.php:537 msgid "Active plugins" msgstr "" @@ -5497,666 +5532,666 @@ msgstr "" msgid "unsupported" msgstr "" -#: ../../mod/admin.php:410 +#: ../../mod/admin.php:411 msgid "Yes - with approval" msgstr "" -#: ../../mod/admin.php:416 +#: ../../mod/admin.php:417 msgid "My site is not a public server" msgstr "" -#: ../../mod/admin.php:417 +#: ../../mod/admin.php:418 msgid "My site has paid access only" msgstr "" -#: ../../mod/admin.php:418 +#: ../../mod/admin.php:419 msgid "My site has free access only" msgstr "" -#: ../../mod/admin.php:419 +#: ../../mod/admin.php:420 msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../mod/admin.php:435 ../../mod/register.php:207 +#: ../../mod/admin.php:436 ../../mod/register.php:207 msgid "Registration" msgstr "" -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:437 msgid "File upload" msgstr "" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:438 msgid "Policies" msgstr "" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:443 msgid "Site name" msgstr "" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:444 msgid "Banner/Logo" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "Administrator Information" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:446 msgid "System language" msgstr "" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "System theme" msgstr "" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "" "Default system theme - may be over-ridden by user profiles - change theme settings" msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Mobile system theme" msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Theme for mobile devices" msgstr "" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "Allow Feeds as Connections" msgstr "" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "(Heavy system resource usage)" msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "Maximum image size" msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:452 msgid "Does this site allow new member registration?" msgstr "" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:453 msgid "Which best describes the types of account offered by this hub?" msgstr "" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Register text" msgstr "" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Will be displayed prominently on the registration page." msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "Site homepage to show visitors (default: login box)" msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "Preserve site homepage URL" msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "Accounts abandoned after x days" msgstr "" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "Allowed friend domains" msgstr "" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "Allowed email domains" msgstr "" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "Not allowed email domains" msgstr "" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "" "Comma separated list of domains which are not allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "Block public" msgstr "" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "Verify Email Addresses" msgstr "" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "Force publish" msgstr "" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "Disable discovery tab" msgstr "" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "" "Remove the tab in the network view with public content pulled from sources " "chosen for this site." msgstr "" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "login on Homepage" msgstr "" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "" -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Directory Server URL" msgstr "" -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Default directory server" msgstr "" -#: ../../mod/admin.php:468 +#: ../../mod/admin.php:469 msgid "Proxy user" msgstr "" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:470 msgid "Proxy URL" msgstr "" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Network timeout" msgstr "" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "Delivery interval" msgstr "" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "Deliveries per process" msgstr "" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust " "if necessary to tune system performance. Recommend: 1-5." msgstr "" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "Poll interval" msgstr "" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "Maximum Load Average" msgstr "" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "Expiration period in days for imported (matrix/network) content" msgstr "" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "0 for no expiration of imported content" msgstr "" -#: ../../mod/admin.php:523 +#: ../../mod/admin.php:524 msgid "No server found" msgstr "" -#: ../../mod/admin.php:530 ../../mod/admin.php:813 +#: ../../mod/admin.php:531 ../../mod/admin.php:814 msgid "ID" msgstr "" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "for channel" msgstr "" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "on server" msgstr "" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "Status" msgstr "" -#: ../../mod/admin.php:532 +#: ../../mod/admin.php:533 msgid "Server" msgstr "" -#: ../../mod/admin.php:549 +#: ../../mod/admin.php:550 msgid "Update has been marked successful" msgstr "" -#: ../../mod/admin.php:559 +#: ../../mod/admin.php:560 #, php-format msgid "Executing %s failed. Check system logs." msgstr "" -#: ../../mod/admin.php:562 +#: ../../mod/admin.php:563 #, php-format msgid "Update %s was successfully applied." msgstr "" -#: ../../mod/admin.php:566 +#: ../../mod/admin.php:567 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "" -#: ../../mod/admin.php:569 +#: ../../mod/admin.php:570 #, php-format msgid "Update function %s could not be found." msgstr "" -#: ../../mod/admin.php:585 +#: ../../mod/admin.php:586 msgid "No failed updates." msgstr "" -#: ../../mod/admin.php:589 +#: ../../mod/admin.php:590 msgid "Failed Updates" msgstr "" -#: ../../mod/admin.php:591 +#: ../../mod/admin.php:592 msgid "Mark success (if update was manually applied)" msgstr "" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:593 msgid "Attempt to execute this update step automatically" msgstr "" -#: ../../mod/admin.php:624 +#: ../../mod/admin.php:625 msgid "Queue Statistics" msgstr "" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:626 msgid "Total Entries" msgstr "" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:627 msgid "Priority" msgstr "" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:628 msgid "Destination URL" msgstr "" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:629 msgid "Mark hub permanently offline" msgstr "" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:630 msgid "Empty queue for this hub" msgstr "" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:631 msgid "Last known contact" msgstr "" -#: ../../mod/admin.php:666 +#: ../../mod/admin.php:667 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:674 +#: ../../mod/admin.php:675 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:710 +#: ../../mod/admin.php:711 msgid "Account not found" msgstr "" -#: ../../mod/admin.php:722 +#: ../../mod/admin.php:723 #, php-format msgid "Account '%s' deleted" msgstr "" -#: ../../mod/admin.php:730 +#: ../../mod/admin.php:731 #, php-format msgid "Account '%s' blocked" msgstr "" -#: ../../mod/admin.php:738 +#: ../../mod/admin.php:739 #, php-format msgid "Account '%s' unblocked" msgstr "" -#: ../../mod/admin.php:800 ../../mod/admin.php:812 +#: ../../mod/admin.php:801 ../../mod/admin.php:813 msgid "Users" msgstr "" -#: ../../mod/admin.php:802 ../../mod/admin.php:966 +#: ../../mod/admin.php:803 ../../mod/admin.php:967 msgid "select all" msgstr "" -#: ../../mod/admin.php:803 +#: ../../mod/admin.php:804 msgid "User registrations waiting for confirm" msgstr "" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:805 msgid "Request date" msgstr "" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:806 msgid "No registrations." msgstr "" -#: ../../mod/admin.php:807 +#: ../../mod/admin.php:808 msgid "Deny" msgstr "" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Register date" msgstr "" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Last login" msgstr "" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Expires" msgstr "" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Service Class" msgstr "" -#: ../../mod/admin.php:815 +#: ../../mod/admin.php:816 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted " "on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:817 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:852 +#: ../../mod/admin.php:853 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:861 +#: ../../mod/admin.php:862 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:868 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:888 +#: ../../mod/admin.php:889 msgid "Channel not found" msgstr "" -#: ../../mod/admin.php:899 +#: ../../mod/admin.php:900 #, php-format msgid "Channel '%s' deleted" msgstr "" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' censored" msgstr "" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' uncensored" msgstr "" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code allowed" msgstr "" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code disallowed" msgstr "" -#: ../../mod/admin.php:968 +#: ../../mod/admin.php:969 msgid "Censor" msgstr "" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:970 msgid "Uncensor" msgstr "" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:971 msgid "Allow Code" msgstr "" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:972 msgid "Disallow Code" msgstr "" -#: ../../mod/admin.php:973 +#: ../../mod/admin.php:974 msgid "UID" msgstr "" -#: ../../mod/admin.php:973 ../../mod/profiles.php:447 +#: ../../mod/admin.php:974 ../../mod/profiles.php:447 msgid "Address" msgstr "" -#: ../../mod/admin.php:975 +#: ../../mod/admin.php:976 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:977 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:1016 +#: ../../mod/admin.php:1017 #, php-format msgid "Plugin %s disabled." msgstr "" -#: ../../mod/admin.php:1020 +#: ../../mod/admin.php:1021 #, php-format msgid "Plugin %s enabled." msgstr "" -#: ../../mod/admin.php:1030 ../../mod/admin.php:1228 +#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 msgid "Disable" msgstr "" -#: ../../mod/admin.php:1033 ../../mod/admin.php:1230 +#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 msgid "Enable" msgstr "" -#: ../../mod/admin.php:1057 ../../mod/admin.php:1257 +#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 msgid "Toggle" msgstr "" -#: ../../mod/admin.php:1065 ../../mod/admin.php:1267 +#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 msgid "Author: " msgstr "" -#: ../../mod/admin.php:1066 ../../mod/admin.php:1268 +#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 msgid "Maintainer: " msgstr "" -#: ../../mod/admin.php:1193 +#: ../../mod/admin.php:1199 msgid "No themes found." msgstr "" -#: ../../mod/admin.php:1249 +#: ../../mod/admin.php:1255 msgid "Screenshot" msgstr "" -#: ../../mod/admin.php:1295 +#: ../../mod/admin.php:1301 msgid "[Experimental]" msgstr "" -#: ../../mod/admin.php:1296 +#: ../../mod/admin.php:1302 msgid "[Unsupported]" msgstr "" -#: ../../mod/admin.php:1320 +#: ../../mod/admin.php:1326 msgid "Log settings updated." msgstr "" -#: ../../mod/admin.php:1377 +#: ../../mod/admin.php:1383 msgid "Clear" msgstr "" -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1389 msgid "Debugging" msgstr "" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "Log file" msgstr "" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "" -#: ../../mod/admin.php:1385 +#: ../../mod/admin.php:1391 msgid "Log level" msgstr "" -#: ../../mod/admin.php:1431 +#: ../../mod/admin.php:1437 msgid "New Profile Field" msgstr "" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "Field nickname" msgstr "" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "System name of field" msgstr "" -#: ../../mod/admin.php:1433 ../../mod/admin.php:1453 +#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 msgid "Input type" msgstr "" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Field Name" msgstr "" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Label on profile pages" msgstr "" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Help text" msgstr "" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Additional info (optional)" msgstr "" -#: ../../mod/admin.php:1445 +#: ../../mod/admin.php:1451 msgid "Field definition not found" msgstr "" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1457 msgid "Edit Profile Field" msgstr "" @@ -6398,12 +6433,12 @@ msgstr "" msgid "Layout Help" msgstr "" -#: ../../mod/subthread.php:108 +#: ../../mod/subthread.php:114 #, php-format msgid "%1$s is following %2$s's %3$s" msgstr "" -#: ../../mod/subthread.php:110 +#: ../../mod/subthread.php:116 #, php-format msgid "%1$s stopped following %2$s's %3$s" msgstr "" @@ -6432,7 +6467,7 @@ msgid "" "Password reset failed." msgstr "" -#: ../../mod/lostpass.php:86 ../../boot.php:1492 +#: ../../mod/lostpass.php:86 ../../boot.php:1494 msgid "Password Reset" msgstr "" @@ -6518,32 +6553,28 @@ msgstr "" msgid "Event not found." msgstr "" -#: ../../mod/events.php:448 +#: ../../mod/events.php:446 msgid "l, F j" msgstr "" -#: ../../mod/events.php:470 +#: ../../mod/events.php:468 msgid "Edit event" msgstr "" -#: ../../mod/events.php:472 +#: ../../mod/events.php:470 msgid "Delete event" msgstr "" -#: ../../mod/events.php:506 +#: ../../mod/events.php:504 msgid "calendar" msgstr "" -#: ../../mod/events.php:527 -msgid "Create New Event" +#: ../../mod/events.php:524 +msgid "New Event" msgstr "" -#: ../../mod/events.php:530 -msgid "Export" -msgstr "" - -#: ../../mod/events.php:533 -msgid "Import" +#: ../../mod/events.php:534 +msgid "Today" msgstr "" #: ../../mod/events.php:564 @@ -6764,20 +6795,24 @@ msgstr "" msgid "Executable content type not permitted to this channel." msgstr "" -#: ../../mod/item.php:910 +#: ../../mod/item.php:822 +msgid "Duplicate post suppressed." +msgstr "" + +#: ../../mod/item.php:953 msgid "System error. Post not saved." msgstr "" -#: ../../mod/item.php:1177 +#: ../../mod/item.php:1220 msgid "Unable to obtain post information from database." msgstr "" -#: ../../mod/item.php:1184 +#: ../../mod/item.php:1227 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "" -#: ../../mod/item.php:1191 +#: ../../mod/item.php:1234 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "" @@ -9241,51 +9276,51 @@ msgstr "" msgid "Set size of followup author photos" msgstr "" -#: ../../boot.php:1289 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:1292 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:1459 +#: ../../boot.php:1461 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "" -#: ../../boot.php:1487 +#: ../../boot.php:1489 msgid "Password" msgstr "" -#: ../../boot.php:1488 +#: ../../boot.php:1490 msgid "Remember me" msgstr "" -#: ../../boot.php:1491 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:2111 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "" -#: ../../boot.php:2246 +#: ../../boot.php:2248 msgid "Website SSL certificate is not valid. Please correct." msgstr "" -#: ../../boot.php:2249 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "" -#: ../../boot.php:2286 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "" -#: ../../boot.php:2290 +#: ../../boot.php:2292 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "" diff --git a/version.inc b/version.inc index a1de68ee0..625be791e 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-18.1220 +2015-11-20.1223 diff --git a/view/css/mod_events.css b/view/css/mod_events.css index a8e6415c7..ef8a0c4f7 100644 --- a/view/css/mod_events.css +++ b/view/css/mod_events.css @@ -1,3 +1,8 @@ +/* fix borders */ +#events-calendar { + margin-left: -1px; + margin-bottom: -1px; +} #event-desc-textarea, #event-location-textarea { width: 400px; diff --git a/view/es/hmessages.po b/view/es/hmessages.po index 6478c432c..eea1d43de 100644 --- a/view/es/hmessages.po +++ b/view/es/hmessages.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-13 00:03-0800\n" -"PO-Revision-Date: 2015-11-14 16:43+0000\n" +"POT-Creation-Date: 2015-11-20 00:03-0800\n" +"PO-Revision-Date: 2015-11-20 12:03+0000\n" "Last-Translator: Manuel Jiménez Friaza \n" "Language-Team: Spanish (http://www.transifex.com/Friendica/red-matrix/language/es/)\n" "MIME-Version: 1.0\n" @@ -23,13 +23,1255 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/conversation.php:120 ../../include/text.php:1873 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 +#: ../../include/Import/import_diaspora.php:17 +msgid "No username found in import file." +msgstr "No se ha encontrado el nombre de usuario en el fichero importado." + +#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 +msgid "Unable to create a unique channel address. Import failed." +msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación." + +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "Importación completada." + +#: ../../include/RedDAV/RedBrowser.php:107 +#: ../../include/RedDAV/RedBrowser.php:239 +msgid "parent" +msgstr "padre" + +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2546 +msgid "Collection" +msgstr "Colección" + +#: ../../include/RedDAV/RedBrowser.php:134 +msgid "Principal" +msgstr "Principal" + +#: ../../include/RedDAV/RedBrowser.php:137 +msgid "Addressbook" +msgstr "Libreta de direcciones" + +#: ../../include/RedDAV/RedBrowser.php:140 +msgid "Calendar" +msgstr "Calendario" + +#: ../../include/RedDAV/RedBrowser.php:143 +msgid "Schedule Inbox" +msgstr "Programar bandeja de entrada" + +#: ../../include/RedDAV/RedBrowser.php:146 +msgid "Schedule Outbox" +msgstr "Programar bandeja de salida" + +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/conversation.php:1026 +#: ../../include/apps.php:360 ../../include/apps.php:415 +#: ../../include/widgets.php:1317 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "Desconocido" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1628 +#: ../../include/apps.php:135 ../../include/nav.php:93 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Ficheros" + +#: ../../include/RedDAV/RedBrowser.php:227 +msgid "Total" +msgstr "Total" + +#: ../../include/RedDAV/RedBrowser.php:229 +msgid "Shared" +msgstr "Compartido" + +#: ../../include/RedDAV/RedBrowser.php:230 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 +#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 +#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 +msgid "Create" +msgstr "Crear" + +#: ../../include/RedDAV/RedBrowser.php:231 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:450 +msgid "Upload" +msgstr "Subir" + +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../mod/sharedwithme.php:95 +msgid "Name" +msgstr "Nombre" + +#: ../../include/RedDAV/RedBrowser.php:236 +msgid "Type" +msgstr "Tipo" + +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1247 +#: ../../mod/sharedwithme.php:97 +msgid "Size" +msgstr "Tamaño" + +#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 +msgid "Last Modified" +msgstr "Última modificación" + +#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 +#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 +#: ../../include/apps.php:259 ../../include/ItemObject.php:100 +#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 +#: ../../mod/editpost.php:112 ../../mod/menu.php:108 +#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 +#: ../../mod/settings.php:646 ../../mod/connections.php:235 +#: ../../mod/connections.php:248 ../../mod/connections.php:267 +#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +msgid "Edit" +msgstr "Editar" + +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/apps.php:260 ../../include/ItemObject.php:120 +#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 +#: ../../mod/editblock.php:181 ../../mod/admin.php:809 ../../mod/admin.php:968 +#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 +#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 +#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 +msgid "Delete" +msgstr "Eliminar" + +#: ../../include/RedDAV/RedBrowser.php:282 +#, php-format +msgid "You are using %1$s of your available file storage." +msgstr "Está usando %1$s de su espacio disponible para ficheros." + +#: ../../include/RedDAV/RedBrowser.php:287 +#, php-format +msgid "You are using %1$s of %2$s available file storage. (%3$s%)" +msgstr "Está usando %1$s de %2$s que tiene a su disposición para ficheros. (%3$s%)" + +#: ../../include/RedDAV/RedBrowser.php:299 +msgid "WARNING:" +msgstr "ATENCIÓN:" + +#: ../../include/RedDAV/RedBrowser.php:302 +msgid "Create new folder" +msgstr "Crear nueva carpeta" + +#: ../../include/RedDAV/RedBrowser.php:304 +msgid "Upload file" +msgstr "Subir fichero" + +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "Pueden verse mi flujo de actividad y publicaciones normales" + +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" +msgstr "Puede verse mi perfil de canal predeterminado." + +#: ../../include/permissions.php:28 +msgid "Can view my connections" +msgstr "Pueden verse mis conexiones" + +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" +msgstr "Pueden verse mi repositorio de ficheros y mis fotos" + +#: ../../include/permissions.php:30 +msgid "Can view my webpages" +msgstr "Pueden verse mis páginas web" + +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" +msgstr "Me pueden enviar sus entradas y flujo de actividad del canal" + +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" +msgstr "Pueden crearse entradas en mi página de inicio del canal (“muro”)" + +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" +msgstr "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'." + +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" +msgstr "Se me pueden enviar mensajes privados" + +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" +msgstr "Puede marcarse contenido como me gusta/no me gusta" + +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" +msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios" + +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención" + +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" +msgstr "Avanzado - útil para crear canales de foros de discusión o grupos" + +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" +msgstr "Se puede charlar conmigo (cuando esté disponible)" + +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" +msgstr "Puede escribirse en mi repositorio de ficheros y fotos" + +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" +msgstr "Pueden editarse mis páginas web" + +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" +msgstr "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados" + +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Algo avanzado - muy útil en comunidades abiertas" + +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" +msgstr "Pueden administrarse mis recursos del canal" + +#: ../../include/permissions.php:46 +msgid "" +"Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo." + +#: ../../include/permissions.php:867 +msgid "Social Networking" +msgstr "Redes sociales" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Mostly Public" +msgstr "Público en su mayor parte" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Restricted" +msgstr "Restringido" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +msgid "Private" +msgstr "Privado" + +#: ../../include/permissions.php:868 +msgid "Community Forum" +msgstr "Foro de discusión" + +#: ../../include/permissions.php:869 +msgid "Feed Republish" +msgstr "Republicar un \"feed\"" + +#: ../../include/permissions.php:870 +msgid "Special Purpose" +msgstr "Propósito especial" + +#: ../../include/permissions.php:870 +msgid "Celebrity/Soapbox" +msgstr "Página para fans" + +#: ../../include/permissions.php:870 +msgid "Group Repository" +msgstr "Repositorio de grupo" + +#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 +msgid "Other" +msgstr "Otro" + +#: ../../include/permissions.php:871 +msgid "Custom/Expert Mode" +msgstr "Modo personalizado/experto" + +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "Sala de chat sin nombre" + +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "Nombre de sala duplicado." + +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "Especificador de sala no válido." + +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "Sala no encontrada." + +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../include/photos.php:29 ../../include/attach.php:140 +#: ../../include/attach.php:188 ../../include/attach.php:251 +#: ../../include/attach.php:265 ../../include/attach.php:272 +#: ../../include/attach.php:337 ../../include/attach.php:351 +#: ../../include/attach.php:358 ../../include/attach.php:436 +#: ../../include/attach.php:884 ../../include/attach.php:955 +#: ../../include/attach.php:1107 ../../mod/achievements.php:30 +#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 +#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 +#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 +#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 +#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 +#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 +#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 +#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 +#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 +#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 +#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 +#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 +#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 +#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 +#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/message.php:16 +#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 +#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 +#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 +#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 +#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 +#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 +#: ../../mod/api.php:31 ../../mod/connections.php:29 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 +#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 +#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 +#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 +#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 +#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 +#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 +msgid "Permission denied." +msgstr "Acceso denegado." + +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "La sala está llena." + +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "Varios" + +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-DD o MM-DD" + +#: ../../include/datetime.php:235 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:689 +msgid "Required" +msgstr "Obligatorio" + +#: ../../include/datetime.php:262 ../../boot.php:2289 +msgid "never" +msgstr "nunca" + +#: ../../include/datetime.php:268 +msgid "less than a second ago" +msgstr "hace un instante" + +#: ../../include/datetime.php:271 +msgid "year" +msgstr "año" + +#: ../../include/datetime.php:271 +msgid "years" +msgstr "años" + +#: ../../include/datetime.php:272 +msgid "month" +msgstr "mes" + +#: ../../include/datetime.php:272 +msgid "months" +msgstr "meses" + +#: ../../include/datetime.php:273 +msgid "week" +msgstr "semana" + +#: ../../include/datetime.php:273 +msgid "weeks" +msgstr "semanas" + +#: ../../include/datetime.php:274 +msgid "day" +msgstr "día" + +#: ../../include/datetime.php:274 +msgid "days" +msgstr "días" + +#: ../../include/datetime.php:275 +msgid "hour" +msgstr "hora" + +#: ../../include/datetime.php:275 +msgid "hours" +msgstr "horas" + +#: ../../include/datetime.php:276 +msgid "minute" +msgstr "minuto" + +#: ../../include/datetime.php:276 +msgid "minutes" +msgstr "minutos" + +#: ../../include/datetime.php:277 +msgid "second" +msgstr "segundo" + +#: ../../include/datetime.php:277 +msgid "seconds" +msgstr "segundos" + +#: ../../include/datetime.php:285 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "hace %1$d %2$s" + +#: ../../include/datetime.php:519 +#, php-format +msgid "%1$s's birthday" +msgstr "Cumpleaños de %1$s" + +#: ../../include/datetime.php:520 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Feliz cumpleaños %1$s" + +#: ../../include/features.php:38 +msgid "General Features" +msgstr "Características generales" + +#: ../../include/features.php:40 +msgid "Content Expiration" +msgstr "Caducidad del contenido" + +#: ../../include/features.php:40 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "Eliminar publicaciones/comentarios y/o mensajes privados más adelante" + +#: ../../include/features.php:41 +msgid "Multiple Profiles" +msgstr "Múltiples perfiles" + +#: ../../include/features.php:41 +msgid "Ability to create multiple profiles" +msgstr "Capacidad de crear múltiples perfiles" + +#: ../../include/features.php:42 +msgid "Advanced Profiles" +msgstr "Perfiles avanzados" + +#: ../../include/features.php:42 +msgid "Additional profile sections and selections" +msgstr "Secciones y selecciones de perfil adicionales" + +#: ../../include/features.php:43 +msgid "Profile Import/Export" +msgstr "Importar/Exportar perfil" + +#: ../../include/features.php:43 +msgid "Save and load profile details across sites/channels" +msgstr "Guardar y cargar detalles del perfil a través de sitios/canales" + +#: ../../include/features.php:44 +msgid "Web Pages" +msgstr "Páginas web" + +#: ../../include/features.php:44 +msgid "Provide managed web pages on your channel" +msgstr "Proveer páginas web gestionadas en su canal" + +#: ../../include/features.php:45 +msgid "Private Notes" +msgstr "Notas privadas" + +#: ../../include/features.php:45 +msgid "Enables a tool to store notes and reminders" +msgstr "Activar una herramienta para almacenar notas y recordatorios" + +#: ../../include/features.php:46 +msgid "Navigation Channel Select" +msgstr "Navegación por el selector de canales" + +#: ../../include/features.php:46 +msgid "Change channels directly from within the navigation dropdown menu" +msgstr "Cambiar de canales directamente desde el menú de navegación desplegable" + +#: ../../include/features.php:47 +msgid "Photo Location" +msgstr "Ubicación de las fotos" + +#: ../../include/features.php:47 +msgid "If location data is available on uploaded photos, link this to a map." +msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa." + +#: ../../include/features.php:49 +msgid "Expert Mode" +msgstr "Modo de experto" + +#: ../../include/features.php:49 +msgid "Enable Expert Mode to provide advanced configuration options" +msgstr "Habilitar el modo de experto para acceder a opciones avanzadas de configuración" + +#: ../../include/features.php:50 +msgid "Premium Channel" +msgstr "Canal premium" + +#: ../../include/features.php:50 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Les permite configurar restricciones y normas de uso a aquellos que conectan con su canal" + +#: ../../include/features.php:55 +msgid "Post Composition Features" +msgstr "Características de composición de entradas" + +#: ../../include/features.php:57 +msgid "Use Markdown" +msgstr "Usar Markdown" + +#: ../../include/features.php:57 +msgid "Allow use of \"Markdown\" to format posts" +msgstr "Permitir el uso de \"Markdown\" para formatear publicaciones" + +#: ../../include/features.php:58 +msgid "Large Photos" +msgstr "Fotos de gran tamaño" + +#: ../../include/features.php:58 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" +msgstr "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (6400px)" + +#: ../../include/features.php:59 ../../include/widgets.php:546 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "Orígenes de los contenidos del canal" + +#: ../../include/features.php:59 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Importar automáticamente contenido de otros canales o \"feeds\"" + +#: ../../include/features.php:60 +msgid "Even More Encryption" +msgstr "Más cifrado todavía" + +#: ../../include/features.php:60 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida." + +#: ../../include/features.php:61 +msgid "Enable Voting Tools" +msgstr "Activar herramientas de votación" + +#: ../../include/features.php:61 +msgid "Provide a class of post which others can vote on" +msgstr "Proveer una clase de publicación en la que otros puedan votar" + +#: ../../include/features.php:62 +msgid "Delayed Posting" +msgstr "Publicación aplazada" + +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" +msgstr "Permitir mensajes que se publicarán en una fecha posterior" + +#: ../../include/features.php:63 +msgid "Suppress Duplicate Posts/Comments" +msgstr "Prevenir entradas o comentarios duplicados" + +#: ../../include/features.php:63 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." +msgstr "Prevenir que entradas con contenido idéntico se publiquen con menos de dos minutos de intervalo." + +#: ../../include/features.php:69 +msgid "Network and Stream Filtering" +msgstr "Filtrado del contenido" + +#: ../../include/features.php:70 +msgid "Search by Date" +msgstr "Buscar por fecha" + +#: ../../include/features.php:70 +msgid "Ability to select posts by date ranges" +msgstr "Capacidad de seleccionar entradas por rango de fechas" + +#: ../../include/features.php:71 +msgid "Collections Filter" +msgstr "Filtrado de colecciones" + +#: ../../include/features.php:71 +msgid "Enable widget to display Network posts only from selected collections" +msgstr "Habilitar la muestra de entradas eligiendo colecciones" + +#: ../../include/features.php:72 ../../include/widgets.php:274 +msgid "Saved Searches" +msgstr "Búsquedas guardadas" + +#: ../../include/features.php:72 +msgid "Save search terms for re-use" +msgstr "Guardar términos de búsqueda para su reutilización" + +#: ../../include/features.php:73 +msgid "Network Personal Tab" +msgstr "Actividad personal" + +#: ../../include/features.php:73 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado." + +#: ../../include/features.php:74 +msgid "Network New Tab" +msgstr "Contenido nuevo" + +#: ../../include/features.php:74 +msgid "Enable tab to display all new Network activity" +msgstr "Habilitar una pestaña en la que se muestre solo el contenido nuevo" + +#: ../../include/features.php:75 +msgid "Affinity Tool" +msgstr "Herramienta de afinidad" + +#: ../../include/features.php:75 +msgid "Filter stream activity by depth of relationships" +msgstr "Filtrar la actividad del flujo por profundidad de relaciones" + +#: ../../include/features.php:76 +msgid "Connection Filtering" +msgstr "Filtrado de conexiones" + +#: ../../include/features.php:76 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido" + +#: ../../include/features.php:77 +msgid "Suggest Channels" +msgstr "Sugerir canales" + +#: ../../include/features.php:77 +msgid "Show channel suggestions" +msgstr "Mostrar sugerencias de canales" + +#: ../../include/features.php:82 +msgid "Post/Comment Tools" +msgstr "Herramientas de entradas/comentarios" + +#: ../../include/features.php:83 +msgid "Tagging" +msgstr "Etiquetado" + +#: ../../include/features.php:83 +msgid "Ability to tag existing posts" +msgstr "Capacidad de etiquetar entradas existentes" + +#: ../../include/features.php:84 +msgid "Post Categories" +msgstr "Categorías de entradas" + +#: ../../include/features.php:84 +msgid "Add categories to your posts" +msgstr "Añadir categorías a sus publicaciones" + +#: ../../include/features.php:85 ../../include/contact_widgets.php:57 +#: ../../include/widgets.php:304 +msgid "Saved Folders" +msgstr "Carpetas guardadas" + +#: ../../include/features.php:85 +msgid "Ability to file posts under folders" +msgstr "Capacidad de archivar entradas en carpetas" + +#: ../../include/features.php:86 +msgid "Dislike Posts" +msgstr "Desagrado de publicaciones" + +#: ../../include/features.php:86 +msgid "Ability to dislike posts/comments" +msgstr "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios" + +#: ../../include/features.php:87 +msgid "Star Posts" +msgstr "Entradas destacadas" + +#: ../../include/features.php:87 +msgid "Ability to mark special posts with a star indicator" +msgstr "Capacidad de marcar entradas destacadas con un indicador de estrella" + +#: ../../include/features.php:88 +msgid "Tag Cloud" +msgstr "Nube de etiquetas" + +#: ../../include/features.php:88 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Proveer nube de etiquetas personal en su página de canal" + +#: ../../include/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "Predeterminado" + +#: ../../include/js_strings.php:5 +msgid "Delete this item?" +msgstr "¿Borrar este elemento?" + +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 +#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +msgid "Comment" +msgstr "Comentar" + +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +msgid "[+] show all" +msgstr "[+] mostrar todo:" + +#: ../../include/js_strings.php:8 +msgid "[-] show less" +msgstr "[-] mostrar menos" + +#: ../../include/js_strings.php:9 +msgid "[+] expand" +msgstr "[+] expandir" + +#: ../../include/js_strings.php:10 +msgid "[-] collapse" +msgstr "[-] contraer" + +#: ../../include/js_strings.php:11 +msgid "Password too short" +msgstr "Contraseña demasiado corta" + +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" +msgstr "Las contraseñas no coinciden" + +#: ../../include/js_strings.php:13 ../../mod/photos.php:41 +msgid "everybody" +msgstr "cualquiera" + +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" +msgstr "Contraseña secreta" + +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" +msgstr "Pista de contraseña" + +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." +msgstr "Aviso: los permisos han cambiado pero aún no han sido enviados." + +#: ../../include/js_strings.php:17 +msgid "close all" +msgstr "cerrar todo" + +#: ../../include/js_strings.php:18 +msgid "Nothing new here" +msgstr "Nada nuevo por aquí" + +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" +msgstr "Valorar este canal (esto es público)" + +#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 +#: ../../mod/rate.php:157 +msgid "Rating" +msgstr "Valoración" + +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" +msgstr "Describir (opcional)" + +#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 +#: ../../include/widgets.php:676 ../../mod/fsuggest.php:108 +#: ../../mod/mitem.php:231 ../../mod/connedit.php:715 ../../mod/mood.php:135 +#: ../../mod/pconfig.php:108 ../../mod/filestorage.php:156 +#: ../../mod/poke.php:171 ../../mod/chat.php:184 ../../mod/chat.php:213 +#: ../../mod/rate.php:168 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/admin.php:435 +#: ../../mod/admin.php:802 ../../mod/admin.php:966 ../../mod/admin.php:1103 +#: ../../mod/admin.php:1297 ../../mod/admin.php:1382 ../../mod/appman.php:99 +#: ../../mod/pdledit.php:58 ../../mod/events.php:531 ../../mod/events.php:710 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/thing.php:313 ../../mod/thing.php:359 +#: ../../mod/invite.php:142 ../../mod/mail.php:371 ../../mod/settings.php:584 +#: ../../mod/settings.php:696 ../../mod/settings.php:724 +#: ../../mod/settings.php:747 ../../mod/settings.php:832 +#: ../../mod/settings.php:1021 ../../mod/xchan.php:11 ../../mod/group.php:81 +#: ../../mod/connect.php:93 ../../mod/locs.php:116 ../../mod/setup.php:331 +#: ../../mod/setup.php:371 ../../mod/profiles.php:667 +#: ../../mod/import_items.php:122 ../../view/theme/redbasic/php/config.php:99 +msgid "Submit" +msgstr "Enviar" + +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" +msgstr "Por favor, introduzca una dirección de enlace" + +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" +msgstr "Cambios no guardados. ¿Está seguro de que desea abandonar la página?" + +#: ../../include/js_strings.php:26 +msgid "timeago.prefixAgo" +msgstr "timeago.prefixAgo" + +#: ../../include/js_strings.php:27 +msgid "timeago.prefixFromNow" +msgstr "timeago.prefixFromNow" + +#: ../../include/js_strings.php:28 +msgid "ago" +msgstr "antes" + +#: ../../include/js_strings.php:29 +msgid "from now" +msgstr "desde ahora" + +#: ../../include/js_strings.php:30 +msgid "less than a minute" +msgstr "menos de un minuto" + +#: ../../include/js_strings.php:31 +msgid "about a minute" +msgstr "alrededor de un minuto" + +#: ../../include/js_strings.php:32 +#, php-format +msgid "%d minutes" +msgstr "%d minutos" + +#: ../../include/js_strings.php:33 +msgid "about an hour" +msgstr "alrededor de una hora" + +#: ../../include/js_strings.php:34 +#, php-format +msgid "about %d hours" +msgstr "alrededor de %d horas" + +#: ../../include/js_strings.php:35 +msgid "a day" +msgstr "un día" + +#: ../../include/js_strings.php:36 +#, php-format +msgid "%d days" +msgstr "%d días" + +#: ../../include/js_strings.php:37 +msgid "about a month" +msgstr "alrededor de un mes" + +#: ../../include/js_strings.php:38 +#, php-format +msgid "%d months" +msgstr "%d meses" + +#: ../../include/js_strings.php:39 +msgid "about a year" +msgstr "alrededor de un año" + +#: ../../include/js_strings.php:40 +#, php-format +msgid "%d years" +msgstr "%d años" + +#: ../../include/js_strings.php:41 +msgid " " +msgstr " " + +#: ../../include/js_strings.php:42 +msgid "timeago.numbers" +msgstr "timeago.numbers" + +#: ../../include/js_strings.php:44 ../../include/text.php:1164 +msgid "January" +msgstr "enero" + +#: ../../include/js_strings.php:45 ../../include/text.php:1164 +msgid "February" +msgstr "febrero" + +#: ../../include/js_strings.php:46 ../../include/text.php:1164 +msgid "March" +msgstr "marzo" + +#: ../../include/js_strings.php:47 ../../include/text.php:1164 +msgid "April" +msgstr "abril" + +#: ../../include/js_strings.php:48 +msgctxt "long" +msgid "May" +msgstr "mayo" + +#: ../../include/js_strings.php:49 ../../include/text.php:1164 +msgid "June" +msgstr "junio" + +#: ../../include/js_strings.php:50 ../../include/text.php:1164 +msgid "July" +msgstr "julio" + +#: ../../include/js_strings.php:51 ../../include/text.php:1164 +msgid "August" +msgstr "agosto" + +#: ../../include/js_strings.php:52 ../../include/text.php:1164 +msgid "September" +msgstr "septiembre" + +#: ../../include/js_strings.php:53 ../../include/text.php:1164 +msgid "October" +msgstr "octubre" + +#: ../../include/js_strings.php:54 ../../include/text.php:1164 +msgid "November" +msgstr "noviembre" + +#: ../../include/js_strings.php:55 ../../include/text.php:1164 +msgid "December" +msgstr "diciembre" + +#: ../../include/js_strings.php:56 +msgid "Jan" +msgstr "Ene" + +#: ../../include/js_strings.php:57 +msgid "Feb" +msgstr "Feb" + +#: ../../include/js_strings.php:58 +msgid "Mar" +msgstr "Mar" + +#: ../../include/js_strings.php:59 +msgid "Apr" +msgstr "Abr" + +#: ../../include/js_strings.php:60 +msgctxt "short" +msgid "May" +msgstr "May" + +#: ../../include/js_strings.php:61 +msgid "Jun" +msgstr "Jun" + +#: ../../include/js_strings.php:62 +msgid "Jul" +msgstr "Jul" + +#: ../../include/js_strings.php:63 +msgid "Aug" +msgstr "Ago" + +#: ../../include/js_strings.php:64 +msgid "Sep" +msgstr "Sep" + +#: ../../include/js_strings.php:65 +msgid "Oct" +msgstr "Oct" + +#: ../../include/js_strings.php:66 +msgid "Nov" +msgstr "Nov" + +#: ../../include/js_strings.php:67 +msgid "Dec" +msgstr "Dic" + +#: ../../include/js_strings.php:68 ../../include/text.php:1160 +msgid "Sunday" +msgstr "domingo" + +#: ../../include/js_strings.php:69 ../../include/text.php:1160 +msgid "Monday" +msgstr "lunes" + +#: ../../include/js_strings.php:70 ../../include/text.php:1160 +msgid "Tuesday" +msgstr "martes" + +#: ../../include/js_strings.php:71 ../../include/text.php:1160 +msgid "Wednesday" +msgstr "miércoles" + +#: ../../include/js_strings.php:72 ../../include/text.php:1160 +msgid "Thursday" +msgstr "jueves" + +#: ../../include/js_strings.php:73 ../../include/text.php:1160 +msgid "Friday" +msgstr "viernes" + +#: ../../include/js_strings.php:74 ../../include/text.php:1160 +msgid "Saturday" +msgstr "sábado" + +#: ../../include/js_strings.php:75 +msgid "Sun" +msgstr "Dom" + +#: ../../include/js_strings.php:76 +msgid "Mon" +msgstr "Lun" + +#: ../../include/js_strings.php:77 +msgid "Tue" +msgstr "Mar" + +#: ../../include/js_strings.php:78 +msgid "Wed" +msgstr "Mié" + +#: ../../include/js_strings.php:79 +msgid "Thu" +msgstr "Jue" + +#: ../../include/js_strings.php:80 +msgid "Fri" +msgstr "Vie" + +#: ../../include/js_strings.php:81 +msgid "Sat" +msgstr "Sáb" + +#: ../../include/js_strings.php:82 +msgctxt "calendar" +msgid "today" +msgstr "hoy" + +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "month" +msgstr "mes" + +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "week" +msgstr "semana" + +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "day" +msgstr "día" + +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "All day" +msgstr "Todos los días" + +#: ../../include/contact_selectors.php:56 +msgid "Frequently" +msgstr "Frecuentemente" + +#: ../../include/contact_selectors.php:57 +msgid "Hourly" +msgstr "Cada hora" + +#: ../../include/contact_selectors.php:58 +msgid "Twice daily" +msgstr "Dos veces al día" + +#: ../../include/contact_selectors.php:59 +msgid "Daily" +msgstr "Diariamente" + +#: ../../include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Semanalmente" + +#: ../../include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Mensualmente" + +#: ../../include/contact_selectors.php:76 +msgid "Friendica" +msgstr "Friendica" + +#: ../../include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: ../../include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 +#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../boot.php:1488 +msgid "Email" +msgstr "Correo electrónico" + +#: ../../include/contact_selectors.php:80 +msgid "Diaspora" +msgstr "Diaspora" + +#: ../../include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: ../../include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: ../../include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: ../../include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: ../../include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: ../../include/activities.php:42 +msgid " and " +msgstr "y" + +#: ../../include/activities.php:50 +msgid "public profile" +msgstr "perfil público" + +#: ../../include/activities.php:59 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s cambió %2$s a “%3$s”" + +#: ../../include/activities.php:60 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "Visitar %2$s de %1$s" + +#: ../../include/activities.php:63 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s ha actualizado %2$s cambiando %3$s." + +#: ../../include/Contact.php:101 ../../include/conversation.php:952 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/identity.php:952 ../../mod/directory.php:318 +#: ../../mod/match.php:64 ../../mod/suggest.php:52 +msgid "Connect" +msgstr "Conectar" + +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "Nueva ventana" + +#: ../../include/Contact.php:119 +msgid "Open the selected location in a different window or browser tab" +msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte" + +#: ../../include/Contact.php:237 +#, php-format +msgid "User '%s' deleted" +msgstr "El usuario '%s' ha sido eliminado" + +#: ../../include/dba/dba_driver.php:141 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" +msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%s”" + +#: ../../include/items.php:423 ../../mod/like.php:280 +#: ../../mod/subthread.php:58 ../../mod/dreport.php:6 ../../mod/dreport.php:45 +#: ../../mod/group.php:68 ../../mod/profperm.php:23 +#: ../../mod/import_items.php:114 ../../index.php:360 +msgid "Permission denied" +msgstr "Permiso denegado" + +#: ../../include/items.php:1128 ../../include/items.php:1174 +msgid "(Unknown)" +msgstr "(Desconocido)" + +#: ../../include/items.php:1371 +msgid "Visible to anybody on the internet." +msgstr "Visible para cualquiera en internet." + +#: ../../include/items.php:1373 +msgid "Visible to you only." +msgstr "Visible sólo para usted." + +#: ../../include/items.php:1375 +msgid "Visible to anybody in this network." +msgstr "Visible para cualquiera en esta red." + +#: ../../include/items.php:1377 +msgid "Visible to anybody authenticated." +msgstr "Visible para cualquiera que haya sido autenticado." + +#: ../../include/items.php:1379 +#, php-format +msgid "Visible to anybody on %s." +msgstr "Visible para cualquiera en %s." + +#: ../../include/items.php:1381 +msgid "Visible to all connections." +msgstr "Visible para todas las conexiones." + +#: ../../include/items.php:1383 +msgid "Visible to approved connections." +msgstr "Visible para las conexiones permitidas." + +#: ../../include/items.php:1385 +msgid "Visible to specific connections." +msgstr "Visible para conexiones específicas." + +#: ../../include/items.php:4317 ../../mod/display.php:36 +#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 +#: ../../mod/admin.php:1005 ../../mod/admin.php:1210 ../../mod/thing.php:86 +#: ../../mod/viewsrc.php:20 +msgid "Item not found." +msgstr "Elemento no encontrado." + +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 +msgid "Collection not found." +msgstr "Colección no encontrada." + +#: ../../include/items.php:4842 +msgid "Collection is empty." +msgstr "La colección está vacía." + +#: ../../include/items.php:4849 +#, php-format +msgid "Collection: %s" +msgstr "Colección: %s" + +#: ../../include/items.php:4859 ../../mod/connedit.php:683 +#, php-format +msgid "Connection: %s" +msgstr "Conexión: %s" + +#: ../../include/items.php:4861 +msgid "Connection not found." +msgstr "Conexión no encontrada" + +#: ../../include/conversation.php:120 ../../include/text.php:1880 +#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:83 msgid "photo" msgstr "foto" #: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1876 ../../mod/like.php:363 ../../mod/tagger.php:47 +#: ../../include/text.php:1883 ../../mod/like.php:363 ../../mod/tagger.php:47 #: ../../mod/events.php:245 msgid "event" msgstr "evento" @@ -38,12 +1280,12 @@ msgstr "evento" msgid "channel" msgstr "canal" -#: ../../include/conversation.php:148 ../../include/text.php:1879 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 +#: ../../include/conversation.php:148 ../../include/text.php:1886 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 msgid "status" msgstr "el mensaje de estado" -#: ../../include/conversation.php:150 ../../include/text.php:1881 +#: ../../include/conversation.php:150 ../../include/text.php:1888 #: ../../mod/tagger.php:53 msgid "comment" msgstr "comentario" @@ -68,7 +1310,7 @@ msgstr "%1$s ahora está conectado/a con %2$s" msgid "%1$s poked %2$s" msgstr "%1$s ha dado un toque a %2$s" -#: ../../include/conversation.php:243 ../../include/text.php:946 +#: ../../include/conversation.php:243 ../../include/text.php:953 msgid "poked" msgstr "ha recibido un toque" @@ -122,16 +1364,6 @@ msgstr "Quizá participe" msgid "Select" msgstr "Seleccionar" -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 -#: ../../mod/editblock.php:181 ../../mod/admin.php:808 ../../mod/admin.php:967 -#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 -#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 -#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 -msgid "Delete" -msgstr "Eliminar" - #: ../../include/conversation.php:664 ../../include/ItemObject.php:89 msgid "Private Message" msgstr "Mensaje Privado" @@ -204,8 +1436,8 @@ msgid "Follow Thread" msgstr "Seguir el hilo" #: ../../include/conversation.php:947 -msgid "Stop Following" -msgstr "Dejar de seguir" +msgid "Unfollow Thread" +msgstr "Dejar de seguir este hilo" #: ../../include/conversation.php:948 msgid "View Status" @@ -224,13 +1456,6 @@ msgstr "Ver fotos" msgid "Activity/Posts" msgstr "Actividad y entradas" -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:952 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:318 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 -msgid "Connect" -msgstr "Conectar" - #: ../../include/conversation.php:953 msgid "Edit Connection" msgstr "Editar conexión" @@ -243,13 +1468,6 @@ msgstr "Enviar un mensaje privado" msgid "Poke" msgstr "Toques y otras cosas" -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../include/widgets.php:1281 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "Desconocido" - #: ../../include/conversation.php:1069 #, php-format msgid "%s likes this." @@ -324,7 +1542,7 @@ msgstr "Guardar en carpeta:" msgid "Where are you right now?" msgstr "¿Donde está ahora?" -#: ../../include/conversation.php:1160 ../../mod/editpost.php:54 +#: ../../include/conversation.php:1160 ../../mod/editpost.php:56 #: ../../mod/mail.php:195 ../../mod/mail.php:309 msgid "Expires YYYY-MM-DD HH:MM" msgstr "Caduca YYYY-MM-DD HH:MM" @@ -535,7 +1753,7 @@ msgstr "Publicaciones recientes" msgid "Sort by Post Date" msgstr "Ordenar por fecha de publicación" -#: ../../include/conversation.php:1525 ../../include/widgets.php:94 +#: ../../include/conversation.php:1525 ../../include/widgets.php:95 msgid "Personal" msgstr "Personales" @@ -568,7 +1786,7 @@ msgstr "Correo basura" msgid "Posts flagged as SPAM" msgstr "Publicaciones marcadas como basura" -#: ../../include/conversation.php:1600 ../../mod/admin.php:972 +#: ../../include/conversation.php:1600 ../../mod/admin.php:973 msgid "Channel" msgstr "Canal" @@ -578,7 +1796,7 @@ msgstr "Mensajes de estado y publicaciones" #: ../../include/conversation.php:1612 msgid "About" -msgstr "Sobre mí" +msgstr "Mi perfil" #: ../../include/conversation.php:1615 msgid "Profile Details" @@ -593,12 +1811,6 @@ msgstr "Fotos" msgid "Photo Albums" msgstr "Álbumes de fotos" -#: ../../include/conversation.php:1628 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Ficheros" - #: ../../include/conversation.php:1631 msgid "Files and Storage" msgstr "Ficheros y repositorio" @@ -632,7 +1844,7 @@ msgid "View all" msgstr "Ver todo" #: ../../include/conversation.php:1720 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1263 ../../include/taxonomy.php:403 +#: ../../include/identity.php:1263 ../../include/taxonomy.php:412 #: ../../mod/photos.php:1086 msgctxt "noun" msgid "Like" @@ -690,1208 +1902,6 @@ msgid_plural "Abstains" msgstr[0] "se abstiene" msgstr[1] "Se abstienen" -#: ../../include/Import/import_diaspora.php:17 -msgid "No username found in import file." -msgstr "No se ha encontrado el nombre de usuario en el fichero importado." - -#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 -msgid "Unable to create a unique channel address. Import failed." -msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación." - -#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 -msgid "Import completed." -msgstr "Importación completada." - -#: ../../include/RedDAV/RedBrowser.php:107 -#: ../../include/RedDAV/RedBrowser.php:239 -msgid "parent" -msgstr "padre" - -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2539 -msgid "Collection" -msgstr "Colección" - -#: ../../include/RedDAV/RedBrowser.php:134 -msgid "Principal" -msgstr "Principal" - -#: ../../include/RedDAV/RedBrowser.php:137 -msgid "Addressbook" -msgstr "Libreta de direcciones" - -#: ../../include/RedDAV/RedBrowser.php:140 -msgid "Calendar" -msgstr "Calendario" - -#: ../../include/RedDAV/RedBrowser.php:143 -msgid "Schedule Inbox" -msgstr "Programar bandeja de entrada" - -#: ../../include/RedDAV/RedBrowser.php:146 -msgid "Schedule Outbox" -msgstr "Programar bandeja de salida" - -#: ../../include/RedDAV/RedBrowser.php:227 -msgid "Total" -msgstr "Total" - -#: ../../include/RedDAV/RedBrowser.php:229 -msgid "Shared" -msgstr "Compartido" - -#: ../../include/RedDAV/RedBrowser.php:230 -#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 -#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 -#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 -msgid "Create" -msgstr "Crear" - -#: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1293 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:450 -msgid "Upload" -msgstr "Subir" - -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 -#: ../../mod/sharedwithme.php:95 -msgid "Name" -msgstr "Nombre" - -#: ../../include/RedDAV/RedBrowser.php:236 -msgid "Type" -msgstr "Tipo" - -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1240 -#: ../../mod/sharedwithme.php:97 -msgid "Size" -msgstr "Tamaño" - -#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 -msgid "Last Modified" -msgstr "Última modificación" - -#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 -#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 -#: ../../include/apps.php:259 ../../include/ItemObject.php:100 -#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 -#: ../../mod/editpost.php:112 ../../mod/menu.php:108 -#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 -#: ../../mod/settings.php:646 ../../mod/connections.php:235 -#: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 -msgid "Edit" -msgstr "Editar" - -#: ../../include/RedDAV/RedBrowser.php:282 -#, php-format -msgid "You are using %1$s of your available file storage." -msgstr "Está usando %1$s de su espacio disponible para ficheros." - -#: ../../include/RedDAV/RedBrowser.php:287 -#, php-format -msgid "You are using %1$s of %2$s available file storage. (%3$s%)" -msgstr "Está usando %1$s de %2$s que tiene a su disposición para ficheros. (%3$s%)" - -#: ../../include/RedDAV/RedBrowser.php:299 -msgid "WARNING:" -msgstr "ATENCIÓN:" - -#: ../../include/RedDAV/RedBrowser.php:302 -msgid "Create new folder" -msgstr "Crear nueva carpeta" - -#: ../../include/RedDAV/RedBrowser.php:304 -msgid "Upload file" -msgstr "Subir fichero" - -#: ../../include/permissions.php:26 -msgid "Can view my normal stream and posts" -msgstr "Pueden verse mi flujo de actividad y publicaciones normales" - -#: ../../include/permissions.php:27 -msgid "Can view my default channel profile" -msgstr "Puede verse mi perfil de canal predeterminado." - -#: ../../include/permissions.php:28 -msgid "Can view my connections" -msgstr "Pueden verse mis conexiones" - -#: ../../include/permissions.php:29 -msgid "Can view my file storage and photos" -msgstr "Pueden verse mi repositorio de ficheros y mis fotos" - -#: ../../include/permissions.php:30 -msgid "Can view my webpages" -msgstr "Pueden verse mis páginas web" - -#: ../../include/permissions.php:33 -msgid "Can send me their channel stream and posts" -msgstr "Me pueden enviar sus entradas y flujo de actividad del canal" - -#: ../../include/permissions.php:34 -msgid "Can post on my channel page (\"wall\")" -msgstr "Pueden crearse entradas en mi página de inicio del canal (“muro”)" - -#: ../../include/permissions.php:35 -msgid "Can comment on or like my posts" -msgstr "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'." - -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" -msgstr "Se me pueden enviar mensajes privados" - -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" -msgstr "Puede marcarse contenido como me gusta/no me gusta" - -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" -msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios" - -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención" - -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" -msgstr "Avanzado - útil para crear canales de foros de discusión o grupos" - -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" -msgstr "Se puede charlar conmigo (cuando esté disponible)" - -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" -msgstr "Puede escribirse en mi repositorio de ficheros y fotos" - -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" -msgstr "Pueden editarse mis páginas web" - -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" -msgstr "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados" - -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Algo avanzado - muy útil en comunidades abiertas" - -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" -msgstr "Pueden administrarse mis recursos del canal" - -#: ../../include/permissions.php:46 -msgid "" -"Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo." - -#: ../../include/permissions.php:867 -msgid "Social Networking" -msgstr "Redes sociales" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Mostly Public" -msgstr "Público en su mayor parte" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Restricted" -msgstr "Restringido" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -msgid "Private" -msgstr "Privado" - -#: ../../include/permissions.php:868 -msgid "Community Forum" -msgstr "Foro de discusión" - -#: ../../include/permissions.php:869 -msgid "Feed Republish" -msgstr "Republicar un \"feed\"" - -#: ../../include/permissions.php:870 -msgid "Special Purpose" -msgstr "Propósito especial" - -#: ../../include/permissions.php:870 -msgid "Celebrity/Soapbox" -msgstr "Página para fans" - -#: ../../include/permissions.php:870 -msgid "Group Repository" -msgstr "Repositorio de grupo" - -#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 -#: ../../include/profile_selectors.php:23 -#: ../../include/profile_selectors.php:61 -#: ../../include/profile_selectors.php:97 -msgid "Other" -msgstr "Otro" - -#: ../../include/permissions.php:871 -msgid "Custom/Expert Mode" -msgstr "Modo personalizado/experto" - -#: ../../include/chat.php:23 -msgid "Missing room name" -msgstr "Sala de chat sin nombre" - -#: ../../include/chat.php:32 -msgid "Duplicate room name" -msgstr "Nombre de sala duplicado." - -#: ../../include/chat.php:82 ../../include/chat.php:90 -msgid "Invalid room specifier." -msgstr "Especificador de sala no válido." - -#: ../../include/chat.php:122 -msgid "Room not found." -msgstr "Sala no encontrada." - -#: ../../include/chat.php:133 ../../include/items.php:4390 -#: ../../include/photos.php:29 ../../include/attach.php:140 -#: ../../include/attach.php:188 ../../include/attach.php:251 -#: ../../include/attach.php:265 ../../include/attach.php:272 -#: ../../include/attach.php:337 ../../include/attach.php:351 -#: ../../include/attach.php:358 ../../include/attach.php:436 -#: ../../include/attach.php:884 ../../include/attach.php:955 -#: ../../include/attach.php:1107 ../../mod/achievements.php:30 -#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 -#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 -#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 -#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 -#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 -#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 -#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 -#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 -#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 -#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 -#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 -#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 -#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 -#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 -#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 -#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 -#: ../../mod/item.php:213 ../../mod/item.php:1006 ../../mod/message.php:16 -#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 -#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 -#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 -#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 -#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 -#: ../../mod/api.php:31 ../../mod/connections.php:29 -#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 -#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 -#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 -#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 -#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 -#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 -#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 -msgid "Permission denied." -msgstr "Acceso denegado." - -#: ../../include/chat.php:143 -msgid "Room is full" -msgstr "La sala está llena." - -#: ../../include/datetime.php:48 -msgid "Miscellaneous" -msgstr "Varios" - -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" -msgstr "AAAA-MM-DD o MM-DD" - -#: ../../include/datetime.php:235 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:689 -msgid "Required" -msgstr "Obligatorio" - -#: ../../include/datetime.php:262 ../../boot.php:2287 -msgid "never" -msgstr "nunca" - -#: ../../include/datetime.php:268 -msgid "less than a second ago" -msgstr "hace un instante" - -#: ../../include/datetime.php:271 -msgid "year" -msgstr "año" - -#: ../../include/datetime.php:271 -msgid "years" -msgstr "años" - -#: ../../include/datetime.php:272 -msgid "month" -msgstr "mes" - -#: ../../include/datetime.php:272 -msgid "months" -msgstr "meses" - -#: ../../include/datetime.php:273 -msgid "week" -msgstr "semana" - -#: ../../include/datetime.php:273 -msgid "weeks" -msgstr "semanas" - -#: ../../include/datetime.php:274 -msgid "day" -msgstr "día" - -#: ../../include/datetime.php:274 -msgid "days" -msgstr "días" - -#: ../../include/datetime.php:275 -msgid "hour" -msgstr "hora" - -#: ../../include/datetime.php:275 -msgid "hours" -msgstr "horas" - -#: ../../include/datetime.php:276 -msgid "minute" -msgstr "minuto" - -#: ../../include/datetime.php:276 -msgid "minutes" -msgstr "minutos" - -#: ../../include/datetime.php:277 -msgid "second" -msgstr "segundo" - -#: ../../include/datetime.php:277 -msgid "seconds" -msgstr "segundos" - -#: ../../include/datetime.php:285 -#, php-format -msgctxt "e.g. 22 hours ago, 1 minute ago" -msgid "%1$d %2$s ago" -msgstr "hace %1$d %2$s" - -#: ../../include/datetime.php:519 -#, php-format -msgid "%1$s's birthday" -msgstr "Cumpleaños de %1$s" - -#: ../../include/datetime.php:520 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Feliz cumpleaños %1$s" - -#: ../../include/features.php:38 -msgid "General Features" -msgstr "Características generales" - -#: ../../include/features.php:40 -msgid "Content Expiration" -msgstr "Caducidad del contenido" - -#: ../../include/features.php:40 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "Eliminar publicaciones/comentarios y/o mensajes privados más adelante" - -#: ../../include/features.php:41 -msgid "Multiple Profiles" -msgstr "Múltiples perfiles" - -#: ../../include/features.php:41 -msgid "Ability to create multiple profiles" -msgstr "Capacidad de crear múltiples perfiles" - -#: ../../include/features.php:42 -msgid "Advanced Profiles" -msgstr "Perfiles avanzados" - -#: ../../include/features.php:42 -msgid "Additional profile sections and selections" -msgstr "Secciones y selecciones de perfil adicionales" - -#: ../../include/features.php:43 -msgid "Profile Import/Export" -msgstr "Importar/Exportar perfil" - -#: ../../include/features.php:43 -msgid "Save and load profile details across sites/channels" -msgstr "Guardar y cargar detalles del perfil a través de sitios/canales" - -#: ../../include/features.php:44 -msgid "Web Pages" -msgstr "Páginas web" - -#: ../../include/features.php:44 -msgid "Provide managed web pages on your channel" -msgstr "Proveer páginas web gestionadas en su canal" - -#: ../../include/features.php:45 -msgid "Private Notes" -msgstr "Notas privadas" - -#: ../../include/features.php:45 -msgid "Enables a tool to store notes and reminders" -msgstr "Activar una herramienta para almacenar notas y recordatorios" - -#: ../../include/features.php:46 -msgid "Navigation Channel Select" -msgstr "Navegación por el selector de canales" - -#: ../../include/features.php:46 -msgid "Change channels directly from within the navigation dropdown menu" -msgstr "Cambiar de canales directamente desde el menú de navegación desplegable" - -#: ../../include/features.php:47 -msgid "Photo Location" -msgstr "Ubicación de las fotos" - -#: ../../include/features.php:47 -msgid "If location data is available on uploaded photos, link this to a map." -msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa." - -#: ../../include/features.php:49 -msgid "Expert Mode" -msgstr "Modo de experto" - -#: ../../include/features.php:49 -msgid "Enable Expert Mode to provide advanced configuration options" -msgstr "Habilitar el modo de experto para acceder a opciones avanzadas de configuración" - -#: ../../include/features.php:50 -msgid "Premium Channel" -msgstr "Canal premium" - -#: ../../include/features.php:50 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Les permite configurar restricciones y normas de uso a aquellos que conectan con su canal" - -#: ../../include/features.php:55 -msgid "Post Composition Features" -msgstr "Características de composición de entradas" - -#: ../../include/features.php:57 -msgid "Use Markdown" -msgstr "Usar Markdown" - -#: ../../include/features.php:57 -msgid "Allow use of \"Markdown\" to format posts" -msgstr "Permitir el uso de \"Markdown\" para formatear publicaciones" - -#: ../../include/features.php:58 -msgid "Large Photos" -msgstr "Fotos de gran tamaño" - -#: ../../include/features.php:58 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" -msgstr "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (6400px)" - -#: ../../include/features.php:59 ../../include/widgets.php:545 -#: ../../mod/sources.php:88 -msgid "Channel Sources" -msgstr "Orígenes de los contenidos del canal" - -#: ../../include/features.php:59 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Importar automáticamente contenido de otros canales o \"feeds\"" - -#: ../../include/features.php:60 -msgid "Even More Encryption" -msgstr "Más cifrado todavía" - -#: ../../include/features.php:60 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" -msgstr "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida." - -#: ../../include/features.php:61 -msgid "Enable Voting Tools" -msgstr "Activar herramientas de votación" - -#: ../../include/features.php:61 -msgid "Provide a class of post which others can vote on" -msgstr "Proveer una clase de publicación en la que otros puedan votar" - -#: ../../include/features.php:62 -msgid "Delayed Posting" -msgstr "Publicación aplazada" - -#: ../../include/features.php:62 -msgid "Allow posts to be published at a later date" -msgstr "Permitir mensajes que se publicarán en una fecha posterior" - -#: ../../include/features.php:68 -msgid "Network and Stream Filtering" -msgstr "Filtrado del contenido" - -#: ../../include/features.php:69 -msgid "Search by Date" -msgstr "Buscar por fecha" - -#: ../../include/features.php:69 -msgid "Ability to select posts by date ranges" -msgstr "Capacidad de seleccionar entradas por rango de fechas" - -#: ../../include/features.php:70 -msgid "Collections Filter" -msgstr "Filtrado de colecciones" - -#: ../../include/features.php:70 -msgid "Enable widget to display Network posts only from selected collections" -msgstr "Habilitar la muestra de entradas eligiendo colecciones" - -#: ../../include/features.php:71 ../../include/widgets.php:273 -msgid "Saved Searches" -msgstr "Búsquedas guardadas" - -#: ../../include/features.php:71 -msgid "Save search terms for re-use" -msgstr "Guardar términos de búsqueda para su reutilización" - -#: ../../include/features.php:72 -msgid "Network Personal Tab" -msgstr "Actividad personal" - -#: ../../include/features.php:72 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado." - -#: ../../include/features.php:73 -msgid "Network New Tab" -msgstr "Contenido nuevo" - -#: ../../include/features.php:73 -msgid "Enable tab to display all new Network activity" -msgstr "Habilitar una pestaña en la que se muestre solo el contenido nuevo" - -#: ../../include/features.php:74 -msgid "Affinity Tool" -msgstr "Herramienta de afinidad" - -#: ../../include/features.php:74 -msgid "Filter stream activity by depth of relationships" -msgstr "Filtrar la actividad del flujo por profundidad de relaciones" - -#: ../../include/features.php:75 -msgid "Connection Filtering" -msgstr "Filtrado de conexiones" - -#: ../../include/features.php:75 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido" - -#: ../../include/features.php:76 -msgid "Suggest Channels" -msgstr "Sugerir canales" - -#: ../../include/features.php:76 -msgid "Show channel suggestions" -msgstr "Mostrar sugerencias de canales" - -#: ../../include/features.php:81 -msgid "Post/Comment Tools" -msgstr "Herramientas de entradas/comentarios" - -#: ../../include/features.php:82 -msgid "Tagging" -msgstr "Etiquetado" - -#: ../../include/features.php:82 -msgid "Ability to tag existing posts" -msgstr "Capacidad de etiquetar entradas existentes" - -#: ../../include/features.php:83 -msgid "Post Categories" -msgstr "Categorías de entradas" - -#: ../../include/features.php:83 -msgid "Add categories to your posts" -msgstr "Añadir categorías a sus publicaciones" - -#: ../../include/features.php:84 ../../include/contact_widgets.php:57 -#: ../../include/widgets.php:303 -msgid "Saved Folders" -msgstr "Carpetas guardadas" - -#: ../../include/features.php:84 -msgid "Ability to file posts under folders" -msgstr "Capacidad de archivar entradas en carpetas" - -#: ../../include/features.php:85 -msgid "Dislike Posts" -msgstr "Desagrado de publicaciones" - -#: ../../include/features.php:85 -msgid "Ability to dislike posts/comments" -msgstr "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios" - -#: ../../include/features.php:86 -msgid "Star Posts" -msgstr "Entradas destacadas" - -#: ../../include/features.php:86 -msgid "Ability to mark special posts with a star indicator" -msgstr "Capacidad de marcar entradas destacadas con un indicador de estrella" - -#: ../../include/features.php:87 -msgid "Tag Cloud" -msgstr "Nube de etiquetas" - -#: ../../include/features.php:87 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Proveer nube de etiquetas personal en su página de canal" - -#: ../../include/comanche.php:34 ../../mod/admin.php:351 -msgid "Default" -msgstr "Predeterminado" - -#: ../../include/js_strings.php:5 -msgid "Delete this item?" -msgstr "¿Borrar este elemento?" - -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 -msgid "Comment" -msgstr "Comentar" - -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 -msgid "[+] show all" -msgstr "[+] mostrar todo:" - -#: ../../include/js_strings.php:8 -msgid "[-] show less" -msgstr "[-] mostrar menos" - -#: ../../include/js_strings.php:9 -msgid "[+] expand" -msgstr "[+] expandir" - -#: ../../include/js_strings.php:10 -msgid "[-] collapse" -msgstr "[-] contraer" - -#: ../../include/js_strings.php:11 -msgid "Password too short" -msgstr "Contraseña demasiado corta" - -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" -msgstr "Las contraseñas no coinciden" - -#: ../../include/js_strings.php:13 ../../mod/photos.php:41 -msgid "everybody" -msgstr "cualquiera" - -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" -msgstr "Contraseña secreta" - -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" -msgstr "Pista de contraseña" - -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." -msgstr "Aviso: los permisos han cambiado pero aún no han sido enviados." - -#: ../../include/js_strings.php:17 -msgid "close all" -msgstr "cerrar todo" - -#: ../../include/js_strings.php:18 -msgid "Nothing new here" -msgstr "Nada nuevo por aquí" - -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" -msgstr "Valorar este canal (esto es público)" - -#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 -#: ../../mod/rate.php:157 -msgid "Rating" -msgstr "Valoración" - -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" -msgstr "Describir (opcional)" - -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 -#: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:715 ../../mod/mood.php:135 ../../mod/pconfig.php:108 -#: ../../mod/filestorage.php:156 ../../mod/poke.php:171 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/rate.php:168 ../../mod/photos.php:637 -#: ../../mod/photos.php:1008 ../../mod/photos.php:1048 -#: ../../mod/photos.php:1166 ../../mod/admin.php:434 ../../mod/admin.php:801 -#: ../../mod/admin.php:965 ../../mod/admin.php:1097 ../../mod/admin.php:1291 -#: ../../mod/admin.php:1376 ../../mod/appman.php:99 ../../mod/pdledit.php:58 -#: ../../mod/events.php:534 ../../mod/events.php:710 ../../mod/sources.php:104 -#: ../../mod/sources.php:138 ../../mod/import.php:527 ../../mod/thing.php:313 -#: ../../mod/thing.php:359 ../../mod/invite.php:142 ../../mod/mail.php:371 -#: ../../mod/settings.php:584 ../../mod/settings.php:696 -#: ../../mod/settings.php:724 ../../mod/settings.php:747 -#: ../../mod/settings.php:832 ../../mod/settings.php:1021 -#: ../../mod/xchan.php:11 ../../mod/group.php:81 ../../mod/connect.php:93 -#: ../../mod/locs.php:116 ../../mod/setup.php:331 ../../mod/setup.php:371 -#: ../../mod/profiles.php:667 ../../mod/import_items.php:122 -#: ../../view/theme/redbasic/php/config.php:99 -msgid "Submit" -msgstr "Enviar" - -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" -msgstr "Por favor, introduzca una dirección de enlace" - -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" -msgstr "Cambios no guardados. ¿Está seguro de que desea abandonar la página?" - -#: ../../include/js_strings.php:26 -msgid "timeago.prefixAgo" -msgstr "timeago.prefixAgo" - -#: ../../include/js_strings.php:27 -msgid "timeago.prefixFromNow" -msgstr "timeago.prefixFromNow" - -#: ../../include/js_strings.php:28 -msgid "ago" -msgstr "antes" - -#: ../../include/js_strings.php:29 -msgid "from now" -msgstr "desde ahora" - -#: ../../include/js_strings.php:30 -msgid "less than a minute" -msgstr "menos de un minuto" - -#: ../../include/js_strings.php:31 -msgid "about a minute" -msgstr "alrededor de un minuto" - -#: ../../include/js_strings.php:32 -#, php-format -msgid "%d minutes" -msgstr "%d minutos" - -#: ../../include/js_strings.php:33 -msgid "about an hour" -msgstr "alrededor de una hora" - -#: ../../include/js_strings.php:34 -#, php-format -msgid "about %d hours" -msgstr "alrededor de %d horas" - -#: ../../include/js_strings.php:35 -msgid "a day" -msgstr "un día" - -#: ../../include/js_strings.php:36 -#, php-format -msgid "%d days" -msgstr "%d días" - -#: ../../include/js_strings.php:37 -msgid "about a month" -msgstr "alrededor de un mes" - -#: ../../include/js_strings.php:38 -#, php-format -msgid "%d months" -msgstr "%d meses" - -#: ../../include/js_strings.php:39 -msgid "about a year" -msgstr "alrededor de un año" - -#: ../../include/js_strings.php:40 -#, php-format -msgid "%d years" -msgstr "%d años" - -#: ../../include/js_strings.php:41 -msgid " " -msgstr " " - -#: ../../include/js_strings.php:42 -msgid "timeago.numbers" -msgstr "timeago.numbers" - -#: ../../include/js_strings.php:44 ../../include/text.php:1157 -msgid "January" -msgstr "enero" - -#: ../../include/js_strings.php:45 ../../include/text.php:1157 -msgid "February" -msgstr "febrero" - -#: ../../include/js_strings.php:46 ../../include/text.php:1157 -msgid "March" -msgstr "marzo" - -#: ../../include/js_strings.php:47 ../../include/text.php:1157 -msgid "April" -msgstr "abril" - -#: ../../include/js_strings.php:48 -msgctxt "long" -msgid "May" -msgstr "mayo" - -#: ../../include/js_strings.php:49 ../../include/text.php:1157 -msgid "June" -msgstr "junio" - -#: ../../include/js_strings.php:50 ../../include/text.php:1157 -msgid "July" -msgstr "julio" - -#: ../../include/js_strings.php:51 ../../include/text.php:1157 -msgid "August" -msgstr "agosto" - -#: ../../include/js_strings.php:52 ../../include/text.php:1157 -msgid "September" -msgstr "septiembre" - -#: ../../include/js_strings.php:53 ../../include/text.php:1157 -msgid "October" -msgstr "octubre" - -#: ../../include/js_strings.php:54 ../../include/text.php:1157 -msgid "November" -msgstr "noviembre" - -#: ../../include/js_strings.php:55 ../../include/text.php:1157 -msgid "December" -msgstr "diciembre" - -#: ../../include/js_strings.php:56 -msgid "Jan" -msgstr "Ene" - -#: ../../include/js_strings.php:57 -msgid "Feb" -msgstr "Feb" - -#: ../../include/js_strings.php:58 -msgid "Mar" -msgstr "Mar" - -#: ../../include/js_strings.php:59 -msgid "Apr" -msgstr "Abr" - -#: ../../include/js_strings.php:60 -msgctxt "short" -msgid "May" -msgstr "May" - -#: ../../include/js_strings.php:61 -msgid "Jun" -msgstr "Jun" - -#: ../../include/js_strings.php:62 -msgid "Jul" -msgstr "Jul" - -#: ../../include/js_strings.php:63 -msgid "Aug" -msgstr "Ago" - -#: ../../include/js_strings.php:64 -msgid "Sep" -msgstr "Sep" - -#: ../../include/js_strings.php:65 -msgid "Oct" -msgstr "Oct" - -#: ../../include/js_strings.php:66 -msgid "Nov" -msgstr "Nov" - -#: ../../include/js_strings.php:67 -msgid "Dec" -msgstr "Dic" - -#: ../../include/js_strings.php:68 ../../include/text.php:1153 -msgid "Sunday" -msgstr "domingo" - -#: ../../include/js_strings.php:69 ../../include/text.php:1153 -msgid "Monday" -msgstr "lunes" - -#: ../../include/js_strings.php:70 ../../include/text.php:1153 -msgid "Tuesday" -msgstr "martes" - -#: ../../include/js_strings.php:71 ../../include/text.php:1153 -msgid "Wednesday" -msgstr "miércoles" - -#: ../../include/js_strings.php:72 ../../include/text.php:1153 -msgid "Thursday" -msgstr "jueves" - -#: ../../include/js_strings.php:73 ../../include/text.php:1153 -msgid "Friday" -msgstr "viernes" - -#: ../../include/js_strings.php:74 ../../include/text.php:1153 -msgid "Saturday" -msgstr "sábado" - -#: ../../include/js_strings.php:75 -msgid "Sun" -msgstr "Dom" - -#: ../../include/js_strings.php:76 -msgid "Mon" -msgstr "Lun" - -#: ../../include/js_strings.php:77 -msgid "Tue" -msgstr "Mar" - -#: ../../include/js_strings.php:78 -msgid "Wed" -msgstr "Mié" - -#: ../../include/js_strings.php:79 -msgid "Thu" -msgstr "Jue" - -#: ../../include/js_strings.php:80 -msgid "Fri" -msgstr "Vie" - -#: ../../include/js_strings.php:81 -msgid "Sat" -msgstr "Sáb" - -#: ../../include/js_strings.php:82 -msgctxt "calendar" -msgid "today" -msgstr "hoy" - -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "month" -msgstr "mes" - -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "week" -msgstr "semana" - -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "day" -msgstr "día" - -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "All day" -msgstr "Todos los días" - -#: ../../include/contact_selectors.php:56 -msgid "Frequently" -msgstr "Frecuentemente" - -#: ../../include/contact_selectors.php:57 -msgid "Hourly" -msgstr "Cada hora" - -#: ../../include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "Dos veces al día" - -#: ../../include/contact_selectors.php:59 -msgid "Daily" -msgstr "Diariamente" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Semanalmente" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Mensualmente" - -#: ../../include/contact_selectors.php:76 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:804 ../../mod/admin.php:813 -#: ../../boot.php:1486 -msgid "Email" -msgstr "Correo electrónico" - -#: ../../include/contact_selectors.php:80 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/activities.php:42 -msgid " and " -msgstr "y" - -#: ../../include/activities.php:50 -msgid "public profile" -msgstr "perfil público" - -#: ../../include/activities.php:59 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s cambió %2$s a “%3$s”" - -#: ../../include/activities.php:60 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Visitar %2$s de %1$s" - -#: ../../include/activities.php:63 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s ha actualizado %2$s cambiando %3$s." - -#: ../../include/Contact.php:118 -msgid "New window" -msgstr "Nueva ventana" - -#: ../../include/Contact.php:119 -msgid "Open the selected location in a different window or browser tab" -msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte" - -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "El usuario '%s' ha sido eliminado" - -#: ../../include/dba/dba_driver.php:141 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%s”" - -#: ../../include/items.php:423 ../../mod/like.php:280 -#: ../../mod/subthread.php:52 ../../mod/dreport.php:6 ../../mod/dreport.php:45 -#: ../../mod/group.php:68 ../../mod/profperm.php:23 -#: ../../mod/import_items.php:114 ../../index.php:360 -msgid "Permission denied" -msgstr "Permiso denegado" - -#: ../../include/items.php:1128 ../../include/items.php:1174 -msgid "(Unknown)" -msgstr "(Desconocido)" - -#: ../../include/items.php:1371 -msgid "Visible to anybody on the internet." -msgstr "Visible para cualquiera en internet." - -#: ../../include/items.php:1373 -msgid "Visible to you only." -msgstr "Visible sólo para usted." - -#: ../../include/items.php:1375 -msgid "Visible to anybody in this network." -msgstr "Visible para cualquiera en esta red." - -#: ../../include/items.php:1377 -msgid "Visible to anybody authenticated." -msgstr "Visible para cualquiera que haya sido autenticado." - -#: ../../include/items.php:1379 -#, php-format -msgid "Visible to anybody on %s." -msgstr "Visible para cualquiera en %s." - -#: ../../include/items.php:1381 -msgid "Visible to all connections." -msgstr "Visible para todas las conexiones." - -#: ../../include/items.php:1383 -msgid "Visible to approved connections." -msgstr "Visible para las conexiones permitidas." - -#: ../../include/items.php:1385 -msgid "Visible to specific connections." -msgstr "Visible para conexiones específicas." - -#: ../../include/items.php:4311 ../../mod/display.php:36 -#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 -#: ../../mod/admin.php:1004 ../../mod/admin.php:1204 ../../mod/thing.php:86 -#: ../../mod/viewsrc.php:20 -msgid "Item not found." -msgstr "Elemento no encontrado." - -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 -msgid "Collection not found." -msgstr "Colección no encontrada." - -#: ../../include/items.php:4836 -msgid "Collection is empty." -msgstr "La colección está vacía." - -#: ../../include/items.php:4843 -#, php-format -msgid "Collection: %s" -msgstr "Colección: %s" - -#: ../../include/items.php:4853 ../../mod/connedit.php:683 -#, php-format -msgid "Connection: %s" -msgstr "Conexión: %s" - -#: ../../include/items.php:4855 -msgid "Connection not found." -msgstr "Conexión no encontrada" - #: ../../include/network.php:613 msgid "view full size" msgstr "Ver en el tamaño original" @@ -1954,19 +1964,6 @@ msgstr "Permisos" msgid "Close" msgstr "Cerrar" -#: ../../include/import.php:23 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado." - -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." -msgstr "La clonación del canal no ha salido bien. La importación ha fallado." - -#: ../../include/import.php:80 ../../mod/import.php:139 -msgid "Cloned channel not found. Import failed." -msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado." - #: ../../include/photos.php:112 #, php-format msgid "Image exceeds website size limit of %lu bytes" @@ -2180,9 +2177,9 @@ msgstr "Infiel" msgid "Sex Addict" msgstr "Con adicción al sexo" -#: ../../include/profile_selectors.php:80 ../../include/identity.php:390 -#: ../../include/identity.php:391 ../../include/identity.php:398 -#: ../../include/widgets.php:429 ../../mod/connedit.php:573 +#: ../../include/profile_selectors.php:80 ../../include/widgets.php:430 +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../mod/connedit.php:573 #: ../../mod/settings.php:338 ../../mod/settings.php:342 #: ../../mod/settings.php:343 ../../mod/settings.php:346 #: ../../mod/settings.php:357 @@ -2337,7 +2334,7 @@ msgstr "Adminstrador del sitio" msgid "Address Book" msgstr "Libreta de direcciones" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1484 +#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1486 msgid "Login" msgstr "Iniciar sesión" @@ -2350,8 +2347,8 @@ msgstr "Administración de canales" msgid "Grid" msgstr "Red" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 +#: ../../include/apps.php:134 ../../include/widgets.php:554 +#: ../../include/nav.php:202 ../../mod/admin.php:1064 ../../mod/admin.php:1264 msgid "Settings" msgstr "Ajustes" @@ -2365,7 +2362,7 @@ msgid "Profile" msgstr "Perfil" #: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 +#: ../../mod/events.php:523 msgid "Events" msgstr "Eventos" @@ -2390,8 +2387,8 @@ msgstr "Estado de ánimo" msgid "Chat" msgstr "Chat" -#: ../../include/apps.php:147 ../../include/text.php:859 -#: ../../include/text.php:871 ../../include/nav.php:159 +#: ../../include/apps.php:147 ../../include/text.php:866 +#: ../../include/text.php:878 ../../include/nav.php:159 #: ../../mod/search.php:40 msgid "Search" msgstr "Buscar" @@ -2442,10 +2439,23 @@ msgstr "Instalar" msgid "Purchase" msgstr "Comprar" -#: ../../include/api.php:1300 +#: ../../include/api.php:1302 msgid "Public Timeline" msgstr "Cronología pública" +#: ../../include/import.php:23 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado." + +#: ../../include/import.php:70 +msgid "Channel clone failed. Import failed." +msgstr "La clonación del canal no ha salido bien. La importación ha fallado." + +#: ../../include/import.php:80 ../../mod/import.php:139 +msgid "Cloned channel not found. Import failed." +msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado." + #: ../../include/enotify.php:96 #, php-format msgid "%s " @@ -2475,153 +2485,153 @@ msgstr "un mensaje privado" msgid "Please visit %s to view and/or reply to your private messages." msgstr "Por favor visite %s para ver y/o responder a su mensaje privado." -#: ../../include/enotify.php:158 +#: ../../include/enotify.php:160 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" msgstr "%1$s, %2$s ha comentado [zrl=%3$s]%4$s[/zrl]" -#: ../../include/enotify.php:166 +#: ../../include/enotify.php:168 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" msgstr "%1$s, %2$s ha comentado [zrl=%3$s]%5$s de %4$s[/zrl] " -#: ../../include/enotify.php:175 +#: ../../include/enotify.php:177 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" msgstr "%1$s, %2$s ha comentado [zrl=%3$s]%4$s creado por usted[/zrl]" -#: ../../include/enotify.php:186 +#: ../../include/enotify.php:188 #, php-format msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" msgstr "[Hubzilla:Aviso] Nuevo comentario de %2$s a la conversación #%1$d" -#: ../../include/enotify.php:187 +#: ../../include/enotify.php:189 #, php-format msgid "%1$s, %2$s commented on an item/conversation you have been following." msgstr "%1$s, %2$s ha comentado un elemento/conversación que ha estado siguiendo." -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 +#: ../../include/enotify.php:192 ../../include/enotify.php:207 +#: ../../include/enotify.php:233 ../../include/enotify.php:251 +#: ../../include/enotify.php:265 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "Para ver o comentar la conversación, visite %s" -#: ../../include/enotify.php:196 +#: ../../include/enotify.php:198 #, php-format msgid "[Hubzilla:Notify] %s posted to your profile wall" msgstr "[Hubzilla:Aviso] %s ha publicado una entrada en su página de inicio del perfil" -#: ../../include/enotify.php:198 +#: ../../include/enotify.php:200 #, php-format msgid "%1$s, %2$s posted to your profile wall at %3$s" msgstr "%1$s, %2$s publicó en su página del perfil en %3$s" -#: ../../include/enotify.php:200 +#: ../../include/enotify.php:202 #, php-format msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" msgstr "%1$s, %2$s publicó en [zrl=%3$s]su página del perfil[/zrl]" -#: ../../include/enotify.php:224 +#: ../../include/enotify.php:226 #, php-format msgid "[Hubzilla:Notify] %s tagged you" msgstr "[Hubzilla:Aviso] %s le ha etiquetado" -#: ../../include/enotify.php:225 +#: ../../include/enotify.php:227 #, php-format msgid "%1$s, %2$s tagged you at %3$s" msgstr "%1$s, %2$s le etiquetó en %3$s" -#: ../../include/enotify.php:226 +#: ../../include/enotify.php:228 #, php-format msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." msgstr "%1$s, %2$s [zrl=%3$s]le etiquetó[/zrl]." -#: ../../include/enotify.php:238 +#: ../../include/enotify.php:240 #, php-format msgid "[Hubzilla:Notify] %1$s poked you" msgstr "[Hubzilla:Aviso] %1$s le ha dado un toque" -#: ../../include/enotify.php:239 +#: ../../include/enotify.php:241 #, php-format msgid "%1$s, %2$s poked you at %3$s" msgstr "%1$s, %2$s le dio un toque en %3$s" -#: ../../include/enotify.php:240 +#: ../../include/enotify.php:242 #, php-format msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." msgstr "%1$s, %2$s [zrl=%2$s]le dio un toque[/zrl]." -#: ../../include/enotify.php:256 +#: ../../include/enotify.php:258 #, php-format msgid "[Hubzilla:Notify] %s tagged your post" msgstr "[Hubzilla:Aviso] %s ha etiquetado su publicación" -#: ../../include/enotify.php:257 +#: ../../include/enotify.php:259 #, php-format msgid "%1$s, %2$s tagged your post at %3$s" msgstr "%1$s, %2$s ha etiquetado su publicación en %3$s" -#: ../../include/enotify.php:258 +#: ../../include/enotify.php:260 #, php-format msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" msgstr "%1$s, %2$s etiquetó [zrl=%3$s]su publicación[/zrl]" -#: ../../include/enotify.php:270 +#: ../../include/enotify.php:272 msgid "[Hubzilla:Notify] Introduction received" msgstr "[Hubzilla:Aviso] Ha recibido una solicitud de conexión" -#: ../../include/enotify.php:271 +#: ../../include/enotify.php:273 #, php-format msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" msgstr "%1$s, ha recibido una nueva solicitud de conexión de '%2$s' en %3$s" -#: ../../include/enotify.php:272 +#: ../../include/enotify.php:274 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." msgstr "%1$s, ha recibido [zrl=%2$s]una nueva solicitud de conexión[/zrl] de %3$s." -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/enotify.php:278 ../../include/enotify.php:297 #, php-format msgid "You may visit their profile at %s" msgstr "Puede visitar su perfil en %s" -#: ../../include/enotify.php:278 +#: ../../include/enotify.php:280 #, php-format msgid "Please visit %s to approve or reject the connection request." msgstr "Por favor, visite %s para permitir o rechazar la solicitad de conexión." -#: ../../include/enotify.php:285 +#: ../../include/enotify.php:287 msgid "[Hubzilla:Notify] Friend suggestion received" msgstr "[Hubzilla:Aviso] Ha recibido una sugerencia de amistad" -#: ../../include/enotify.php:286 +#: ../../include/enotify.php:288 #, php-format msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" msgstr "%1$s, ha recibido una sugerencia de conexión de '%2$s' en %3$s" -#: ../../include/enotify.php:287 +#: ../../include/enotify.php:289 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " "%4$s." msgstr "%1$s, ha recibido [zrl=%2$s]una sugerencia de conexión[/zrl] para %3$s de %4$s." -#: ../../include/enotify.php:293 +#: ../../include/enotify.php:295 msgid "Name:" msgstr "Nombre:" -#: ../../include/enotify.php:294 +#: ../../include/enotify.php:296 msgid "Photo:" msgstr "Foto:" -#: ../../include/enotify.php:297 +#: ../../include/enotify.php:299 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia." -#: ../../include/enotify.php:511 +#: ../../include/enotify.php:514 msgid "[Hubzilla:Notify]" msgstr "[Hubzilla:Aviso]" @@ -2677,7 +2687,7 @@ msgstr "Añadir etiqueta" msgid "I like this (toggle)" msgstr "me gusta (cambiar)" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 +#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:326 msgid "like" msgstr "me gusta" @@ -2685,7 +2695,7 @@ msgstr "me gusta" msgid "I don't like this (toggle)" msgstr "No me gusta esto (cambiar)" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 +#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:327 msgid "dislike" msgstr "no me gusta" @@ -2776,12 +2786,12 @@ msgstr "Paquete de datos no válido" msgid "Unable to verify channel signature" msgstr "No ha sido posible de verificar la firma del canal" -#: ../../include/zot.php:2264 +#: ../../include/zot.php:2265 #, php-format msgid "Unable to verify site signature for %s" msgstr "No ha sido posible de verificar la firma del sitio para %s" -#: ../../include/zot.php:3591 +#: ../../include/zot.php:3592 msgid "invalid target signature" msgstr "La firma recibida no es válida" @@ -2977,7 +2987,7 @@ msgid_plural "%d invitations available" msgstr[0] "%d invitación pendiente" msgstr[1] "%d invitaciones disponibles" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:438 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 msgid "Advanced" msgstr "Avanzado" @@ -3020,12 +3030,12 @@ msgid "Advanced example: name=fred and country=iceland" msgstr "Ejemplo avanzado: nombre=juan y país=españa" #: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:98 -#: ../../include/widgets.php:306 +#: ../../include/widgets.php:307 msgid "Everything" msgstr "Todo" -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 +#: ../../include/contact_widgets.php:95 ../../include/widgets.php:36 +#: ../../include/taxonomy.php:280 msgid "Categories" msgstr "Categorías" @@ -3051,7 +3061,7 @@ msgstr "Un grupo suprimido con este nombre ha sido restablecido. Es posi msgid "Add new connections to this collection (privacy group)" msgstr "Añadir nuevas conexiones a esta colección (privacidad del grupo)" -#: ../../include/group.php:251 ../../mod/admin.php:813 +#: ../../include/group.php:251 ../../mod/admin.php:814 msgid "All Channels" msgstr "Todos los canales" @@ -3075,10 +3085,311 @@ msgstr "Añadir nueva colección" msgid "Channels not in any collection" msgstr "El canal no se encuentra en ninguna colección" -#: ../../include/group.php:300 ../../include/widgets.php:274 +#: ../../include/group.php:300 ../../include/widgets.php:275 msgid "add" msgstr "añadir" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "Aplicaciones" + +#: ../../include/widgets.php:93 +msgid "System" +msgstr "Sistema" + +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "Crear una aplicación personal" + +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "Editar una aplicación personal" + +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "Ignorar/Ocultar" + +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "Sugerencias" + +#: ../../include/widgets.php:145 +msgid "See more..." +msgstr "Ver más..." + +#: ../../include/widgets.php:166 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "Tiene %1$.0f de %2$.0f conexiones permitidas." + +#: ../../include/widgets.php:172 +msgid "Add New Connection" +msgstr "Añadir nueva conexión" + +#: ../../include/widgets.php:173 +msgid "Enter the channel address" +msgstr "Introducir la dirección del canal" + +#: ../../include/widgets.php:174 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Ejemplo: paco@ejemplo.com, http://ejemplo.com/paco" + +#: ../../include/widgets.php:190 +msgid "Notes" +msgstr "Notas" + +#: ../../include/widgets.php:192 ../../include/text.php:867 +#: ../../include/text.php:879 ../../mod/filer.php:49 ../../mod/admin.php:1442 +#: ../../mod/admin.php:1462 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +msgid "Save" +msgstr "Guardar" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "Eliminar término" + +#: ../../include/widgets.php:349 +msgid "Archives" +msgstr "Hemeroteca" + +#: ../../include/widgets.php:428 ../../mod/connedit.php:571 +msgid "Me" +msgstr "Yo" + +#: ../../include/widgets.php:429 ../../mod/connedit.php:572 +msgid "Family" +msgstr "Familia" + +#: ../../include/widgets.php:431 ../../mod/connedit.php:574 +msgid "Acquaintances" +msgstr "Conocidos/as" + +#: ../../include/widgets.php:432 ../../mod/connedit.php:575 +#: ../../mod/connections.php:88 ../../mod/connections.php:103 +msgid "All" +msgstr "Todas" + +#: ../../include/widgets.php:451 +msgid "Refresh" +msgstr "Recargar" + +#: ../../include/widgets.php:485 +msgid "Account settings" +msgstr "Configuración de la cuenta" + +#: ../../include/widgets.php:491 +msgid "Channel settings" +msgstr "Configuración del canal" + +#: ../../include/widgets.php:497 +msgid "Additional features" +msgstr "Características adicionales" + +#: ../../include/widgets.php:503 +msgid "Feature/Addon settings" +msgstr "Configuración de características o complementos" + +#: ../../include/widgets.php:509 +msgid "Display settings" +msgstr "Ajustes de visualización" + +#: ../../include/widgets.php:515 +msgid "Connected apps" +msgstr "Aplicaciones conectadas" + +#: ../../include/widgets.php:521 +msgid "Export channel" +msgstr "Exportar canal" + +#: ../../include/widgets.php:530 ../../mod/connedit.php:683 +msgid "Connection Default Permissions" +msgstr "Permisos predeterminados de conexión" + +#: ../../include/widgets.php:538 +msgid "Premium Channel Settings" +msgstr "Configuración del canal premium" + +#: ../../include/widgets.php:568 +msgid "Private Mail Menu" +msgstr "Menú de correo privado" + +#: ../../include/widgets.php:570 +msgid "Combined View" +msgstr "Vista combinada" + +#: ../../include/widgets.php:575 ../../include/nav.php:191 +msgid "Inbox" +msgstr "Bandeja de entrada" + +#: ../../include/widgets.php:580 ../../include/nav.php:192 +msgid "Outbox" +msgstr "Bandeja de salida" + +#: ../../include/widgets.php:585 ../../include/nav.php:193 +msgid "New Message" +msgstr "Nuevo mensaje" + +#: ../../include/widgets.php:604 ../../include/widgets.php:616 +msgid "Conversations" +msgstr "Conversaciones" + +#: ../../include/widgets.php:608 +msgid "Received Messages" +msgstr "Mensajes recibidos" + +#: ../../include/widgets.php:612 +msgid "Sent Messages" +msgstr "Enviar mensajes" + +#: ../../include/widgets.php:626 +msgid "No messages." +msgstr "Sin mensajes." + +#: ../../include/widgets.php:644 +msgid "Delete conversation" +msgstr "Eliminar conversación" + +#: ../../include/widgets.php:670 +msgid "Events Menu" +msgstr "Menú de eventos" + +#: ../../include/widgets.php:671 +msgid "Day View" +msgstr "Eventos del día" + +#: ../../include/widgets.php:672 +msgid "Week View" +msgstr "Eventos de la semana" + +#: ../../include/widgets.php:673 +msgid "Month View" +msgstr "Eventos del mes" + +#: ../../include/widgets.php:674 ../../mod/events.php:527 +msgid "Export" +msgstr "Exportar" + +#: ../../include/widgets.php:675 ../../mod/events.php:530 +msgid "Import" +msgstr "Importar" + +#: ../../include/widgets.php:749 +msgid "Chat Rooms" +msgstr "Salas de chat" + +#: ../../include/widgets.php:769 +msgid "Bookmarked Chatrooms" +msgstr "Salas de chat preferidas" + +#: ../../include/widgets.php:789 +msgid "Suggested Chatrooms" +msgstr "Salas de chat sugeridas" + +#: ../../include/widgets.php:916 ../../include/widgets.php:974 +msgid "photo/image" +msgstr "foto/imagen" + +#: ../../include/widgets.php:1069 ../../include/widgets.php:1071 +msgid "Rate Me" +msgstr "Valorar este canal" + +#: ../../include/widgets.php:1075 +msgid "View Ratings" +msgstr "Mostrar las valoraciones" + +#: ../../include/widgets.php:1086 +msgid "Public Hubs" +msgstr "Servidores públicos" + +#: ../../include/widgets.php:1134 +msgid "Forums" +msgstr "Foros" + +#: ../../include/widgets.php:1161 +msgid "Tasks" +msgstr "Tareas" + +#: ../../include/widgets.php:1170 +msgid "Documentation" +msgstr "Documentación" + +#: ../../include/widgets.php:1172 +msgid "Project/Site Information" +msgstr "Información sobre el proyecto o sitio" + +#: ../../include/widgets.php:1173 +msgid "For Members" +msgstr "Para los usuarios" + +#: ../../include/widgets.php:1174 +msgid "For Administrators" +msgstr "Para los administradores" + +#: ../../include/widgets.php:1175 +msgid "For Developers" +msgstr "Para los desarrolladores" + +#: ../../include/widgets.php:1200 ../../mod/admin.php:434 +msgid "Site" +msgstr "Sitio" + +#: ../../include/widgets.php:1201 +msgid "Accounts" +msgstr "Cuentas" + +#: ../../include/widgets.php:1202 ../../mod/admin.php:965 +msgid "Channels" +msgstr "Canales" + +#: ../../include/widgets.php:1203 ../../mod/admin.php:1062 +#: ../../mod/admin.php:1102 +msgid "Plugins" +msgstr "Extensiones" + +#: ../../include/widgets.php:1204 ../../mod/admin.php:1262 +#: ../../mod/admin.php:1296 +msgid "Themes" +msgstr "Temas" + +#: ../../include/widgets.php:1205 +msgid "Inspect queue" +msgstr "Examinar la cola" + +#: ../../include/widgets.php:1206 +msgid "Profile Config" +msgstr "Ajustes del perfil" + +#: ../../include/widgets.php:1207 +msgid "DB updates" +msgstr "Actualizaciones de la base de datos" + +#: ../../include/widgets.php:1225 ../../include/widgets.php:1231 +#: ../../mod/admin.php:1381 +msgid "Logs" +msgstr "Informes" + +#: ../../include/widgets.php:1229 ../../include/nav.php:210 +msgid "Admin" +msgstr "Administrador" + +#: ../../include/widgets.php:1230 +msgid "Plugin Features" +msgstr "Ajustes de la extensión" + +#: ../../include/widgets.php:1232 +msgid "User registrations waiting for confirmation" +msgstr "Registros de usuarios pendientes de confirmación" + +#: ../../include/widgets.php:1311 ../../mod/photos.php:753 +#: ../../mod/photos.php:1286 +msgid "View Photo" +msgstr "Ver foto" + +#: ../../include/widgets.php:1327 ../../mod/photos.php:782 +msgid "Edit Album" +msgstr "Editar álbum" + #: ../../include/message.php:18 msgid "No recipient provided." msgstr "No se ha especificado ningún destinatario." @@ -3334,35 +3645,35 @@ msgstr "Estudios:" msgid "Like this thing" msgstr "Me gusta esto" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 +#: ../../include/taxonomy.php:238 ../../include/taxonomy.php:259 msgid "Tags" msgstr "Etiquetas" -#: ../../include/taxonomy.php:294 +#: ../../include/taxonomy.php:303 msgid "Keywords" msgstr "Palabras clave" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "have" msgstr "tener" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "has" msgstr "tiene" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "want" msgstr "quiero" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "wants" msgstr "quiere" -#: ../../include/taxonomy.php:317 +#: ../../include/taxonomy.php:326 msgid "likes" msgstr "le gusta" -#: ../../include/taxonomy.php:318 +#: ../../include/taxonomy.php:327 msgid "dislikes" msgstr "no le gusta" @@ -3436,283 +3747,6 @@ msgstr "Ficheros adjuntos:" msgid "$Projectname event notification:" msgstr "Notificación de eventos de $Projectname:" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" -msgstr "Aplicaciones" - -#: ../../include/widgets.php:92 -msgid "System" -msgstr "Sistema" - -#: ../../include/widgets.php:95 -msgid "Create Personal App" -msgstr "Crear una aplicación personal" - -#: ../../include/widgets.php:96 -msgid "Edit Personal App" -msgstr "Editar una aplicación personal" - -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" -msgstr "Ignorar/Ocultar" - -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" -msgstr "Sugerencias" - -#: ../../include/widgets.php:144 -msgid "See more..." -msgstr "Ver más..." - -#: ../../include/widgets.php:165 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "Tiene %1$.0f de %2$.0f conexiones permitidas." - -#: ../../include/widgets.php:171 -msgid "Add New Connection" -msgstr "Añadir nueva conexión" - -#: ../../include/widgets.php:172 -msgid "Enter the channel address" -msgstr "Introducir la dirección del canal" - -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Ejemplo: paco@ejemplo.com, http://ejemplo.com/paco" - -#: ../../include/widgets.php:189 -msgid "Notes" -msgstr "Notas" - -#: ../../include/widgets.php:191 ../../include/text.php:860 -#: ../../include/text.php:872 ../../mod/filer.php:49 ../../mod/admin.php:1436 -#: ../../mod/admin.php:1456 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -msgid "Save" -msgstr "Guardar" - -#: ../../include/widgets.php:265 -msgid "Remove term" -msgstr "Eliminar término" - -#: ../../include/widgets.php:348 -msgid "Archives" -msgstr "Hemeroteca" - -#: ../../include/widgets.php:427 ../../mod/connedit.php:571 -msgid "Me" -msgstr "Yo" - -#: ../../include/widgets.php:428 ../../mod/connedit.php:572 -msgid "Family" -msgstr "Familia" - -#: ../../include/widgets.php:430 ../../mod/connedit.php:574 -msgid "Acquaintances" -msgstr "Conocidos/as" - -#: ../../include/widgets.php:431 ../../mod/connedit.php:575 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "Todas" - -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "Recargar" - -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "Configuración de la cuenta" - -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "Configuración del canal" - -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "Características adicionales" - -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "Configuración de características o complementos" - -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "Ajustes de visualización" - -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "Aplicaciones conectadas" - -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "Exportar canal" - -#: ../../include/widgets.php:529 ../../mod/connedit.php:683 -msgid "Connection Default Permissions" -msgstr "Permisos predeterminados de conexión" - -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "Configuración del canal premium" - -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" -msgstr "Menú de correo privado" - -#: ../../include/widgets.php:569 -msgid "Combined View" -msgstr "Vista combinada" - -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" -msgstr "Bandeja de entrada" - -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" -msgstr "Bandeja de salida" - -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" -msgstr "Nuevo mensaje" - -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" -msgstr "Conversaciones" - -#: ../../include/widgets.php:607 -msgid "Received Messages" -msgstr "Mensajes recibidos" - -#: ../../include/widgets.php:611 -msgid "Sent Messages" -msgstr "Enviar mensajes" - -#: ../../include/widgets.php:625 -msgid "No messages." -msgstr "Sin mensajes." - -#: ../../include/widgets.php:643 -msgid "Delete conversation" -msgstr "Eliminar conversación" - -#: ../../include/widgets.php:734 -msgid "Chat Rooms" -msgstr "Salas de chat" - -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" -msgstr "Salas de chat preferidas" - -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" -msgstr "Salas de chat sugeridas" - -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" -msgstr "foto/imagen" - -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" -msgstr "Valorar este canal" - -#: ../../include/widgets.php:1060 -msgid "View Ratings" -msgstr "Mostrar las valoraciones" - -#: ../../include/widgets.php:1071 -msgid "Public Hubs" -msgstr "Servidores públicos" - -#: ../../include/widgets.php:1119 -msgid "Forums" -msgstr "Foros" - -#: ../../include/widgets.php:1146 -msgid "Tasks" -msgstr "Tareas" - -#: ../../include/widgets.php:1155 -msgid "Documentation" -msgstr "Documentación" - -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" -msgstr "Información sobre el proyecto o sitio" - -#: ../../include/widgets.php:1158 -msgid "For Members" -msgstr "Para los usuarios" - -#: ../../include/widgets.php:1159 -msgid "For Administrators" -msgstr "Para los administradores" - -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "Para los desarrolladores" - -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "Sitio" - -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "Cuentas" - -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "Canales" - -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "Extensiones" - -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "Temas" - -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "Examinar la cola" - -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "Ajustes del perfil" - -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "Actualizaciones de la base de datos" - -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "Informes" - -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "Administrador" - -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "Ajustes de la extensión" - -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "Registros de usuarios pendientes de confirmación" - -#: ../../include/widgets.php:1275 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "Ver foto" - -#: ../../include/widgets.php:1291 ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "Editar álbum" - #: ../../include/text.php:393 msgid "prev" msgstr "anterior" @@ -3737,222 +3771,222 @@ msgstr "más antiguas" msgid "newer" msgstr "más recientes" -#: ../../include/text.php:777 +#: ../../include/text.php:784 msgid "No connections" msgstr "Sin conexiones" -#: ../../include/text.php:789 +#: ../../include/text.php:796 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "%d Conexión" msgstr[1] "%d Conexiones" -#: ../../include/text.php:802 ../../mod/viewconnections.php:101 +#: ../../include/text.php:809 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "Ver conexiones" -#: ../../include/text.php:946 +#: ../../include/text.php:953 msgid "poke" msgstr "un toque" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "ping" msgstr "un \"ping\"" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "pinged" msgstr "avisado/a" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prod" msgstr "una incitación" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prodded" msgstr "ha recibido una incitación" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slap" msgstr "una bofetada" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slapped" msgstr "ha recibido una bofetada" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "finger" msgstr "un \"finger\"" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "fingered" msgstr "ha recibido un \"finger\"" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuff" msgstr "un rechazo" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuffed" msgstr "ha sido rechazado/a" -#: ../../include/text.php:961 +#: ../../include/text.php:968 msgid "happy" msgstr "feliz" -#: ../../include/text.php:962 +#: ../../include/text.php:969 msgid "sad" msgstr "triste" -#: ../../include/text.php:963 +#: ../../include/text.php:970 msgid "mellow" msgstr "amable" -#: ../../include/text.php:964 +#: ../../include/text.php:971 msgid "tired" msgstr "cansado/a" -#: ../../include/text.php:965 +#: ../../include/text.php:972 msgid "perky" msgstr "fresco/a" -#: ../../include/text.php:966 +#: ../../include/text.php:973 msgid "angry" msgstr "enfadado/a" -#: ../../include/text.php:967 +#: ../../include/text.php:974 msgid "stupified" msgstr "estupefacto/a" -#: ../../include/text.php:968 +#: ../../include/text.php:975 msgid "puzzled" msgstr "perplejo/a" -#: ../../include/text.php:969 +#: ../../include/text.php:976 msgid "interested" msgstr "interesado/a" -#: ../../include/text.php:970 +#: ../../include/text.php:977 msgid "bitter" msgstr "amargado/a" -#: ../../include/text.php:971 +#: ../../include/text.php:978 msgid "cheerful" msgstr "alegre" -#: ../../include/text.php:972 +#: ../../include/text.php:979 msgid "alive" msgstr "vivo/a" -#: ../../include/text.php:973 +#: ../../include/text.php:980 msgid "annoyed" msgstr "molesto/a" -#: ../../include/text.php:974 +#: ../../include/text.php:981 msgid "anxious" msgstr "ansioso/a" -#: ../../include/text.php:975 +#: ../../include/text.php:982 msgid "cranky" msgstr "de mal humor" -#: ../../include/text.php:976 +#: ../../include/text.php:983 msgid "disturbed" msgstr "perturbado/a" -#: ../../include/text.php:977 +#: ../../include/text.php:984 msgid "frustrated" msgstr "frustrado/a" -#: ../../include/text.php:978 +#: ../../include/text.php:985 msgid "depressed" msgstr "deprimido/a" -#: ../../include/text.php:979 +#: ../../include/text.php:986 msgid "motivated" msgstr "motivado/a" -#: ../../include/text.php:980 +#: ../../include/text.php:987 msgid "relaxed" msgstr "relajado/a" -#: ../../include/text.php:981 +#: ../../include/text.php:988 msgid "surprised" msgstr "sorprendido/a" -#: ../../include/text.php:1157 +#: ../../include/text.php:1164 msgid "May" msgstr "mayo" -#: ../../include/text.php:1234 ../../include/text.php:1238 +#: ../../include/text.php:1241 ../../include/text.php:1245 msgid "Unknown Attachment" msgstr "Adjunto no reconocido" -#: ../../include/text.php:1240 +#: ../../include/text.php:1247 msgid "unknown" msgstr "desconocido" -#: ../../include/text.php:1276 +#: ../../include/text.php:1283 msgid "remove category" msgstr "eliminar categoría" -#: ../../include/text.php:1353 +#: ../../include/text.php:1360 msgid "remove from file" msgstr "eliminar del fichero" -#: ../../include/text.php:1465 ../../include/text.php:1476 +#: ../../include/text.php:1472 ../../include/text.php:1483 msgid "Click to open/close" msgstr "Pulsar para abrir/cerrar" -#: ../../include/text.php:1649 ../../mod/events.php:497 +#: ../../include/text.php:1656 ../../mod/events.php:495 msgid "Link to Source" msgstr "Enlazar con la entrada en su ubicación original" -#: ../../include/text.php:1670 ../../include/text.php:1742 +#: ../../include/text.php:1677 ../../include/text.php:1749 msgid "default" msgstr "por defecto" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "Page layout" msgstr "Formato de la página" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "You can create your own with the layouts tool" msgstr "Puede crear su propio formato gráfico con las herramientas de diseño" -#: ../../include/text.php:1720 +#: ../../include/text.php:1727 msgid "Page content type" msgstr "Tipo de contenido de página" -#: ../../include/text.php:1754 +#: ../../include/text.php:1761 msgid "Select an alternate language" msgstr "Seleccionar un idioma alternativo" -#: ../../include/text.php:1886 +#: ../../include/text.php:1893 msgid "activity" msgstr "actividad" -#: ../../include/text.php:2181 +#: ../../include/text.php:2188 msgid "Design Tools" msgstr "Herramientas de diseño" -#: ../../include/text.php:2184 ../../mod/blocks.php:147 +#: ../../include/text.php:2191 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Bloques" -#: ../../include/text.php:2185 ../../mod/menu.php:103 +#: ../../include/text.php:2192 ../../mod/menu.php:103 msgid "Menus" msgstr "Menús" -#: ../../include/text.php:2186 ../../mod/layouts.php:174 +#: ../../include/text.php:2193 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Formato gráfico" -#: ../../include/text.php:2187 +#: ../../include/text.php:2194 msgid "Pages" msgstr "Páginas" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1483 +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 msgid "Logout" msgstr "Finalizar sesión" @@ -4025,7 +4059,7 @@ msgstr "Pulsar para identificarse en su servidor de inicio" msgid "Home Page" msgstr "Página de inicio" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1460 +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 msgid "Register" msgstr "Registrarse" @@ -4143,10 +4177,10 @@ msgstr "Modo seguro" #: ../../mod/mitem.php:229 ../../mod/connedit.php:635 #: ../../mod/connedit.php:684 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:409 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:410 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:106 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "No" msgstr "No" @@ -4155,10 +4189,10 @@ msgstr "No" #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:411 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:412 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:105 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "Yes" msgstr "Sí" @@ -4788,11 +4822,11 @@ msgstr "Actividad reciente" msgid "View recent posts and comments" msgstr "Ver publicaciones y comentarios recientes" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "Desbloquear" -#: ../../mod/connedit.php:519 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "Bloquear" @@ -4948,7 +4982,7 @@ msgid "" " communication." msgstr "(%s) desearía conectar con usted. por favor, apruebe esta conexión para permitir la comunicación." -#: ../../mod/connedit.php:710 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "Aprobar" @@ -5184,12 +5218,12 @@ msgstr "Tiempo de expiración de los mensajes en los chats (en minutos)" msgid "%1$s's Chatrooms" msgstr "Salas de chat de %1$s" -#: ../../mod/search.php:211 +#: ../../mod/search.php:212 #, php-format msgid "Items tagged with: %s" msgstr "elementos etiquetados con: %s" -#: ../../mod/search.php:213 +#: ../../mod/search.php:214 #, php-format msgid "Search results for: %s" msgstr "Resultados de la búsqueda para: %s" @@ -5302,7 +5336,7 @@ msgstr "Usar como foto del perfil" msgid "Private Photo" msgstr "Foto privada" -#: ../../mod/photos.php:905 ../../mod/events.php:528 +#: ../../mod/photos.php:905 ../../mod/events.php:525 ../../mod/events.php:532 msgid "Previous" msgstr "Anterior" @@ -5310,7 +5344,8 @@ msgstr "Anterior" msgid "View Full Size" msgstr "Ver tamaño completo" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 +#: ../../mod/photos.php:914 ../../mod/events.php:526 ../../mod/events.php:533 +#: ../../mod/setup.php:285 msgid "Next" msgstr "Siguiente" @@ -5407,7 +5442,7 @@ msgstr "El servidor de este directorio necesita un \"token\" de acceso" msgid "Item is not editable" msgstr "El elemento no es editable" -#: ../../mod/editpost.php:55 +#: ../../mod/editpost.php:57 msgid "Delete item?" msgstr "¿Borrar elemento?" @@ -5459,10 +5494,10 @@ msgstr "# clones" msgid "Message queues" msgstr "Mensajes en cola" -#: ../../mod/admin.php:198 ../../mod/admin.php:432 ../../mod/admin.php:531 -#: ../../mod/admin.php:799 ../../mod/admin.php:963 ../../mod/admin.php:1055 -#: ../../mod/admin.php:1095 ../../mod/admin.php:1255 ../../mod/admin.php:1289 -#: ../../mod/admin.php:1374 +#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 +#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 +#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 +#: ../../mod/admin.php:1380 msgid "Administration" msgstr "Administración" @@ -5474,7 +5509,7 @@ msgstr "Sumario" msgid "Registered accounts" msgstr "Cuentas registradas" -#: ../../mod/admin.php:203 ../../mod/admin.php:535 +#: ../../mod/admin.php:203 ../../mod/admin.php:536 msgid "Pending registrations" msgstr "Registros pendientes" @@ -5482,7 +5517,7 @@ msgstr "Registros pendientes" msgid "Registered channels" msgstr "Canales registrados" -#: ../../mod/admin.php:205 ../../mod/admin.php:536 +#: ../../mod/admin.php:205 ../../mod/admin.php:537 msgid "Active plugins" msgstr "Extensiones activas" @@ -5506,666 +5541,666 @@ msgstr "experimental" msgid "unsupported" msgstr "no soportado" -#: ../../mod/admin.php:410 +#: ../../mod/admin.php:411 msgid "Yes - with approval" msgstr "Sí - con aprobación" -#: ../../mod/admin.php:416 +#: ../../mod/admin.php:417 msgid "My site is not a public server" msgstr "Mi sitio no es un servidor público" -#: ../../mod/admin.php:417 +#: ../../mod/admin.php:418 msgid "My site has paid access only" msgstr "Mi sitio es un servicio de pago" -#: ../../mod/admin.php:418 +#: ../../mod/admin.php:419 msgid "My site has free access only" msgstr "Mi sitio es un servicio gratuito" -#: ../../mod/admin.php:419 +#: ../../mod/admin.php:420 msgid "My site offers free accounts with optional paid upgrades" msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago" -#: ../../mod/admin.php:435 ../../mod/register.php:207 +#: ../../mod/admin.php:436 ../../mod/register.php:207 msgid "Registration" msgstr "Registro" -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:437 msgid "File upload" msgstr "Fichero subido" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:438 msgid "Policies" msgstr "Políticas" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:443 msgid "Site name" msgstr "Nombre del sitio" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:444 msgid "Banner/Logo" msgstr "Banner/Logo" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "Administrator Information" msgstr "Información del Administrador" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:446 msgid "System language" msgstr "Idioma del sistema" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "System theme" msgstr "Tema gráfico del sistema" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "" "Default system theme - may be over-ridden by user profiles - change theme settings" msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - modificar los ajustes del tema" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Mobile system theme" msgstr "Tema del sistema para móviles" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Theme for mobile devices" msgstr "Tema para dispositivos móviles" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "Allow Feeds as Connections" msgstr "Permitir flujos RSS como conexiones" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "(Heavy system resource usage)" msgstr "(Uso intenso de los recursos del sistema)" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "Maximum image size" msgstr "Tamaño máximo de la imagen" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites." -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:452 msgid "Does this site allow new member registration?" msgstr "¿Debe este sitio permitir el registro de nuevos miembros?" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:453 msgid "Which best describes the types of account offered by this hub?" msgstr "¿Cómo describiría el tipo de servicio ofrecido por este servidor?" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Register text" msgstr "Texto del registro" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Will be displayed prominently on the registration page." msgstr "Se mostrará de forma destacada en la página de registro." -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "Site homepage to show visitors (default: login box)" msgstr "Página personal que se mostrará a los visitantes (por defecto: la página de identificación)" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "ejemplo: 'public' para mostrar contenido público de los usuarios, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero." -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "Preserve site homepage URL" msgstr "Preservar la dirección de la página personal" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "Presenta la página personal del sitio en un marco en la ubicación original, en vez de redirigirla." -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "Accounts abandoned after x days" msgstr "Cuentas abandonadas después de x días" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Para evitar consumir recursos del sistema intentando poner al día las cuentas abandonadas. Introduzca 0 para no tener límite de tiempo." -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "Allowed friend domains" msgstr "Dominios amigos permitidos" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "Lista separada por comas de dominios a los que está permitido establecer relaciones de amistad con este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio." -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "Allowed email domains" msgstr "Se aceptan dominios de correo electrónico" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "Lista separada por comas de los dominios de los que se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio. " -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "Not allowed email domains" msgstr "No se permiten dominios de correo electrónico" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "" "Comma separated list of domains which are not allowed in email addresses for" " registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "Lista separada por comas de los dominios de los que no se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para no aceptar cualquier dominio, excepto los que se hayan autorizado." -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "Block public" msgstr "Bloquear páginas públicas" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "Activar para bloquear el acceso a todas las páginas públicas personales en este sitio, salvo que estén identificadas en el sistema." -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "Verify Email Addresses" msgstr "Verificar las direcciones de correo electrónico" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)." -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "Force publish" msgstr "Forzar la publicación" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio." -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "Disable discovery tab" msgstr "Desactivar la pestaña \"Descubrir\"" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "" "Remove the tab in the network view with public content pulled from sources " "chosen for this site." msgstr "Quitar la pestaña para ver contenido público extraído de las fuentes elegidas por este sitio." -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "login on Homepage" msgstr "acceso a la página personal" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido." -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Directory Server URL" msgstr "URL del servidor de directorio" -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Default directory server" msgstr "Servidor de directorio predeterminado" -#: ../../mod/admin.php:468 +#: ../../mod/admin.php:469 msgid "Proxy user" msgstr "Usuario del proxy" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:470 msgid "Proxy URL" msgstr "Dirección del proxy" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Network timeout" msgstr "Tiempo de espera de la red" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Valor en segundos. Poner a 0 para que no haya tiempo límite (no recomendado)" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "Delivery interval" msgstr "Intervalo de entrega" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "Retrasar los procesos de transmisión en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para sitios compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados." -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "Deliveries per process" msgstr "Intentos de envío por proceso" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust" " if necessary to tune system performance. Recommend: 1-5." msgstr "Numero de envíos a intentar en un único proceso del sistema operativo. Ajustar si es necesario mejorar el rendimiento. Se recomienda: 1-5." -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "Poll interval" msgstr "Intervalo de sondeo" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "Retrasar el sondeo en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de transmisión." -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "Maximum Load Average" msgstr "Carga media máxima" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Carga máxima del sistema antes de que los procesos de transmisión y sondeo se hayan retardado - por defecto, 50." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "Expiration period in days for imported (matrix/network) content" msgstr "Periodo de caducidad en días para el contenido importado (red)" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "0 for no expiration of imported content" msgstr "0 para que no caduque el contenido importado" -#: ../../mod/admin.php:523 +#: ../../mod/admin.php:524 msgid "No server found" msgstr "Servidor no encontrado" -#: ../../mod/admin.php:530 ../../mod/admin.php:813 +#: ../../mod/admin.php:531 ../../mod/admin.php:814 msgid "ID" msgstr "ID" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "for channel" msgstr "por canal" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "on server" msgstr "en el servidor" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "Status" msgstr "Estado" -#: ../../mod/admin.php:532 +#: ../../mod/admin.php:533 msgid "Server" msgstr "Servidor" -#: ../../mod/admin.php:549 +#: ../../mod/admin.php:550 msgid "Update has been marked successful" msgstr "La actualización ha sido marcada como exitosa" -#: ../../mod/admin.php:559 +#: ../../mod/admin.php:560 #, php-format msgid "Executing %s failed. Check system logs." msgstr "La ejecución de %s ha fallado. Mirar en los informes del sistema." -#: ../../mod/admin.php:562 +#: ../../mod/admin.php:563 #, php-format msgid "Update %s was successfully applied." msgstr "La actualización de %s se ha realizado exitosamente." -#: ../../mod/admin.php:566 +#: ../../mod/admin.php:567 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "La actualización de %s no ha devuelto ningún estado. No se sabe si ha tenido éxito." -#: ../../mod/admin.php:569 +#: ../../mod/admin.php:570 #, php-format msgid "Update function %s could not be found." msgstr "No se encuentra la función de actualización de %s." -#: ../../mod/admin.php:585 +#: ../../mod/admin.php:586 msgid "No failed updates." msgstr "No ha fallado ninguna actualización." -#: ../../mod/admin.php:589 +#: ../../mod/admin.php:590 msgid "Failed Updates" msgstr "Han fallado las actualizaciones" -#: ../../mod/admin.php:591 +#: ../../mod/admin.php:592 msgid "Mark success (if update was manually applied)" msgstr "Marcar como exitosa (si la actualización se ha hecho manualmente)" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:593 msgid "Attempt to execute this update step automatically" msgstr "Intentar ejecutar este paso de actualización automáticamente" -#: ../../mod/admin.php:624 +#: ../../mod/admin.php:625 msgid "Queue Statistics" msgstr "Estadísticas de la cola" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:626 msgid "Total Entries" msgstr "Total de entradas" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:627 msgid "Priority" msgstr "Prioridad" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:628 msgid "Destination URL" msgstr "Dirección de destino" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:629 msgid "Mark hub permanently offline" msgstr "Marcar el servidor como permanentemente fuera de línea" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:630 msgid "Empty queue for this hub" msgstr "Vaciar la cola para este servidor" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:631 msgid "Last known contact" msgstr "Último contacto conocido" -#: ../../mod/admin.php:666 +#: ../../mod/admin.php:667 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "%s cuenta bloqueada/desbloqueada" msgstr[1] "%s cuenta bloqueada/desbloqueada" -#: ../../mod/admin.php:674 +#: ../../mod/admin.php:675 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "%s cuentas eliminadas" msgstr[1] "%s cuentas eliminadas" -#: ../../mod/admin.php:710 +#: ../../mod/admin.php:711 msgid "Account not found" msgstr "Cuenta no encontrada" -#: ../../mod/admin.php:722 +#: ../../mod/admin.php:723 #, php-format msgid "Account '%s' deleted" msgstr "La cuenta '%s' ha sido eliminada" -#: ../../mod/admin.php:730 +#: ../../mod/admin.php:731 #, php-format msgid "Account '%s' blocked" msgstr "La cuenta '%s' ha sido bloqueada" -#: ../../mod/admin.php:738 +#: ../../mod/admin.php:739 #, php-format msgid "Account '%s' unblocked" msgstr "La cuenta '%s' ha sido desbloqueada" -#: ../../mod/admin.php:800 ../../mod/admin.php:812 +#: ../../mod/admin.php:801 ../../mod/admin.php:813 msgid "Users" msgstr "Usuarios" -#: ../../mod/admin.php:802 ../../mod/admin.php:966 +#: ../../mod/admin.php:803 ../../mod/admin.php:967 msgid "select all" msgstr "seleccionar todo" -#: ../../mod/admin.php:803 +#: ../../mod/admin.php:804 msgid "User registrations waiting for confirm" msgstr "Registros de usuario en espera de aprobación" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:805 msgid "Request date" msgstr "Fecha de solicitud" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:806 msgid "No registrations." msgstr "Sin registros." -#: ../../mod/admin.php:807 +#: ../../mod/admin.php:808 msgid "Deny" msgstr "Rechazar" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Register date" msgstr "Fecha de registro" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Last login" msgstr "Último acceso" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Expires" msgstr "Caduca" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Service Class" msgstr "Clase de servicio" -#: ../../mod/admin.php:815 +#: ../../mod/admin.php:816 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted" " on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "¡Las cuentas seleccionadas van a ser eliminadas!\\n\\n¡Todo lo que estas cuentas han publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:817 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "¡La cuenta {0} va a ser eliminada!\\n\\n¡Todo lo que esta cuenta ha publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:852 +#: ../../mod/admin.php:853 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "%s canales censurados/no censurados" msgstr[1] "%s canales censurados/no censurados" -#: ../../mod/admin.php:861 +#: ../../mod/admin.php:862 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "%s código permitido/no permitido al canal" msgstr[1] "%s código permitido/no permitido al canal" -#: ../../mod/admin.php:868 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "%s canales eliminados" msgstr[1] "%s canales eliminados" -#: ../../mod/admin.php:888 +#: ../../mod/admin.php:889 msgid "Channel not found" msgstr "Canal no encontrado" -#: ../../mod/admin.php:899 +#: ../../mod/admin.php:900 #, php-format msgid "Channel '%s' deleted" msgstr "Canal '%s' eliminado" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' censored" msgstr "Canal '%s' censurado" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' uncensored" msgstr "Canal '%s' no censurado" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code allowed" msgstr "Código permitido al canal '%s'" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code disallowed" msgstr "Código no permitido al canal '%s'" -#: ../../mod/admin.php:968 +#: ../../mod/admin.php:969 msgid "Censor" msgstr "Censurar" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:970 msgid "Uncensor" msgstr "No censurar" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:971 msgid "Allow Code" msgstr "Permitir código" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:972 msgid "Disallow Code" msgstr "No permitir código" -#: ../../mod/admin.php:973 +#: ../../mod/admin.php:974 msgid "UID" msgstr "UID" -#: ../../mod/admin.php:973 ../../mod/profiles.php:447 +#: ../../mod/admin.php:974 ../../mod/profiles.php:447 msgid "Address" msgstr "Dirección" -#: ../../mod/admin.php:975 +#: ../../mod/admin.php:976 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Los canales seleccionados se eliminarán!\\n\\nTodo lo publicado por estos canales en este sitio se borrarán definitivamente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:977 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "El canal {0} va a ser eliminado!\\n\\nTodo lo publicado por el canal en este sitio se borrará definitivamente!\\n\\n¿Está seguro de querer hacerlo?" -#: ../../mod/admin.php:1016 +#: ../../mod/admin.php:1017 #, php-format msgid "Plugin %s disabled." msgstr "Extensión %s desactivada." -#: ../../mod/admin.php:1020 +#: ../../mod/admin.php:1021 #, php-format msgid "Plugin %s enabled." msgstr "Extensión %s activada." -#: ../../mod/admin.php:1030 ../../mod/admin.php:1228 +#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 msgid "Disable" msgstr "Desactivar" -#: ../../mod/admin.php:1033 ../../mod/admin.php:1230 +#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 msgid "Enable" msgstr "Activar" -#: ../../mod/admin.php:1057 ../../mod/admin.php:1257 +#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 msgid "Toggle" msgstr "Cambiar" -#: ../../mod/admin.php:1065 ../../mod/admin.php:1267 +#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 msgid "Author: " msgstr "Autor:" -#: ../../mod/admin.php:1066 ../../mod/admin.php:1268 +#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 msgid "Maintainer: " msgstr "Mantenedor:" -#: ../../mod/admin.php:1193 +#: ../../mod/admin.php:1199 msgid "No themes found." msgstr "No se han encontrado temas." -#: ../../mod/admin.php:1249 +#: ../../mod/admin.php:1255 msgid "Screenshot" msgstr "Instantánea de pantalla" -#: ../../mod/admin.php:1295 +#: ../../mod/admin.php:1301 msgid "[Experimental]" msgstr "[Experimental]" -#: ../../mod/admin.php:1296 +#: ../../mod/admin.php:1302 msgid "[Unsupported]" msgstr "[No soportado]" -#: ../../mod/admin.php:1320 +#: ../../mod/admin.php:1326 msgid "Log settings updated." msgstr "Actualizado el informe de configuraciones." -#: ../../mod/admin.php:1377 +#: ../../mod/admin.php:1383 msgid "Clear" msgstr "Vaciar" -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1389 msgid "Debugging" msgstr "Depuración" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "Log file" msgstr "Fichero de informe" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Debe tener permisos de escritura por el servidor web. La ruta es relativa al directorio de instalación de Hubzilla." -#: ../../mod/admin.php:1385 +#: ../../mod/admin.php:1391 msgid "Log level" msgstr "Nivel de depuración" -#: ../../mod/admin.php:1431 +#: ../../mod/admin.php:1437 msgid "New Profile Field" msgstr "Nuevo campo en el perfil" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "Field nickname" msgstr "Alias del campo" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "System name of field" msgstr "Nombre del campo en el sistema" -#: ../../mod/admin.php:1433 ../../mod/admin.php:1453 +#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 msgid "Input type" msgstr "Tipo de entrada" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Field Name" msgstr "Nombre del campo" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Label on profile pages" msgstr "Etiqueta a mostrar en la página del perfil" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Help text" msgstr "Texto de ayuda" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Additional info (optional)" msgstr "Información adicional (opcional)" -#: ../../mod/admin.php:1445 +#: ../../mod/admin.php:1451 msgid "Field definition not found" msgstr "Definición del campo no encontrada" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1457 msgid "Edit Profile Field" msgstr "Modificar el campo del perfil" @@ -6404,12 +6439,12 @@ msgstr "Nombre del módulo:" msgid "Layout Help" msgstr "Ayuda para el diseño de la página" -#: ../../mod/subthread.php:108 +#: ../../mod/subthread.php:114 #, php-format msgid "%1$s is following %2$s's %3$s" msgstr "%1$s está siguiendo %2$s de %3$s" -#: ../../mod/subthread.php:110 +#: ../../mod/subthread.php:116 #, php-format msgid "%1$s stopped following %2$s's %3$s" msgstr "%1$s ha dejado de seguir %3$s de %2$s" @@ -6438,7 +6473,7 @@ msgid "" "Password reset failed." msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado." -#: ../../mod/lostpass.php:86 ../../boot.php:1492 +#: ../../mod/lostpass.php:86 ../../boot.php:1494 msgid "Password Reset" msgstr "Restablecer la contraseña" @@ -6524,33 +6559,29 @@ msgstr "Se requieren el título del evento y su hora de inicio." msgid "Event not found." msgstr "Evento no encontrado." -#: ../../mod/events.php:448 +#: ../../mod/events.php:446 msgid "l, F j" msgstr "l j F" -#: ../../mod/events.php:470 +#: ../../mod/events.php:468 msgid "Edit event" msgstr "Editar evento" -#: ../../mod/events.php:472 +#: ../../mod/events.php:470 msgid "Delete event" msgstr "Borrar evento" -#: ../../mod/events.php:506 +#: ../../mod/events.php:504 msgid "calendar" msgstr "calendario" -#: ../../mod/events.php:527 -msgid "Create New Event" -msgstr "Crear un nuevo evento" +#: ../../mod/events.php:524 +msgid "New Event" +msgstr "Nuevo evento" -#: ../../mod/events.php:530 -msgid "Export" -msgstr "Exportar" - -#: ../../mod/events.php:533 -msgid "Import" -msgstr "Importar" +#: ../../mod/events.php:534 +msgid "Today" +msgstr "Hoy" #: ../../mod/events.php:564 msgid "Event removed" @@ -6770,20 +6801,24 @@ msgstr "La entrada vacía ha sido desechada." msgid "Executable content type not permitted to this channel." msgstr "Contenido de tipo ejecutable no permitido en este canal." -#: ../../mod/item.php:910 +#: ../../mod/item.php:822 +msgid "Duplicate post suppressed." +msgstr "Se ha suprimido la entrada duplicada." + +#: ../../mod/item.php:953 msgid "System error. Post not saved." msgstr "Error del sistema. La entrada no se ha podido salvar." -#: ../../mod/item.php:1177 +#: ../../mod/item.php:1220 msgid "Unable to obtain post information from database." msgstr "No ha sido posible obtener información de la entrada en la base de datos." -#: ../../mod/item.php:1184 +#: ../../mod/item.php:1227 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal." -#: ../../mod/item.php:1191 +#: ../../mod/item.php:1234 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "Ha alcanzado su límite de %1$.0f páginas web." @@ -9255,51 +9290,51 @@ msgstr "Ajustar el tamaño de la foto del autor de la conversación" msgid "Set size of followup author photos" msgstr "Ajustar el tamaño de foto de los seguidores del autor" -#: ../../boot.php:1289 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "La actualización %s ha fallado. Mire el informe de errores." -#: ../../boot.php:1292 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "Error de actualización en %s" -#: ../../boot.php:1459 +#: ../../boot.php:1461 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "Crear una cuenta para acceder a los servicios y aplicaciones dentro de Hubzilla" -#: ../../boot.php:1487 +#: ../../boot.php:1489 msgid "Password" msgstr "Contraseña" -#: ../../boot.php:1488 +#: ../../boot.php:1490 msgid "Remember me" msgstr "Recordarme" -#: ../../boot.php:1491 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "¿Olvidó su contraseña?" -#: ../../boot.php:2111 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "cambiar a modo móvil" -#: ../../boot.php:2246 +#: ../../boot.php:2248 msgid "Website SSL certificate is not valid. Please correct." msgstr "El certificado SSL del sitio web no es válido. Por favor, solucione el problema." -#: ../../boot.php:2249 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Error SSL del sitio web en %s" -#: ../../boot.php:2286 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "Las tareas del Planificador/Cron no están funcionando." -#: ../../boot.php:2290 +#: ../../boot.php:2292 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Las tareas de Cron no están funcionando en %s" diff --git a/view/es/hstrings.php b/view/es/hstrings.php index ec4a5c71e..0084304c9 100644 --- a/view/es/hstrings.php +++ b/view/es/hstrings.php @@ -5,173 +5,6 @@ function string_plural_select_es($n){ return ($n != 1);; }} ; -$a->strings["photo"] = "foto"; -$a->strings["event"] = "evento"; -$a->strings["channel"] = "canal"; -$a->strings["status"] = "el mensaje de estado"; -$a->strings["comment"] = "comentario"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta %3\$s de %2\$s"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "a %1\$s no le gusta %3\$s de %2\$s"; -$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora está conectado/a con %2\$s"; -$a->strings["%1\$s poked %2\$s"] = "%1\$s ha dado un toque a %2\$s"; -$a->strings["poked"] = "ha recibido un toque"; -$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s"; -$a->strings["__ctx:title__ Likes"] = "Me gusta"; -$a->strings["__ctx:title__ Dislikes"] = "No me gusta"; -$a->strings["__ctx:title__ Agree"] = "De acuerdo"; -$a->strings["__ctx:title__ Disagree"] = "En desacuerdo"; -$a->strings["__ctx:title__ Abstain"] = "Abstención"; -$a->strings["__ctx:title__ Attending"] = "Participaré"; -$a->strings["__ctx:title__ Not attending"] = "No participaré"; -$a->strings["__ctx:title__ Might attend"] = "Quizá participe"; -$a->strings["Select"] = "Seleccionar"; -$a->strings["Delete"] = "Eliminar"; -$a->strings["Private Message"] = "Mensaje Privado"; -$a->strings["Message signature validated"] = "Firma de mensaje validada"; -$a->strings["Message signature incorrect"] = "Firma de mensaje incorrecta"; -$a->strings["View %s's profile @ %s"] = "Ver el perfil @ %s de %s"; -$a->strings["Categories:"] = "Categorías:"; -$a->strings["Filed under:"] = "Archivado bajo:"; -$a->strings["from %s"] = "desde %s"; -$a->strings["last edited: %s"] = "último cambio: %s"; -$a->strings["Expires: %s"] = "Caduca: %s"; -$a->strings["View in context"] = "Mostrar en su contexto"; -$a->strings["Please wait"] = "Espere por favor"; -$a->strings["remove"] = "eliminar"; -$a->strings["Loading..."] = "Cargando..."; -$a->strings["Delete Selected Items"] = "Eliminar elementos seleccionados"; -$a->strings["View Source"] = "Ver la fuente original de la entrada"; -$a->strings["Follow Thread"] = "Seguir el hilo"; -$a->strings["Stop Following"] = "Dejar de seguir"; -$a->strings["View Status"] = "Ver el estado actual"; -$a->strings["View Profile"] = "Ver el perfil"; -$a->strings["View Photos"] = "Ver fotos"; -$a->strings["Activity/Posts"] = "Actividad y entradas"; -$a->strings["Connect"] = "Conectar"; -$a->strings["Edit Connection"] = "Editar conexión"; -$a->strings["Send PM"] = "Enviar un mensaje privado"; -$a->strings["Poke"] = "Toques y otras cosas"; -$a->strings["Unknown"] = "Desconocido"; -$a->strings["%s likes this."] = "a %s le gusta esto."; -$a->strings["%s doesn't like this."] = "a %s no le gusta esto."; -$a->strings["%2\$d people like this."] = array( - 0 => "a %2\$d personas le gusta esto.", - 1 => "a %2\$d personas les gusta esto.", -); -$a->strings["%2\$d people don't like this."] = array( - 0 => "a %2\$d personas no les gusta esto.", - 1 => "a %2\$d personas no les gusta esto.", -); -$a->strings["and"] = "y"; -$a->strings[", and %d other people"] = array( - 0 => ", y %d persona más", - 1 => ", y %d personas más", -); -$a->strings["%s like this."] = "a %s le gusta esto."; -$a->strings["%s don't like this."] = "a %s no le gusta esto."; -$a->strings["Visible to everybody"] = "Visible para cualquiera"; -$a->strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:"; -$a->strings["Please enter a video link/URL:"] = "Por favor, introduzca un enlace de vídeo:"; -$a->strings["Please enter an audio link/URL:"] = "Por favor, introduzca un enlace de audio:"; -$a->strings["Tag term:"] = "Término de la etiqueta:"; -$a->strings["Save to Folder:"] = "Guardar en carpeta:"; -$a->strings["Where are you right now?"] = "¿Donde está ahora?"; -$a->strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM"; -$a->strings["Preview"] = "Previsualizar"; -$a->strings["Share"] = "Compartir"; -$a->strings["Page link name"] = "Nombre de enlace de página"; -$a->strings["Post as"] = "Publicar como"; -$a->strings["Bold"] = "Negrita"; -$a->strings["Italic"] = "Itálico "; -$a->strings["Underline"] = "Subrayar"; -$a->strings["Quote"] = "Citar"; -$a->strings["Code"] = "Código"; -$a->strings["Upload photo"] = "Subir foto"; -$a->strings["upload photo"] = "subir foto"; -$a->strings["Attach file"] = "Adjuntar fichero"; -$a->strings["attach file"] = "adjuntar fichero"; -$a->strings["Insert web link"] = "Insertar enlace web"; -$a->strings["web link"] = "enlace web"; -$a->strings["Insert video link"] = "Insertar enlace de vídeo"; -$a->strings["video link"] = "enlace de vídeo"; -$a->strings["Insert audio link"] = "Insertar enlace de audio"; -$a->strings["audio link"] = "enlace de audio"; -$a->strings["Set your location"] = "Establecer su ubicación"; -$a->strings["set location"] = "establecer ubicación"; -$a->strings["Toggle voting"] = "Cambiar votación"; -$a->strings["Clear browser location"] = "Eliminar los datos de ubicación del navegador"; -$a->strings["clear location"] = "borrar los datos de ubicación"; -$a->strings["Title (optional)"] = "Título (opcional)"; -$a->strings["Categories (optional, comma-separated list)"] = "Categorías (opcional, lista separada por comas)"; -$a->strings["Permission settings"] = "Configuración de permisos"; -$a->strings["permissions"] = "permisos"; -$a->strings["Public post"] = "Entrada pública"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com"; -$a->strings["Set expiration date"] = "Configurar fecha de caducidad"; -$a->strings["Set publish date"] = "Establecer la fecha de publicación"; -$a->strings["Encrypt text"] = "Cifrar texto"; -$a->strings["OK"] = "OK"; -$a->strings["Cancel"] = "Cancelar"; -$a->strings["Discover"] = "Descubrir"; -$a->strings["Imported public streams"] = "Flujos públicos importados"; -$a->strings["Commented Order"] = "Comentarios recientes"; -$a->strings["Sort by Comment Date"] = "Ordenar por fecha de comentario"; -$a->strings["Posted Order"] = "Publicaciones recientes"; -$a->strings["Sort by Post Date"] = "Ordenar por fecha de publicación"; -$a->strings["Personal"] = "Personales"; -$a->strings["Posts that mention or involve you"] = "Publicaciones que le mencionan o involucran"; -$a->strings["New"] = "Nuevas"; -$a->strings["Activity Stream - by date"] = "Flujo de actividad - por fecha"; -$a->strings["Starred"] = "Preferidas"; -$a->strings["Favourite Posts"] = "Publicaciones favoritas"; -$a->strings["Spam"] = "Correo basura"; -$a->strings["Posts flagged as SPAM"] = "Publicaciones marcadas como basura"; -$a->strings["Channel"] = "Canal"; -$a->strings["Status Messages and Posts"] = "Mensajes de estado y publicaciones"; -$a->strings["About"] = "Sobre mí"; -$a->strings["Profile Details"] = "Detalles del perfil"; -$a->strings["Photos"] = "Fotos"; -$a->strings["Photo Albums"] = "Álbumes de fotos"; -$a->strings["Files"] = "Ficheros"; -$a->strings["Files and Storage"] = "Ficheros y repositorio"; -$a->strings["Chatrooms"] = "Salas de chat"; -$a->strings["Bookmarks"] = "Marcadores"; -$a->strings["Saved Bookmarks"] = "Marcadores guardados"; -$a->strings["Webpages"] = "Páginas web"; -$a->strings["Manage Webpages"] = "Administrar páginas web"; -$a->strings["View all"] = "Ver todo"; -$a->strings["__ctx:noun__ Like"] = array( - 0 => "Me gusta", - 1 => "Me gusta", -); -$a->strings["__ctx:noun__ Dislike"] = array( - 0 => "No me gusta", - 1 => "No me gusta", -); -$a->strings["__ctx:noun__ Attending"] = array( - 0 => "Participaré", - 1 => "Participaré", -); -$a->strings["__ctx:noun__ Not Attending"] = array( - 0 => "No participaré", - 1 => "No participaré", -); -$a->strings["__ctx:noun__ Undecided"] = array( - 0 => "Indeciso/a", - 1 => "Indecisos/as", -); -$a->strings["__ctx:noun__ Agree"] = array( - 0 => "Está de acuerdo", - 1 => "De acuerdo", -); -$a->strings["__ctx:noun__ Disagree"] = array( - 0 => "No está de acuerdo", - 1 => "En desacuerdo", -); -$a->strings["__ctx:noun__ Abstain"] = array( - 0 => "se abstiene", - 1 => "Se abstienen", -); $a->strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero importado."; $a->strings["Unable to create a unique channel address. Import failed."] = "No se ha podido crear una dirección de canal única. Ha fallado la importación."; $a->strings["Import completed."] = "Importación completada."; @@ -182,6 +15,8 @@ $a->strings["Addressbook"] = "Libreta de direcciones"; $a->strings["Calendar"] = "Calendario"; $a->strings["Schedule Inbox"] = "Programar bandeja de entrada"; $a->strings["Schedule Outbox"] = "Programar bandeja de salida"; +$a->strings["Unknown"] = "Desconocido"; +$a->strings["Files"] = "Ficheros"; $a->strings["Total"] = "Total"; $a->strings["Shared"] = "Compartido"; $a->strings["Create"] = "Crear"; @@ -191,6 +26,7 @@ $a->strings["Type"] = "Tipo"; $a->strings["Size"] = "Tamaño"; $a->strings["Last Modified"] = "Última modificación"; $a->strings["Edit"] = "Editar"; +$a->strings["Delete"] = "Eliminar"; $a->strings["You are using %1\$s of your available file storage."] = "Está usando %1\$s de su espacio disponible para ficheros."; $a->strings["You are using %1\$s of %2\$s available file storage. (%3\$s%)"] = "Está usando %1\$s de %2\$s que tiene a su disposición para ficheros. (%3\$s%)"; $a->strings["WARNING:"] = "ATENCIÓN:"; @@ -289,6 +125,8 @@ $a->strings["Enable Voting Tools"] = "Activar herramientas de votación"; $a->strings["Provide a class of post which others can vote on"] = "Proveer una clase de publicación en la que otros puedan votar"; $a->strings["Delayed Posting"] = "Publicación aplazada"; $a->strings["Allow posts to be published at a later date"] = "Permitir mensajes que se publicarán en una fecha posterior"; +$a->strings["Suppress Duplicate Posts/Comments"] = "Prevenir entradas o comentarios duplicados"; +$a->strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Prevenir que entradas con contenido idéntico se publiquen con menos de dos minutos de intervalo."; $a->strings["Network and Stream Filtering"] = "Filtrado del contenido"; $a->strings["Search by Date"] = "Buscar por fecha"; $a->strings["Ability to select posts by date ranges"] = "Capacidad de seleccionar entradas por rango de fechas"; @@ -421,6 +259,7 @@ $a->strings["public profile"] = "perfil público"; $a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s cambió %2\$s a “%3\$s”"; $a->strings["Visit %1\$s's %2\$s"] = "Visitar %2\$s de %1\$s"; $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha actualizado %2\$s cambiando %3\$s."; +$a->strings["Connect"] = "Conectar"; $a->strings["New window"] = "Nueva ventana"; $a->strings["Open the selected location in a different window or browser tab"] = "Abrir la dirección seleccionada en una ventana o pestaña aparte"; $a->strings["User '%s' deleted"] = "El usuario '%s' ha sido eliminado"; @@ -441,6 +280,169 @@ $a->strings["Collection is empty."] = "La colección está vacía."; $a->strings["Collection: %s"] = "Colección: %s"; $a->strings["Connection: %s"] = "Conexión: %s"; $a->strings["Connection not found."] = "Conexión no encontrada"; +$a->strings["photo"] = "foto"; +$a->strings["event"] = "evento"; +$a->strings["channel"] = "canal"; +$a->strings["status"] = "el mensaje de estado"; +$a->strings["comment"] = "comentario"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta %3\$s de %2\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "a %1\$s no le gusta %3\$s de %2\$s"; +$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora está conectado/a con %2\$s"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s ha dado un toque a %2\$s"; +$a->strings["poked"] = "ha recibido un toque"; +$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s"; +$a->strings["__ctx:title__ Likes"] = "Me gusta"; +$a->strings["__ctx:title__ Dislikes"] = "No me gusta"; +$a->strings["__ctx:title__ Agree"] = "De acuerdo"; +$a->strings["__ctx:title__ Disagree"] = "En desacuerdo"; +$a->strings["__ctx:title__ Abstain"] = "Abstención"; +$a->strings["__ctx:title__ Attending"] = "Participaré"; +$a->strings["__ctx:title__ Not attending"] = "No participaré"; +$a->strings["__ctx:title__ Might attend"] = "Quizá participe"; +$a->strings["Select"] = "Seleccionar"; +$a->strings["Private Message"] = "Mensaje Privado"; +$a->strings["Message signature validated"] = "Firma de mensaje validada"; +$a->strings["Message signature incorrect"] = "Firma de mensaje incorrecta"; +$a->strings["View %s's profile @ %s"] = "Ver el perfil @ %s de %s"; +$a->strings["Categories:"] = "Categorías:"; +$a->strings["Filed under:"] = "Archivado bajo:"; +$a->strings["from %s"] = "desde %s"; +$a->strings["last edited: %s"] = "último cambio: %s"; +$a->strings["Expires: %s"] = "Caduca: %s"; +$a->strings["View in context"] = "Mostrar en su contexto"; +$a->strings["Please wait"] = "Espere por favor"; +$a->strings["remove"] = "eliminar"; +$a->strings["Loading..."] = "Cargando..."; +$a->strings["Delete Selected Items"] = "Eliminar elementos seleccionados"; +$a->strings["View Source"] = "Ver la fuente original de la entrada"; +$a->strings["Follow Thread"] = "Seguir el hilo"; +$a->strings["Unfollow Thread"] = "Dejar de seguir este hilo"; +$a->strings["View Status"] = "Ver el estado actual"; +$a->strings["View Profile"] = "Ver el perfil"; +$a->strings["View Photos"] = "Ver fotos"; +$a->strings["Activity/Posts"] = "Actividad y entradas"; +$a->strings["Edit Connection"] = "Editar conexión"; +$a->strings["Send PM"] = "Enviar un mensaje privado"; +$a->strings["Poke"] = "Toques y otras cosas"; +$a->strings["%s likes this."] = "a %s le gusta esto."; +$a->strings["%s doesn't like this."] = "a %s no le gusta esto."; +$a->strings["%2\$d people like this."] = array( + 0 => "a %2\$d personas le gusta esto.", + 1 => "a %2\$d personas les gusta esto.", +); +$a->strings["%2\$d people don't like this."] = array( + 0 => "a %2\$d personas no les gusta esto.", + 1 => "a %2\$d personas no les gusta esto.", +); +$a->strings["and"] = "y"; +$a->strings[", and %d other people"] = array( + 0 => ", y %d persona más", + 1 => ", y %d personas más", +); +$a->strings["%s like this."] = "a %s le gusta esto."; +$a->strings["%s don't like this."] = "a %s no le gusta esto."; +$a->strings["Visible to everybody"] = "Visible para cualquiera"; +$a->strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:"; +$a->strings["Please enter a video link/URL:"] = "Por favor, introduzca un enlace de vídeo:"; +$a->strings["Please enter an audio link/URL:"] = "Por favor, introduzca un enlace de audio:"; +$a->strings["Tag term:"] = "Término de la etiqueta:"; +$a->strings["Save to Folder:"] = "Guardar en carpeta:"; +$a->strings["Where are you right now?"] = "¿Donde está ahora?"; +$a->strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM"; +$a->strings["Preview"] = "Previsualizar"; +$a->strings["Share"] = "Compartir"; +$a->strings["Page link name"] = "Nombre de enlace de página"; +$a->strings["Post as"] = "Publicar como"; +$a->strings["Bold"] = "Negrita"; +$a->strings["Italic"] = "Itálico "; +$a->strings["Underline"] = "Subrayar"; +$a->strings["Quote"] = "Citar"; +$a->strings["Code"] = "Código"; +$a->strings["Upload photo"] = "Subir foto"; +$a->strings["upload photo"] = "subir foto"; +$a->strings["Attach file"] = "Adjuntar fichero"; +$a->strings["attach file"] = "adjuntar fichero"; +$a->strings["Insert web link"] = "Insertar enlace web"; +$a->strings["web link"] = "enlace web"; +$a->strings["Insert video link"] = "Insertar enlace de vídeo"; +$a->strings["video link"] = "enlace de vídeo"; +$a->strings["Insert audio link"] = "Insertar enlace de audio"; +$a->strings["audio link"] = "enlace de audio"; +$a->strings["Set your location"] = "Establecer su ubicación"; +$a->strings["set location"] = "establecer ubicación"; +$a->strings["Toggle voting"] = "Cambiar votación"; +$a->strings["Clear browser location"] = "Eliminar los datos de ubicación del navegador"; +$a->strings["clear location"] = "borrar los datos de ubicación"; +$a->strings["Title (optional)"] = "Título (opcional)"; +$a->strings["Categories (optional, comma-separated list)"] = "Categorías (opcional, lista separada por comas)"; +$a->strings["Permission settings"] = "Configuración de permisos"; +$a->strings["permissions"] = "permisos"; +$a->strings["Public post"] = "Entrada pública"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com"; +$a->strings["Set expiration date"] = "Configurar fecha de caducidad"; +$a->strings["Set publish date"] = "Establecer la fecha de publicación"; +$a->strings["Encrypt text"] = "Cifrar texto"; +$a->strings["OK"] = "OK"; +$a->strings["Cancel"] = "Cancelar"; +$a->strings["Discover"] = "Descubrir"; +$a->strings["Imported public streams"] = "Flujos públicos importados"; +$a->strings["Commented Order"] = "Comentarios recientes"; +$a->strings["Sort by Comment Date"] = "Ordenar por fecha de comentario"; +$a->strings["Posted Order"] = "Publicaciones recientes"; +$a->strings["Sort by Post Date"] = "Ordenar por fecha de publicación"; +$a->strings["Personal"] = "Personales"; +$a->strings["Posts that mention or involve you"] = "Publicaciones que le mencionan o involucran"; +$a->strings["New"] = "Nuevas"; +$a->strings["Activity Stream - by date"] = "Flujo de actividad - por fecha"; +$a->strings["Starred"] = "Preferidas"; +$a->strings["Favourite Posts"] = "Publicaciones favoritas"; +$a->strings["Spam"] = "Correo basura"; +$a->strings["Posts flagged as SPAM"] = "Publicaciones marcadas como basura"; +$a->strings["Channel"] = "Canal"; +$a->strings["Status Messages and Posts"] = "Mensajes de estado y publicaciones"; +$a->strings["About"] = "Mi perfil"; +$a->strings["Profile Details"] = "Detalles del perfil"; +$a->strings["Photos"] = "Fotos"; +$a->strings["Photo Albums"] = "Álbumes de fotos"; +$a->strings["Files and Storage"] = "Ficheros y repositorio"; +$a->strings["Chatrooms"] = "Salas de chat"; +$a->strings["Bookmarks"] = "Marcadores"; +$a->strings["Saved Bookmarks"] = "Marcadores guardados"; +$a->strings["Webpages"] = "Páginas web"; +$a->strings["Manage Webpages"] = "Administrar páginas web"; +$a->strings["View all"] = "Ver todo"; +$a->strings["__ctx:noun__ Like"] = array( + 0 => "Me gusta", + 1 => "Me gusta", +); +$a->strings["__ctx:noun__ Dislike"] = array( + 0 => "No me gusta", + 1 => "No me gusta", +); +$a->strings["__ctx:noun__ Attending"] = array( + 0 => "Participaré", + 1 => "Participaré", +); +$a->strings["__ctx:noun__ Not Attending"] = array( + 0 => "No participaré", + 1 => "No participaré", +); +$a->strings["__ctx:noun__ Undecided"] = array( + 0 => "Indeciso/a", + 1 => "Indecisos/as", +); +$a->strings["__ctx:noun__ Agree"] = array( + 0 => "Está de acuerdo", + 1 => "De acuerdo", +); +$a->strings["__ctx:noun__ Disagree"] = array( + 0 => "No está de acuerdo", + 1 => "En desacuerdo", +); +$a->strings["__ctx:noun__ Abstain"] = array( + 0 => "se abstiene", + 1 => "Se abstienen", +); $a->strings["view full size"] = "Ver en el tamaño original"; $a->strings["\$Projectname Notification"] = "Notificación de \$Projectname"; $a->strings["\$projectname"] = "\$projectname"; @@ -455,9 +457,6 @@ $a->strings["Don't show"] = "No mostrar"; $a->strings["Other networks and post services"] = "Otras redes y servicios de correo"; $a->strings["Permissions"] = "Permisos"; $a->strings["Close"] = "Cerrar"; -$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."; -$a->strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado."; -$a->strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado."; $a->strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio"; $a->strings["Image file is empty."] = "El fichero de imagen está vacío. "; $a->strings["Unable to process image"] = "No ha sido posible procesar la imagen"; @@ -569,6 +568,9 @@ $a->strings["Update"] = "Actualizar"; $a->strings["Install"] = "Instalar"; $a->strings["Purchase"] = "Comprar"; $a->strings["Public Timeline"] = "Cronología pública"; +$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."; +$a->strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado."; +$a->strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado."; $a->strings["%s "] = "%s "; $a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Aviso] Nuevo mensaje en %s"; $a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s le ha enviado un nuevo mensaje privado en %3\$s."; @@ -718,6 +720,79 @@ $a->strings["Edit collection"] = "Editar colección"; $a->strings["Add new collection"] = "Añadir nueva colección"; $a->strings["Channels not in any collection"] = "El canal no se encuentra en ninguna colección"; $a->strings["add"] = "añadir"; +$a->strings["Apps"] = "Aplicaciones"; +$a->strings["System"] = "Sistema"; +$a->strings["Create Personal App"] = "Crear una aplicación personal"; +$a->strings["Edit Personal App"] = "Editar una aplicación personal"; +$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; +$a->strings["Suggestions"] = "Sugerencias"; +$a->strings["See more..."] = "Ver más..."; +$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas."; +$a->strings["Add New Connection"] = "Añadir nueva conexión"; +$a->strings["Enter the channel address"] = "Introducir la dirección del canal"; +$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Ejemplo: paco@ejemplo.com, http://ejemplo.com/paco"; +$a->strings["Notes"] = "Notas"; +$a->strings["Save"] = "Guardar"; +$a->strings["Remove term"] = "Eliminar término"; +$a->strings["Archives"] = "Hemeroteca"; +$a->strings["Me"] = "Yo"; +$a->strings["Family"] = "Familia"; +$a->strings["Acquaintances"] = "Conocidos/as"; +$a->strings["All"] = "Todas"; +$a->strings["Refresh"] = "Recargar"; +$a->strings["Account settings"] = "Configuración de la cuenta"; +$a->strings["Channel settings"] = "Configuración del canal"; +$a->strings["Additional features"] = "Características adicionales"; +$a->strings["Feature/Addon settings"] = "Configuración de características o complementos"; +$a->strings["Display settings"] = "Ajustes de visualización"; +$a->strings["Connected apps"] = "Aplicaciones conectadas"; +$a->strings["Export channel"] = "Exportar canal"; +$a->strings["Connection Default Permissions"] = "Permisos predeterminados de conexión"; +$a->strings["Premium Channel Settings"] = "Configuración del canal premium"; +$a->strings["Private Mail Menu"] = "Menú de correo privado"; +$a->strings["Combined View"] = "Vista combinada"; +$a->strings["Inbox"] = "Bandeja de entrada"; +$a->strings["Outbox"] = "Bandeja de salida"; +$a->strings["New Message"] = "Nuevo mensaje"; +$a->strings["Conversations"] = "Conversaciones"; +$a->strings["Received Messages"] = "Mensajes recibidos"; +$a->strings["Sent Messages"] = "Enviar mensajes"; +$a->strings["No messages."] = "Sin mensajes."; +$a->strings["Delete conversation"] = "Eliminar conversación"; +$a->strings["Events Menu"] = "Menú de eventos"; +$a->strings["Day View"] = "Eventos del día"; +$a->strings["Week View"] = "Eventos de la semana"; +$a->strings["Month View"] = "Eventos del mes"; +$a->strings["Export"] = "Exportar"; +$a->strings["Import"] = "Importar"; +$a->strings["Chat Rooms"] = "Salas de chat"; +$a->strings["Bookmarked Chatrooms"] = "Salas de chat preferidas"; +$a->strings["Suggested Chatrooms"] = "Salas de chat sugeridas"; +$a->strings["photo/image"] = "foto/imagen"; +$a->strings["Rate Me"] = "Valorar este canal"; +$a->strings["View Ratings"] = "Mostrar las valoraciones"; +$a->strings["Public Hubs"] = "Servidores públicos"; +$a->strings["Forums"] = "Foros"; +$a->strings["Tasks"] = "Tareas"; +$a->strings["Documentation"] = "Documentación"; +$a->strings["Project/Site Information"] = "Información sobre el proyecto o sitio"; +$a->strings["For Members"] = "Para los usuarios"; +$a->strings["For Administrators"] = "Para los administradores"; +$a->strings["For Developers"] = "Para los desarrolladores"; +$a->strings["Site"] = "Sitio"; +$a->strings["Accounts"] = "Cuentas"; +$a->strings["Channels"] = "Canales"; +$a->strings["Plugins"] = "Extensiones"; +$a->strings["Themes"] = "Temas"; +$a->strings["Inspect queue"] = "Examinar la cola"; +$a->strings["Profile Config"] = "Ajustes del perfil"; +$a->strings["DB updates"] = "Actualizaciones de la base de datos"; +$a->strings["Logs"] = "Informes"; +$a->strings["Admin"] = "Administrador"; +$a->strings["Plugin Features"] = "Ajustes de la extensión"; +$a->strings["User registrations waiting for confirmation"] = "Registros de usuarios pendientes de confirmación"; +$a->strings["View Photo"] = "Ver foto"; +$a->strings["Edit Album"] = "Editar álbum"; $a->strings["No recipient provided."] = "No se ha especificado ningún destinatario."; $a->strings["[no subject]"] = "[sin asunto]"; $a->strings["Unable to determine sender."] = "No ha sido posible determinar el remitente. "; @@ -804,73 +879,6 @@ $a->strings["database storage failed."] = "el almacenamiento en la base de datos $a->strings["Empty path"] = "Ruta vacía"; $a->strings["Attachments:"] = "Ficheros adjuntos:"; $a->strings["\$Projectname event notification:"] = "Notificación de eventos de \$Projectname:"; -$a->strings["Apps"] = "Aplicaciones"; -$a->strings["System"] = "Sistema"; -$a->strings["Create Personal App"] = "Crear una aplicación personal"; -$a->strings["Edit Personal App"] = "Editar una aplicación personal"; -$a->strings["Ignore/Hide"] = "Ignorar/Ocultar"; -$a->strings["Suggestions"] = "Sugerencias"; -$a->strings["See more..."] = "Ver más..."; -$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas."; -$a->strings["Add New Connection"] = "Añadir nueva conexión"; -$a->strings["Enter the channel address"] = "Introducir la dirección del canal"; -$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Ejemplo: paco@ejemplo.com, http://ejemplo.com/paco"; -$a->strings["Notes"] = "Notas"; -$a->strings["Save"] = "Guardar"; -$a->strings["Remove term"] = "Eliminar término"; -$a->strings["Archives"] = "Hemeroteca"; -$a->strings["Me"] = "Yo"; -$a->strings["Family"] = "Familia"; -$a->strings["Acquaintances"] = "Conocidos/as"; -$a->strings["All"] = "Todas"; -$a->strings["Refresh"] = "Recargar"; -$a->strings["Account settings"] = "Configuración de la cuenta"; -$a->strings["Channel settings"] = "Configuración del canal"; -$a->strings["Additional features"] = "Características adicionales"; -$a->strings["Feature/Addon settings"] = "Configuración de características o complementos"; -$a->strings["Display settings"] = "Ajustes de visualización"; -$a->strings["Connected apps"] = "Aplicaciones conectadas"; -$a->strings["Export channel"] = "Exportar canal"; -$a->strings["Connection Default Permissions"] = "Permisos predeterminados de conexión"; -$a->strings["Premium Channel Settings"] = "Configuración del canal premium"; -$a->strings["Private Mail Menu"] = "Menú de correo privado"; -$a->strings["Combined View"] = "Vista combinada"; -$a->strings["Inbox"] = "Bandeja de entrada"; -$a->strings["Outbox"] = "Bandeja de salida"; -$a->strings["New Message"] = "Nuevo mensaje"; -$a->strings["Conversations"] = "Conversaciones"; -$a->strings["Received Messages"] = "Mensajes recibidos"; -$a->strings["Sent Messages"] = "Enviar mensajes"; -$a->strings["No messages."] = "Sin mensajes."; -$a->strings["Delete conversation"] = "Eliminar conversación"; -$a->strings["Chat Rooms"] = "Salas de chat"; -$a->strings["Bookmarked Chatrooms"] = "Salas de chat preferidas"; -$a->strings["Suggested Chatrooms"] = "Salas de chat sugeridas"; -$a->strings["photo/image"] = "foto/imagen"; -$a->strings["Rate Me"] = "Valorar este canal"; -$a->strings["View Ratings"] = "Mostrar las valoraciones"; -$a->strings["Public Hubs"] = "Servidores públicos"; -$a->strings["Forums"] = "Foros"; -$a->strings["Tasks"] = "Tareas"; -$a->strings["Documentation"] = "Documentación"; -$a->strings["Project/Site Information"] = "Información sobre el proyecto o sitio"; -$a->strings["For Members"] = "Para los usuarios"; -$a->strings["For Administrators"] = "Para los administradores"; -$a->strings["For Developers"] = "Para los desarrolladores"; -$a->strings["Site"] = "Sitio"; -$a->strings["Accounts"] = "Cuentas"; -$a->strings["Channels"] = "Canales"; -$a->strings["Plugins"] = "Extensiones"; -$a->strings["Themes"] = "Temas"; -$a->strings["Inspect queue"] = "Examinar la cola"; -$a->strings["Profile Config"] = "Ajustes del perfil"; -$a->strings["DB updates"] = "Actualizaciones de la base de datos"; -$a->strings["Logs"] = "Informes"; -$a->strings["Admin"] = "Administrador"; -$a->strings["Plugin Features"] = "Ajustes de la extensión"; -$a->strings["User registrations waiting for confirmation"] = "Registros de usuarios pendientes de confirmación"; -$a->strings["View Photo"] = "Ver foto"; -$a->strings["Edit Album"] = "Editar álbum"; $a->strings["prev"] = "anterior"; $a->strings["first"] = "primera"; $a->strings["last"] = "última"; @@ -1547,9 +1555,8 @@ $a->strings["l, F j"] = "l j F"; $a->strings["Edit event"] = "Editar evento"; $a->strings["Delete event"] = "Borrar evento"; $a->strings["calendar"] = "calendario"; -$a->strings["Create New Event"] = "Crear un nuevo evento"; -$a->strings["Export"] = "Exportar"; -$a->strings["Import"] = "Importar"; +$a->strings["New Event"] = "Nuevo evento"; +$a->strings["Today"] = "Hoy"; $a->strings["Event removed"] = "Evento borrado"; $a->strings["Failed to remove event"] = "Error al eliminar el evento"; $a->strings["Event details"] = "Detalles del evento"; @@ -1602,6 +1609,7 @@ $a->strings["Description: "] = "Descripción:"; $a->strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original."; $a->strings["Empty post discarded."] = "La entrada vacía ha sido desechada."; $a->strings["Executable content type not permitted to this channel."] = "Contenido de tipo ejecutable no permitido en este canal."; +$a->strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada."; $a->strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar."; $a->strings["Unable to obtain post information from database."] = "No ha sido posible obtener información de la entrada en la base de datos."; $a->strings["You have reached your limit of %1$.0f top level posts."] = "Ha alcanzado su límite de %1$.0f entradas en la página principal."; diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po index 3396e8f39..a3f8a4a27 100644 --- a/view/nl/hmessages.po +++ b/view/nl/hmessages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-13 00:03-0800\n" -"PO-Revision-Date: 2015-11-14 19:22+0000\n" +"POT-Creation-Date: 2015-11-20 00:03-0800\n" +"PO-Revision-Date: 2015-11-20 13:52+0000\n" "Last-Translator: jeroenpraat \n" "Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n" "MIME-Version: 1.0\n" @@ -18,13 +18,1255 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/conversation.php:120 ../../include/text.php:1873 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 +#: ../../include/Import/import_diaspora.php:17 +msgid "No username found in import file." +msgstr "Geen gebruikersnaam in het importbestand gevonden." + +#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 +msgid "Unable to create a unique channel address. Import failed." +msgstr "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt." + +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "Import voltooid." + +#: ../../include/RedDAV/RedBrowser.php:107 +#: ../../include/RedDAV/RedBrowser.php:239 +msgid "parent" +msgstr "omhoog" + +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2546 +msgid "Collection" +msgstr "map" + +#: ../../include/RedDAV/RedBrowser.php:134 +msgid "Principal" +msgstr "principal" + +#: ../../include/RedDAV/RedBrowser.php:137 +msgid "Addressbook" +msgstr "Adresboek" + +#: ../../include/RedDAV/RedBrowser.php:140 +msgid "Calendar" +msgstr "Agenda" + +#: ../../include/RedDAV/RedBrowser.php:143 +msgid "Schedule Inbox" +msgstr "Planning-postvak IN" + +#: ../../include/RedDAV/RedBrowser.php:146 +msgid "Schedule Outbox" +msgstr "Planning-postvak UIT" + +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/conversation.php:1026 +#: ../../include/apps.php:360 ../../include/apps.php:415 +#: ../../include/widgets.php:1317 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "Onbekend" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1628 +#: ../../include/apps.php:135 ../../include/nav.php:93 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Bestanden" + +#: ../../include/RedDAV/RedBrowser.php:227 +msgid "Total" +msgstr "Totaal" + +#: ../../include/RedDAV/RedBrowser.php:229 +msgid "Shared" +msgstr "Gedeeld" + +#: ../../include/RedDAV/RedBrowser.php:230 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 +#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 +#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 +msgid "Create" +msgstr "Aanmaken" + +#: ../../include/RedDAV/RedBrowser.php:231 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:450 +msgid "Upload" +msgstr "Uploaden" + +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../mod/sharedwithme.php:95 +msgid "Name" +msgstr "Naam" + +#: ../../include/RedDAV/RedBrowser.php:236 +msgid "Type" +msgstr "Type" + +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1247 +#: ../../mod/sharedwithme.php:97 +msgid "Size" +msgstr "Grootte" + +#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 +msgid "Last Modified" +msgstr "Laatst gewijzigd" + +#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 +#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 +#: ../../include/apps.php:259 ../../include/ItemObject.php:100 +#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 +#: ../../mod/editpost.php:112 ../../mod/menu.php:108 +#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 +#: ../../mod/settings.php:646 ../../mod/connections.php:235 +#: ../../mod/connections.php:248 ../../mod/connections.php:267 +#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +msgid "Edit" +msgstr "Bewerken" + +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/apps.php:260 ../../include/ItemObject.php:120 +#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 +#: ../../mod/editblock.php:181 ../../mod/admin.php:809 ../../mod/admin.php:968 +#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 +#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 +#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 +msgid "Delete" +msgstr "Verwijderen" + +#: ../../include/RedDAV/RedBrowser.php:282 +#, php-format +msgid "You are using %1$s of your available file storage." +msgstr "Je gebruikt %1$s van de beschikbare bestandsopslag." + +#: ../../include/RedDAV/RedBrowser.php:287 +#, php-format +msgid "You are using %1$s of %2$s available file storage. (%3$s%)" +msgstr "Je gebruikt %1$s van totaal %2$s beschikbare bestandsopslag. (%3$s%)" + +#: ../../include/RedDAV/RedBrowser.php:299 +msgid "WARNING:" +msgstr "WAARSCHUWING:" + +#: ../../include/RedDAV/RedBrowser.php:302 +msgid "Create new folder" +msgstr "Nieuwe map aanmaken" + +#: ../../include/RedDAV/RedBrowser.php:304 +msgid "Upload file" +msgstr "Bestand uploaden" + +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "Kan mijn normale kanaalstream en berichten bekijken" + +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" +msgstr "Kan mijn standaard kanaalprofiel bekijken" + +#: ../../include/permissions.php:28 +msgid "Can view my connections" +msgstr "Kan een lijst met mijn connecties bekijken" + +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" +msgstr "Kan mijn foto's en andere bestanden bekijken" + +#: ../../include/permissions.php:30 +msgid "Can view my webpages" +msgstr "Kan mijn pagina's bekijken" + +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" +msgstr "Kan mij de inhoud van hun kanaal en berichten sturen" + +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" +msgstr "Kan een bericht in mijn kanaal plaatsen" + +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" +msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden" + +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" +msgstr "Kan mij privéberichten sturen" + +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" +msgstr "Kan dingen leuk of niet leuk vinden" + +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" +msgstr "Profielen en dingen, buiten berichten en reacties" + +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+" + +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" +msgstr "Geavanceerd - nuttig voor groepforums" + +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" +msgstr "Kan met mij chatten (wanneer beschikbaar)" + +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" +msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen" + +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" +msgstr "Kan mijn pagina's bewerken" + +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" +msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken" + +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)" + +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" +msgstr "Kan mijn kanaal beheren" + +#: ../../include/permissions.php:46 +msgid "" +"Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet." + +#: ../../include/permissions.php:867 +msgid "Social Networking" +msgstr "Sociaal netwerk" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Mostly Public" +msgstr "Vrijwel alles openbaar" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Restricted" +msgstr "Beperkt zichtbaar" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +msgid "Private" +msgstr "Verborgen kanaal" + +#: ../../include/permissions.php:868 +msgid "Community Forum" +msgstr "Groepsforum" + +#: ../../include/permissions.php:869 +msgid "Feed Republish" +msgstr "Feed herpubliceren" + +#: ../../include/permissions.php:870 +msgid "Special Purpose" +msgstr "Speciaal doel" + +#: ../../include/permissions.php:870 +msgid "Celebrity/Soapbox" +msgstr "Beroemdheid/alleen volgen" + +#: ../../include/permissions.php:870 +msgid "Group Repository" +msgstr "Groepsopslag" + +#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 +msgid "Other" +msgstr "Anders" + +#: ../../include/permissions.php:871 +msgid "Custom/Expert Mode" +msgstr "Expertmodus/handmatig aanpassen" + +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "Naam chatkanaal ontbreekt" + +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "Naam chatkanaal bestaat al" + +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "Ongeldige omschrijving chatkanaal" + +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "Chatkanaal niet gevonden" + +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../include/photos.php:29 ../../include/attach.php:140 +#: ../../include/attach.php:188 ../../include/attach.php:251 +#: ../../include/attach.php:265 ../../include/attach.php:272 +#: ../../include/attach.php:337 ../../include/attach.php:351 +#: ../../include/attach.php:358 ../../include/attach.php:436 +#: ../../include/attach.php:884 ../../include/attach.php:955 +#: ../../include/attach.php:1107 ../../mod/achievements.php:30 +#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 +#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 +#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 +#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 +#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 +#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 +#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 +#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 +#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 +#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 +#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 +#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 +#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 +#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 +#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/message.php:16 +#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 +#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 +#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 +#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 +#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 +#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 +#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 +#: ../../mod/api.php:31 ../../mod/connections.php:29 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 +#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 +#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 +#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 +#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 +#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 +#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 +msgid "Permission denied." +msgstr "Toegang geweigerd" + +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "Chatkanaal is vol" + +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "Diversen" + +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "JJJJ-MM-DD of MM-DD" + +#: ../../include/datetime.php:235 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:689 +msgid "Required" +msgstr "Vereist" + +#: ../../include/datetime.php:262 ../../boot.php:2289 +msgid "never" +msgstr "nooit" + +#: ../../include/datetime.php:268 +msgid "less than a second ago" +msgstr "minder dan een seconde geleden" + +#: ../../include/datetime.php:271 +msgid "year" +msgstr "jaar" + +#: ../../include/datetime.php:271 +msgid "years" +msgstr "jaren" + +#: ../../include/datetime.php:272 +msgid "month" +msgstr "maand" + +#: ../../include/datetime.php:272 +msgid "months" +msgstr "maanden" + +#: ../../include/datetime.php:273 +msgid "week" +msgstr "week" + +#: ../../include/datetime.php:273 +msgid "weeks" +msgstr "weken" + +#: ../../include/datetime.php:274 +msgid "day" +msgstr "dag" + +#: ../../include/datetime.php:274 +msgid "days" +msgstr "dagen" + +#: ../../include/datetime.php:275 +msgid "hour" +msgstr "uur" + +#: ../../include/datetime.php:275 +msgid "hours" +msgstr "uren" + +#: ../../include/datetime.php:276 +msgid "minute" +msgstr "minuut" + +#: ../../include/datetime.php:276 +msgid "minutes" +msgstr "minuten" + +#: ../../include/datetime.php:277 +msgid "second" +msgstr "seconde" + +#: ../../include/datetime.php:277 +msgid "seconds" +msgstr "seconden" + +#: ../../include/datetime.php:285 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s geleden" + +#: ../../include/datetime.php:519 +#, php-format +msgid "%1$s's birthday" +msgstr "Verjaardag van %1$s" + +#: ../../include/datetime.php:520 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Gefeliciteerd met je verjaardag %1$s" + +#: ../../include/features.php:38 +msgid "General Features" +msgstr "Algemene functies" + +#: ../../include/features.php:40 +msgid "Content Expiration" +msgstr "Inhoud laten verlopen" + +#: ../../include/features.php:40 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen" + +#: ../../include/features.php:41 +msgid "Multiple Profiles" +msgstr "Meerdere profielen" + +#: ../../include/features.php:41 +msgid "Ability to create multiple profiles" +msgstr "Mogelijkheid om meerdere profielen aan te maken" + +#: ../../include/features.php:42 +msgid "Advanced Profiles" +msgstr "Geavanceerde profielen" + +#: ../../include/features.php:42 +msgid "Additional profile sections and selections" +msgstr "Extra onderdelen en keuzes voor je profiel" + +#: ../../include/features.php:43 +msgid "Profile Import/Export" +msgstr "Profiel importen/exporteren" + +#: ../../include/features.php:43 +msgid "Save and load profile details across sites/channels" +msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken." + +#: ../../include/features.php:44 +msgid "Web Pages" +msgstr "Webpagina's" + +#: ../../include/features.php:44 +msgid "Provide managed web pages on your channel" +msgstr "Sta beheerde webpagina's op jouw kanaal toe" + +#: ../../include/features.php:45 +msgid "Private Notes" +msgstr "Privé-aantekeningen" + +#: ../../include/features.php:45 +msgid "Enables a tool to store notes and reminders" +msgstr "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan" + +#: ../../include/features.php:46 +msgid "Navigation Channel Select" +msgstr "Kanaal kiezen in navigatiemenu" + +#: ../../include/features.php:46 +msgid "Change channels directly from within the navigation dropdown menu" +msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk" + +#: ../../include/features.php:47 +msgid "Photo Location" +msgstr "Fotolocatie" + +#: ../../include/features.php:47 +msgid "If location data is available on uploaded photos, link this to a map." +msgstr "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart." + +#: ../../include/features.php:49 +msgid "Expert Mode" +msgstr "Expertmodus" + +#: ../../include/features.php:49 +msgid "Enable Expert Mode to provide advanced configuration options" +msgstr "Schakel de expertmodus in voor geavanceerde instellingen" + +#: ../../include/features.php:50 +msgid "Premium Channel" +msgstr "Premiumkanaal" + +#: ../../include/features.php:50 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal" + +#: ../../include/features.php:55 +msgid "Post Composition Features" +msgstr "Functies voor het opstellen van berichten" + +#: ../../include/features.php:57 +msgid "Use Markdown" +msgstr "Markdown gebruiken" + +#: ../../include/features.php:57 +msgid "Allow use of \"Markdown\" to format posts" +msgstr "Sta het gebruik van \"markdown\" toe om berichten mee op te maken." + +#: ../../include/features.php:58 +msgid "Large Photos" +msgstr "Grote foto's" + +#: ../../include/features.php:58 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" +msgstr "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt." + +#: ../../include/features.php:59 ../../include/widgets.php:546 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "Kanaalbronnen" + +#: ../../include/features.php:59 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Automatisch inhoud uit andere kanalen of feeds importeren." + +#: ../../include/features.php:60 +msgid "Even More Encryption" +msgstr "Extra encryptie" + +#: ../../include/features.php:60 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel." + +#: ../../include/features.php:61 +msgid "Enable Voting Tools" +msgstr "Peilingen inschakelen" + +#: ../../include/features.php:61 +msgid "Provide a class of post which others can vote on" +msgstr "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen." + +#: ../../include/features.php:62 +msgid "Delayed Posting" +msgstr "Berichten uitstellen" + +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" +msgstr "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden." + +#: ../../include/features.php:63 +msgid "Suppress Duplicate Posts/Comments" +msgstr "Dubbele berichten/reacties tegenhouden" + +#: ../../include/features.php:63 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." +msgstr "Voorkomt dat berichten en reacties met identieke inhoud en die binnen twee minuten zijn verstuurd, worden gepubliceerd. " + +#: ../../include/features.php:69 +msgid "Network and Stream Filtering" +msgstr "Netwerk- en streamfilter" + +#: ../../include/features.php:70 +msgid "Search by Date" +msgstr "Zoek op datum" + +#: ../../include/features.php:70 +msgid "Ability to select posts by date ranges" +msgstr "Mogelijkheid om berichten op datum te filteren " + +#: ../../include/features.php:71 +msgid "Collections Filter" +msgstr "Filter op collecties" + +#: ../../include/features.php:71 +msgid "Enable widget to display Network posts only from selected collections" +msgstr "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties" + +#: ../../include/features.php:72 ../../include/widgets.php:274 +msgid "Saved Searches" +msgstr "Opgeslagen zoekopdrachten" + +#: ../../include/features.php:72 +msgid "Save search terms for re-use" +msgstr "Sla zoekopdrachten op voor hergebruik" + +#: ../../include/features.php:73 +msgid "Network Personal Tab" +msgstr "Persoonlijke netwerktab" + +#: ../../include/features.php:73 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had" + +#: ../../include/features.php:74 +msgid "Network New Tab" +msgstr "Nieuwe netwerktab" + +#: ../../include/features.php:74 +msgid "Enable tab to display all new Network activity" +msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen" + +#: ../../include/features.php:75 +msgid "Affinity Tool" +msgstr "Verwantschapsfilter" + +#: ../../include/features.php:75 +msgid "Filter stream activity by depth of relationships" +msgstr "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag" + +#: ../../include/features.php:76 +msgid "Connection Filtering" +msgstr "Berichtenfilters" + +#: ../../include/features.php:76 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal" + +#: ../../include/features.php:77 +msgid "Suggest Channels" +msgstr "Kanalen voorstellen" + +#: ../../include/features.php:77 +msgid "Show channel suggestions" +msgstr "Voor jou mogelijk interessante kanalen voorstellen" + +#: ../../include/features.php:82 +msgid "Post/Comment Tools" +msgstr "Bericht- en reactiehulpmiddelen" + +#: ../../include/features.php:83 +msgid "Tagging" +msgstr "Taggen" + +#: ../../include/features.php:83 +msgid "Ability to tag existing posts" +msgstr "Mogelijkheid om bestaande berichten te taggen" + +#: ../../include/features.php:84 +msgid "Post Categories" +msgstr "Categorieën berichten" + +#: ../../include/features.php:84 +msgid "Add categories to your posts" +msgstr "Voeg categorieën toe aan je berichten" + +#: ../../include/features.php:85 ../../include/contact_widgets.php:57 +#: ../../include/widgets.php:304 +msgid "Saved Folders" +msgstr "Bewaarde mappen" + +#: ../../include/features.php:85 +msgid "Ability to file posts under folders" +msgstr "Mogelijkheid om berichten in mappen op te slaan" + +#: ../../include/features.php:86 +msgid "Dislike Posts" +msgstr "Vind berichten niet leuk" + +#: ../../include/features.php:86 +msgid "Ability to dislike posts/comments" +msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden" + +#: ../../include/features.php:87 +msgid "Star Posts" +msgstr "Geef berichten een ster" + +#: ../../include/features.php:87 +msgid "Ability to mark special posts with a star indicator" +msgstr "Mogelijkheid om speciale berichten met een ster te markeren" + +#: ../../include/features.php:88 +msgid "Tag Cloud" +msgstr "Tagwolk" + +#: ../../include/features.php:88 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina" + +#: ../../include/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "Standaard" + +#: ../../include/js_strings.php:5 +msgid "Delete this item?" +msgstr "Dit item verwijderen?" + +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 +#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +msgid "Comment" +msgstr "Reactie" + +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +msgid "[+] show all" +msgstr "[+] alle" + +#: ../../include/js_strings.php:8 +msgid "[-] show less" +msgstr "[-] minder reacties weergeven" + +#: ../../include/js_strings.php:9 +msgid "[+] expand" +msgstr "[+] uitklappen" + +#: ../../include/js_strings.php:10 +msgid "[-] collapse" +msgstr "[-] inklappen" + +#: ../../include/js_strings.php:11 +msgid "Password too short" +msgstr "Wachtwoord te kort" + +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" +msgstr "Wachtwoorden komen niet overeen" + +#: ../../include/js_strings.php:13 ../../mod/photos.php:41 +msgid "everybody" +msgstr "iedereen" + +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" +msgstr "Geheim wachtwoord" + +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" +msgstr "Wachtwoordhint" + +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." +msgstr "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen." + +#: ../../include/js_strings.php:17 +msgid "close all" +msgstr "Alles sluiten" + +#: ../../include/js_strings.php:18 +msgid "Nothing new here" +msgstr "Niets nieuw hier" + +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" +msgstr "Beoordeel dit kanaal (dit is openbaar)" + +#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 +#: ../../mod/rate.php:157 +msgid "Rating" +msgstr "Beoordeling" + +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" +msgstr "Omschrijving (optioneel)" + +#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 +#: ../../include/widgets.php:676 ../../mod/fsuggest.php:108 +#: ../../mod/mitem.php:231 ../../mod/connedit.php:715 ../../mod/mood.php:135 +#: ../../mod/pconfig.php:108 ../../mod/filestorage.php:156 +#: ../../mod/poke.php:171 ../../mod/chat.php:184 ../../mod/chat.php:213 +#: ../../mod/rate.php:168 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/admin.php:435 +#: ../../mod/admin.php:802 ../../mod/admin.php:966 ../../mod/admin.php:1103 +#: ../../mod/admin.php:1297 ../../mod/admin.php:1382 ../../mod/appman.php:99 +#: ../../mod/pdledit.php:58 ../../mod/events.php:531 ../../mod/events.php:710 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/thing.php:313 ../../mod/thing.php:359 +#: ../../mod/invite.php:142 ../../mod/mail.php:371 ../../mod/settings.php:584 +#: ../../mod/settings.php:696 ../../mod/settings.php:724 +#: ../../mod/settings.php:747 ../../mod/settings.php:832 +#: ../../mod/settings.php:1021 ../../mod/xchan.php:11 ../../mod/group.php:81 +#: ../../mod/connect.php:93 ../../mod/locs.php:116 ../../mod/setup.php:331 +#: ../../mod/setup.php:371 ../../mod/profiles.php:667 +#: ../../mod/import_items.php:122 ../../view/theme/redbasic/php/config.php:99 +msgid "Submit" +msgstr "Opslaan" + +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" +msgstr "Vul een internetadres/URL in:" + +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" +msgstr "Niet opgeslagen wijzigingen. Ben je er zeker van dat je deze pagina wil verlaten?" + +#: ../../include/js_strings.php:26 +msgid "timeago.prefixAgo" +msgstr "timeago.prefixAgo" + +#: ../../include/js_strings.php:27 +msgid "timeago.prefixFromNow" +msgstr "timeago.prefixFromNow" + +#: ../../include/js_strings.php:28 +msgid "ago" +msgstr "geleden" + +#: ../../include/js_strings.php:29 +msgid "from now" +msgstr "vanaf nu" + +#: ../../include/js_strings.php:30 +msgid "less than a minute" +msgstr "minder dan een minuut" + +#: ../../include/js_strings.php:31 +msgid "about a minute" +msgstr "ongeveer een minuut" + +#: ../../include/js_strings.php:32 +#, php-format +msgid "%d minutes" +msgstr "%d minuten" + +#: ../../include/js_strings.php:33 +msgid "about an hour" +msgstr "ongeveer een uur" + +#: ../../include/js_strings.php:34 +#, php-format +msgid "about %d hours" +msgstr "ongeveer %d uren" + +#: ../../include/js_strings.php:35 +msgid "a day" +msgstr "een dag" + +#: ../../include/js_strings.php:36 +#, php-format +msgid "%d days" +msgstr "%d dagen" + +#: ../../include/js_strings.php:37 +msgid "about a month" +msgstr "ongeveer een maand" + +#: ../../include/js_strings.php:38 +#, php-format +msgid "%d months" +msgstr "%d maanden" + +#: ../../include/js_strings.php:39 +msgid "about a year" +msgstr "ongeveer een jaar" + +#: ../../include/js_strings.php:40 +#, php-format +msgid "%d years" +msgstr "%d jaren" + +#: ../../include/js_strings.php:41 +msgid " " +msgstr " " + +#: ../../include/js_strings.php:42 +msgid "timeago.numbers" +msgstr "timeago.numbers" + +#: ../../include/js_strings.php:44 ../../include/text.php:1164 +msgid "January" +msgstr "januari" + +#: ../../include/js_strings.php:45 ../../include/text.php:1164 +msgid "February" +msgstr "februari" + +#: ../../include/js_strings.php:46 ../../include/text.php:1164 +msgid "March" +msgstr "maart" + +#: ../../include/js_strings.php:47 ../../include/text.php:1164 +msgid "April" +msgstr "april" + +#: ../../include/js_strings.php:48 +msgctxt "long" +msgid "May" +msgstr "mei" + +#: ../../include/js_strings.php:49 ../../include/text.php:1164 +msgid "June" +msgstr "juni" + +#: ../../include/js_strings.php:50 ../../include/text.php:1164 +msgid "July" +msgstr "juli" + +#: ../../include/js_strings.php:51 ../../include/text.php:1164 +msgid "August" +msgstr "augustus" + +#: ../../include/js_strings.php:52 ../../include/text.php:1164 +msgid "September" +msgstr "september" + +#: ../../include/js_strings.php:53 ../../include/text.php:1164 +msgid "October" +msgstr "oktober" + +#: ../../include/js_strings.php:54 ../../include/text.php:1164 +msgid "November" +msgstr "november" + +#: ../../include/js_strings.php:55 ../../include/text.php:1164 +msgid "December" +msgstr "december" + +#: ../../include/js_strings.php:56 +msgid "Jan" +msgstr "jan" + +#: ../../include/js_strings.php:57 +msgid "Feb" +msgstr "feb" + +#: ../../include/js_strings.php:58 +msgid "Mar" +msgstr "mrt" + +#: ../../include/js_strings.php:59 +msgid "Apr" +msgstr "apr" + +#: ../../include/js_strings.php:60 +msgctxt "short" +msgid "May" +msgstr "mei" + +#: ../../include/js_strings.php:61 +msgid "Jun" +msgstr "jun" + +#: ../../include/js_strings.php:62 +msgid "Jul" +msgstr "jul" + +#: ../../include/js_strings.php:63 +msgid "Aug" +msgstr "aug" + +#: ../../include/js_strings.php:64 +msgid "Sep" +msgstr "sep" + +#: ../../include/js_strings.php:65 +msgid "Oct" +msgstr "okt" + +#: ../../include/js_strings.php:66 +msgid "Nov" +msgstr "nov" + +#: ../../include/js_strings.php:67 +msgid "Dec" +msgstr "dec" + +#: ../../include/js_strings.php:68 ../../include/text.php:1160 +msgid "Sunday" +msgstr "zondag" + +#: ../../include/js_strings.php:69 ../../include/text.php:1160 +msgid "Monday" +msgstr "maandag" + +#: ../../include/js_strings.php:70 ../../include/text.php:1160 +msgid "Tuesday" +msgstr "dinsdag" + +#: ../../include/js_strings.php:71 ../../include/text.php:1160 +msgid "Wednesday" +msgstr "woensdag" + +#: ../../include/js_strings.php:72 ../../include/text.php:1160 +msgid "Thursday" +msgstr "donderdag" + +#: ../../include/js_strings.php:73 ../../include/text.php:1160 +msgid "Friday" +msgstr "vrijdag" + +#: ../../include/js_strings.php:74 ../../include/text.php:1160 +msgid "Saturday" +msgstr "zaterdag" + +#: ../../include/js_strings.php:75 +msgid "Sun" +msgstr "zo" + +#: ../../include/js_strings.php:76 +msgid "Mon" +msgstr "ma" + +#: ../../include/js_strings.php:77 +msgid "Tue" +msgstr "di" + +#: ../../include/js_strings.php:78 +msgid "Wed" +msgstr "wo" + +#: ../../include/js_strings.php:79 +msgid "Thu" +msgstr "do" + +#: ../../include/js_strings.php:80 +msgid "Fri" +msgstr "vr" + +#: ../../include/js_strings.php:81 +msgid "Sat" +msgstr "za" + +#: ../../include/js_strings.php:82 +msgctxt "calendar" +msgid "today" +msgstr "vandaag" + +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "month" +msgstr "maand" + +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "week" +msgstr "week" + +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "day" +msgstr "dag" + +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "All day" +msgstr "hele dag" + +#: ../../include/contact_selectors.php:56 +msgid "Frequently" +msgstr "Regelmatig" + +#: ../../include/contact_selectors.php:57 +msgid "Hourly" +msgstr "Elk uur" + +#: ../../include/contact_selectors.php:58 +msgid "Twice daily" +msgstr "Twee keer per dag" + +#: ../../include/contact_selectors.php:59 +msgid "Daily" +msgstr "Dagelijks" + +#: ../../include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Wekelijks" + +#: ../../include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Maandelijks" + +#: ../../include/contact_selectors.php:76 +msgid "Friendica" +msgstr "Friendica" + +#: ../../include/contact_selectors.php:77 +msgid "OStatus" +msgstr "OStatus" + +#: ../../include/contact_selectors.php:78 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 +#: ../../mod/id.php:16 ../../mod/admin.php:805 ../../mod/admin.php:814 +#: ../../boot.php:1488 +msgid "Email" +msgstr "E-mail" + +#: ../../include/contact_selectors.php:80 +msgid "Diaspora" +msgstr "Diaspora" + +#: ../../include/contact_selectors.php:81 +msgid "Facebook" +msgstr "Facebook" + +#: ../../include/contact_selectors.php:82 +msgid "Zot!" +msgstr "Zot!" + +#: ../../include/contact_selectors.php:83 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: ../../include/contact_selectors.php:84 +msgid "XMPP/IM" +msgstr "XMPP/IM" + +#: ../../include/contact_selectors.php:85 +msgid "MySpace" +msgstr "MySpace" + +#: ../../include/activities.php:42 +msgid " and " +msgstr " en " + +#: ../../include/activities.php:50 +msgid "public profile" +msgstr "openbaar profiel" + +#: ../../include/activities.php:59 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s veranderde %2$s naar “%3$s”" + +#: ../../include/activities.php:60 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "Bezoek het %2$s van %1$s" + +#: ../../include/activities.php:63 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s heeft een aangepaste %2$s, %3$s veranderd." + +#: ../../include/Contact.php:101 ../../include/conversation.php:952 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/identity.php:952 ../../mod/directory.php:318 +#: ../../mod/match.php:64 ../../mod/suggest.php:52 +msgid "Connect" +msgstr "Verbinden" + +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "Nieuw venster" + +#: ../../include/Contact.php:119 +msgid "Open the selected location in a different window or browser tab" +msgstr "Open de geselecteerde locatie in een ander venster of tab" + +#: ../../include/Contact.php:237 +#, php-format +msgid "User '%s' deleted" +msgstr "Account '%s' verwijderd" + +#: ../../include/dba/dba_driver.php:141 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden" + +#: ../../include/items.php:423 ../../mod/like.php:280 +#: ../../mod/subthread.php:58 ../../mod/dreport.php:6 ../../mod/dreport.php:45 +#: ../../mod/group.php:68 ../../mod/profperm.php:23 +#: ../../mod/import_items.php:114 ../../index.php:360 +msgid "Permission denied" +msgstr "Toegang geweigerd" + +#: ../../include/items.php:1128 ../../include/items.php:1174 +msgid "(Unknown)" +msgstr "(Onbekend)" + +#: ../../include/items.php:1371 +msgid "Visible to anybody on the internet." +msgstr "Voor iedereen op het internet zichtbaar." + +#: ../../include/items.php:1373 +msgid "Visible to you only." +msgstr "Alleen voor jou zichtbaar." + +#: ../../include/items.php:1375 +msgid "Visible to anybody in this network." +msgstr "Voor iedereen in dit netwerk zichtbaar." + +#: ../../include/items.php:1377 +msgid "Visible to anybody authenticated." +msgstr "Voor iedereen die geauthenticeerd is zichtbaar." + +#: ../../include/items.php:1379 +#, php-format +msgid "Visible to anybody on %s." +msgstr "Voor iedereen op %s zichtbaar." + +#: ../../include/items.php:1381 +msgid "Visible to all connections." +msgstr "Voor alle connecties zichtbaar." + +#: ../../include/items.php:1383 +msgid "Visible to approved connections." +msgstr "Voor alle goedgekeurde connecties zichtbaar." + +#: ../../include/items.php:1385 +msgid "Visible to specific connections." +msgstr "Voor specifieke connecties zichtbaar." + +#: ../../include/items.php:4317 ../../mod/display.php:36 +#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 +#: ../../mod/admin.php:1005 ../../mod/admin.php:1210 ../../mod/thing.php:86 +#: ../../mod/viewsrc.php:20 +msgid "Item not found." +msgstr "Item niet gevonden." + +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 +msgid "Collection not found." +msgstr "Collectie niet gevonden." + +#: ../../include/items.php:4842 +msgid "Collection is empty." +msgstr "Collectie is leeg" + +#: ../../include/items.php:4849 +#, php-format +msgid "Collection: %s" +msgstr "Collectie: %s" + +#: ../../include/items.php:4859 ../../mod/connedit.php:683 +#, php-format +msgid "Connection: %s" +msgstr "Connectie: %s" + +#: ../../include/items.php:4861 +msgid "Connection not found." +msgstr "Connectie niet gevonden." + +#: ../../include/conversation.php:120 ../../include/text.php:1880 +#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:83 msgid "photo" msgstr "foto" #: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1876 ../../mod/like.php:363 ../../mod/tagger.php:47 +#: ../../include/text.php:1883 ../../mod/like.php:363 ../../mod/tagger.php:47 #: ../../mod/events.php:245 msgid "event" msgstr "gebeurtenis" @@ -33,12 +1275,12 @@ msgstr "gebeurtenis" msgid "channel" msgstr "kanaal" -#: ../../include/conversation.php:148 ../../include/text.php:1879 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 +#: ../../include/conversation.php:148 ../../include/text.php:1886 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 msgid "status" msgstr "bericht" -#: ../../include/conversation.php:150 ../../include/text.php:1881 +#: ../../include/conversation.php:150 ../../include/text.php:1888 #: ../../mod/tagger.php:53 msgid "comment" msgstr "reactie" @@ -63,7 +1305,7 @@ msgstr "%1$s is nu met %2$s verbonden" msgid "%1$s poked %2$s" msgstr "%1$s heeft %2$s aangestoten" -#: ../../include/conversation.php:243 ../../include/text.php:946 +#: ../../include/conversation.php:243 ../../include/text.php:953 msgid "poked" msgstr "aangestoten" @@ -117,16 +1359,6 @@ msgstr "mogelijk aanwezig" msgid "Select" msgstr "Kies" -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:551 ../../mod/photos.php:1129 -#: ../../mod/editblock.php:181 ../../mod/admin.php:808 ../../mod/admin.php:967 -#: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 -#: ../../mod/settings.php:647 ../../mod/editlayout.php:179 -#: ../../mod/editwebpage.php:223 ../../mod/group.php:173 -msgid "Delete" -msgstr "Verwijderen" - #: ../../include/conversation.php:664 ../../include/ItemObject.php:89 msgid "Private Message" msgstr "Privébericht" @@ -199,8 +1431,8 @@ msgid "Follow Thread" msgstr "Conversatie volgen" #: ../../include/conversation.php:947 -msgid "Stop Following" -msgstr "Bericht niet meer volgen" +msgid "Unfollow Thread" +msgstr "Conversatie niet meer volgen" #: ../../include/conversation.php:948 msgid "View Status" @@ -219,13 +1451,6 @@ msgstr "Foto's weergeven" msgid "Activity/Posts" msgstr "Kanaal-activiteit" -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:952 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:318 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 -msgid "Connect" -msgstr "Verbinden" - #: ../../include/conversation.php:953 msgid "Edit Connection" msgstr "Connectie bewerken" @@ -238,13 +1463,6 @@ msgstr "Privébericht verzenden" msgid "Poke" msgstr "Aanstoten" -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../include/widgets.php:1281 ../../mod/photos.php:759 -#: ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "Onbekend" - #: ../../include/conversation.php:1069 #, php-format msgid "%s likes this." @@ -319,7 +1537,7 @@ msgstr "Bewaar in map: " msgid "Where are you right now?" msgstr "Waar bevind je je op dit moment?" -#: ../../include/conversation.php:1160 ../../mod/editpost.php:54 +#: ../../include/conversation.php:1160 ../../mod/editpost.php:56 #: ../../mod/mail.php:195 ../../mod/mail.php:309 msgid "Expires YYYY-MM-DD HH:MM" msgstr "Verloopt op DD-MM-YYYY om HH:MM" @@ -530,7 +1748,7 @@ msgstr "Nieuwe berichten bovenaan" msgid "Sort by Post Date" msgstr "Nieuwe berichten bovenaan" -#: ../../include/conversation.php:1525 ../../include/widgets.php:94 +#: ../../include/conversation.php:1525 ../../include/widgets.php:95 msgid "Personal" msgstr "Persoonlijk" @@ -563,7 +1781,7 @@ msgstr "Spam" msgid "Posts flagged as SPAM" msgstr "Berichten gemarkeerd als SPAM" -#: ../../include/conversation.php:1600 ../../mod/admin.php:972 +#: ../../include/conversation.php:1600 ../../mod/admin.php:973 msgid "Channel" msgstr "Kanaal" @@ -588,12 +1806,6 @@ msgstr "Foto's" msgid "Photo Albums" msgstr "Fotoalbums" -#: ../../include/conversation.php:1628 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Bestanden" - #: ../../include/conversation.php:1631 msgid "Files and Storage" msgstr "Bestanden en opslagruimte" @@ -627,7 +1839,7 @@ msgid "View all" msgstr "Toon alles" #: ../../include/conversation.php:1720 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1263 ../../include/taxonomy.php:403 +#: ../../include/identity.php:1263 ../../include/taxonomy.php:412 #: ../../mod/photos.php:1086 msgctxt "noun" msgid "Like" @@ -685,1208 +1897,6 @@ msgid_plural "Abstains" msgstr[0] "onthouding" msgstr[1] "onthoudingen" -#: ../../include/Import/import_diaspora.php:17 -msgid "No username found in import file." -msgstr "Geen gebruikersnaam in het importbestand gevonden." - -#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 -msgid "Unable to create a unique channel address. Import failed." -msgstr "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt." - -#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 -msgid "Import completed." -msgstr "Import voltooid." - -#: ../../include/RedDAV/RedBrowser.php:107 -#: ../../include/RedDAV/RedBrowser.php:239 -msgid "parent" -msgstr "omhoog" - -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2539 -msgid "Collection" -msgstr "map" - -#: ../../include/RedDAV/RedBrowser.php:134 -msgid "Principal" -msgstr "principal" - -#: ../../include/RedDAV/RedBrowser.php:137 -msgid "Addressbook" -msgstr "Adresboek" - -#: ../../include/RedDAV/RedBrowser.php:140 -msgid "Calendar" -msgstr "Agenda" - -#: ../../include/RedDAV/RedBrowser.php:143 -msgid "Schedule Inbox" -msgstr "Planning-postvak IN" - -#: ../../include/RedDAV/RedBrowser.php:146 -msgid "Schedule Outbox" -msgstr "Planning-postvak UIT" - -#: ../../include/RedDAV/RedBrowser.php:227 -msgid "Total" -msgstr "Totaal" - -#: ../../include/RedDAV/RedBrowser.php:229 -msgid "Shared" -msgstr "Gedeeld" - -#: ../../include/RedDAV/RedBrowser.php:230 -#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/layouts.php:175 -#: ../../mod/menu.php:114 ../../mod/new_channel.php:121 -#: ../../mod/webpages.php:180 ../../mod/blocks.php:152 -msgid "Create" -msgstr "Aanmaken" - -#: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1293 -#: ../../mod/photos.php:784 ../../mod/photos.php:1317 -#: ../../mod/profile_photo.php:450 -msgid "Upload" -msgstr "Uploaden" - -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 -#: ../../mod/sharedwithme.php:95 -msgid "Name" -msgstr "Naam" - -#: ../../include/RedDAV/RedBrowser.php:236 -msgid "Type" -msgstr "Type" - -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1240 -#: ../../mod/sharedwithme.php:97 -msgid "Size" -msgstr "Grootte" - -#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 -msgid "Last Modified" -msgstr "Laatst gewijzigd" - -#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 -#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 -#: ../../include/apps.php:259 ../../include/ItemObject.php:100 -#: ../../mod/layouts.php:183 ../../mod/editblock.php:135 -#: ../../mod/editpost.php:112 ../../mod/menu.php:108 -#: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 -#: ../../mod/settings.php:646 ../../mod/connections.php:235 -#: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 -msgid "Edit" -msgstr "Bewerken" - -#: ../../include/RedDAV/RedBrowser.php:282 -#, php-format -msgid "You are using %1$s of your available file storage." -msgstr "Je gebruikt %1$s van de beschikbare bestandsopslag." - -#: ../../include/RedDAV/RedBrowser.php:287 -#, php-format -msgid "You are using %1$s of %2$s available file storage. (%3$s%)" -msgstr "Je gebruikt %1$s van totaal %2$s beschikbare bestandsopslag. (%3$s%)" - -#: ../../include/RedDAV/RedBrowser.php:299 -msgid "WARNING:" -msgstr "WAARSCHUWING:" - -#: ../../include/RedDAV/RedBrowser.php:302 -msgid "Create new folder" -msgstr "Nieuwe map aanmaken" - -#: ../../include/RedDAV/RedBrowser.php:304 -msgid "Upload file" -msgstr "Bestand uploaden" - -#: ../../include/permissions.php:26 -msgid "Can view my normal stream and posts" -msgstr "Kan mijn normale kanaalstream en berichten bekijken" - -#: ../../include/permissions.php:27 -msgid "Can view my default channel profile" -msgstr "Kan mijn standaard kanaalprofiel bekijken" - -#: ../../include/permissions.php:28 -msgid "Can view my connections" -msgstr "Kan een lijst met mijn connecties bekijken" - -#: ../../include/permissions.php:29 -msgid "Can view my file storage and photos" -msgstr "Kan mijn foto's en andere bestanden bekijken" - -#: ../../include/permissions.php:30 -msgid "Can view my webpages" -msgstr "Kan mijn pagina's bekijken" - -#: ../../include/permissions.php:33 -msgid "Can send me their channel stream and posts" -msgstr "Kan mij de inhoud van hun kanaal en berichten sturen" - -#: ../../include/permissions.php:34 -msgid "Can post on my channel page (\"wall\")" -msgstr "Kan een bericht in mijn kanaal plaatsen" - -#: ../../include/permissions.php:35 -msgid "Can comment on or like my posts" -msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden" - -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" -msgstr "Kan mij privéberichten sturen" - -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" -msgstr "Kan dingen leuk of niet leuk vinden" - -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" -msgstr "Profielen en dingen, buiten berichten en reacties" - -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+" - -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" -msgstr "Geavanceerd - nuttig voor groepforums" - -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" -msgstr "Kan met mij chatten (wanneer beschikbaar)" - -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" -msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen" - -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" -msgstr "Kan mijn pagina's bewerken" - -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" -msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken" - -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)" - -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" -msgstr "Kan mijn kanaal beheren" - -#: ../../include/permissions.php:46 -msgid "" -"Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet." - -#: ../../include/permissions.php:867 -msgid "Social Networking" -msgstr "Sociaal netwerk" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Mostly Public" -msgstr "Vrijwel alles openbaar" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Restricted" -msgstr "Beperkt zichtbaar" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -msgid "Private" -msgstr "Verborgen kanaal" - -#: ../../include/permissions.php:868 -msgid "Community Forum" -msgstr "Groepsforum" - -#: ../../include/permissions.php:869 -msgid "Feed Republish" -msgstr "Feed herpubliceren" - -#: ../../include/permissions.php:870 -msgid "Special Purpose" -msgstr "Speciaal doel" - -#: ../../include/permissions.php:870 -msgid "Celebrity/Soapbox" -msgstr "Beroemdheid/alleen volgen" - -#: ../../include/permissions.php:870 -msgid "Group Repository" -msgstr "Groepsopslag" - -#: ../../include/permissions.php:871 ../../include/profile_selectors.php:6 -#: ../../include/profile_selectors.php:23 -#: ../../include/profile_selectors.php:61 -#: ../../include/profile_selectors.php:97 -msgid "Other" -msgstr "Anders" - -#: ../../include/permissions.php:871 -msgid "Custom/Expert Mode" -msgstr "Expertmodus/handmatig aanpassen" - -#: ../../include/chat.php:23 -msgid "Missing room name" -msgstr "Naam chatkanaal ontbreekt" - -#: ../../include/chat.php:32 -msgid "Duplicate room name" -msgstr "Naam chatkanaal bestaat al" - -#: ../../include/chat.php:82 ../../include/chat.php:90 -msgid "Invalid room specifier." -msgstr "Ongeldige omschrijving chatkanaal" - -#: ../../include/chat.php:122 -msgid "Room not found." -msgstr "Chatkanaal niet gevonden" - -#: ../../include/chat.php:133 ../../include/items.php:4390 -#: ../../include/photos.php:29 ../../include/attach.php:140 -#: ../../include/attach.php:188 ../../include/attach.php:251 -#: ../../include/attach.php:265 ../../include/attach.php:272 -#: ../../include/attach.php:337 ../../include/attach.php:351 -#: ../../include/attach.php:358 ../../include/attach.php:436 -#: ../../include/attach.php:884 ../../include/attach.php:955 -#: ../../include/attach.php:1107 ../../mod/achievements.php:30 -#: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 -#: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 -#: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 -#: ../../mod/mitem.php:111 ../../mod/connedit.php:352 ../../mod/mood.php:112 -#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 -#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 -#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 -#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 -#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/photos.php:70 -#: ../../mod/editblock.php:65 ../../mod/editpost.php:13 -#: ../../mod/appman.php:66 ../../mod/profile.php:64 ../../mod/profile.php:72 -#: ../../mod/menu.php:74 ../../mod/page.php:31 ../../mod/page.php:86 -#: ../../mod/new_channel.php:68 ../../mod/new_channel.php:99 -#: ../../mod/notifications.php:66 ../../mod/pdledit.php:21 -#: ../../mod/events.php:256 ../../mod/profile_photo.php:338 -#: ../../mod/profile_photo.php:351 ../../mod/item.php:205 -#: ../../mod/item.php:213 ../../mod/item.php:1006 ../../mod/message.php:16 -#: ../../mod/webpages.php:69 ../../mod/register.php:72 ../../mod/blocks.php:69 -#: ../../mod/blocks.php:76 ../../mod/service_limits.php:7 -#: ../../mod/sources.php:66 ../../mod/regmod.php:17 ../../mod/channel.php:100 -#: ../../mod/channel.php:214 ../../mod/channel.php:254 ../../mod/thing.php:271 -#: ../../mod/thing.php:291 ../../mod/thing.php:328 ../../mod/invite.php:13 -#: ../../mod/invite.php:104 ../../mod/mail.php:118 ../../mod/viewsrc.php:14 -#: ../../mod/settings.php:566 ../../mod/manage.php:6 ../../mod/api.php:26 -#: ../../mod/api.php:31 ../../mod/connections.php:29 -#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 -#: ../../mod/editwebpage.php:64 ../../mod/editwebpage.php:86 -#: ../../mod/editwebpage.php:101 ../../mod/editwebpage.php:125 -#: ../../mod/group.php:9 ../../mod/viewconnections.php:22 -#: ../../mod/viewconnections.php:27 ../../mod/locs.php:83 -#: ../../mod/setup.php:227 ../../mod/sharedwithme.php:7 -#: ../../mod/suggest.php:26 ../../mod/profiles.php:188 -#: ../../mod/profiles.php:576 ../../index.php:178 ../../index.php:361 -msgid "Permission denied." -msgstr "Toegang geweigerd" - -#: ../../include/chat.php:143 -msgid "Room is full" -msgstr "Chatkanaal is vol" - -#: ../../include/datetime.php:48 -msgid "Miscellaneous" -msgstr "Diversen" - -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" -msgstr "JJJJ-MM-DD of MM-DD" - -#: ../../include/datetime.php:235 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:689 -msgid "Required" -msgstr "Vereist" - -#: ../../include/datetime.php:262 ../../boot.php:2287 -msgid "never" -msgstr "nooit" - -#: ../../include/datetime.php:268 -msgid "less than a second ago" -msgstr "minder dan een seconde geleden" - -#: ../../include/datetime.php:271 -msgid "year" -msgstr "jaar" - -#: ../../include/datetime.php:271 -msgid "years" -msgstr "jaren" - -#: ../../include/datetime.php:272 -msgid "month" -msgstr "maand" - -#: ../../include/datetime.php:272 -msgid "months" -msgstr "maanden" - -#: ../../include/datetime.php:273 -msgid "week" -msgstr "week" - -#: ../../include/datetime.php:273 -msgid "weeks" -msgstr "weken" - -#: ../../include/datetime.php:274 -msgid "day" -msgstr "dag" - -#: ../../include/datetime.php:274 -msgid "days" -msgstr "dagen" - -#: ../../include/datetime.php:275 -msgid "hour" -msgstr "uur" - -#: ../../include/datetime.php:275 -msgid "hours" -msgstr "uren" - -#: ../../include/datetime.php:276 -msgid "minute" -msgstr "minuut" - -#: ../../include/datetime.php:276 -msgid "minutes" -msgstr "minuten" - -#: ../../include/datetime.php:277 -msgid "second" -msgstr "seconde" - -#: ../../include/datetime.php:277 -msgid "seconds" -msgstr "seconden" - -#: ../../include/datetime.php:285 -#, php-format -msgctxt "e.g. 22 hours ago, 1 minute ago" -msgid "%1$d %2$s ago" -msgstr "%1$d %2$s geleden" - -#: ../../include/datetime.php:519 -#, php-format -msgid "%1$s's birthday" -msgstr "Verjaardag van %1$s" - -#: ../../include/datetime.php:520 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Gefeliciteerd met je verjaardag %1$s" - -#: ../../include/features.php:38 -msgid "General Features" -msgstr "Algemene functies" - -#: ../../include/features.php:40 -msgid "Content Expiration" -msgstr "Inhoud laten verlopen" - -#: ../../include/features.php:40 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen" - -#: ../../include/features.php:41 -msgid "Multiple Profiles" -msgstr "Meerdere profielen" - -#: ../../include/features.php:41 -msgid "Ability to create multiple profiles" -msgstr "Mogelijkheid om meerdere profielen aan te maken" - -#: ../../include/features.php:42 -msgid "Advanced Profiles" -msgstr "Geavanceerde profielen" - -#: ../../include/features.php:42 -msgid "Additional profile sections and selections" -msgstr "Extra onderdelen en keuzes voor je profiel" - -#: ../../include/features.php:43 -msgid "Profile Import/Export" -msgstr "Profiel importen/exporteren" - -#: ../../include/features.php:43 -msgid "Save and load profile details across sites/channels" -msgstr "Profielgegevens opslaan en in andere hubs/kanalen gebruiken." - -#: ../../include/features.php:44 -msgid "Web Pages" -msgstr "Webpagina's" - -#: ../../include/features.php:44 -msgid "Provide managed web pages on your channel" -msgstr "Sta beheerde webpagina's op jouw kanaal toe" - -#: ../../include/features.php:45 -msgid "Private Notes" -msgstr "Privé-aantekeningen" - -#: ../../include/features.php:45 -msgid "Enables a tool to store notes and reminders" -msgstr "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan" - -#: ../../include/features.php:46 -msgid "Navigation Channel Select" -msgstr "Kanaal kiezen in navigatiemenu" - -#: ../../include/features.php:46 -msgid "Change channels directly from within the navigation dropdown menu" -msgstr "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk" - -#: ../../include/features.php:47 -msgid "Photo Location" -msgstr "Fotolocatie" - -#: ../../include/features.php:47 -msgid "If location data is available on uploaded photos, link this to a map." -msgstr "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart." - -#: ../../include/features.php:49 -msgid "Expert Mode" -msgstr "Expertmodus" - -#: ../../include/features.php:49 -msgid "Enable Expert Mode to provide advanced configuration options" -msgstr "Schakel de expertmodus in voor geavanceerde instellingen" - -#: ../../include/features.php:50 -msgid "Premium Channel" -msgstr "Premiumkanaal" - -#: ../../include/features.php:50 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal" - -#: ../../include/features.php:55 -msgid "Post Composition Features" -msgstr "Functies voor het opstellen van berichten" - -#: ../../include/features.php:57 -msgid "Use Markdown" -msgstr "Markdown gebruiken" - -#: ../../include/features.php:57 -msgid "Allow use of \"Markdown\" to format posts" -msgstr "Sta het gebruik van \"markdown\" toe om berichten mee op te maken." - -#: ../../include/features.php:58 -msgid "Large Photos" -msgstr "Grote foto's" - -#: ../../include/features.php:58 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" -msgstr "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt." - -#: ../../include/features.php:59 ../../include/widgets.php:545 -#: ../../mod/sources.php:88 -msgid "Channel Sources" -msgstr "Kanaalbronnen" - -#: ../../include/features.php:59 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Automatisch inhoud uit andere kanalen of feeds importeren." - -#: ../../include/features.php:60 -msgid "Even More Encryption" -msgstr "Extra encryptie" - -#: ../../include/features.php:60 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" -msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel." - -#: ../../include/features.php:61 -msgid "Enable Voting Tools" -msgstr "Peilingen inschakelen" - -#: ../../include/features.php:61 -msgid "Provide a class of post which others can vote on" -msgstr "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen." - -#: ../../include/features.php:62 -msgid "Delayed Posting" -msgstr "Berichten uitstellen" - -#: ../../include/features.php:62 -msgid "Allow posts to be published at a later date" -msgstr "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden." - -#: ../../include/features.php:68 -msgid "Network and Stream Filtering" -msgstr "Netwerk- en streamfilter" - -#: ../../include/features.php:69 -msgid "Search by Date" -msgstr "Zoek op datum" - -#: ../../include/features.php:69 -msgid "Ability to select posts by date ranges" -msgstr "Mogelijkheid om berichten op datum te filteren " - -#: ../../include/features.php:70 -msgid "Collections Filter" -msgstr "Filter op collecties" - -#: ../../include/features.php:70 -msgid "Enable widget to display Network posts only from selected collections" -msgstr "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties" - -#: ../../include/features.php:71 ../../include/widgets.php:273 -msgid "Saved Searches" -msgstr "Opgeslagen zoekopdrachten" - -#: ../../include/features.php:71 -msgid "Save search terms for re-use" -msgstr "Sla zoekopdrachten op voor hergebruik" - -#: ../../include/features.php:72 -msgid "Network Personal Tab" -msgstr "Persoonlijke netwerktab" - -#: ../../include/features.php:72 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had" - -#: ../../include/features.php:73 -msgid "Network New Tab" -msgstr "Nieuwe netwerktab" - -#: ../../include/features.php:73 -msgid "Enable tab to display all new Network activity" -msgstr "Laat de tab alle nieuwe netwerkactiviteit tonen" - -#: ../../include/features.php:74 -msgid "Affinity Tool" -msgstr "Verwantschapsfilter" - -#: ../../include/features.php:74 -msgid "Filter stream activity by depth of relationships" -msgstr "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag" - -#: ../../include/features.php:75 -msgid "Connection Filtering" -msgstr "Berichtenfilters" - -#: ../../include/features.php:75 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal" - -#: ../../include/features.php:76 -msgid "Suggest Channels" -msgstr "Kanalen voorstellen" - -#: ../../include/features.php:76 -msgid "Show channel suggestions" -msgstr "Voor jou mogelijk interessante kanalen voorstellen" - -#: ../../include/features.php:81 -msgid "Post/Comment Tools" -msgstr "Bericht- en reactiehulpmiddelen" - -#: ../../include/features.php:82 -msgid "Tagging" -msgstr "Taggen" - -#: ../../include/features.php:82 -msgid "Ability to tag existing posts" -msgstr "Mogelijkheid om bestaande berichten te taggen" - -#: ../../include/features.php:83 -msgid "Post Categories" -msgstr "Categorieën berichten" - -#: ../../include/features.php:83 -msgid "Add categories to your posts" -msgstr "Voeg categorieën toe aan je berichten" - -#: ../../include/features.php:84 ../../include/contact_widgets.php:57 -#: ../../include/widgets.php:303 -msgid "Saved Folders" -msgstr "Bewaarde mappen" - -#: ../../include/features.php:84 -msgid "Ability to file posts under folders" -msgstr "Mogelijkheid om berichten in mappen op te slaan" - -#: ../../include/features.php:85 -msgid "Dislike Posts" -msgstr "Vind berichten niet leuk" - -#: ../../include/features.php:85 -msgid "Ability to dislike posts/comments" -msgstr "Mogelijkheid om berichten en reacties niet leuk te vinden" - -#: ../../include/features.php:86 -msgid "Star Posts" -msgstr "Geef berichten een ster" - -#: ../../include/features.php:86 -msgid "Ability to mark special posts with a star indicator" -msgstr "Mogelijkheid om speciale berichten met een ster te markeren" - -#: ../../include/features.php:87 -msgid "Tag Cloud" -msgstr "Tagwolk" - -#: ../../include/features.php:87 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina" - -#: ../../include/comanche.php:34 ../../mod/admin.php:351 -msgid "Default" -msgstr "Standaard" - -#: ../../include/js_strings.php:5 -msgid "Delete this item?" -msgstr "Dit item verwijderen?" - -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 -msgid "Comment" -msgstr "Reactie" - -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 -msgid "[+] show all" -msgstr "[+] alle" - -#: ../../include/js_strings.php:8 -msgid "[-] show less" -msgstr "[-] minder reacties weergeven" - -#: ../../include/js_strings.php:9 -msgid "[+] expand" -msgstr "[+] uitklappen" - -#: ../../include/js_strings.php:10 -msgid "[-] collapse" -msgstr "[-] inklappen" - -#: ../../include/js_strings.php:11 -msgid "Password too short" -msgstr "Wachtwoord te kort" - -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" -msgstr "Wachtwoorden komen niet overeen" - -#: ../../include/js_strings.php:13 ../../mod/photos.php:41 -msgid "everybody" -msgstr "iedereen" - -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" -msgstr "Geheim wachtwoord" - -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" -msgstr "Wachtwoordhint" - -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." -msgstr "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen." - -#: ../../include/js_strings.php:17 -msgid "close all" -msgstr "Alles sluiten" - -#: ../../include/js_strings.php:18 -msgid "Nothing new here" -msgstr "Niets nieuw hier" - -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" -msgstr "Beoordeel dit kanaal (dit is openbaar)" - -#: ../../include/js_strings.php:20 ../../mod/connedit.php:694 -#: ../../mod/rate.php:157 -msgid "Rating" -msgstr "Beoordeling" - -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" -msgstr "Omschrijving (optioneel)" - -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 -#: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:715 ../../mod/mood.php:135 ../../mod/pconfig.php:108 -#: ../../mod/filestorage.php:156 ../../mod/poke.php:171 ../../mod/chat.php:184 -#: ../../mod/chat.php:213 ../../mod/rate.php:168 ../../mod/photos.php:637 -#: ../../mod/photos.php:1008 ../../mod/photos.php:1048 -#: ../../mod/photos.php:1166 ../../mod/admin.php:434 ../../mod/admin.php:801 -#: ../../mod/admin.php:965 ../../mod/admin.php:1097 ../../mod/admin.php:1291 -#: ../../mod/admin.php:1376 ../../mod/appman.php:99 ../../mod/pdledit.php:58 -#: ../../mod/events.php:534 ../../mod/events.php:710 ../../mod/sources.php:104 -#: ../../mod/sources.php:138 ../../mod/import.php:527 ../../mod/thing.php:313 -#: ../../mod/thing.php:359 ../../mod/invite.php:142 ../../mod/mail.php:371 -#: ../../mod/settings.php:584 ../../mod/settings.php:696 -#: ../../mod/settings.php:724 ../../mod/settings.php:747 -#: ../../mod/settings.php:832 ../../mod/settings.php:1021 -#: ../../mod/xchan.php:11 ../../mod/group.php:81 ../../mod/connect.php:93 -#: ../../mod/locs.php:116 ../../mod/setup.php:331 ../../mod/setup.php:371 -#: ../../mod/profiles.php:667 ../../mod/import_items.php:122 -#: ../../view/theme/redbasic/php/config.php:99 -msgid "Submit" -msgstr "Opslaan" - -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" -msgstr "Vul een internetadres/URL in:" - -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" -msgstr "Niet opgeslagen wijzigingen. Ben je er zeker van dat je deze pagina wil verlaten?" - -#: ../../include/js_strings.php:26 -msgid "timeago.prefixAgo" -msgstr "timeago.prefixAgo" - -#: ../../include/js_strings.php:27 -msgid "timeago.prefixFromNow" -msgstr "timeago.prefixFromNow" - -#: ../../include/js_strings.php:28 -msgid "ago" -msgstr "geleden" - -#: ../../include/js_strings.php:29 -msgid "from now" -msgstr "vanaf nu" - -#: ../../include/js_strings.php:30 -msgid "less than a minute" -msgstr "minder dan een minuut" - -#: ../../include/js_strings.php:31 -msgid "about a minute" -msgstr "ongeveer een minuut" - -#: ../../include/js_strings.php:32 -#, php-format -msgid "%d minutes" -msgstr "%d minuten" - -#: ../../include/js_strings.php:33 -msgid "about an hour" -msgstr "ongeveer een uur" - -#: ../../include/js_strings.php:34 -#, php-format -msgid "about %d hours" -msgstr "ongeveer %d uren" - -#: ../../include/js_strings.php:35 -msgid "a day" -msgstr "een dag" - -#: ../../include/js_strings.php:36 -#, php-format -msgid "%d days" -msgstr "%d dagen" - -#: ../../include/js_strings.php:37 -msgid "about a month" -msgstr "ongeveer een maand" - -#: ../../include/js_strings.php:38 -#, php-format -msgid "%d months" -msgstr "%d maanden" - -#: ../../include/js_strings.php:39 -msgid "about a year" -msgstr "ongeveer een jaar" - -#: ../../include/js_strings.php:40 -#, php-format -msgid "%d years" -msgstr "%d jaren" - -#: ../../include/js_strings.php:41 -msgid " " -msgstr " " - -#: ../../include/js_strings.php:42 -msgid "timeago.numbers" -msgstr "timeago.numbers" - -#: ../../include/js_strings.php:44 ../../include/text.php:1157 -msgid "January" -msgstr "januari" - -#: ../../include/js_strings.php:45 ../../include/text.php:1157 -msgid "February" -msgstr "februari" - -#: ../../include/js_strings.php:46 ../../include/text.php:1157 -msgid "March" -msgstr "maart" - -#: ../../include/js_strings.php:47 ../../include/text.php:1157 -msgid "April" -msgstr "april" - -#: ../../include/js_strings.php:48 -msgctxt "long" -msgid "May" -msgstr "mei" - -#: ../../include/js_strings.php:49 ../../include/text.php:1157 -msgid "June" -msgstr "juni" - -#: ../../include/js_strings.php:50 ../../include/text.php:1157 -msgid "July" -msgstr "juli" - -#: ../../include/js_strings.php:51 ../../include/text.php:1157 -msgid "August" -msgstr "augustus" - -#: ../../include/js_strings.php:52 ../../include/text.php:1157 -msgid "September" -msgstr "september" - -#: ../../include/js_strings.php:53 ../../include/text.php:1157 -msgid "October" -msgstr "oktober" - -#: ../../include/js_strings.php:54 ../../include/text.php:1157 -msgid "November" -msgstr "november" - -#: ../../include/js_strings.php:55 ../../include/text.php:1157 -msgid "December" -msgstr "december" - -#: ../../include/js_strings.php:56 -msgid "Jan" -msgstr "jan" - -#: ../../include/js_strings.php:57 -msgid "Feb" -msgstr "feb" - -#: ../../include/js_strings.php:58 -msgid "Mar" -msgstr "mrt" - -#: ../../include/js_strings.php:59 -msgid "Apr" -msgstr "apr" - -#: ../../include/js_strings.php:60 -msgctxt "short" -msgid "May" -msgstr "mei" - -#: ../../include/js_strings.php:61 -msgid "Jun" -msgstr "jun" - -#: ../../include/js_strings.php:62 -msgid "Jul" -msgstr "jul" - -#: ../../include/js_strings.php:63 -msgid "Aug" -msgstr "aug" - -#: ../../include/js_strings.php:64 -msgid "Sep" -msgstr "sep" - -#: ../../include/js_strings.php:65 -msgid "Oct" -msgstr "okt" - -#: ../../include/js_strings.php:66 -msgid "Nov" -msgstr "nov" - -#: ../../include/js_strings.php:67 -msgid "Dec" -msgstr "dec" - -#: ../../include/js_strings.php:68 ../../include/text.php:1153 -msgid "Sunday" -msgstr "zondag" - -#: ../../include/js_strings.php:69 ../../include/text.php:1153 -msgid "Monday" -msgstr "maandag" - -#: ../../include/js_strings.php:70 ../../include/text.php:1153 -msgid "Tuesday" -msgstr "dinsdag" - -#: ../../include/js_strings.php:71 ../../include/text.php:1153 -msgid "Wednesday" -msgstr "woensdag" - -#: ../../include/js_strings.php:72 ../../include/text.php:1153 -msgid "Thursday" -msgstr "donderdag" - -#: ../../include/js_strings.php:73 ../../include/text.php:1153 -msgid "Friday" -msgstr "vrijdag" - -#: ../../include/js_strings.php:74 ../../include/text.php:1153 -msgid "Saturday" -msgstr "zaterdag" - -#: ../../include/js_strings.php:75 -msgid "Sun" -msgstr "zo" - -#: ../../include/js_strings.php:76 -msgid "Mon" -msgstr "ma" - -#: ../../include/js_strings.php:77 -msgid "Tue" -msgstr "di" - -#: ../../include/js_strings.php:78 -msgid "Wed" -msgstr "wo" - -#: ../../include/js_strings.php:79 -msgid "Thu" -msgstr "do" - -#: ../../include/js_strings.php:80 -msgid "Fri" -msgstr "vr" - -#: ../../include/js_strings.php:81 -msgid "Sat" -msgstr "za" - -#: ../../include/js_strings.php:82 -msgctxt "calendar" -msgid "today" -msgstr "vandaag" - -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "month" -msgstr "maand" - -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "week" -msgstr "week" - -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "day" -msgstr "dag" - -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "All day" -msgstr "hele dag" - -#: ../../include/contact_selectors.php:56 -msgid "Frequently" -msgstr "Regelmatig" - -#: ../../include/contact_selectors.php:57 -msgid "Hourly" -msgstr "Elk uur" - -#: ../../include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "Twee keer per dag" - -#: ../../include/contact_selectors.php:59 -msgid "Daily" -msgstr "Dagelijks" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Wekelijks" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Maandelijks" - -#: ../../include/contact_selectors.php:76 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/contact_selectors.php:77 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:804 ../../mod/admin.php:813 -#: ../../boot.php:1486 -msgid "Email" -msgstr "E-mail" - -#: ../../include/contact_selectors.php:80 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/contact_selectors.php:81 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/contact_selectors.php:82 -msgid "Zot!" -msgstr "Zot!" - -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/contact_selectors.php:85 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/activities.php:42 -msgid " and " -msgstr " en " - -#: ../../include/activities.php:50 -msgid "public profile" -msgstr "openbaar profiel" - -#: ../../include/activities.php:59 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s veranderde %2$s naar “%3$s”" - -#: ../../include/activities.php:60 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Bezoek het %2$s van %1$s" - -#: ../../include/activities.php:63 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s heeft een aangepaste %2$s, %3$s veranderd." - -#: ../../include/Contact.php:118 -msgid "New window" -msgstr "Nieuw venster" - -#: ../../include/Contact.php:119 -msgid "Open the selected location in a different window or browser tab" -msgstr "Open de geselecteerde locatie in een ander venster of tab" - -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "Account '%s' verwijderd" - -#: ../../include/dba/dba_driver.php:141 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden" - -#: ../../include/items.php:423 ../../mod/like.php:280 -#: ../../mod/subthread.php:52 ../../mod/dreport.php:6 ../../mod/dreport.php:45 -#: ../../mod/group.php:68 ../../mod/profperm.php:23 -#: ../../mod/import_items.php:114 ../../index.php:360 -msgid "Permission denied" -msgstr "Toegang geweigerd" - -#: ../../include/items.php:1128 ../../include/items.php:1174 -msgid "(Unknown)" -msgstr "(Onbekend)" - -#: ../../include/items.php:1371 -msgid "Visible to anybody on the internet." -msgstr "Voor iedereen op het internet zichtbaar." - -#: ../../include/items.php:1373 -msgid "Visible to you only." -msgstr "Alleen voor jou zichtbaar." - -#: ../../include/items.php:1375 -msgid "Visible to anybody in this network." -msgstr "Voor iedereen in dit netwerk zichtbaar." - -#: ../../include/items.php:1377 -msgid "Visible to anybody authenticated." -msgstr "Voor iedereen die geauthenticeerd is zichtbaar." - -#: ../../include/items.php:1379 -#, php-format -msgid "Visible to anybody on %s." -msgstr "Voor iedereen op %s zichtbaar." - -#: ../../include/items.php:1381 -msgid "Visible to all connections." -msgstr "Voor alle connecties zichtbaar." - -#: ../../include/items.php:1383 -msgid "Visible to approved connections." -msgstr "Voor alle goedgekeurde connecties zichtbaar." - -#: ../../include/items.php:1385 -msgid "Visible to specific connections." -msgstr "Voor specifieke connecties zichtbaar." - -#: ../../include/items.php:4311 ../../mod/display.php:36 -#: ../../mod/filestorage.php:27 ../../mod/admin.php:127 -#: ../../mod/admin.php:1004 ../../mod/admin.php:1204 ../../mod/thing.php:86 -#: ../../mod/viewsrc.php:20 -msgid "Item not found." -msgstr "Item niet gevonden." - -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 -msgid "Collection not found." -msgstr "Collectie niet gevonden." - -#: ../../include/items.php:4836 -msgid "Collection is empty." -msgstr "Collectie is leeg" - -#: ../../include/items.php:4843 -#, php-format -msgid "Collection: %s" -msgstr "Collectie: %s" - -#: ../../include/items.php:4853 ../../mod/connedit.php:683 -#, php-format -msgid "Connection: %s" -msgstr "Connectie: %s" - -#: ../../include/items.php:4855 -msgid "Connection not found." -msgstr "Connectie niet gevonden." - #: ../../include/network.php:613 msgid "view full size" msgstr "volledige grootte tonen" @@ -1949,19 +1959,6 @@ msgstr "Permissies" msgid "Close" msgstr "Sluiten" -#: ../../include/import.php:23 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt." - -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." -msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt." - -#: ../../include/import.php:80 ../../mod/import.php:139 -msgid "Cloned channel not found. Import failed." -msgstr "Gekloond kanaal niet gevonden. Importeren mislukt." - #: ../../include/photos.php:112 #, php-format msgid "Image exceeds website size limit of %lu bytes" @@ -2175,9 +2172,9 @@ msgstr "Ontrouw" msgid "Sex Addict" msgstr "Seksverslaafd" -#: ../../include/profile_selectors.php:80 ../../include/identity.php:390 -#: ../../include/identity.php:391 ../../include/identity.php:398 -#: ../../include/widgets.php:429 ../../mod/connedit.php:573 +#: ../../include/profile_selectors.php:80 ../../include/widgets.php:430 +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../mod/connedit.php:573 #: ../../mod/settings.php:338 ../../mod/settings.php:342 #: ../../mod/settings.php:343 ../../mod/settings.php:346 #: ../../mod/settings.php:357 @@ -2332,7 +2329,7 @@ msgstr "Hubbeheerder" msgid "Address Book" msgstr "Connecties" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1484 +#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1486 msgid "Login" msgstr "Inloggen" @@ -2345,8 +2342,8 @@ msgstr "Kanaalbeheer" msgid "Grid" msgstr "Grid" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 +#: ../../include/apps.php:134 ../../include/widgets.php:554 +#: ../../include/nav.php:202 ../../mod/admin.php:1064 ../../mod/admin.php:1264 msgid "Settings" msgstr "Instellingen" @@ -2360,7 +2357,7 @@ msgid "Profile" msgstr "Profiel" #: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 +#: ../../mod/events.php:523 msgid "Events" msgstr "Agenda" @@ -2385,8 +2382,8 @@ msgstr "Stemming" msgid "Chat" msgstr "Chatten" -#: ../../include/apps.php:147 ../../include/text.php:859 -#: ../../include/text.php:871 ../../include/nav.php:159 +#: ../../include/apps.php:147 ../../include/text.php:866 +#: ../../include/text.php:878 ../../include/nav.php:159 #: ../../mod/search.php:40 msgid "Search" msgstr "Zoeken" @@ -2437,10 +2434,23 @@ msgstr "Installeren" msgid "Purchase" msgstr "Aanschaffen" -#: ../../include/api.php:1300 +#: ../../include/api.php:1302 msgid "Public Timeline" msgstr "Openbare tijdlijn" +#: ../../include/import.php:23 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt." + +#: ../../include/import.php:70 +msgid "Channel clone failed. Import failed." +msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt." + +#: ../../include/import.php:80 ../../mod/import.php:139 +msgid "Cloned channel not found. Import failed." +msgstr "Gekloond kanaal niet gevonden. Importeren mislukt." + #: ../../include/enotify.php:96 #, php-format msgid "%s " @@ -2470,153 +2480,153 @@ msgstr "een privébericht" msgid "Please visit %s to view and/or reply to your private messages." msgstr "Bezoek %s om je privéberichten te bekijken en/of er op te reageren." -#: ../../include/enotify.php:158 +#: ../../include/enotify.php:160 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" msgstr "%1$s, %2$s gaf een reactie op [zrl=%3$s]een %4$s[/zrl]" -#: ../../include/enotify.php:166 +#: ../../include/enotify.php:168 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" msgstr "%1$s, %2$s gaf een reactie op [zrl=%3$s]een %5$s van %4$s[/zrl]" -#: ../../include/enotify.php:175 +#: ../../include/enotify.php:177 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" msgstr "%1$s, %2$s gaf een reactie op [zrl=%3$s]jouw %4$s[/zrl]" -#: ../../include/enotify.php:186 +#: ../../include/enotify.php:188 #, php-format msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" msgstr "[Hubzilla:Notificatie] Reactie op conversatie #%1$d door %2$s" -#: ../../include/enotify.php:187 +#: ../../include/enotify.php:189 #, php-format msgid "%1$s, %2$s commented on an item/conversation you have been following." msgstr "%1$s, %2$s gaf een reactie op een bericht/conversatie die jij volgt." -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 +#: ../../include/enotify.php:192 ../../include/enotify.php:207 +#: ../../include/enotify.php:233 ../../include/enotify.php:251 +#: ../../include/enotify.php:265 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "Bezoek %s om de conversatie te bekijken en/of er op te reageren." -#: ../../include/enotify.php:196 +#: ../../include/enotify.php:198 #, php-format msgid "[Hubzilla:Notify] %s posted to your profile wall" msgstr "[Hubzilla:Notificatie] %s heeft een bericht op jouw kanaal geplaatst" -#: ../../include/enotify.php:198 +#: ../../include/enotify.php:200 #, php-format msgid "%1$s, %2$s posted to your profile wall at %3$s" msgstr "%1$s, %2$s heeft om %3$s een bericht op jouw kanaal geplaatst" -#: ../../include/enotify.php:200 +#: ../../include/enotify.php:202 #, php-format msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" msgstr "%1$s, %2$s heeft een bericht op [zrl=%3$s]jouw kanaal[/zrl] geplaatst" -#: ../../include/enotify.php:224 +#: ../../include/enotify.php:226 #, php-format msgid "[Hubzilla:Notify] %s tagged you" msgstr "[Hubzilla:Notificatie] %s heeft je genoemd" -#: ../../include/enotify.php:225 +#: ../../include/enotify.php:227 #, php-format msgid "%1$s, %2$s tagged you at %3$s" msgstr "%1$s, %2$s noemde jou op %3$s" -#: ../../include/enotify.php:226 +#: ../../include/enotify.php:228 #, php-format msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." msgstr "%1$s, %2$s [zrl=%3$s]noemde jou[/zrl]." -#: ../../include/enotify.php:238 +#: ../../include/enotify.php:240 #, php-format msgid "[Hubzilla:Notify] %1$s poked you" msgstr "[Hubzilla:Notificatie] %1$s heeft je aangestoten" -#: ../../include/enotify.php:239 +#: ../../include/enotify.php:241 #, php-format msgid "%1$s, %2$s poked you at %3$s" msgstr "%1$s, %2$s heeft je aangestoten op %3$s" -#: ../../include/enotify.php:240 +#: ../../include/enotify.php:242 #, php-format msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." msgstr "%1$s, %2$s [zrl=%2$s]heeft je aangestoten[/zrl]." -#: ../../include/enotify.php:256 +#: ../../include/enotify.php:258 #, php-format msgid "[Hubzilla:Notify] %s tagged your post" msgstr "[Hubzilla:Notificatie] %s heeft jouw bericht getagd" -#: ../../include/enotify.php:257 +#: ../../include/enotify.php:259 #, php-format msgid "%1$s, %2$s tagged your post at %3$s" msgstr "%1$s, %2$s heeft jouw bericht om %3$s getagd" -#: ../../include/enotify.php:258 +#: ../../include/enotify.php:260 #, php-format msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" msgstr "%1$s, %2$s heeft [zrl=%3$s]jouw bericht[/zrl] getagd" -#: ../../include/enotify.php:270 +#: ../../include/enotify.php:272 msgid "[Hubzilla:Notify] Introduction received" msgstr "[Hubzilla:Notificatie] Connectieverzoek ontvangen" -#: ../../include/enotify.php:271 +#: ../../include/enotify.php:273 #, php-format msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" msgstr "%1$s, je hebt een nieuw connectieverzoek ontvangen van '%2$s' op %3$s" -#: ../../include/enotify.php:272 +#: ../../include/enotify.php:274 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." msgstr "%1$s, je hebt een [zrl=%2$s]nieuw connectieverzoek[/zrl] ontvangen van %3$s." -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/enotify.php:278 ../../include/enotify.php:297 #, php-format msgid "You may visit their profile at %s" msgstr "Je kan het profiel bekijken op %s" -#: ../../include/enotify.php:278 +#: ../../include/enotify.php:280 #, php-format msgid "Please visit %s to approve or reject the connection request." msgstr "Bezoek %s om het connectieverzoek te accepteren of af te wijzen." -#: ../../include/enotify.php:285 +#: ../../include/enotify.php:287 msgid "[Hubzilla:Notify] Friend suggestion received" msgstr "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen" -#: ../../include/enotify.php:286 +#: ../../include/enotify.php:288 #, php-format msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" msgstr "%1$s, je hebt een kanaalvoorstel ontvangen van '%2$s' om %3$s" -#: ../../include/enotify.php:287 +#: ../../include/enotify.php:289 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " "%4$s." msgstr "%1$s, je hebt [zrl=%2$s]een kanaalvoorstel[/zrl] ontvangen voor %3$s van %4$s." -#: ../../include/enotify.php:293 +#: ../../include/enotify.php:295 msgid "Name:" msgstr "Naam:" -#: ../../include/enotify.php:294 +#: ../../include/enotify.php:296 msgid "Photo:" msgstr "Foto:" -#: ../../include/enotify.php:297 +#: ../../include/enotify.php:299 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "Bezoek %s om het voorstel te accepteren of af te wijzen." -#: ../../include/enotify.php:511 +#: ../../include/enotify.php:514 msgid "[Hubzilla:Notify]" msgstr "[Hubzilla:Notificatie]" @@ -2672,7 +2682,7 @@ msgstr "Tag toevoegen" msgid "I like this (toggle)" msgstr "Vind ik leuk" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 +#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:326 msgid "like" msgstr "vind dit leuk" @@ -2680,7 +2690,7 @@ msgstr "vind dit leuk" msgid "I don't like this (toggle)" msgstr "Vind ik niet leuk" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 +#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:327 msgid "dislike" msgstr "vind dit niet leuk" @@ -2771,12 +2781,12 @@ msgstr "Datapakket ongeldig" msgid "Unable to verify channel signature" msgstr "Kanaalkenmerk kon niet worden geverifieerd. " -#: ../../include/zot.php:2264 +#: ../../include/zot.php:2265 #, php-format msgid "Unable to verify site signature for %s" msgstr "Hubkenmerk voor %s kon niet worden geverifieerd" -#: ../../include/zot.php:3591 +#: ../../include/zot.php:3592 msgid "invalid target signature" msgstr "ongeldig doelkenmerk" @@ -2972,7 +2982,7 @@ msgid_plural "%d invitations available" msgstr[0] "%d uitnodiging beschikbaar" msgstr[1] "%d uitnodigingen beschikbaar" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:438 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 msgid "Advanced" msgstr "Geavanceerd" @@ -3015,12 +3025,12 @@ msgid "Advanced example: name=fred and country=iceland" msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland" #: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:98 -#: ../../include/widgets.php:306 +#: ../../include/widgets.php:307 msgid "Everything" msgstr "Alles" -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 +#: ../../include/contact_widgets.php:95 ../../include/widgets.php:36 +#: ../../include/taxonomy.php:280 msgid "Categories" msgstr "Categorieën" @@ -3046,7 +3056,7 @@ msgstr "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande item msgid "Add new connections to this collection (privacy group)" msgstr "Voeg nieuwe connecties aan deze collectie toe (privacy-groep)" -#: ../../include/group.php:251 ../../mod/admin.php:813 +#: ../../include/group.php:251 ../../mod/admin.php:814 msgid "All Channels" msgstr "Alle kanalen" @@ -3070,10 +3080,311 @@ msgstr "Nieuwe collectie toevoegen" msgid "Channels not in any collection" msgstr "Kanalen die zich in geen enkele collectie bevinden" -#: ../../include/group.php:300 ../../include/widgets.php:274 +#: ../../include/group.php:300 ../../include/widgets.php:275 msgid "add" msgstr "toevoegen" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "Apps" + +#: ../../include/widgets.php:93 +msgid "System" +msgstr "Systeem" + +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "Persoonlijke app maken" + +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "Persoonlijke app bewerken" + +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "Negeren/Verbergen" + +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "Voorgestelde kanalen" + +#: ../../include/widgets.php:145 +msgid "See more..." +msgstr "Meer..." + +#: ../../include/widgets.php:166 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "Je hebt %1$.0f van de %2$.0f toegestane connecties." + +#: ../../include/widgets.php:172 +msgid "Add New Connection" +msgstr "Nieuwe connectie toevoegen" + +#: ../../include/widgets.php:173 +msgid "Enter the channel address" +msgstr "Vul het adres van het nieuwe kanaal in" + +#: ../../include/widgets.php:174 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Voorbeeld: bob@example.com, http://example.com/barbara" + +#: ../../include/widgets.php:190 +msgid "Notes" +msgstr "Aantekeningen" + +#: ../../include/widgets.php:192 ../../include/text.php:867 +#: ../../include/text.php:879 ../../mod/filer.php:49 ../../mod/admin.php:1442 +#: ../../mod/admin.php:1462 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +msgid "Save" +msgstr "Opslaan" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "Verwijder zoekterm" + +#: ../../include/widgets.php:349 +msgid "Archives" +msgstr "Archieven" + +#: ../../include/widgets.php:428 ../../mod/connedit.php:571 +msgid "Me" +msgstr "Ik" + +#: ../../include/widgets.php:429 ../../mod/connedit.php:572 +msgid "Family" +msgstr "Familie" + +#: ../../include/widgets.php:431 ../../mod/connedit.php:574 +msgid "Acquaintances" +msgstr "Kennissen" + +#: ../../include/widgets.php:432 ../../mod/connedit.php:575 +#: ../../mod/connections.php:88 ../../mod/connections.php:103 +msgid "All" +msgstr "Alles" + +#: ../../include/widgets.php:451 +msgid "Refresh" +msgstr "Vernieuwen" + +#: ../../include/widgets.php:485 +msgid "Account settings" +msgstr "Account" + +#: ../../include/widgets.php:491 +msgid "Channel settings" +msgstr "Kanaal" + +#: ../../include/widgets.php:497 +msgid "Additional features" +msgstr "Extra functies" + +#: ../../include/widgets.php:503 +msgid "Feature/Addon settings" +msgstr "Extra functie- en plugin-instellingen" + +#: ../../include/widgets.php:509 +msgid "Display settings" +msgstr "Weergave" + +#: ../../include/widgets.php:515 +msgid "Connected apps" +msgstr "Verbonden applicaties" + +#: ../../include/widgets.php:521 +msgid "Export channel" +msgstr "Kanaal exporteren" + +#: ../../include/widgets.php:530 ../../mod/connedit.php:683 +msgid "Connection Default Permissions" +msgstr "Standaard permissies voor connecties" + +#: ../../include/widgets.php:538 +msgid "Premium Channel Settings" +msgstr "Instellingen premiumkanaal" + +#: ../../include/widgets.php:568 +msgid "Private Mail Menu" +msgstr "Privéberichten" + +#: ../../include/widgets.php:570 +msgid "Combined View" +msgstr "Gecombineerd postvak" + +#: ../../include/widgets.php:575 ../../include/nav.php:191 +msgid "Inbox" +msgstr "Postvak IN" + +#: ../../include/widgets.php:580 ../../include/nav.php:192 +msgid "Outbox" +msgstr "Postvak UIT" + +#: ../../include/widgets.php:585 ../../include/nav.php:193 +msgid "New Message" +msgstr "Nieuw bericht" + +#: ../../include/widgets.php:604 ../../include/widgets.php:616 +msgid "Conversations" +msgstr "Conversaties" + +#: ../../include/widgets.php:608 +msgid "Received Messages" +msgstr "Ontvangen berichten" + +#: ../../include/widgets.php:612 +msgid "Sent Messages" +msgstr "Verzonden berichten" + +#: ../../include/widgets.php:626 +msgid "No messages." +msgstr "Geen berichten" + +#: ../../include/widgets.php:644 +msgid "Delete conversation" +msgstr "Verwijder conversatie" + +#: ../../include/widgets.php:670 +msgid "Events Menu" +msgstr "Agenda-menu" + +#: ../../include/widgets.php:671 +msgid "Day View" +msgstr "Dag tonen" + +#: ../../include/widgets.php:672 +msgid "Week View" +msgstr "Week tonen" + +#: ../../include/widgets.php:673 +msgid "Month View" +msgstr "Maand tonen" + +#: ../../include/widgets.php:674 ../../mod/events.php:527 +msgid "Export" +msgstr "Exporteren" + +#: ../../include/widgets.php:675 ../../mod/events.php:530 +msgid "Import" +msgstr "Importeren" + +#: ../../include/widgets.php:749 +msgid "Chat Rooms" +msgstr "Chatkanalen" + +#: ../../include/widgets.php:769 +msgid "Bookmarked Chatrooms" +msgstr "Bladwijzers van chatkanalen" + +#: ../../include/widgets.php:789 +msgid "Suggested Chatrooms" +msgstr "Voorgestelde chatkanalen" + +#: ../../include/widgets.php:916 ../../include/widgets.php:974 +msgid "photo/image" +msgstr "foto/afbeelding" + +#: ../../include/widgets.php:1069 ../../include/widgets.php:1071 +msgid "Rate Me" +msgstr "Beoordeel mij" + +#: ../../include/widgets.php:1075 +msgid "View Ratings" +msgstr "Bekijk beoordelingen" + +#: ../../include/widgets.php:1086 +msgid "Public Hubs" +msgstr "Openbare hubs" + +#: ../../include/widgets.php:1134 +msgid "Forums" +msgstr "Forums" + +#: ../../include/widgets.php:1161 +msgid "Tasks" +msgstr "Taken" + +#: ../../include/widgets.php:1170 +msgid "Documentation" +msgstr "Documentatie" + +#: ../../include/widgets.php:1172 +msgid "Project/Site Information" +msgstr "Project- en hub-informatie" + +#: ../../include/widgets.php:1173 +msgid "For Members" +msgstr "Voor leden" + +#: ../../include/widgets.php:1174 +msgid "For Administrators" +msgstr "Voor beheerders" + +#: ../../include/widgets.php:1175 +msgid "For Developers" +msgstr "Voor ontwikkelaars" + +#: ../../include/widgets.php:1200 ../../mod/admin.php:434 +msgid "Site" +msgstr "Hub-instellingen" + +#: ../../include/widgets.php:1201 +msgid "Accounts" +msgstr "Accounts" + +#: ../../include/widgets.php:1202 ../../mod/admin.php:965 +msgid "Channels" +msgstr "Kanalen" + +#: ../../include/widgets.php:1203 ../../mod/admin.php:1062 +#: ../../mod/admin.php:1102 +msgid "Plugins" +msgstr "Plug-ins" + +#: ../../include/widgets.php:1204 ../../mod/admin.php:1262 +#: ../../mod/admin.php:1296 +msgid "Themes" +msgstr "Thema's" + +#: ../../include/widgets.php:1205 +msgid "Inspect queue" +msgstr "Inspecteer berichtenwachtrij" + +#: ../../include/widgets.php:1206 +msgid "Profile Config" +msgstr "Profielconfiguratie" + +#: ../../include/widgets.php:1207 +msgid "DB updates" +msgstr "Database-updates" + +#: ../../include/widgets.php:1225 ../../include/widgets.php:1231 +#: ../../mod/admin.php:1381 +msgid "Logs" +msgstr "Logboeken" + +#: ../../include/widgets.php:1229 ../../include/nav.php:210 +msgid "Admin" +msgstr "Beheer" + +#: ../../include/widgets.php:1230 +msgid "Plugin Features" +msgstr "Plug-in-opties" + +#: ../../include/widgets.php:1232 +msgid "User registrations waiting for confirmation" +msgstr "Accounts die op goedkeuring wachten" + +#: ../../include/widgets.php:1311 ../../mod/photos.php:753 +#: ../../mod/photos.php:1286 +msgid "View Photo" +msgstr "Foto weergeven" + +#: ../../include/widgets.php:1327 ../../mod/photos.php:782 +msgid "Edit Album" +msgstr "Album bewerken" + #: ../../include/message.php:18 msgid "No recipient provided." msgstr "Geen ontvanger opgegeven." @@ -3329,35 +3640,35 @@ msgstr "School/opleiding:" msgid "Like this thing" msgstr "Vind dit ding leuk" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 +#: ../../include/taxonomy.php:238 ../../include/taxonomy.php:259 msgid "Tags" msgstr "Tags" -#: ../../include/taxonomy.php:294 +#: ../../include/taxonomy.php:303 msgid "Keywords" msgstr "Trefwoorden" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "have" msgstr "heb" -#: ../../include/taxonomy.php:315 +#: ../../include/taxonomy.php:324 msgid "has" msgstr "heeft" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "want" msgstr "wil" -#: ../../include/taxonomy.php:316 +#: ../../include/taxonomy.php:325 msgid "wants" msgstr "wil" -#: ../../include/taxonomy.php:317 +#: ../../include/taxonomy.php:326 msgid "likes" msgstr "vindt dit leuk" -#: ../../include/taxonomy.php:318 +#: ../../include/taxonomy.php:327 msgid "dislikes" msgstr "vindt dit niet leuk" @@ -3431,283 +3742,6 @@ msgstr "Bijlagen:" msgid "$Projectname event notification:" msgstr "Notificatie $Projectname-gebeurtenis:" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" -msgstr "Apps" - -#: ../../include/widgets.php:92 -msgid "System" -msgstr "Systeem" - -#: ../../include/widgets.php:95 -msgid "Create Personal App" -msgstr "Persoonlijke app maken" - -#: ../../include/widgets.php:96 -msgid "Edit Personal App" -msgstr "Persoonlijke app bewerken" - -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" -msgstr "Negeren/Verbergen" - -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" -msgstr "Voorgestelde kanalen" - -#: ../../include/widgets.php:144 -msgid "See more..." -msgstr "Meer..." - -#: ../../include/widgets.php:165 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "Je hebt %1$.0f van de %2$.0f toegestane connecties." - -#: ../../include/widgets.php:171 -msgid "Add New Connection" -msgstr "Nieuwe connectie toevoegen" - -#: ../../include/widgets.php:172 -msgid "Enter the channel address" -msgstr "Vul het adres van het nieuwe kanaal in" - -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Voorbeeld: bob@example.com, http://example.com/barbara" - -#: ../../include/widgets.php:189 -msgid "Notes" -msgstr "Aantekeningen" - -#: ../../include/widgets.php:191 ../../include/text.php:860 -#: ../../include/text.php:872 ../../mod/filer.php:49 ../../mod/admin.php:1436 -#: ../../mod/admin.php:1456 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -msgid "Save" -msgstr "Opslaan" - -#: ../../include/widgets.php:265 -msgid "Remove term" -msgstr "Verwijder zoekterm" - -#: ../../include/widgets.php:348 -msgid "Archives" -msgstr "Archieven" - -#: ../../include/widgets.php:427 ../../mod/connedit.php:571 -msgid "Me" -msgstr "Ik" - -#: ../../include/widgets.php:428 ../../mod/connedit.php:572 -msgid "Family" -msgstr "Familie" - -#: ../../include/widgets.php:430 ../../mod/connedit.php:574 -msgid "Acquaintances" -msgstr "Kennissen" - -#: ../../include/widgets.php:431 ../../mod/connedit.php:575 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "Alles" - -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "Vernieuwen" - -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "Account" - -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "Kanaal" - -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "Extra functies" - -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "Extra functie- en plugin-instellingen" - -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "Weergave" - -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "Verbonden applicaties" - -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "Kanaal exporteren" - -#: ../../include/widgets.php:529 ../../mod/connedit.php:683 -msgid "Connection Default Permissions" -msgstr "Standaard permissies voor connecties" - -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "Instellingen premiumkanaal" - -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" -msgstr "Privéberichten" - -#: ../../include/widgets.php:569 -msgid "Combined View" -msgstr "Gecombineerd postvak" - -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" -msgstr "Postvak IN" - -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" -msgstr "Postvak UIT" - -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" -msgstr "Nieuw bericht" - -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" -msgstr "Conversaties" - -#: ../../include/widgets.php:607 -msgid "Received Messages" -msgstr "Ontvangen berichten" - -#: ../../include/widgets.php:611 -msgid "Sent Messages" -msgstr "Verzonden berichten" - -#: ../../include/widgets.php:625 -msgid "No messages." -msgstr "Geen berichten" - -#: ../../include/widgets.php:643 -msgid "Delete conversation" -msgstr "Verwijder conversatie" - -#: ../../include/widgets.php:734 -msgid "Chat Rooms" -msgstr "Chatkanalen" - -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" -msgstr "Bladwijzers van chatkanalen" - -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" -msgstr "Voorgestelde chatkanalen" - -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" -msgstr "foto/afbeelding" - -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" -msgstr "Beoordeel mij" - -#: ../../include/widgets.php:1060 -msgid "View Ratings" -msgstr "Bekijk beoordelingen" - -#: ../../include/widgets.php:1071 -msgid "Public Hubs" -msgstr "Openbare hubs" - -#: ../../include/widgets.php:1119 -msgid "Forums" -msgstr "Forums" - -#: ../../include/widgets.php:1146 -msgid "Tasks" -msgstr "Taken" - -#: ../../include/widgets.php:1155 -msgid "Documentation" -msgstr "Documentatie" - -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" -msgstr "Project- en hub-informatie" - -#: ../../include/widgets.php:1158 -msgid "For Members" -msgstr "Voor leden" - -#: ../../include/widgets.php:1159 -msgid "For Administrators" -msgstr "Voor beheerders" - -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "Voor ontwikkelaars" - -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "Hub-instellingen" - -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "Accounts" - -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "Kanalen" - -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "Plug-ins" - -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "Thema's" - -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "Inspecteer berichtenwachtrij" - -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "Profielconfiguratie" - -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "Database-updates" - -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "Logboeken" - -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "Beheer" - -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "Plug-in-opties" - -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "Accounts die op goedkeuring wachten" - -#: ../../include/widgets.php:1275 ../../mod/photos.php:753 -#: ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "Foto weergeven" - -#: ../../include/widgets.php:1291 ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "Album bewerken" - #: ../../include/text.php:393 msgid "prev" msgstr "vorige" @@ -3732,222 +3766,222 @@ msgstr "ouder" msgid "newer" msgstr "nieuwer" -#: ../../include/text.php:777 +#: ../../include/text.php:784 msgid "No connections" msgstr "Geen connecties" -#: ../../include/text.php:789 +#: ../../include/text.php:796 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "%d connectie" msgstr[1] "%d connecties" -#: ../../include/text.php:802 ../../mod/viewconnections.php:101 +#: ../../include/text.php:809 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "Connecties weergeven" -#: ../../include/text.php:946 +#: ../../include/text.php:953 msgid "poke" msgstr "aanstoten" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "ping" msgstr "ping" -#: ../../include/text.php:947 +#: ../../include/text.php:954 msgid "pinged" msgstr "gepingd" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prod" msgstr "por" -#: ../../include/text.php:948 +#: ../../include/text.php:955 msgid "prodded" msgstr "gepord" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slap" msgstr "slaan" -#: ../../include/text.php:949 +#: ../../include/text.php:956 msgid "slapped" msgstr "sloeg" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "finger" msgstr "finger" -#: ../../include/text.php:950 +#: ../../include/text.php:957 msgid "fingered" msgstr "gefingerd" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuff" msgstr "afpoeieren" -#: ../../include/text.php:951 +#: ../../include/text.php:958 msgid "rebuffed" msgstr "afgepoeierd" -#: ../../include/text.php:961 +#: ../../include/text.php:968 msgid "happy" msgstr "gelukkig" -#: ../../include/text.php:962 +#: ../../include/text.php:969 msgid "sad" msgstr "bedroefd" -#: ../../include/text.php:963 +#: ../../include/text.php:970 msgid "mellow" msgstr "mellow" -#: ../../include/text.php:964 +#: ../../include/text.php:971 msgid "tired" msgstr "moe" -#: ../../include/text.php:965 +#: ../../include/text.php:972 msgid "perky" msgstr "parmantig" -#: ../../include/text.php:966 +#: ../../include/text.php:973 msgid "angry" msgstr "boos" -#: ../../include/text.php:967 +#: ../../include/text.php:974 msgid "stupified" msgstr "beteuterd" -#: ../../include/text.php:968 +#: ../../include/text.php:975 msgid "puzzled" msgstr "verward" -#: ../../include/text.php:969 +#: ../../include/text.php:976 msgid "interested" msgstr "geïnteresseerd" -#: ../../include/text.php:970 +#: ../../include/text.php:977 msgid "bitter" msgstr "verbitterd" -#: ../../include/text.php:971 +#: ../../include/text.php:978 msgid "cheerful" msgstr "vrolijk" -#: ../../include/text.php:972 +#: ../../include/text.php:979 msgid "alive" msgstr "levendig" -#: ../../include/text.php:973 +#: ../../include/text.php:980 msgid "annoyed" msgstr "geërgerd" -#: ../../include/text.php:974 +#: ../../include/text.php:981 msgid "anxious" msgstr "bezorgd" -#: ../../include/text.php:975 +#: ../../include/text.php:982 msgid "cranky" msgstr "humeurig" -#: ../../include/text.php:976 +#: ../../include/text.php:983 msgid "disturbed" msgstr "verontrust" -#: ../../include/text.php:977 +#: ../../include/text.php:984 msgid "frustrated" msgstr "gefrustreerd " -#: ../../include/text.php:978 +#: ../../include/text.php:985 msgid "depressed" msgstr "gedeprimeerd" -#: ../../include/text.php:979 +#: ../../include/text.php:986 msgid "motivated" msgstr "gemotiveerd" -#: ../../include/text.php:980 +#: ../../include/text.php:987 msgid "relaxed" msgstr "ontspannen" -#: ../../include/text.php:981 +#: ../../include/text.php:988 msgid "surprised" msgstr "verrast" -#: ../../include/text.php:1157 +#: ../../include/text.php:1164 msgid "May" msgstr "mei" -#: ../../include/text.php:1234 ../../include/text.php:1238 +#: ../../include/text.php:1241 ../../include/text.php:1245 msgid "Unknown Attachment" msgstr "Onbekende bijlage" -#: ../../include/text.php:1240 +#: ../../include/text.php:1247 msgid "unknown" msgstr "onbekend" -#: ../../include/text.php:1276 +#: ../../include/text.php:1283 msgid "remove category" msgstr "categorie verwijderen" -#: ../../include/text.php:1353 +#: ../../include/text.php:1360 msgid "remove from file" msgstr "uit map verwijderen" -#: ../../include/text.php:1465 ../../include/text.php:1476 +#: ../../include/text.php:1472 ../../include/text.php:1483 msgid "Click to open/close" msgstr "Klik om te openen of te sluiten" -#: ../../include/text.php:1649 ../../mod/events.php:497 +#: ../../include/text.php:1656 ../../mod/events.php:495 msgid "Link to Source" msgstr "Originele locatie" -#: ../../include/text.php:1670 ../../include/text.php:1742 +#: ../../include/text.php:1677 ../../include/text.php:1749 msgid "default" msgstr "standaard" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "Page layout" msgstr "Pagina-lay-out" -#: ../../include/text.php:1678 +#: ../../include/text.php:1685 msgid "You can create your own with the layouts tool" msgstr "Je kan jouw eigen lay-out ontwerpen onder lay-outs" -#: ../../include/text.php:1720 +#: ../../include/text.php:1727 msgid "Page content type" msgstr "Opmaaktype pagina" -#: ../../include/text.php:1754 +#: ../../include/text.php:1761 msgid "Select an alternate language" msgstr "Kies een andere taal" -#: ../../include/text.php:1886 +#: ../../include/text.php:1893 msgid "activity" msgstr "activiteit" -#: ../../include/text.php:2181 +#: ../../include/text.php:2188 msgid "Design Tools" msgstr "Ontwerp-hulpmiddelen" -#: ../../include/text.php:2184 ../../mod/blocks.php:147 +#: ../../include/text.php:2191 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Blokken" -#: ../../include/text.php:2185 ../../mod/menu.php:103 +#: ../../include/text.php:2192 ../../mod/menu.php:103 msgid "Menus" msgstr "Menu's" -#: ../../include/text.php:2186 ../../mod/layouts.php:174 +#: ../../include/text.php:2193 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Lay-outs" -#: ../../include/text.php:2187 +#: ../../include/text.php:2194 msgid "Pages" msgstr "Pagina's" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1483 +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 msgid "Logout" msgstr "Uitloggen" @@ -4020,7 +4054,7 @@ msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub" msgid "Home Page" msgstr "Homepage" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1460 +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 msgid "Register" msgstr "Registreren" @@ -4138,10 +4172,10 @@ msgstr "Veilig zoeken" #: ../../mod/mitem.php:229 ../../mod/connedit.php:635 #: ../../mod/connedit.php:684 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:409 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:410 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:106 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "No" msgstr "Nee" @@ -4150,10 +4184,10 @@ msgstr "Nee" #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../mod/filestorage.php:151 #: ../../mod/filestorage.php:159 ../../mod/photos.php:626 -#: ../../mod/admin.php:411 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/admin.php:412 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:575 ../../mod/api.php:105 #: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1488 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 msgid "Yes" msgstr "Ja" @@ -4783,11 +4817,11 @@ msgstr "Kanaal-activiteit" msgid "View recent posts and comments" msgstr "Recente berichten en reacties weergeven" -#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "Deblokkeren" -#: ../../mod/connedit.php:519 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "Blokkeren" @@ -4943,7 +4977,7 @@ msgid "" " communication." msgstr "(%s) wil met jou verbinden. Keur dit connectieverzoek goed om onderling te kunnen communiceren." -#: ../../mod/connedit.php:710 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "Goedkeuren" @@ -5179,12 +5213,12 @@ msgstr "Aantal minuten voordat chatberichten worden verwijderd" msgid "%1$s's Chatrooms" msgstr "Chatkanalen van %1$s" -#: ../../mod/search.php:211 +#: ../../mod/search.php:212 #, php-format msgid "Items tagged with: %s" msgstr "Items getagd met %s" -#: ../../mod/search.php:213 +#: ../../mod/search.php:214 #, php-format msgid "Search results for: %s" msgstr "Zoekresultaten voor %s" @@ -5297,7 +5331,7 @@ msgstr "Als profielfoto gebruiken" msgid "Private Photo" msgstr "Privéfoto" -#: ../../mod/photos.php:905 ../../mod/events.php:528 +#: ../../mod/photos.php:905 ../../mod/events.php:525 ../../mod/events.php:532 msgid "Previous" msgstr "Vorige" @@ -5305,7 +5339,8 @@ msgstr "Vorige" msgid "View Full Size" msgstr "Volledige grootte weergeven" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 +#: ../../mod/photos.php:914 ../../mod/events.php:526 ../../mod/events.php:533 +#: ../../mod/setup.php:285 msgid "Next" msgstr "Volgende" @@ -5402,7 +5437,7 @@ msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig" msgid "Item is not editable" msgstr "Item is niet te bewerken" -#: ../../mod/editpost.php:55 +#: ../../mod/editpost.php:57 msgid "Delete item?" msgstr "Item verwijderen?" @@ -5454,10 +5489,10 @@ msgstr "# klonen" msgid "Message queues" msgstr "Berichtenwachtrij" -#: ../../mod/admin.php:198 ../../mod/admin.php:432 ../../mod/admin.php:531 -#: ../../mod/admin.php:799 ../../mod/admin.php:963 ../../mod/admin.php:1055 -#: ../../mod/admin.php:1095 ../../mod/admin.php:1255 ../../mod/admin.php:1289 -#: ../../mod/admin.php:1374 +#: ../../mod/admin.php:198 ../../mod/admin.php:433 ../../mod/admin.php:532 +#: ../../mod/admin.php:800 ../../mod/admin.php:964 ../../mod/admin.php:1061 +#: ../../mod/admin.php:1101 ../../mod/admin.php:1261 ../../mod/admin.php:1295 +#: ../../mod/admin.php:1380 msgid "Administration" msgstr "Beheer" @@ -5469,7 +5504,7 @@ msgstr "Samenvatting" msgid "Registered accounts" msgstr "Geregistreerde accounts" -#: ../../mod/admin.php:203 ../../mod/admin.php:535 +#: ../../mod/admin.php:203 ../../mod/admin.php:536 msgid "Pending registrations" msgstr "Accounts die op goedkeuring wachten" @@ -5477,7 +5512,7 @@ msgstr "Accounts die op goedkeuring wachten" msgid "Registered channels" msgstr "Geregistreerde kanalen" -#: ../../mod/admin.php:205 ../../mod/admin.php:536 +#: ../../mod/admin.php:205 ../../mod/admin.php:537 msgid "Active plugins" msgstr "Ingeschakelde plug-ins" @@ -5501,666 +5536,666 @@ msgstr "experimenteel" msgid "unsupported" msgstr "Niet ondersteund" -#: ../../mod/admin.php:410 +#: ../../mod/admin.php:411 msgid "Yes - with approval" msgstr "Ja - met goedkeuring" -#: ../../mod/admin.php:416 +#: ../../mod/admin.php:417 msgid "My site is not a public server" msgstr "Mijn $Projectname-hub is niet openbaar" -#: ../../mod/admin.php:417 +#: ../../mod/admin.php:418 msgid "My site has paid access only" msgstr "Mijn $Projectname-hub kent alleen betaalde toegang" -#: ../../mod/admin.php:418 +#: ../../mod/admin.php:419 msgid "My site has free access only" msgstr "Mijn $Projectname-hub kent alleen gratis toegang" -#: ../../mod/admin.php:419 +#: ../../mod/admin.php:420 msgid "My site offers free accounts with optional paid upgrades" msgstr "Mijn $Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie" -#: ../../mod/admin.php:435 ../../mod/register.php:207 +#: ../../mod/admin.php:436 ../../mod/register.php:207 msgid "Registration" msgstr "Registratie" -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:437 msgid "File upload" msgstr "Bestand uploaden" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:438 msgid "Policies" msgstr "Beleid" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:443 msgid "Site name" msgstr "Naam van deze $Projectname-hub" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:444 msgid "Banner/Logo" msgstr "Banner/logo" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "Administrator Information" msgstr "Informatie over de beheerder van deze hub" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden." -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:446 msgid "System language" msgstr "Standaardtaal" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "System theme" msgstr "Standaardthema" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "" "Default system theme - may be over-ridden by user profiles - change theme settings" msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - verander thema-instellingen" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Mobile system theme" msgstr "Standaardthema voor mobiel" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Theme for mobile devices" msgstr "Thema voor mobiele apparaten" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "Allow Feeds as Connections" msgstr "Sta feeds toe als connecties" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "(Heavy system resource usage)" msgstr "(sterk negatieve invloed op systeembronnen hub)" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "Maximum image size" msgstr "Maximale grootte van afbeeldingen" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Maximale grootte in bytes voor afbeeldingen die worden geüpload. Standaard is 0, wat geen limiet betekend." -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:452 msgid "Does this site allow new member registration?" msgstr "Staat deze hub nieuwe accounts toe?" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:453 msgid "Which best describes the types of account offered by this hub?" msgstr "Wat voor soort accounts biedt deze $Projectname-hub aan? Kies wat het meest in de buurt komt." -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Register text" msgstr "Tekst tijdens registratie" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Will be displayed prominently on the registration page." msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond." -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "Site homepage to show visitors (default: login box)" msgstr "Homepagina van deze hub die aan bezoekers wordt getoond (standaard: inlogformulier)" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "" "example: 'public' to show public stream, 'page/sys/home' to show a system " "webpage called 'home' or 'include:home.html' to include a file." msgstr "voorbeeld: 'public' om de openbare stream te tonen, 'page/sys/home' om de webpagina 'home' van het systeemkanaal te tonen of 'include:home.html' om een gewoon bestand te gebruiken." -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "Preserve site homepage URL" msgstr "Behoudt de URL van de hub (/)" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "Toon de homepagina van de hub in een frame op de oorspronkelijke locatie (/), i.p.v. een doorverwijzing naar een andere locatie (bv. .../home.html)" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "Accounts abandoned after x days" msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:" -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "Zal geen systeembronnen verspillen door polling van externe hubs voor verlaten accounts. Vul 0 in voor geen tijdslimiet." -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "Allowed friend domains" msgstr "Toegestane domeinen" -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "Komma-gescheiden lijst van domeinen waarvan kanalen connecties kunnen aangaan met kanalen op deze $Projectname-hub. Wildcards zijn toegestaan.\nLaat leeg om alle domeinen toe te laten." -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "Allowed email domains" msgstr "Toegestane e-maildomeinen" -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te laten." -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "Not allowed email domains" msgstr "Niet toegestane e-maildomeinen" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "" "Comma separated list of domains which are not allowed in email addresses for" " registrations to this site. Wildcards are accepted. Empty to allow any " "domains, unless allowed domains have been defined." msgstr "Door komma's gescheiden lijst met e-maildomeinen waarvan e-mailadressen niet op deze hub mogen registeren. Wildcards zijn toegestaan. Laat leeg om alle domeinen toe te staan, tenzij er toegestane domeinen zijn ingesteld. " -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "Block public" msgstr "Openbare toegang blokkeren" -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "Vink dit aan om alle normaliter openbare persoonlijke pagina's op deze hub alleen toegankelijk te maken voor ingelogde leden." -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "Verify Email Addresses" msgstr "E-mailadres verifieren" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "Inschakelen om e-mailadressen te verifiëren die tijdens de accountregistratie worden gebruikt (aanbevolen)." -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "Force publish" msgstr "Dwing kanaalvermelding af" -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "Vink dit aan om af te dwingen dat alle kanalen op deze hub in de kanalengids worden vermeld." -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "Disable discovery tab" msgstr "Ontdekkingstab" -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "" "Remove the tab in the network view with public content pulled from sources " "chosen for this site." msgstr "Verwijder de tab in de matrix-weergave waarin zich een selectie aan openbare berichten bevindt, die automatisch voor deze hub zijn uitgekozen." -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "login on Homepage" msgstr "Inlogformulier op de homepagina" -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "Toon een inlogformulier voor bezoekers op de homepagina wanneer geen andere inhoud is geconfigureerd. " -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Directory Server URL" msgstr "Server-URL voor de kanalengids" -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Default directory server" msgstr "Standaardserver voor de kanalengids" -#: ../../mod/admin.php:468 +#: ../../mod/admin.php:469 msgid "Proxy user" msgstr "Gebruikersnaam proxy" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:470 msgid "Proxy URL" msgstr "URL proxy" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Network timeout" msgstr "Netwerktimeout" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "Delivery interval" msgstr "Afleveringsinterval" -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "Vertraag de achtergrondprocessen voor het afleveren met een aantal seconden om de systeembelasting te verminderen. Aanbevolen: 4-5 voor shared hosts, 2-3 voor virtual private servers (VPS) en 0-1 voor grote dedicated servers." -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "Deliveries per process" msgstr "Leveringen per serverproces" -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust" " if necessary to tune system performance. Recommend: 1-5." msgstr "Aantal leveringen die aan één serverproces worden meegegeven. Pas dit aan wanneer het nodig is om systeemprestaties te verbeteren. Aangeraden: 1-5" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "Poll interval" msgstr "Poll-interval" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "De achtergrondprocessen voor het afleveren met zoveel seconden vertragen om de systeembelasting te verminderen. 0 om de afleveringsinterval te gebruiken." -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "Maximum Load Average" msgstr "Maximaal gemiddelde systeembelasting" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "Expiration period in days for imported (matrix/network) content" msgstr "Aantal dagen waarna geïmporteerde inhoud uit iemands matrix/netwerk-pagina wordt verwijderd." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "0 for no expiration of imported content" msgstr "Dit geldt alleen voor inhoud van andere kanalen, dus niet voor iemands eigen kanaal. 0 voor het niet verwijderen van geïmporteerde inhoud." -#: ../../mod/admin.php:523 +#: ../../mod/admin.php:524 msgid "No server found" msgstr "Geen hub gevonden" -#: ../../mod/admin.php:530 ../../mod/admin.php:813 +#: ../../mod/admin.php:531 ../../mod/admin.php:814 msgid "ID" msgstr "ID" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "for channel" msgstr "voor kanaal" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "on server" msgstr "op hub" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "Status" msgstr "Status" -#: ../../mod/admin.php:532 +#: ../../mod/admin.php:533 msgid "Server" msgstr "Hubbeheer" -#: ../../mod/admin.php:549 +#: ../../mod/admin.php:550 msgid "Update has been marked successful" msgstr "Update is als succesvol gemarkeerd" -#: ../../mod/admin.php:559 +#: ../../mod/admin.php:560 #, php-format msgid "Executing %s failed. Check system logs." msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek." -#: ../../mod/admin.php:562 +#: ../../mod/admin.php:563 #, php-format msgid "Update %s was successfully applied." msgstr "Update %s was geslaagd." -#: ../../mod/admin.php:566 +#: ../../mod/admin.php:567 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is." -#: ../../mod/admin.php:569 +#: ../../mod/admin.php:570 #, php-format msgid "Update function %s could not be found." msgstr "Update-functie %s kon niet gevonden worden." -#: ../../mod/admin.php:585 +#: ../../mod/admin.php:586 msgid "No failed updates." msgstr "Geen mislukte updates." -#: ../../mod/admin.php:589 +#: ../../mod/admin.php:590 msgid "Failed Updates" msgstr "Mislukte updates" -#: ../../mod/admin.php:591 +#: ../../mod/admin.php:592 msgid "Mark success (if update was manually applied)" msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)" -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:593 msgid "Attempt to execute this update step automatically" msgstr "Poging om deze stap van de update automatisch uit te voeren." -#: ../../mod/admin.php:624 +#: ../../mod/admin.php:625 msgid "Queue Statistics" msgstr "Wachtrij-statistieken" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:626 msgid "Total Entries" msgstr "Aantal vermeldingen" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:627 msgid "Priority" msgstr "Prioriteit" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:628 msgid "Destination URL" msgstr "Doel-URL" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:629 msgid "Mark hub permanently offline" msgstr "Hub als permanent offline markeren" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:630 msgid "Empty queue for this hub" msgstr "Berichtenwachtrij voor deze hub legen" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:631 msgid "Last known contact" msgstr "Voor het laatst contact" -#: ../../mod/admin.php:666 +#: ../../mod/admin.php:667 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "%s account geblokkeerd/gedeblokkeerd" msgstr[1] "%s accounts geblokkeerd/gedeblokkeerd" -#: ../../mod/admin.php:674 +#: ../../mod/admin.php:675 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "%s account verwijderd" msgstr[1] "%s accounts verwijderd" -#: ../../mod/admin.php:710 +#: ../../mod/admin.php:711 msgid "Account not found" msgstr "Account niet gevonden" -#: ../../mod/admin.php:722 +#: ../../mod/admin.php:723 #, php-format msgid "Account '%s' deleted" msgstr "Account '%s' verwijderd" -#: ../../mod/admin.php:730 +#: ../../mod/admin.php:731 #, php-format msgid "Account '%s' blocked" msgstr "Account '%s' geblokkeerd" -#: ../../mod/admin.php:738 +#: ../../mod/admin.php:739 #, php-format msgid "Account '%s' unblocked" msgstr "Account '%s' gedeblokkeerd" -#: ../../mod/admin.php:800 ../../mod/admin.php:812 +#: ../../mod/admin.php:801 ../../mod/admin.php:813 msgid "Users" msgstr "Accounts" -#: ../../mod/admin.php:802 ../../mod/admin.php:966 +#: ../../mod/admin.php:803 ../../mod/admin.php:967 msgid "select all" msgstr "alles selecteren" -#: ../../mod/admin.php:803 +#: ../../mod/admin.php:804 msgid "User registrations waiting for confirm" msgstr "Accounts die op goedkeuring wachten" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:805 msgid "Request date" msgstr "Tijd/datum verzoek" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:806 msgid "No registrations." msgstr "Geen verzoeken." -#: ../../mod/admin.php:807 +#: ../../mod/admin.php:808 msgid "Deny" msgstr "Afkeuren" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Register date" msgstr "Geregistreerd" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Last login" msgstr "Laatste keer ingelogd" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Expires" msgstr "Verloopt" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Service Class" msgstr "Abonnementen" -#: ../../mod/admin.php:815 +#: ../../mod/admin.php:816 msgid "" "Selected accounts will be deleted!\\n\\nEverything these accounts had posted" " on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Geselecteerde accounts (met bijbehorende kanalen) worden verwijderd!\\n\\nAlles wat deze accounts op deze hub hebben gepubliceerd wordt definitief verwijderd!\\n\\Weet je het zeker?" -#: ../../mod/admin.php:816 +#: ../../mod/admin.php:817 msgid "" "The account {0} will be deleted!\\n\\nEverything this account has posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Account {0} (met bijbehorende kanalen) wordt verwijderd !\\n\\nAlles wat dit account op deze hub heeft gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:852 +#: ../../mod/admin.php:853 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "%s kanaal gecensureerd/ongecensureerd" msgstr[1] "%s kanalen gecensureerd/ongecensureerd" -#: ../../mod/admin.php:861 +#: ../../mod/admin.php:862 #, php-format msgid "%s channel code allowed/disallowed" msgid_plural "%s channels code allowed/disallowed" msgstr[0] "Scripts toegestaan/niet toegestaan voor %s kanaal" msgstr[1] "Scripts toegestaan/niet toegestaan voor %s kanalen" -#: ../../mod/admin.php:868 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "%s kanaal verwijderd" msgstr[1] "%s kanalen verwijderd" -#: ../../mod/admin.php:888 +#: ../../mod/admin.php:889 msgid "Channel not found" msgstr "Kanaal niet gevonden" -#: ../../mod/admin.php:899 +#: ../../mod/admin.php:900 #, php-format msgid "Channel '%s' deleted" msgstr "Kanaal '%s' verwijderd" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' censored" msgstr "Kanaal '%s' gecensureerd" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' uncensored" msgstr "Kanaal '%s' ongecensureerd" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code allowed" msgstr "Scripts toegestaan voor kanaal '%s'" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code disallowed" msgstr "Scripts niet toegestaan voor kanaal '%s'" -#: ../../mod/admin.php:968 +#: ../../mod/admin.php:969 msgid "Censor" msgstr "Censureren" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:970 msgid "Uncensor" msgstr "Niet censureren" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:971 msgid "Allow Code" msgstr "Scripts toestaan" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:972 msgid "Disallow Code" msgstr "Scripts niet toestaan" -#: ../../mod/admin.php:973 +#: ../../mod/admin.php:974 msgid "UID" msgstr "UID" -#: ../../mod/admin.php:973 ../../mod/profiles.php:447 +#: ../../mod/admin.php:974 ../../mod/profiles.php:447 msgid "Address" msgstr "Kanaaladres" -#: ../../mod/admin.php:975 +#: ../../mod/admin.php:976 msgid "" "Selected channels will be deleted!\\n\\nEverything that was posted in these " "channels on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Geselecteerde kanalen worden verwijderd!\\n\\nAlles wat in deze kanalen op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:976 +#: ../../mod/admin.php:977 msgid "" "The channel {0} will be deleted!\\n\\nEverything that was posted in this " "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "Kanaal {0} wordt verwijderd!\\n\\nAlles wat in dit kanaal op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?" -#: ../../mod/admin.php:1016 +#: ../../mod/admin.php:1017 #, php-format msgid "Plugin %s disabled." msgstr "Plug-in %s uitgeschakeld." -#: ../../mod/admin.php:1020 +#: ../../mod/admin.php:1021 #, php-format msgid "Plugin %s enabled." msgstr "Plug-in %s ingeschakeld" -#: ../../mod/admin.php:1030 ../../mod/admin.php:1228 +#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 msgid "Disable" msgstr "Uitschakelen" -#: ../../mod/admin.php:1033 ../../mod/admin.php:1230 +#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 msgid "Enable" msgstr "Inschakelen" -#: ../../mod/admin.php:1057 ../../mod/admin.php:1257 +#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 msgid "Toggle" msgstr "Omschakelen" -#: ../../mod/admin.php:1065 ../../mod/admin.php:1267 +#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 msgid "Author: " msgstr "Auteur: " -#: ../../mod/admin.php:1066 ../../mod/admin.php:1268 +#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 msgid "Maintainer: " msgstr "Beheerder: " -#: ../../mod/admin.php:1193 +#: ../../mod/admin.php:1199 msgid "No themes found." msgstr "Geen thema's gevonden" -#: ../../mod/admin.php:1249 +#: ../../mod/admin.php:1255 msgid "Screenshot" msgstr "Schermafdruk" -#: ../../mod/admin.php:1295 +#: ../../mod/admin.php:1301 msgid "[Experimental]" msgstr "[Experimenteel]" -#: ../../mod/admin.php:1296 +#: ../../mod/admin.php:1302 msgid "[Unsupported]" msgstr "[Niet ondersteund]" -#: ../../mod/admin.php:1320 +#: ../../mod/admin.php:1326 msgid "Log settings updated." msgstr "Logboek-instellingen bijgewerkt." -#: ../../mod/admin.php:1377 +#: ../../mod/admin.php:1383 msgid "Clear" msgstr "Leegmaken" -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1389 msgid "Debugging" msgstr "Debuggen" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "Log file" msgstr "Logbestand" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Moet door de webserver beschrijfbaar zijn. Relatief ten opzichte van de bovenste map van je $Projectname-installatie." -#: ../../mod/admin.php:1385 +#: ../../mod/admin.php:1391 msgid "Log level" msgstr "Logniveau" -#: ../../mod/admin.php:1431 +#: ../../mod/admin.php:1437 msgid "New Profile Field" msgstr "Nieuw profielveld" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "Field nickname" msgstr "Bijnaam voor veld" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "System name of field" msgstr "Systeemnaam voor veld" -#: ../../mod/admin.php:1433 ../../mod/admin.php:1453 +#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 msgid "Input type" msgstr "Invoertype" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Field Name" msgstr "Veldnaam" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Label on profile pages" msgstr "Tekstlabel voor op profielpagina's" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Help text" msgstr "Helptekst" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Additional info (optional)" msgstr "Extra informatie (optioneel)" -#: ../../mod/admin.php:1445 +#: ../../mod/admin.php:1451 msgid "Field definition not found" msgstr "Velddefinitie niet gevonden" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1457 msgid "Edit Profile Field" msgstr "Profielveld bewerken" @@ -6399,12 +6434,12 @@ msgstr "Modulenaam:" msgid "Layout Help" msgstr "Lay-out-hulp" -#: ../../mod/subthread.php:108 +#: ../../mod/subthread.php:114 #, php-format msgid "%1$s is following %2$s's %3$s" msgstr "%1$s volgt het %3$s van %2$s" -#: ../../mod/subthread.php:110 +#: ../../mod/subthread.php:116 #, php-format msgid "%1$s stopped following %2$s's %3$s" msgstr "%1$s volgt het %3$s van %2$s niet meer" @@ -6433,7 +6468,7 @@ msgid "" "Password reset failed." msgstr "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt." -#: ../../mod/lostpass.php:86 ../../boot.php:1492 +#: ../../mod/lostpass.php:86 ../../boot.php:1494 msgid "Password Reset" msgstr "Wachtwoord vergeten?" @@ -6519,33 +6554,29 @@ msgstr "Titel en begintijd van gebeurtenis zijn vereist." msgid "Event not found." msgstr "Gebeurtenis niet gevonden" -#: ../../mod/events.php:448 +#: ../../mod/events.php:446 msgid "l, F j" msgstr "l j F" -#: ../../mod/events.php:470 +#: ../../mod/events.php:468 msgid "Edit event" msgstr "Gebeurtenis bewerken" -#: ../../mod/events.php:472 +#: ../../mod/events.php:470 msgid "Delete event" msgstr "Gebeurtenis verwijderen" -#: ../../mod/events.php:506 +#: ../../mod/events.php:504 msgid "calendar" msgstr "agenda" -#: ../../mod/events.php:527 -msgid "Create New Event" -msgstr "Nieuwe gebeurtenis aanmaken" +#: ../../mod/events.php:524 +msgid "New Event" +msgstr "Nieuwe gebeurtenis" -#: ../../mod/events.php:530 -msgid "Export" -msgstr "Exporteren" - -#: ../../mod/events.php:533 -msgid "Import" -msgstr "Importeren" +#: ../../mod/events.php:534 +msgid "Today" +msgstr "Vandaag" #: ../../mod/events.php:564 msgid "Event removed" @@ -6765,20 +6796,24 @@ msgstr "Leeg bericht geannuleerd" msgid "Executable content type not permitted to this channel." msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal." -#: ../../mod/item.php:910 +#: ../../mod/item.php:822 +msgid "Duplicate post suppressed." +msgstr "Dubbel bericht tegengehouden." + +#: ../../mod/item.php:953 msgid "System error. Post not saved." msgstr "Systeemfout. Bericht niet opgeslagen." -#: ../../mod/item.php:1177 +#: ../../mod/item.php:1220 msgid "Unable to obtain post information from database." msgstr "Niet in staat om informatie over dit bericht uit de database te verkrijgen." -#: ../../mod/item.php:1184 +#: ../../mod/item.php:1227 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt." -#: ../../mod/item.php:1191 +#: ../../mod/item.php:1234 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt." @@ -9250,51 +9285,51 @@ msgstr "Grootte profielfoto's van berichten instellen" msgid "Set size of followup author photos" msgstr "Grootte profielfoto's van reacties instellen" -#: ../../boot.php:1289 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s mislukt. Zie foutenlogboek." -#: ../../boot.php:1292 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "Update-fout op %s" -#: ../../boot.php:1459 +#: ../../boot.php:1461 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "Maak een account aan om toegang te krijgen tot diensten en toepassingen van Hubzilla" -#: ../../boot.php:1487 +#: ../../boot.php:1489 msgid "Password" msgstr "Wachtwoord" -#: ../../boot.php:1488 +#: ../../boot.php:1490 msgid "Remember me" msgstr "Aangemeld blijven" -#: ../../boot.php:1491 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "Wachtwoord vergeten?" -#: ../../boot.php:2111 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "mobiele weergave omschakelen" -#: ../../boot.php:2246 +#: ../../boot.php:2248 msgid "Website SSL certificate is not valid. Please correct." msgstr "Het SSL-certificaat van deze website is ongeldig. Corrigeer dit a.u.b." -#: ../../boot.php:2249 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Probleem met SSL-certificaat voor %s" -#: ../../boot.php:2286 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "Cron is niet actief" -#: ../../boot.php:2290 +#: ../../boot.php:2292 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Cron-taken zijn niet actief op %s" diff --git a/view/nl/hstrings.php b/view/nl/hstrings.php index ab46eb11e..bec5b347c 100644 --- a/view/nl/hstrings.php +++ b/view/nl/hstrings.php @@ -5,173 +5,6 @@ function string_plural_select_nl($n){ return ($n != 1);; }} ; -$a->strings["photo"] = "foto"; -$a->strings["event"] = "gebeurtenis"; -$a->strings["channel"] = "kanaal"; -$a->strings["status"] = "bericht"; -$a->strings["comment"] = "reactie"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk"; -$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden"; -$a->strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten"; -$a->strings["poked"] = "aangestoten"; -$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s"; -$a->strings["__ctx:title__ Likes"] = "vinden dit leuk"; -$a->strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk"; -$a->strings["__ctx:title__ Agree"] = "eens"; -$a->strings["__ctx:title__ Disagree"] = "oneens"; -$a->strings["__ctx:title__ Abstain"] = "onthoudingen"; -$a->strings["__ctx:title__ Attending"] = "aanwezig"; -$a->strings["__ctx:title__ Not attending"] = "niet aanwezig"; -$a->strings["__ctx:title__ Might attend"] = "mogelijk aanwezig"; -$a->strings["Select"] = "Kies"; -$a->strings["Delete"] = "Verwijderen"; -$a->strings["Private Message"] = "Privébericht"; -$a->strings["Message signature validated"] = "Berichtkenmerk gevalideerd"; -$a->strings["Message signature incorrect"] = "Berichtkenmerk onjuist"; -$a->strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s"; -$a->strings["Categories:"] = "Categorieën:"; -$a->strings["Filed under:"] = "Bewaard onder:"; -$a->strings["from %s"] = "van %s"; -$a->strings["last edited: %s"] = "laatst bewerkt: %s"; -$a->strings["Expires: %s"] = "Verloopt: %s"; -$a->strings["View in context"] = "In context bekijken"; -$a->strings["Please wait"] = "Even wachten"; -$a->strings["remove"] = "verwijderen"; -$a->strings["Loading..."] = "Aan het laden..."; -$a->strings["Delete Selected Items"] = "Verwijder de geselecteerde items"; -$a->strings["View Source"] = "Bron weergeven"; -$a->strings["Follow Thread"] = "Conversatie volgen"; -$a->strings["Stop Following"] = "Bericht niet meer volgen"; -$a->strings["View Status"] = "Status weergeven"; -$a->strings["View Profile"] = "Profiel weergeven"; -$a->strings["View Photos"] = "Foto's weergeven"; -$a->strings["Activity/Posts"] = "Kanaal-activiteit"; -$a->strings["Connect"] = "Verbinden"; -$a->strings["Edit Connection"] = "Connectie bewerken"; -$a->strings["Send PM"] = "Privébericht verzenden"; -$a->strings["Poke"] = "Aanstoten"; -$a->strings["Unknown"] = "Onbekend"; -$a->strings["%s likes this."] = "%s vindt dit leuk."; -$a->strings["%s doesn't like this."] = "%s vindt dit niet leuk."; -$a->strings["%2\$d people like this."] = array( - 0 => "%2\$d persoon vindt dit leuk.", - 1 => "%2\$d personen vinden dit leuk.", -); -$a->strings["%2\$d people don't like this."] = array( - 0 => "%2\$d persoon vindt dit niet leuk.", - 1 => "%2\$d personen vinden dit niet leuk.", -); -$a->strings["and"] = "en"; -$a->strings[", and %d other people"] = array( - 0 => ", en %d ander persoon", - 1 => ", en %d andere personen", -); -$a->strings["%s like this."] = "%s vinden dit leuk."; -$a->strings["%s don't like this."] = "%s vinden dit niet leuk."; -$a->strings["Visible to everybody"] = "Voor iedereen zichtbaar"; -$a->strings["Please enter a link URL:"] = "Vul een internetadres/URL in:"; -$a->strings["Please enter a video link/URL:"] = "Vul een videolink/URL in:"; -$a->strings["Please enter an audio link/URL:"] = "Vul een audiolink/URL in:"; -$a->strings["Tag term:"] = "Tag:"; -$a->strings["Save to Folder:"] = "Bewaar in map: "; -$a->strings["Where are you right now?"] = "Waar bevind je je op dit moment?"; -$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM"; -$a->strings["Preview"] = "Voorvertoning"; -$a->strings["Share"] = "Delen"; -$a->strings["Page link name"] = "Linknaam pagina"; -$a->strings["Post as"] = "Bericht plaatsen als"; -$a->strings["Bold"] = "Vet"; -$a->strings["Italic"] = "Cursief"; -$a->strings["Underline"] = "Onderstrepen"; -$a->strings["Quote"] = "Citeren"; -$a->strings["Code"] = "Broncode"; -$a->strings["Upload photo"] = "Foto uploaden"; -$a->strings["upload photo"] = "foto uploaden"; -$a->strings["Attach file"] = "Bestand toevoegen"; -$a->strings["attach file"] = "bestand toevoegen"; -$a->strings["Insert web link"] = "Weblink invoegen"; -$a->strings["web link"] = "Weblink"; -$a->strings["Insert video link"] = "Videolink invoegen"; -$a->strings["video link"] = "videolink"; -$a->strings["Insert audio link"] = "Audiolink invoegen"; -$a->strings["audio link"] = "audiolink"; -$a->strings["Set your location"] = "Locatie instellen"; -$a->strings["set location"] = "locatie instellen"; -$a->strings["Toggle voting"] = "Peiling in- of uitschakelen"; -$a->strings["Clear browser location"] = "Locatie van webbrowser wissen"; -$a->strings["clear location"] = "locatie wissen"; -$a->strings["Title (optional)"] = "Titel (optioneel)"; -$a->strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)"; -$a->strings["Permission settings"] = "Permissies"; -$a->strings["permissions"] = "permissies"; -$a->strings["Public post"] = "Openbaar bericht"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be"; -$a->strings["Set expiration date"] = "Verloopdatum instellen"; -$a->strings["Set publish date"] = "Publicatiedatum instellen"; -$a->strings["Encrypt text"] = "Tekst versleutelen"; -$a->strings["OK"] = "OK"; -$a->strings["Cancel"] = "Annuleren"; -$a->strings["Discover"] = "Ontdekken"; -$a->strings["Imported public streams"] = "Openbare streams importeren"; -$a->strings["Commented Order"] = "Nieuwe reacties bovenaan"; -$a->strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan"; -$a->strings["Posted Order"] = "Nieuwe berichten bovenaan"; -$a->strings["Sort by Post Date"] = "Nieuwe berichten bovenaan"; -$a->strings["Personal"] = "Persoonlijk"; -$a->strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"; -$a->strings["New"] = "Nieuw"; -$a->strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum"; -$a->strings["Starred"] = "Met ster"; -$a->strings["Favourite Posts"] = "Favoriete berichten"; -$a->strings["Spam"] = "Spam"; -$a->strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM"; -$a->strings["Channel"] = "Kanaal"; -$a->strings["Status Messages and Posts"] = "Berichten in dit kanaal"; -$a->strings["About"] = "Over"; -$a->strings["Profile Details"] = "Profiel"; -$a->strings["Photos"] = "Foto's"; -$a->strings["Photo Albums"] = "Fotoalbums"; -$a->strings["Files"] = "Bestanden"; -$a->strings["Files and Storage"] = "Bestanden en opslagruimte"; -$a->strings["Chatrooms"] = "Chatkanalen"; -$a->strings["Bookmarks"] = "Bladwijzers"; -$a->strings["Saved Bookmarks"] = "Opgeslagen bladwijzers"; -$a->strings["Webpages"] = "Webpagina's"; -$a->strings["Manage Webpages"] = "Webpagina's beheren"; -$a->strings["View all"] = "Toon alles"; -$a->strings["__ctx:noun__ Like"] = array( - 0 => "vindt dit leuk", - 1 => "vinden dit leuk", -); -$a->strings["__ctx:noun__ Dislike"] = array( - 0 => "vindt dit niet leuk", - 1 => "vinden dit niet leuk", -); -$a->strings["__ctx:noun__ Attending"] = array( - 0 => "aanwezig", - 1 => "aanwezig", -); -$a->strings["__ctx:noun__ Not Attending"] = array( - 0 => "niet aanwezig", - 1 => "niet aanwezig", -); -$a->strings["__ctx:noun__ Undecided"] = array( - 0 => "nog niet beslist", - 1 => "nog niet beslist", -); -$a->strings["__ctx:noun__ Agree"] = array( - 0 => "eens", - 1 => "eens", -); -$a->strings["__ctx:noun__ Disagree"] = array( - 0 => "oneens", - 1 => "oneens", -); -$a->strings["__ctx:noun__ Abstain"] = array( - 0 => "onthouding", - 1 => "onthoudingen", -); $a->strings["No username found in import file."] = "Geen gebruikersnaam in het importbestand gevonden."; $a->strings["Unable to create a unique channel address. Import failed."] = "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt."; $a->strings["Import completed."] = "Import voltooid."; @@ -182,6 +15,8 @@ $a->strings["Addressbook"] = "Adresboek"; $a->strings["Calendar"] = "Agenda"; $a->strings["Schedule Inbox"] = "Planning-postvak IN"; $a->strings["Schedule Outbox"] = "Planning-postvak UIT"; +$a->strings["Unknown"] = "Onbekend"; +$a->strings["Files"] = "Bestanden"; $a->strings["Total"] = "Totaal"; $a->strings["Shared"] = "Gedeeld"; $a->strings["Create"] = "Aanmaken"; @@ -191,6 +26,7 @@ $a->strings["Type"] = "Type"; $a->strings["Size"] = "Grootte"; $a->strings["Last Modified"] = "Laatst gewijzigd"; $a->strings["Edit"] = "Bewerken"; +$a->strings["Delete"] = "Verwijderen"; $a->strings["You are using %1\$s of your available file storage."] = "Je gebruikt %1\$s van de beschikbare bestandsopslag."; $a->strings["You are using %1\$s of %2\$s available file storage. (%3\$s%)"] = "Je gebruikt %1\$s van totaal %2\$s beschikbare bestandsopslag. (%3\$s%)"; $a->strings["WARNING:"] = "WAARSCHUWING:"; @@ -289,6 +125,8 @@ $a->strings["Enable Voting Tools"] = "Peilingen inschakelen"; $a->strings["Provide a class of post which others can vote on"] = "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen."; $a->strings["Delayed Posting"] = "Berichten uitstellen"; $a->strings["Allow posts to be published at a later date"] = "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden."; +$a->strings["Suppress Duplicate Posts/Comments"] = "Dubbele berichten/reacties tegenhouden"; +$a->strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Voorkomt dat berichten en reacties met identieke inhoud en die binnen twee minuten zijn verstuurd, worden gepubliceerd. "; $a->strings["Network and Stream Filtering"] = "Netwerk- en streamfilter"; $a->strings["Search by Date"] = "Zoek op datum"; $a->strings["Ability to select posts by date ranges"] = "Mogelijkheid om berichten op datum te filteren "; @@ -421,6 +259,7 @@ $a->strings["public profile"] = "openbaar profiel"; $a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s veranderde %2\$s naar “%3\$s”"; $a->strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s"; $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd."; +$a->strings["Connect"] = "Verbinden"; $a->strings["New window"] = "Nieuw venster"; $a->strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab"; $a->strings["User '%s' deleted"] = "Account '%s' verwijderd"; @@ -441,6 +280,169 @@ $a->strings["Collection is empty."] = "Collectie is leeg"; $a->strings["Collection: %s"] = "Collectie: %s"; $a->strings["Connection: %s"] = "Connectie: %s"; $a->strings["Connection not found."] = "Connectie niet gevonden."; +$a->strings["photo"] = "foto"; +$a->strings["event"] = "gebeurtenis"; +$a->strings["channel"] = "kanaal"; +$a->strings["status"] = "bericht"; +$a->strings["comment"] = "reactie"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk"; +$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten"; +$a->strings["poked"] = "aangestoten"; +$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s"; +$a->strings["__ctx:title__ Likes"] = "vinden dit leuk"; +$a->strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk"; +$a->strings["__ctx:title__ Agree"] = "eens"; +$a->strings["__ctx:title__ Disagree"] = "oneens"; +$a->strings["__ctx:title__ Abstain"] = "onthoudingen"; +$a->strings["__ctx:title__ Attending"] = "aanwezig"; +$a->strings["__ctx:title__ Not attending"] = "niet aanwezig"; +$a->strings["__ctx:title__ Might attend"] = "mogelijk aanwezig"; +$a->strings["Select"] = "Kies"; +$a->strings["Private Message"] = "Privébericht"; +$a->strings["Message signature validated"] = "Berichtkenmerk gevalideerd"; +$a->strings["Message signature incorrect"] = "Berichtkenmerk onjuist"; +$a->strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s"; +$a->strings["Categories:"] = "Categorieën:"; +$a->strings["Filed under:"] = "Bewaard onder:"; +$a->strings["from %s"] = "van %s"; +$a->strings["last edited: %s"] = "laatst bewerkt: %s"; +$a->strings["Expires: %s"] = "Verloopt: %s"; +$a->strings["View in context"] = "In context bekijken"; +$a->strings["Please wait"] = "Even wachten"; +$a->strings["remove"] = "verwijderen"; +$a->strings["Loading..."] = "Aan het laden..."; +$a->strings["Delete Selected Items"] = "Verwijder de geselecteerde items"; +$a->strings["View Source"] = "Bron weergeven"; +$a->strings["Follow Thread"] = "Conversatie volgen"; +$a->strings["Unfollow Thread"] = "Conversatie niet meer volgen"; +$a->strings["View Status"] = "Status weergeven"; +$a->strings["View Profile"] = "Profiel weergeven"; +$a->strings["View Photos"] = "Foto's weergeven"; +$a->strings["Activity/Posts"] = "Kanaal-activiteit"; +$a->strings["Edit Connection"] = "Connectie bewerken"; +$a->strings["Send PM"] = "Privébericht verzenden"; +$a->strings["Poke"] = "Aanstoten"; +$a->strings["%s likes this."] = "%s vindt dit leuk."; +$a->strings["%s doesn't like this."] = "%s vindt dit niet leuk."; +$a->strings["%2\$d people like this."] = array( + 0 => "%2\$d persoon vindt dit leuk.", + 1 => "%2\$d personen vinden dit leuk.", +); +$a->strings["%2\$d people don't like this."] = array( + 0 => "%2\$d persoon vindt dit niet leuk.", + 1 => "%2\$d personen vinden dit niet leuk.", +); +$a->strings["and"] = "en"; +$a->strings[", and %d other people"] = array( + 0 => ", en %d ander persoon", + 1 => ", en %d andere personen", +); +$a->strings["%s like this."] = "%s vinden dit leuk."; +$a->strings["%s don't like this."] = "%s vinden dit niet leuk."; +$a->strings["Visible to everybody"] = "Voor iedereen zichtbaar"; +$a->strings["Please enter a link URL:"] = "Vul een internetadres/URL in:"; +$a->strings["Please enter a video link/URL:"] = "Vul een videolink/URL in:"; +$a->strings["Please enter an audio link/URL:"] = "Vul een audiolink/URL in:"; +$a->strings["Tag term:"] = "Tag:"; +$a->strings["Save to Folder:"] = "Bewaar in map: "; +$a->strings["Where are you right now?"] = "Waar bevind je je op dit moment?"; +$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM"; +$a->strings["Preview"] = "Voorvertoning"; +$a->strings["Share"] = "Delen"; +$a->strings["Page link name"] = "Linknaam pagina"; +$a->strings["Post as"] = "Bericht plaatsen als"; +$a->strings["Bold"] = "Vet"; +$a->strings["Italic"] = "Cursief"; +$a->strings["Underline"] = "Onderstrepen"; +$a->strings["Quote"] = "Citeren"; +$a->strings["Code"] = "Broncode"; +$a->strings["Upload photo"] = "Foto uploaden"; +$a->strings["upload photo"] = "foto uploaden"; +$a->strings["Attach file"] = "Bestand toevoegen"; +$a->strings["attach file"] = "bestand toevoegen"; +$a->strings["Insert web link"] = "Weblink invoegen"; +$a->strings["web link"] = "Weblink"; +$a->strings["Insert video link"] = "Videolink invoegen"; +$a->strings["video link"] = "videolink"; +$a->strings["Insert audio link"] = "Audiolink invoegen"; +$a->strings["audio link"] = "audiolink"; +$a->strings["Set your location"] = "Locatie instellen"; +$a->strings["set location"] = "locatie instellen"; +$a->strings["Toggle voting"] = "Peiling in- of uitschakelen"; +$a->strings["Clear browser location"] = "Locatie van webbrowser wissen"; +$a->strings["clear location"] = "locatie wissen"; +$a->strings["Title (optional)"] = "Titel (optioneel)"; +$a->strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)"; +$a->strings["Permission settings"] = "Permissies"; +$a->strings["permissions"] = "permissies"; +$a->strings["Public post"] = "Openbaar bericht"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be"; +$a->strings["Set expiration date"] = "Verloopdatum instellen"; +$a->strings["Set publish date"] = "Publicatiedatum instellen"; +$a->strings["Encrypt text"] = "Tekst versleutelen"; +$a->strings["OK"] = "OK"; +$a->strings["Cancel"] = "Annuleren"; +$a->strings["Discover"] = "Ontdekken"; +$a->strings["Imported public streams"] = "Openbare streams importeren"; +$a->strings["Commented Order"] = "Nieuwe reacties bovenaan"; +$a->strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan"; +$a->strings["Posted Order"] = "Nieuwe berichten bovenaan"; +$a->strings["Sort by Post Date"] = "Nieuwe berichten bovenaan"; +$a->strings["Personal"] = "Persoonlijk"; +$a->strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"; +$a->strings["New"] = "Nieuw"; +$a->strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum"; +$a->strings["Starred"] = "Met ster"; +$a->strings["Favourite Posts"] = "Favoriete berichten"; +$a->strings["Spam"] = "Spam"; +$a->strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM"; +$a->strings["Channel"] = "Kanaal"; +$a->strings["Status Messages and Posts"] = "Berichten in dit kanaal"; +$a->strings["About"] = "Over"; +$a->strings["Profile Details"] = "Profiel"; +$a->strings["Photos"] = "Foto's"; +$a->strings["Photo Albums"] = "Fotoalbums"; +$a->strings["Files and Storage"] = "Bestanden en opslagruimte"; +$a->strings["Chatrooms"] = "Chatkanalen"; +$a->strings["Bookmarks"] = "Bladwijzers"; +$a->strings["Saved Bookmarks"] = "Opgeslagen bladwijzers"; +$a->strings["Webpages"] = "Webpagina's"; +$a->strings["Manage Webpages"] = "Webpagina's beheren"; +$a->strings["View all"] = "Toon alles"; +$a->strings["__ctx:noun__ Like"] = array( + 0 => "vindt dit leuk", + 1 => "vinden dit leuk", +); +$a->strings["__ctx:noun__ Dislike"] = array( + 0 => "vindt dit niet leuk", + 1 => "vinden dit niet leuk", +); +$a->strings["__ctx:noun__ Attending"] = array( + 0 => "aanwezig", + 1 => "aanwezig", +); +$a->strings["__ctx:noun__ Not Attending"] = array( + 0 => "niet aanwezig", + 1 => "niet aanwezig", +); +$a->strings["__ctx:noun__ Undecided"] = array( + 0 => "nog niet beslist", + 1 => "nog niet beslist", +); +$a->strings["__ctx:noun__ Agree"] = array( + 0 => "eens", + 1 => "eens", +); +$a->strings["__ctx:noun__ Disagree"] = array( + 0 => "oneens", + 1 => "oneens", +); +$a->strings["__ctx:noun__ Abstain"] = array( + 0 => "onthouding", + 1 => "onthoudingen", +); $a->strings["view full size"] = "volledige grootte tonen"; $a->strings["\$Projectname Notification"] = "\$Projectname-notificatie"; $a->strings["\$projectname"] = "\$projectname"; @@ -455,9 +457,6 @@ $a->strings["Don't show"] = "Niet tonen"; $a->strings["Other networks and post services"] = "Andere netwerken en diensten"; $a->strings["Permissions"] = "Permissies"; $a->strings["Close"] = "Sluiten"; -$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."; -$a->strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt."; -$a->strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt."; $a->strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"; $a->strings["Image file is empty."] = "Afbeeldingsbestand is leeg"; $a->strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden"; @@ -569,6 +568,9 @@ $a->strings["Update"] = "Bijwerken"; $a->strings["Install"] = "Installeren"; $a->strings["Purchase"] = "Aanschaffen"; $a->strings["Public Timeline"] = "Openbare tijdlijn"; +$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."; +$a->strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt."; +$a->strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt."; $a->strings["%s "] = "%s "; $a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Notificatie] Nieuw privébericht ontvangen op %s"; $a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s zond jou een nieuw privébericht om %3\$s."; @@ -718,6 +720,79 @@ $a->strings["Edit collection"] = "Collectie bewerken"; $a->strings["Add new collection"] = "Nieuwe collectie toevoegen"; $a->strings["Channels not in any collection"] = "Kanalen die zich in geen enkele collectie bevinden"; $a->strings["add"] = "toevoegen"; +$a->strings["Apps"] = "Apps"; +$a->strings["System"] = "Systeem"; +$a->strings["Create Personal App"] = "Persoonlijke app maken"; +$a->strings["Edit Personal App"] = "Persoonlijke app bewerken"; +$a->strings["Ignore/Hide"] = "Negeren/Verbergen"; +$a->strings["Suggestions"] = "Voorgestelde kanalen"; +$a->strings["See more..."] = "Meer..."; +$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Je hebt %1$.0f van de %2$.0f toegestane connecties."; +$a->strings["Add New Connection"] = "Nieuwe connectie toevoegen"; +$a->strings["Enter the channel address"] = "Vul het adres van het nieuwe kanaal in"; +$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Voorbeeld: bob@example.com, http://example.com/barbara"; +$a->strings["Notes"] = "Aantekeningen"; +$a->strings["Save"] = "Opslaan"; +$a->strings["Remove term"] = "Verwijder zoekterm"; +$a->strings["Archives"] = "Archieven"; +$a->strings["Me"] = "Ik"; +$a->strings["Family"] = "Familie"; +$a->strings["Acquaintances"] = "Kennissen"; +$a->strings["All"] = "Alles"; +$a->strings["Refresh"] = "Vernieuwen"; +$a->strings["Account settings"] = "Account"; +$a->strings["Channel settings"] = "Kanaal"; +$a->strings["Additional features"] = "Extra functies"; +$a->strings["Feature/Addon settings"] = "Extra functie- en plugin-instellingen"; +$a->strings["Display settings"] = "Weergave"; +$a->strings["Connected apps"] = "Verbonden applicaties"; +$a->strings["Export channel"] = "Kanaal exporteren"; +$a->strings["Connection Default Permissions"] = "Standaard permissies voor connecties"; +$a->strings["Premium Channel Settings"] = "Instellingen premiumkanaal"; +$a->strings["Private Mail Menu"] = "Privéberichten"; +$a->strings["Combined View"] = "Gecombineerd postvak"; +$a->strings["Inbox"] = "Postvak IN"; +$a->strings["Outbox"] = "Postvak UIT"; +$a->strings["New Message"] = "Nieuw bericht"; +$a->strings["Conversations"] = "Conversaties"; +$a->strings["Received Messages"] = "Ontvangen berichten"; +$a->strings["Sent Messages"] = "Verzonden berichten"; +$a->strings["No messages."] = "Geen berichten"; +$a->strings["Delete conversation"] = "Verwijder conversatie"; +$a->strings["Events Menu"] = "Agenda-menu"; +$a->strings["Day View"] = "Dag tonen"; +$a->strings["Week View"] = "Week tonen"; +$a->strings["Month View"] = "Maand tonen"; +$a->strings["Export"] = "Exporteren"; +$a->strings["Import"] = "Importeren"; +$a->strings["Chat Rooms"] = "Chatkanalen"; +$a->strings["Bookmarked Chatrooms"] = "Bladwijzers van chatkanalen"; +$a->strings["Suggested Chatrooms"] = "Voorgestelde chatkanalen"; +$a->strings["photo/image"] = "foto/afbeelding"; +$a->strings["Rate Me"] = "Beoordeel mij"; +$a->strings["View Ratings"] = "Bekijk beoordelingen"; +$a->strings["Public Hubs"] = "Openbare hubs"; +$a->strings["Forums"] = "Forums"; +$a->strings["Tasks"] = "Taken"; +$a->strings["Documentation"] = "Documentatie"; +$a->strings["Project/Site Information"] = "Project- en hub-informatie"; +$a->strings["For Members"] = "Voor leden"; +$a->strings["For Administrators"] = "Voor beheerders"; +$a->strings["For Developers"] = "Voor ontwikkelaars"; +$a->strings["Site"] = "Hub-instellingen"; +$a->strings["Accounts"] = "Accounts"; +$a->strings["Channels"] = "Kanalen"; +$a->strings["Plugins"] = "Plug-ins"; +$a->strings["Themes"] = "Thema's"; +$a->strings["Inspect queue"] = "Inspecteer berichtenwachtrij"; +$a->strings["Profile Config"] = "Profielconfiguratie"; +$a->strings["DB updates"] = "Database-updates"; +$a->strings["Logs"] = "Logboeken"; +$a->strings["Admin"] = "Beheer"; +$a->strings["Plugin Features"] = "Plug-in-opties"; +$a->strings["User registrations waiting for confirmation"] = "Accounts die op goedkeuring wachten"; +$a->strings["View Photo"] = "Foto weergeven"; +$a->strings["Edit Album"] = "Album bewerken"; $a->strings["No recipient provided."] = "Geen ontvanger opgegeven."; $a->strings["[no subject]"] = "[geen onderwerp]"; $a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden."; @@ -804,73 +879,6 @@ $a->strings["database storage failed."] = "opslag in database mislukt."; $a->strings["Empty path"] = "Ontbrekend bestandspad"; $a->strings["Attachments:"] = "Bijlagen:"; $a->strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:"; -$a->strings["Apps"] = "Apps"; -$a->strings["System"] = "Systeem"; -$a->strings["Create Personal App"] = "Persoonlijke app maken"; -$a->strings["Edit Personal App"] = "Persoonlijke app bewerken"; -$a->strings["Ignore/Hide"] = "Negeren/Verbergen"; -$a->strings["Suggestions"] = "Voorgestelde kanalen"; -$a->strings["See more..."] = "Meer..."; -$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Je hebt %1$.0f van de %2$.0f toegestane connecties."; -$a->strings["Add New Connection"] = "Nieuwe connectie toevoegen"; -$a->strings["Enter the channel address"] = "Vul het adres van het nieuwe kanaal in"; -$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Voorbeeld: bob@example.com, http://example.com/barbara"; -$a->strings["Notes"] = "Aantekeningen"; -$a->strings["Save"] = "Opslaan"; -$a->strings["Remove term"] = "Verwijder zoekterm"; -$a->strings["Archives"] = "Archieven"; -$a->strings["Me"] = "Ik"; -$a->strings["Family"] = "Familie"; -$a->strings["Acquaintances"] = "Kennissen"; -$a->strings["All"] = "Alles"; -$a->strings["Refresh"] = "Vernieuwen"; -$a->strings["Account settings"] = "Account"; -$a->strings["Channel settings"] = "Kanaal"; -$a->strings["Additional features"] = "Extra functies"; -$a->strings["Feature/Addon settings"] = "Extra functie- en plugin-instellingen"; -$a->strings["Display settings"] = "Weergave"; -$a->strings["Connected apps"] = "Verbonden applicaties"; -$a->strings["Export channel"] = "Kanaal exporteren"; -$a->strings["Connection Default Permissions"] = "Standaard permissies voor connecties"; -$a->strings["Premium Channel Settings"] = "Instellingen premiumkanaal"; -$a->strings["Private Mail Menu"] = "Privéberichten"; -$a->strings["Combined View"] = "Gecombineerd postvak"; -$a->strings["Inbox"] = "Postvak IN"; -$a->strings["Outbox"] = "Postvak UIT"; -$a->strings["New Message"] = "Nieuw bericht"; -$a->strings["Conversations"] = "Conversaties"; -$a->strings["Received Messages"] = "Ontvangen berichten"; -$a->strings["Sent Messages"] = "Verzonden berichten"; -$a->strings["No messages."] = "Geen berichten"; -$a->strings["Delete conversation"] = "Verwijder conversatie"; -$a->strings["Chat Rooms"] = "Chatkanalen"; -$a->strings["Bookmarked Chatrooms"] = "Bladwijzers van chatkanalen"; -$a->strings["Suggested Chatrooms"] = "Voorgestelde chatkanalen"; -$a->strings["photo/image"] = "foto/afbeelding"; -$a->strings["Rate Me"] = "Beoordeel mij"; -$a->strings["View Ratings"] = "Bekijk beoordelingen"; -$a->strings["Public Hubs"] = "Openbare hubs"; -$a->strings["Forums"] = "Forums"; -$a->strings["Tasks"] = "Taken"; -$a->strings["Documentation"] = "Documentatie"; -$a->strings["Project/Site Information"] = "Project- en hub-informatie"; -$a->strings["For Members"] = "Voor leden"; -$a->strings["For Administrators"] = "Voor beheerders"; -$a->strings["For Developers"] = "Voor ontwikkelaars"; -$a->strings["Site"] = "Hub-instellingen"; -$a->strings["Accounts"] = "Accounts"; -$a->strings["Channels"] = "Kanalen"; -$a->strings["Plugins"] = "Plug-ins"; -$a->strings["Themes"] = "Thema's"; -$a->strings["Inspect queue"] = "Inspecteer berichtenwachtrij"; -$a->strings["Profile Config"] = "Profielconfiguratie"; -$a->strings["DB updates"] = "Database-updates"; -$a->strings["Logs"] = "Logboeken"; -$a->strings["Admin"] = "Beheer"; -$a->strings["Plugin Features"] = "Plug-in-opties"; -$a->strings["User registrations waiting for confirmation"] = "Accounts die op goedkeuring wachten"; -$a->strings["View Photo"] = "Foto weergeven"; -$a->strings["Edit Album"] = "Album bewerken"; $a->strings["prev"] = "vorige"; $a->strings["first"] = "eerste"; $a->strings["last"] = "laatste"; @@ -1547,9 +1555,8 @@ $a->strings["l, F j"] = "l j F"; $a->strings["Edit event"] = "Gebeurtenis bewerken"; $a->strings["Delete event"] = "Gebeurtenis verwijderen"; $a->strings["calendar"] = "agenda"; -$a->strings["Create New Event"] = "Nieuwe gebeurtenis aanmaken"; -$a->strings["Export"] = "Exporteren"; -$a->strings["Import"] = "Importeren"; +$a->strings["New Event"] = "Nieuwe gebeurtenis"; +$a->strings["Today"] = "Vandaag"; $a->strings["Event removed"] = "Gebeurtenis verwijderd"; $a->strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt"; $a->strings["Event details"] = "Details van gebeurtenis"; @@ -1602,6 +1609,7 @@ $a->strings["Description: "] = "Omschrijving: "; $a->strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. "; $a->strings["Empty post discarded."] = "Leeg bericht geannuleerd"; $a->strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."; +$a->strings["Duplicate post suppressed."] = "Dubbel bericht tegengehouden."; $a->strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen."; $a->strings["Unable to obtain post information from database."] = "Niet in staat om informatie over dit bericht uit de database te verkrijgen."; $a->strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt."; diff --git a/view/pdl/mod_events.pdl b/view/pdl/mod_events.pdl index 5a9763297..5a71d88d9 100644 --- a/view/pdl/mod_events.pdl +++ b/view/pdl/mod_events.pdl @@ -1,3 +1,4 @@ [region=aside] +[widget=eventsmenu][/widget] [widget=tasklist][/widget] [/region] diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index f089b8599..0b5b6ef80 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -847,6 +847,16 @@ nav .acpopup { cursor: pointer; } +.fc-unthemed th, +.fc-unthemed td, +.fc-unthemed thead, +.fc-unthemed tbody, +.fc-unthemed .fc-divider, +.fc-unthemed .fc-row, +.fc-unthemed .fc-popover { + border-color: #ccc !important; +} + .eventcal { float: left; font-size: 20px; @@ -958,10 +968,6 @@ nav .acpopup { color: #FF0000; } -.fc-state-highlight { - background: none repeat scroll 0% 0% #FCF8E3 !important; -} - #cboxOverlay { z-index: 1050; } diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css index d9dbc9f15..8545f3f74 100644 --- a/view/theme/redbasic/schema/bluegrid.css +++ b/view/theme/redbasic/schema/bluegrid.css @@ -188,6 +188,10 @@ nav .badge:hover, nav .badge:focus { box-shadow: 0px 6px 12px rgba(45,48,92,.176); } +.tags a { + color: inherit; +} + #profile-photo-wrapper { border: none; } @@ -337,7 +341,7 @@ input { background-color: #FFF; } -.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit, input#dbtn-submit, input#newchannel-submit-button { +.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit, input#dbtn-submit, input#newchannel-submit-button, input#contacts-search-submit { background-color: #FFF; color: #43488A; border-radius: 0px; @@ -346,7 +350,7 @@ input { transition: all .3s ease-in-out; } -.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover, input#dbtn-submit:hover, input#dbtn-submit:focus, input#newchannel-submit-button:hover, input#newchannel-submit-button:focus { +.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover, input#dbtn-submit:hover, input#dbtn-submit:focus, input#newchannel-submit-button:hover, input#newchannel-submit-button:focus, input#contacts-search-submit:hover, input#contacts-search-submit:focus { border-color: #FFF; background-color: #43488A; color: #FFF; diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl index fd0ef0d9b..346dfb154 100755 --- a/view/tpl/event_head.tpl +++ b/view/tpl/event_head.tpl @@ -1,6 +1,7 @@ - + + + -{{if $editselect != 'none'}} - - -
-
-
+ +
+
+
+
+
+
diff --git a/view/tpl/events_side.tpl b/view/tpl/events_side.tpl new file mode 100755 index 000000000..b9a9062b1 --- /dev/null +++ b/view/tpl/events_side.tpl @@ -0,0 +1,8 @@ +
+

{{$title}}

+ +
diff --git a/view/tpl/invite.tpl b/view/tpl/invite.tpl index 2b7ab9cfb..c39e044bc 100755 --- a/view/tpl/invite.tpl +++ b/view/tpl/invite.tpl @@ -1,3 +1,4 @@ +
@@ -28,3 +29,4 @@
+