diff options
author | mrjive <mrjive@mrjive.it> | 2015-12-04 10:32:14 +0100 |
---|---|---|
committer | mrjive <mrjive@mrjive.it> | 2015-12-04 10:32:14 +0100 |
commit | 051346325609f5f2e78ef0deaf182c65d7823bbc (patch) | |
tree | f3660377b3daf6599623d2e4fb95b4d33c30d8cc | |
parent | 53a796afcc0cff6f9e3f51457df4506a43db1945 (diff) | |
parent | 8a9d743f6f518d3af35014130dcef8f148148113 (diff) | |
download | volse-hubzilla-051346325609f5f2e78ef0deaf182c65d7823bbc.tar.gz volse-hubzilla-051346325609f5f2e78ef0deaf182c65d7823bbc.tar.bz2 volse-hubzilla-051346325609f5f2e78ef0deaf182c65d7823bbc.zip |
Merge pull request #9 from redmatrix/master
updating from original codebase
150 files changed, 45858 insertions, 33202 deletions
@@ -28,3 +28,4 @@ AddType audio/ogg .oga RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] </IfModule> + @@ -48,6 +48,7 @@ require_once('include/AccessList.php'); define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H'); +define ( 'STD_VERSION', '1.0' ); define ( 'ZOT_REVISION', 1 ); define ( 'DB_UPDATE_VERSION', 1160 ); @@ -65,10 +66,10 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); //define ( 'NULL_DATE', '0000-00-00 00:00:00' ); define ( 'TEMPLATE_BUILD_PATH', 'store/[data]/smarty3' ); -define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // This is technically DIRECTORY_MODE_TERTIARY, but it's the default, hence 0x0000 -define ( 'DIRECTORY_MODE_PRIMARY', 0x0001); -define ( 'DIRECTORY_MODE_SECONDARY', 0x0002); -define ( 'DIRECTORY_MODE_STANDALONE', 0x0100); +define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // A directory client +define ( 'DIRECTORY_MODE_PRIMARY', 0x0001); // There can only be *one* primary directory server in a directory_realm. +define ( 'DIRECTORY_MODE_SECONDARY', 0x0002); // All other mirror directory servers +define ( 'DIRECTORY_MODE_STANDALONE', 0x0100); // A detached (off the grid) hub with itself as directory server. // We will look for upstream directories whenever me make contact // with other sites, but if this is a new installation and isn't @@ -83,7 +84,8 @@ $DIRECTORY_FALLBACK_SERVERS = array( 'https://hubzilla.site', 'https://red.zottel.red', 'https://gravizot.de', - 'https://my.federated.social' + 'https://my.federated.social', + 'https://hubzilla.nl' ); @@ -422,6 +424,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 ); @@ -619,10 +622,10 @@ class App { public $poi = null; // "person of interest", generally a referenced connection private $oauth_key = null; // consumer_id of oauth request, if used public $layout = array(); // Comanche parsed template - public $pdl = null; + public $pdl = null; // Comanche page description private $perms = null; // observer permissions private $widgets = array(); // widgets for this page - //private $widgetlist = null; // widget ordering and inclusion directives + public $groups; public $language; @@ -1155,7 +1158,7 @@ function z_root() { } /** - * @brief Return absolut URL for given $path. + * @brief Return absolute URL for given $path. * * @param string $path * @@ -1467,12 +1470,6 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) { $tpl = get_markup_template("logout.tpl"); } else { -// There's no such thing as login_head.tpl, has never been in Red, removed from Friendica 1 Jun 2013... - -// $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"), array( -// '$baseurl' => $a->get_baseurl(true) -// )); - $tpl = get_markup_template("login.tpl"); if(strlen($a->query_string)) $_SESSION['login_return_url'] = $a->query_string; @@ -2056,6 +2053,10 @@ function construct_page(&$a) { $a->build_pagehead(); + if($a->page['pdl_content']) { + $a->page['content'] = comanche_region($a,$a->page['content']); + } + // Let's say we have a comanche declaration '[region=nav][/region][region=content]$nav $content[/region]'. // The text 'region=' identifies a section of the layout by that name. So what we want to do here is leave // $a->page['nav'] empty and put the default content from $a->page['nav'] and $a->page['section'] @@ -2070,6 +2071,7 @@ function construct_page(&$a) { call_hooks('construct_page', $arr); $a->layout = $arr['layout']; + foreach($a->layout as $k => $v) { if((strpos($k, 'region_') === 0) && strlen($v)) { if(strpos($v, '$region_') !== false) { diff --git a/doc/Widgets.md b/doc/Widgets.md index 7acd9241b..7c506dea7 100644 --- a/doc/Widgets.md +++ b/doc/Widgets.md @@ -108,6 +108,13 @@ Some/many of these widgets have restrictions which may restrict the type of page <br /> <br /> +* album - provides a widget containing a complete photo album from albums belonging to the page owner; this may be too large to present in a sidebar region as is best implemented as a content region widget. + * args: + * album - album name + * title - optional title, album name is used if not present +<br /> <br /> + + Creating New Widgets ==================== diff --git a/doc/api/statuses_update.bb b/doc/api/statuses_update.bb new file mode 100644 index 000000000..acad440de --- /dev/null +++ b/doc/api/statuses_update.bb @@ -0,0 +1,23 @@ +[h2]statuses/update[/h2] +Parameters + + title: Title of the status + status: Status in text [or bbcode] format + htmlstatus: Status in HTML format + in_reply_to_status_id + lat: latitude + long: longitude + media: image data + source: Application name + group_allow + contact_allow + group_deny + contact_deny + + +Example + +[code] +curl -u theUsername:thePassword http://mywebsite/api/statuses/update.xml -d status='Hello world' +[/code] + diff --git a/doc/database/db_channel.bb b/doc/database/db_channel.bb index 70887298d..6f53517d8 100644 --- a/doc/database/db_channel.bb +++ b/doc/database/db_channel.bb @@ -15,7 +15,7 @@ [/td][/tr] [tr][td]channel_guid_sig[/td][td]channel.gui signed with channel.prvkey and base64url_encoded[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td] [/td][/tr] -[tr][td]channel_hash[/td][td]whirlpool hash of channel.guid and channel_guid_sig concatenated, synonymous with xchan_hash[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]channel_hash[/td][td]base64url_encode of a 64-char whirlpool hash of channel.guid and channel_guid_sig concatenated, synonymous with xchan_hash.[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] [tr][td]channel_timezone[/td][td]PHP-legal timezone[/td][td]char(128)[/td][td]NO[/td][td]MUL[/td][td]UTC[/td][td] [/td][/tr] @@ -97,4 +97,4 @@ [/td][/tr] [/table] -Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
\ No newline at end of file +Return to [zrl=[baseurl]/help/database]database documentation[/zrl] diff --git a/doc/database/db_xchan.bb b/doc/database/db_xchan.bb index fd1d68296..8932969c5 100644 --- a/doc/database/db_xchan.bb +++ b/doc/database/db_xchan.bb @@ -1,44 +1,59 @@ [table] [tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra [/th][/tr] -[tr][td]xchan_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td] +[tr][td]xchan_hash[/td][td]calculated hash of this extended channel[/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td] [/td][/tr] -[tr][td]xchan_guid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_guid[/td][td]channel_guid of this extended channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_guid_sig[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td] +[tr][td]xchan_guid_sig[/td][td]base64url encoded signature of the guid[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td] [/td][/tr] -[tr][td]xchan_pubkey[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td] +[tr][td]xchan_pubkey[/td][td]public key for verifying signed data and assertions[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td] [/td][/tr] -[tr][td]xchan_photo_mimetype[/td][td][/td][td]char(32)[/td][td]NO[/td][td][/td][td]image/jpeg[/td][td] +[tr][td]xchan_photo_mimetype[/td][td]mimetype of the profile photo[/td][td]char(32)[/td][td]NO[/td][td][/td][td]image/jpeg[/td][td] [/td][/tr] -[tr][td]xchan_photo_l[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] +[tr][td]xchan_photo_l[/td][td]photo url 300px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] [/td][/tr] -[tr][td]xchan_photo_m[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] +[tr][td]xchan_photo_m[/td][td]photo url 80 px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] [/td][/tr] -[tr][td]xchan_photo_s[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] +[tr][td]xchan_photo_s[/td][td]photo url 48 px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] [/td][/tr] -[tr][td]xchan_addr[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_addr[/td][td]user@host[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_url[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_url[/td][td]url of channel page on primary hub location[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_connurl[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_connurl[/td]poco url[td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_follow[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_follow[/td]url template for following %s[td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_connpage[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] +[tr][td]xchan_connpage[/td][td]for premium channels url of channel to display when connecting[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td] [/td][/tr] -[tr][td]xchan_name[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_name[/td][td]human readabl name of channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_network[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_network[/td][td]network of channel for instance 'zot', 'diaspora', 'unknown'[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_instance_url[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan_instance_url[/td][td]no longer used[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xchan_flags[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]xchan_flags[/td][td]no longer used[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/td][/tr] -[tr][td]xchan_photo_date[/td][td][/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td] +[tr][td]xchan_photo_date[/td][td]timestamp of last photo change in GMT[/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td] [/td][/tr] -[tr][td]xchan_name_date[/td][td][/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td] +[tr][td]xchan_name_date[/td][td]timestamp of last name change in GMT[/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td] [/td][/tr] +[tr][td]xchan_hidden[/td][td]flag - channel is hidden[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_orphan[/td][td]flag - channel has no known hubloc locations[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_censored[/td][td]flag - channel has been censored[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_selfcensored[/td][td]flag - channel is self censored (adult or nsfw)[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_system[/td][td]flag - this represents a system channel[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_pubforum[/td][td]flag - channel is a public forum[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xchan_deleted[/td][td]flag - channel was deleted[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] + [/table] Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
\ No newline at end of file diff --git a/doc/database/db_xign.bb b/doc/database/db_xign.bb index e216e11cc..63c6569de 100644 --- a/doc/database/db_xign.bb +++ b/doc/database/db_xign.bb @@ -1,11 +1,12 @@ +xign - holds xchan information for channels that have been ignored in 'friend suggestions' [table] [tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra [/th][/tr] -[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment +[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment [/td][/tr] -[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]uid[/td][td]local channel.channel_id[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/td][/tr] -[tr][td]xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xchan[/td][td]xchan.xchan_hash of ignored channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] [/table] diff --git a/doc/database/db_xlink.bb b/doc/database/db_xlink.bb index 2eefec14a..528f8da19 100644 --- a/doc/database/db_xlink.bb +++ b/doc/database/db_xlink.bb @@ -1,15 +1,21 @@ +xlink - used to store social graph and channel ratings [table] [tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra [/th][/tr] -[tr][td]xlink_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment +[tr][td]xlink_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment [/td][/tr] -[tr][td]xlink_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xlink_xchan[/td][td]xchan.xchan_hash of controlling channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xlink_link[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] +[tr][td]xlink_link[/td][td]xchan.xchan_hash of link target (connection or rating)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] -[tr][td]xlink_rating[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]xlink_rating[/td][td]int rating[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/td][/tr] -[tr][td]xlink_updated[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td] +[tr][td]xlink_rating_txt[/td][td]rating text[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xlink_updated[/td][td]timestamp of update in GMT[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td] +[tr][td]xlink_static[/td][td]0 for social graph, 1 for ratings[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[/td][/tr] +[tr][td]xlink_sig[/td][td]base64url encoded signature of rating information[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/td][/tr] [/table] diff --git a/doc/database/db_xprof.bb b/doc/database/db_xprof.bb index d98fb3f17..bed79e9ca 100644 --- a/doc/database/db_xprof.bb +++ b/doc/database/db_xprof.bb @@ -1,9 +1,10 @@ +xprof - stores searchable public profile information on directory servers [table] [tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra [/th][/tr] -[tr][td]xprof_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td] +[tr][td]xprof_hash[/td][td]xchan.xchan_hash of this channel[/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td] [/td][/tr] -[tr][td]xprof_age[/td][td][/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] +[tr][td]xprof_age[/td][td]current age (updated monthly)[/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td] [/td][/tr] [tr][td]xprof_desc[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td] [/td][/tr] diff --git a/doc/develop.bb b/doc/develop.bb index 6694a839b..ad5b2288f 100644 --- a/doc/develop.bb +++ b/doc/develop.bb @@ -15,7 +15,7 @@ [zrl=[baseurl]/help/Translations]Translations[/zrl] [zrl=[baseurl]/help/developers]Developers[/zrl] [zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl] -[zrl=[baseurl]/help/database]Database schema documantation[/zrl] +[zrl=[baseurl]/help/database]Database schema documentation[/zrl] [zrl=[baseurl]/help/api_functions]API functions[/zrl] [zrl=[baseurl]/help/api_posting]Posting to the red# using the API[/zrl] [zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl] diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb index c74ec3c56..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 documantation</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/hidden_configs.bb b/doc/hidden_configs.bb index 44114967b..b06df641f 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -152,7 +152,10 @@ This document assumes you're an administrator. Spam prevention. Limits the number of tagged forums which are recognised in any post. Default is 2. Only the first 'n' tags will be delivered as forums, the others will not cause any delivery. [b]system > openssl_conf_file[/b] Needed in some Windows installations to locate the openssl configuration file on the system. - + [b]system > hide_help[/b] + Don't display help documentation link in nav bar + [b]system > expire_delivery_reports[/b] + Expiration in days for delivery reports - default 30 [b]Directory config[/b] [b]Directory search defaults[/b] diff --git a/doc/hook/logger.bb b/doc/hook/logger.bb new file mode 100644 index 000000000..8fe989abd --- /dev/null +++ b/doc/hook/logger.bb @@ -0,0 +1,16 @@ +[h2]logger[/h2] + +Called when making an entry to the application logfile + +Hook data: + + array( + 'filename' => name of logfile relative to application basedir. String. + 'loglevel' => the log level of this log entry, if this is higher than the configured maximum loglevel + this hook will not be called. Integer. + 'message' => The formatted log message, ready for logging. String. + 'logged' => boolean, default is false. Set to true to prevent the normal logfile entry to be made + (e.g. if the plugin is configured to handle this aspect of the function, or if it is determined + that this log entry should not be made) + ) + diff --git a/doc/hook/nav.bb b/doc/hook/nav.bb index 847573620..b52f90602 100644 --- a/doc/hook/nav.bb +++ b/doc/hook/nav.bb @@ -1 +1,28 @@ [h2]nav[/h2] + +Called when generating the main navigation bar and menu for a page + +Hook data: + + array( + 'usermenu' => array( 'icon' => photo URL, 'name' => channel name ) + 'nav' => array( + 'usermenu' => usermenu (photo menu) link array + (channel home, profiles, photos, cloud, chats, webapges ...) + 'loginmenu' => login menu link array + 'network' => grid link and grid-notify + 'home' => home link and home-notify + 'intros' => intros link and intros-notify + 'notifications' => notifications link and notifications-notify + 'messages' => PM link and PM-notify + 'all_events' => events link and events notfiy + 'manage' => manage channels link + 'settings' => settings link + 'register' => registration link + 'help' => help/doc link + 'apps' => apps link + 'search' => search link and form + 'directory' => directory link + ) + + diff --git a/doc/hooklist.bb b/doc/hooklist.bb index 2285ef1cf..45a4861d9 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -263,6 +263,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the [zrl=[baseurl]/help/hook/logged_in]logged_in[/zrl] Called when authentication by any means has succeeeded +[zrl=[baseurl]/help/hook/logger]logger[/zrl] + Called when making an entry to the application logfile + [zrl=[baseurl]/help/hook/logging_out]logging_out[/zrl] Called when logging out 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..33a3384c5 --- /dev/null +++ b/doc/roadmapv4.bb @@ -0,0 +1,29 @@ +[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 + +Auto Updater
\ No newline at end of file diff --git a/include/ItemObject.php b/include/ItemObject.php index 34500efb9..8be99d91e 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -258,6 +258,15 @@ class Item extends BaseObject { if ($shareable) $share = array( t('Share This'), t('share')); + $dreport = ''; + + $keep_reports = intval(get_config('system','expire_delivery_reports')); + if($keep_reports === 0) + $keep_reports = 30; + + if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC',"now - $keep_reports days")) > 0) + $dreport = t('Delivery Report'); + if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) $indent .= ' shiny'; @@ -277,6 +286,10 @@ class Item extends BaseObject { $comment_count_txt = sprintf( tt('%d comment','%d comments',$total_children),$total_children ); $list_unseen_txt = (($unseen_comments) ? sprintf('%d unseen',$unseen_comments) : ''); + + + + $children = $this->get_children(); $has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false); @@ -309,7 +322,7 @@ class Item extends BaseObject { 'vwall' => t('via Wall-To-Wall:'), 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), - 'dreport' => t('Delivery Report'), + 'dreport' => $dreport, 'name' => $profile_name, 'thumb' => $profile_avatar, 'osparkle' => $osparkle, @@ -333,6 +346,7 @@ class Item extends BaseObject { 'owner_photo' => $this->get_owner_photo(), 'owner_name' => $this->get_owner_name(), 'photo' => $body['photo'], + 'event' => $body['event'], 'has_tags' => $has_tags, // Item toolbar buttons diff --git a/include/api.php b/include/api.php index 24176884c..e60583a01 100644 --- a/include/api.php +++ b/include/api.php @@ -9,6 +9,7 @@ require_once('include/security.php'); require_once('include/photos.php'); require_once('include/items.php'); require_once('include/attach.php'); +require_once('include/api_auth.php'); /* * @@ -381,7 +382,6 @@ require_once('include/attach.php'); function api_item_get_user(&$a, $item) { - global $usercache; // The author is our direct contact, in a conversation with us. @@ -395,11 +395,11 @@ require_once('include/attach.php'); $name = $item['author']['xchan_name']; // Generating a random ID - if (is_null($usercache[$nick]) or !array_key_exists($nick, $usercache)) - $usercache[$nick] = mt_rand(2000000, 2100000); + if (! $nick) + $nick = mt_rand(2000000, 2100000); $ret = array( - 'id' => $usercache[$nick], + 'id' => $nick, 'name' => $name, 'screen_name' => $nick, 'location' => '', //$uinfo[0]['default-location'], @@ -741,6 +741,8 @@ require_once('include/attach.php'); } $user_info = api_get_user($a); +// logger('status_with_media: ' . print_r($_REQUEST,true), LOGGER_DEBUG); + $_REQUEST['type'] = 'wall'; $_REQUEST['profile_uid'] = api_user(); $_REQUEST['api_source'] = true; @@ -908,7 +910,7 @@ require_once('include/attach.php'); function red_item(&$a, $type) { if (api_user() === false) { - logger('api_red_item_new: no user'); + logger('api_red_item_full: no user'); return false; } @@ -2195,7 +2197,7 @@ require_once('include/attach.php'); } } - $id = send_message($recipient['id'], $_POST['text'], $sub, $replyto); + $id = send_message(api_user(),$recipient['guid'], $_POST['text'], $sub, $replyto); if ($id>-1) { $r = q("SELECT * FROM `mail` WHERE id=%d", intval($id)); 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<a href="$2" target="_newwin" >$2</a>', $Text); + $Text = preg_replace("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ism", '$1<a href="$2" target="_blank" >$2</a>', $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", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_newwin" >$1</a>', $Text); - $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_newwin" >$2</a>', $Text); - $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_newwin" >$1</a>', $Text); - $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" target="_newwin" >$2</a>', $Text); + $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_blank" >$1</a>', $Text); + $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_blank" >$2</a>', $Text); + $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_blank" >$1</a>', $Text); + $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" target="_blank" >$2</a>', $Text); } if (strpos($Text,'[/zrl]') !== false) { - $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_newwin" >$1</a>', $Text); - $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_newwin" >$2</a>', $Text); - $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_newwin" >$1</a>', $Text); - $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_newwin" >$2</a>', $Text); + $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_blank" >$1</a>', $Text); + $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_blank" >$2</a>', $Text); + $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" >$1</a>', $Text); + $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" >$2</a>', $Text); } // Perform MAIL Search if (strpos($Text,'[/mail]') !== false) { - $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1" target="_newwin" >$1</a>', $Text); - $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1" target="_newwin" >$2</a>', $Text); + $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1" target="_blank" >$1</a>', $Text); + $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1" target="_blank" >$2</a>', $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\]/", '<a href="$1" target="_newwin" >$1</a>', $Text); + $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '<a href="$1" target="_blank" >$1</a>', $Text); } if (strpos($Text,'[/audio]') !== false) { - $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '<a href="$1" target="_newwin" >$1</a>', $Text); + $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '<a href="$1" target="_blank" >$1</a>', $Text); } if (strpos($Text,'[/zvideo]') !== false) { - $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '<a class="zid" href="$1" target="_newwin" >$1</a>', $Text); + $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '<a class="zid" href="$1" target="_blank" >$1</a>', $Text); } if (strpos($Text,'[/zaudio]') !== false) { - $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '<a class="zid" href="$1" target="_newwin" >$1</a>', $Text); + $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '<a class="zid" href="$1" target="_blank" >$1</a>', $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", '<a href="$1" target="_newwin" >$1</a>', $Text); + $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<a href="$1" target="_blank" >$1</a>', $Text); } } diff --git a/include/comanche.php b/include/comanche.php index 9585a6578..ef71886f2 100644 --- a/include/comanche.php +++ b/include/comanche.php @@ -282,15 +282,16 @@ function comanche_widget($name, $text) { } } - if(file_exists('widget/' . trim($name) . '.php')) + $func = 'widget_' . trim($name); + + if((! function_exists($func)) && file_exists('widget/' . trim($name) . '.php')) require_once('widget/' . trim($name) . '.php'); else { - $theme_widget = 'widget_' . trim($name) . '.php'; - if(theme_include($theme_widget)) + $theme_widget = $func . '.php'; + if((! function_exists($func)) && theme_include($theme_widget)) require_once(theme_include($theme_widget)); } - $func = 'widget_' . trim($name); if (function_exists($func)) return $func($vars); } diff --git a/include/conversation.php b/include/conversation.php index c278dcf12..3b534dc69 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); @@ -697,6 +697,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ 'thumb' => $profile_avatar, 'title' => $item['title'], 'body' => $body['html'], + 'event' => $body['event'], 'photo' => $body['photo'], 'tags' => $body['tags'], 'categories' => $body['categories'], @@ -944,7 +945,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, @@ -1025,7 +1026,7 @@ function builtin_activity_puller($item, &$conv_responses) { if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) { $name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown')); $url = (($item['author']['xchan_url'] && $item['author']['xchan_photo_s']) - ? '<a href="' . chanlink_url($item['author']['xchan_url']) . '">' . '<img class="response-photo" src="' . zid($item['author']['xchan_photo_s']) . ' alt="' . urlencode($name) . '" /> ' . $name . '</a>' + ? '<a href="' . chanlink_url($item['author']['xchan_url']) . '">' . '<img class="dropdown-menu-img-xs" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" />' . $name . '</a>' : '<a href="#" class="disabled">' . $name . '</a>' ); @@ -1089,6 +1090,11 @@ function format_like($cnt, $arr, $type, $id) { return $o; } +/** + * This is our general purpose content editor. + * It was once nicknamed "jot" and you may see references to "jot" littered throughout the code. + * They are referring to the content editor or components thereof. + */ function status_editor($a, $x, $popup = false) { diff --git a/include/datetime.php b/include/datetime.php index b0167edb2..1d10e7ad7 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -153,7 +153,7 @@ function dob($dob) { * id and name of datetimepicker (defaults to "datetimepicker") */ function datesel($format, $min, $max, $default, $id = 'datepicker') { - return datetimesel($format, $min, $max, $default, $id,true, false, '', ''); + return datetimesel($format, $min, $max, $default, '', $id,true, false, '', ''); } /** @@ -168,7 +168,7 @@ function datesel($format, $min, $max, $default, $id = 'datepicker') { * id and name of datetimepicker (defaults to "timepicker") */ function timesel($format, $h, $m, $id='timepicker') { - return datetimesel($format,new DateTime(),new DateTime(),new DateTime("$h:$m"),$id,false,true); + return datetimesel($format,new DateTime(),new DateTime(),new DateTime("$h:$m"),'', $id,false,true); } /** @@ -198,7 +198,7 @@ function timesel($format, $h, $m, $id='timepicker') { * @todo Once browser support is better this could probably be replaced with * native HTML5 date picker. */ -function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) { +function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false, $first_day = 0) { $o = ''; $dateformat = ''; @@ -207,11 +207,11 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic if($pickdate && $picktime) $dateformat .= ' '; if($picktime) $dateformat .= 'H:i'; - $minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : ''; - $maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : ''; + $minjs = $min->getTimestamp() ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : ''; + $maxjs = $max->getTimestamp() ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : ''; - $input_text = $default ? 'value="' . date($dateformat, $default->getTimestamp()) . '"' : ''; - $defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : ''; + $input_text = $default->getTimestamp() ? date($dateformat, $default->getTimestamp()) : ''; + $defaultdatejs = $default->getTimestamp() ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : ''; $pickers = ''; if(!$pickdate) $pickers .= ',datepicker: false'; @@ -219,10 +219,10 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic $extra_js = ''; if($minfrom != '') - $extra_js .= "\$('#$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; + $extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; if($maxfrom != '') - $extra_js .= "\$('#$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; + $extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; $readable_format = $dateformat; $readable_format = str_replace('Y','yyyy',$readable_format); @@ -231,10 +231,11 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic $readable_format = str_replace('H','HH',$readable_format); $readable_format = str_replace('i','MM',$readable_format); - $o .= "<div class='date'><input type='text' placeholder='$readable_format' name='$id' id='$id' $input_text />"; - $o .= (($required) ? '<span class="required" title="' . t('Required') . '" >*</span>' : ''); - $o .= '</div>'; - $o .= "<script type='text/javascript'>\$(function () {var picker = \$('#$id').datetimepicker({step:5,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs}); $extra_js})</script>"; + $tpl = get_markup_template('field_input.tpl'); + $o .= replace_macros($tpl,array( + '$field' => array($id, $label, $input_text, (($required) ? t('Required') : ''), (($required) ? '*' : ''), 'placeholder="' . $readable_format . '"'), + )); + $o .= "<script>\$(function () {var picker = \$('#id_$id').datetimepicker({step:15,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs,dayOfWeekStart:$first_day}); $extra_js})</script>"; return $o; } diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php index 708d8e709..1fb3d5c00 100755 --- a/include/dba/dba_driver.php +++ b/include/dba/dba_driver.php @@ -137,7 +137,7 @@ abstract class dba_driver { } if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { + if((! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) && (! filter_var($server, FILTER_VALIDATE_IP))) { $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); $this->connected = false; $this->db = null; diff --git a/include/deliver.php b/include/deliver.php index 11c1b249e..de93e316e 100644 --- a/include/deliver.php +++ b/include/deliver.php @@ -107,15 +107,10 @@ function deliver_run($argv, $argc) { $notify = json_decode($r[0]['outq_notify'],true); - // Check if this is a conversation request packet. It won't have outq_msg - // but will be an encrypted packet - so will need to be handed off to - // web delivery rather than processed inline. + // Messages without an outq_msg will need to go via the web, even if it's a + // local delivery. This includes conversation requests and refresh packets. - $sendtoweb = false; - if(array_key_exists('iv',$notify) && (! $r[0]['outq_msg'])) - $sendtoweb = true; - - if(($r[0]['outq_posturl'] === z_root() . '/post') && (! $sendtoweb)) { + if(($r[0]['outq_posturl'] === z_root() . '/post') && ($r[0]['outq_msg'])) { logger('deliver: local delivery', LOGGER_DEBUG); // local delivery // we should probably batch these and save a few delivery processes @@ -166,6 +161,7 @@ function deliver_run($argv, $argc) { } else { logger('deliver: remote zot delivery failed to ' . $r[0]['outq_posturl']); + logger('deliver: remote zot delivery fail data: ' . print_r($result,true), LOGGER_DATA); $y = q("update outq set outq_updated = '%s' where outq_hash = '%s'", dbesc(datetime_convert()), dbesc($argv[$x]) diff --git a/include/dir_fns.php b/include/dir_fns.php index 398f43d00..fd2a5835d 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -18,11 +18,11 @@ function find_upstream_directory($dirmode) { // Thwart attempts to use a private directory - if(($preferred) && ($prefered != z_root())) { + if(($preferred) && ($preferred != z_root())) { $r = q("select * from site where site_url = '%s' limit 1", dbesc($preferred) ); - if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STADALONE)) { + if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STANDALONE)) { $preferred = ''; } } diff --git a/include/enotify.php b/include/enotify.php index bbddcdd14..c9b6e0463 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -152,6 +152,8 @@ function notification($params) { // $private = $p[0]['item_private']; $parent_id = $p[0]['id']; + $parent_item = $p[0]; + //$possess_desc = str_replace('<!item_type!>',$possess_desc); // "a post" @@ -358,6 +360,7 @@ function notification($params) { $datarray['uid'] = $recip['channel_id']; $datarray['link'] = $itemlink; $datarray['parent'] = $parent_mid; + $datarray['parent_item'] = $parent_item; $datarray['type'] = $params['type']; $datarray['verb'] = $params['verb']; $datarray['otype'] = $params['otype']; diff --git a/include/event.php b/include/event.php index e303ad232..539bfe484 100644 --- a/include/event.php +++ b/include/event.php @@ -21,35 +21,37 @@ function format_event_html($ev) { $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8:01 AM - $o = '<div class="vevent">' . "\r\n"; + //todo: move this to template - $o .= '<p class="summary event-summary">' . bbcode($ev['summary']) . '</p>' . "\r\n"; + $o = '<div class="vevent">' . "\r\n"; - $o .= '<p class="description event-description">' . bbcode($ev['description']) . '</p>' . "\r\n"; + $o .= '<div class="event-title"><h3><i class="icon-calendar"></i> ' . bbcode($ev['summary']) . '</h3></div>' . "\r\n"; - $o .= '<p class="event-start">' . t('Starts:') . ' <abbr class="dtstart" title="' + $o .= '<div class="event-start"><span class="event-label">' . t('Starts:') . '</span> <span class="dtstart" title="' . datetime_convert('UTC', 'UTC', $ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )) . '" >' . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $ev['start'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['start'] , $bd_format))) - . '</abbr></p>' . "\r\n"; + . '</span></div>' . "\r\n"; if(! $ev['nofinish']) - $o .= '<p class="event-end" >' . t('Finishes:') . ' <abbr class="dtend" title="' + $o .= '<div class="event-end" ><span class="event-label">' . t('Finishes:') . '</span> <span class="dtend" title="' . datetime_convert('UTC','UTC',$ev['finish'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )) . '" >' . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $ev['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format ))) - . '</abbr></p>' . "\r\n"; + . '</span></div>' . "\r\n"; + + $o .= '<div class="event-description">' . bbcode($ev['description']) . '</div>' . "\r\n"; if(strlen($ev['location'])) - $o .= '<p class="event-location"> ' . t('Location:') . ' <span class="location">' + $o .= '<div class="event-location"><span class="event-label"> ' . t('Location:') . '</span> <span class="location">' . bbcode($ev['location']) - . '</span></p>' . "\r\n"; + . '</span></div>' . "\r\n"; $o .= '</div>' . "\r\n"; @@ -785,6 +787,12 @@ function event_store_item($arr, $event) { 'type' => ACTIVITY_OBJ_EVENT, 'id' => z_root() . '/event/' . $r[0]['resource_id'], 'title' => $arr['summary'], + 'start' => $arr['start'], + 'finish' => $arr['finish'], + 'nofinish' => $arr['nofinish'], + 'description' => $arr['description'], + 'location' => $arr['location'], + 'adjust' => $arr['adjust'], 'content' => format_event_bbcode($arr), 'author' => array( 'name' => $r[0]['xchan_name'], @@ -887,7 +895,7 @@ function event_store_item($arr, $event) { $item_arr['verb'] = ACTIVITY_POST; $item_arr['item_wall'] = $item_wall; $item_arr['item_origin'] = $item_origin; - $item_arr['item_thread_top'] = $item_thread_top;; + $item_arr['item_thread_top'] = $item_thread_top; $attach = array(array( 'href' => z_root() . '/events/ical/' . urlencode($event['event_hash']), @@ -924,6 +932,12 @@ function event_store_item($arr, $event) { 'type' => ACTIVITY_OBJ_EVENT, 'id' => z_root() . '/event/' . $event['event_hash'], 'title' => $arr['summary'], + 'start' => $arr['start'], + 'finish' => $arr['finish'], + 'nofinish' => $arr['nofinish'], + 'description' => $arr['description'], + 'location' => $arr['location'], + 'adjust' => $arr['adjust'], 'content' => format_event_bbcode($arr), 'author' => array( 'name' => $x[0]['xchan_name'], diff --git a/include/externals.php b/include/externals.php index 18c034bb2..3a3a32420 100644 --- a/include/externals.php +++ b/include/externals.php @@ -28,7 +28,10 @@ function externals_run($argv, $argc){ } else { $randfunc = db_getfunc('RAND'); - $r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d and site_type = %d order by $randfunc limit 1", + + // fixme this query does not deal with directory realms. + + $r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d and site_type = %d and site_dead = 0 order by $randfunc limit 1", dbesc(z_root()), intval(DIRECTORY_MODE_STANDALONE), intval(SITE_TYPE_ZOT) @@ -37,19 +40,11 @@ function externals_run($argv, $argc){ $url = $r[0]['site_url']; } - // Note: blacklisted sites must be stored in the config as an array. - // No simple way to turn this into a personal config because we have no identity here. - // For that we probably need a variant of superblock. - $blacklisted = false; - $bl1 = get_config('system','blacklisted_sites'); - if(is_array($bl1) && $bl1) { - foreach($bl1 as $bl) { - if($bl && strpos($url,$bl) !== false) { - $blacklisted = true; - break; - } - } + + if(! check_siteallowed($url)) { + logger('blacklisted site: ' . $url); + $blacklisted = true; } $attempts ++; 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..95ade3b28 100644 --- a/include/identity.php +++ b/include/identity.php @@ -710,7 +710,8 @@ function identity_export_year($channel_id,$year,$month = 0) { else $maxdate = datetime_convert('UTC','UTC',$year+1 . '-01-01 00:00:00'); - $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' and resource_type = '' order by created", + $r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' and resource_type = '' order by created", + intval(ITEM_TYPE_POST), intval($channel_id), dbesc($mindate), dbesc($maxdate) @@ -1689,3 +1690,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/import.php b/include/import.php index 0fd1ab2a5..ffaea6c1a 100644 --- a/include/import.php +++ b/include/import.php @@ -2,7 +2,7 @@ require_once('include/menu.php'); -function import_channel($channel) { +function import_channel($channel, $account_id) { if(! array_key_exists('channel_system',$channel)) { $channel['channel_system'] = (($channel['channel_pageflags'] & 0x1000) ? 1 : 0); @@ -48,7 +48,7 @@ function import_channel($channel) { } unset($channel['channel_id']); - $channel['channel_account_id'] = get_account_id(); + $channel['channel_account_id'] = $account_id; $channel['channel_primary'] = (($seize) ? 1 : 0); if($channel['channel_pageflags'] & PAGE_ALLOWCODE) { @@ -72,7 +72,7 @@ function import_channel($channel) { } $r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1", - intval(get_account_id()), + intval($account_id), $channel['channel_guid'] // Already dbesc'd ); if(! $r) { @@ -83,7 +83,7 @@ function import_channel($channel) { // reset $channel = $r[0]; - set_default_login_identity(get_account_id(),$channel['channel_id'],false); + set_default_login_identity($account_id,$channel['channel_id'],false); logger('import step 1'); $_SESSION['import_step'] = 1; ref_session_write(session_id(), serialize($_SESSION)); diff --git a/include/items.php b/include/items.php index 3e4805212..ef1867c14 100755 --- a/include/items.php +++ b/include/items.php @@ -550,6 +550,7 @@ function get_public_feed($channel, $params) { $params['direction'] = ((x($params,'direction')) ? $params['direction'] : 'desc'); $params['pages'] = ((x($params,'pages')) ? intval($params['pages']) : 0); $params['top'] = ((x($params,'top')) ? intval($params['top']) : 0); + $params['cat'] = ((x($params,'cat')) ? $params['cat'] : ''); switch($params['type']) { case 'json': @@ -593,7 +594,8 @@ function get_feed_for($channel, $observer_hash, $params) { 'direction' => $params['direction'], // FIXME 'pages' => $params['pages'], 'order' => 'post', - 'top' => $params['top'] + 'top' => $params['top'], + 'cat' => $params['cat'] ), $channel, $observer_hash, CLIENT_MODE_NORMAL, get_app()->module); @@ -1408,7 +1410,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 +1434,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 +1480,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; @@ -2962,9 +2967,12 @@ function tag_deliver($uid, $item_id) { if(($item['source_xchan']) && intval($item['item_uplink']) && intval($item['item_thread_top']) && ($item['edited'] != $item['created'])) { + // this is an update (edit) to a post which was already processed by us and has a second delivery chain // Just start the second delivery chain to deliver the updated post - proc_run('php','include/notifier.php','tgroup',$item['id']); + // after resetting ownership and permission bits + + start_delivery_chain($u[0], $item, $item_id, 0); return; } @@ -3029,7 +3037,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()), @@ -3181,7 +3189,7 @@ function tag_deliver($uid, $item_id) { } if((! $mention) && (! $union)) { - logger('tag_deliver: no mention and no union.'); + logger('tag_deliver: no mention for ' . $u[0]['channel_name'] . ' and no union.'); return; } @@ -3434,7 +3442,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)) @@ -3466,7 +3474,7 @@ function post_is_importable($item,$abook) { unobscure($item); $text = prepare_text($item['body'],$item['mimetype']); - $text = html2plain($text); + $text = html2plain(($item['title']) ? $item['title'] . ' ' . $text : $text); $lang = null; @@ -3487,7 +3495,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)) @@ -3508,7 +3516,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)) @@ -4159,12 +4167,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']); @@ -4811,6 +4819,9 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C if($arr['since_id']) $sql_extra .= " and item.id > " . $since_id . " "; + if($arr['cat']) + $sql_extra .= protect_sprintf(term_query('item', $arr['cat'], TERM_CATEGORY)); + if($arr['gid'] && $uid) { $r = q("SELECT * FROM `groups` WHERE id = %d AND uid = %d LIMIT 1", intval($arr['group']), @@ -4872,7 +4883,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/js_strings.php b/include/js_strings.php index a21461a52..b1817f373 100644 --- a/include/js_strings.php +++ b/include/js_strings.php @@ -22,6 +22,7 @@ function js_strings() { '$submit' => t('Submit'), '$linkurl' => t('Please enter a link URL'), '$leavethispage' => t('Unsaved changes. Are you sure you wish to leave this page?'), + '$location' => t('Location'), '$t01' => ((t('timeago.prefixAgo') != 'timeago.prefixAgo') ? t('timeago.prefixAgo') : ''), '$t02' => ((t('timeago.prefixFromNow') != 'timeago.prefixFromNow') ? t('timeago.prefixFromNow') : ''), diff --git a/include/message.php b/include/message.php index 820d814b6..6a9e8328a 100644 --- a/include/message.php +++ b/include/message.php @@ -13,6 +13,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' $ret = array('success' => false); $a = get_app(); + $observer_hash = get_observer_hash(); if(! $recipient) { $ret['message'] = t('No recipient provided.'); @@ -148,8 +149,8 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' $match = null; $images = null; - if(preg_match_all("/\[zmg\](.*?)\[\/zmg\]/",((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$match)) - $images = $match[1]; + if(preg_match_all("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/",((strpos($body,'[/crypt]')) ? $_POST['media_str'] : $body),$match)) + $images = $match[3]; $match = false; @@ -173,7 +174,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' 'revision' => $r['data']['revision'] ); } - $body = str_replace($match[1],'',$body); + $body = trim(str_replace($match[1],'',$body)); } } @@ -230,7 +231,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' dbesc($image_uri), intval($channel['channel_id']), dbesc('<' . $channel['channel_hash'] . '>') - ); + ); $r = q("UPDATE attach SET allow_cid = '%s' WHERE hash = '%s' AND is_photo = 1 and uid = %d and allow_cid = '%s'", dbesc('<' . $recipient . '>'), dbesc($image_uri), @@ -239,7 +240,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' ); } } - + if($attaches) { foreach($attaches as $attach) { $hash = substr($attach,0,strpos($attach,',')); diff --git a/include/network.php b/include/network.php index 65599bd05..f386afc8e 100644 --- a/include/network.php +++ b/include/network.php @@ -320,17 +320,18 @@ function xml_status($st, $message = '') { killme(); } + + /** - * @brief Send HTTP status header and exit. + * @brief Send HTTP status header * * @param int $val * integer HTTP status result value * @param string $msg * optional message - * @returns (does not return, process is terminated) + * @returns nil */ -function http_status_exit($val, $msg = '') { - +function http_status($val, $msg = '') { if ($val >= 400) $msg = (($msg) ? $msg : 'Error'); if ($val >= 200 && $val < 300) @@ -338,10 +339,26 @@ function http_status_exit($val, $msg = '') { logger('http_status_exit ' . $val . ' ' . $msg); header($_SERVER['SERVER_PROTOCOL'] . ' ' . $val . ' ' . $msg); +} + + + +/** + * @brief Send HTTP status header and exit. + * + * @param int $val + * integer HTTP status result value + * @param string $msg + * optional message + * @returns (does not return, process is terminated) + */ +function http_status_exit($val, $msg = '') { + http_status($val, $msg); killme(); } + // convert an XML document to a normalised, case-corrected array // used by webfinger @@ -1692,3 +1709,164 @@ function do_delivery($deliveries) { } + + +function get_site_info() { + + global $db; + global $a; + + $register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN'); + $directory_mode = Array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_SECONDARY','DIRECTORY_MODE_PRIMARY', 256 => 'DIRECTORY_MODE_STANDALONE'); + + $sql_extra = ''; + + $r = q("select * from channel left join account on account_id = channel_account_id where ( account_roles & 4096 )>0 and account_default_channel = channel_id"); + + + if($r) { + $admin = array(); + foreach($r as $rr) { + if($rr['channel_pageflags'] & PAGE_HUBADMIN) + $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']); + } + if(! $admin) { + foreach($r as $rr) { + $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']); + } + } + } + else { + $admin = false; + } + + $def_service_class = get_config('system','default_service_class'); + if($def_service_class) + $service_class = get_config('service_class',$def_service_class); + else + $service_class = false; + + $visible_plugins = array(); + if(is_array($a->plugins) && count($a->plugins)) { + $r = q("select * from addon where hidden = 0"); + if(count($r)) + foreach($r as $rr) + $visible_plugins[] = $rr['name']; + } + sort($visible_plugins); + + if(@is_dir('.git') && function_exists('shell_exec')) + $commit = trim(@shell_exec('git log -1 --format="%h"')); + if(! isset($commit) || strlen($commit) > 16) + $commit = ''; + + $site_info = get_config('system','info'); + $site_name = get_config('system','sitename'); + if(! get_config('system','hidden_version_siteinfo')) { + $version = RED_VERSION; + $tag = get_std_version(); + + if(@is_dir('.git') && function_exists('shell_exec')) { + $commit = trim( @shell_exec('git log -1 --format="%h"')); +// if(! get_config('system','hidden_tag_siteinfo')) +// $tag = trim( @shell_exec('git describe --tags --abbrev=0')); +// else +// $tag = ''; + } + if(! isset($commit) || strlen($commit) > 16) + $commit = ''; + } + else { + $version = $commit = ''; + } + + //Statistics + $channels_total_stat = intval(get_config('system','channels_total_stat')); + $channels_active_halfyear_stat = intval(get_config('system','channels_active_halfyear_stat')); + $channels_active_monthly_stat = intval(get_config('system','channels_active_monthly_stat')); + $local_posts_stat = intval(get_config('system','local_posts_stat')); + $hide_in_statistics = intval(get_config('system','hide_in_statistics')); + $site_expire = intval(get_config('system', 'default_expire_days')); + + + $data = Array( + 'version' => $version, + 'version_tag' => $tag, + 'commit' => $commit, + 'url' => z_root(), + 'plugins' => $visible_plugins, + 'register_policy' => $register_policy[get_config('system','register_policy')], + 'directory_mode' => $directory_mode[get_config('system','directory_mode')], + 'language' => get_config('system','language'), + 'rss_connections' => get_config('system','feed_contacts'), + 'expiration' => $site_expire, + 'default_service_restrictions' => $service_class, + 'admin' => $admin, + 'site_name' => (($site_name) ? $site_name : ''), + 'platform' => PLATFORM_NAME, + 'dbdriver' => $db->getdriver(), + 'lastpoll' => get_config('system','lastpoll'), + 'info' => (($site_info) ? $site_info : ''), + 'channels_total' => $channels_total_stat, + 'channels_active_halfyear' => $channels_active_halfyear_stat, + 'channels_active_monthly' => $channels_active_monthly_stat, + 'local_posts' => $local_posts_stat, + 'hide_in_statistics' => $hide_in_statistics + ); + return $data; +} + + + +function check_siteallowed($url) { + + $retvalue = true; + + $bl1 = get_config('system','whitelisted_sites'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = true; + if($bl && strpos($url,$bl) !== false) + return true; + } + } + $bl1 = get_config('system','blacklisted_sites'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = false; + if($bl && strpos($url,$bl) !== false) { + return false; + } + } + } + return $retvalue; +} + +function check_channelallowed($hash) { + + $retvalue = true; + + $bl1 = get_config('system','whitelisted_channels'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = true; + if($bl && strpos($hash,$bl) !== false) + return true; + } + } + $bl1 = get_config('system','blacklisted_channels'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = false; + if($bl && strpos($hash,$bl) !== false) { + return false; + } + } + } + return $retvalue; +} + diff --git a/include/notifier.php b/include/notifier.php index 34a527e15..b7830285a 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -101,7 +101,7 @@ function notifier_run($argv, $argc){ $dead_hubs = array(); $dh = q("select site_url from site where site_dead = 1"); - if(dh) { + if($dh) { foreach($dh as $dead) { $dead_hubs[] = $dead['site_url']; } diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 285cbc8fb..0de3b9c97 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -3,6 +3,17 @@ function photo_factory($data, $type = null) { $ph = null; + + $unsupported_types = array( + 'image/bmp', + 'image/vnd.microsoft.icon', + 'image/tiff', + 'image/svg+xml' + ); + + if($type && in_array(strtolower($type),$unsupported_types)) + return null; + $ignore_imagick = get_config('system', 'ignore_imagick'); if(class_exists('Imagick') && !$ignore_imagick) { diff --git a/include/plugin.php b/include/plugin.php index 8749f3fbf..1d4caac0f 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -616,3 +616,14 @@ function get_markup_template($s, $root = '') { $template = $t->get_markup_template($s, $root); return $template; } + +// return the standardised version. Since we can't easily compare +// before the STD_VERSION definition was applied, we have to treat +// all prior release versions the same. You can dig through them +// with other means (such as RED_VERSION) if necessary. + +function get_std_version() { + if(defined('STD_VERSION')) + return STD_VERSION; + return '0.0.0'; +} 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 @@ <?php /** @file */ +require_once("include/network.php"); + function system_down() { +http_status(503, 'Service Unavailable'); echo <<< EOT <html> <head><title>System Unavailable</title></head> diff --git a/include/taxonomy.php b/include/taxonomy.php index e68b9659f..0bf89a7c1 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 .= '@'; @@ -108,6 +117,8 @@ function tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0, $re if(! perm_is_allowed($uid,get_observer_hash(),'view_stream')) return array(); + + $item_normal = item_normal(); $sql_options = item_permissions_sql($uid); $count = intval($count); @@ -133,7 +144,7 @@ function tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0, $re $r = q("select term, count(term) as total from term left join item on term.oid = item.id where term.uid = %d and term.type = %d and otype = %d and item_type = %d and item_private = 0 - $sql_options + $sql_options $item_normal group by term order by total desc %s", intval($uid), intval($type), diff --git a/include/text.php b/include/text.php index edaa8dcd3..4777e7a61 100644 --- a/include/text.php +++ b/include/text.php @@ -5,6 +5,7 @@ require_once("include/template_processor.php"); require_once("include/smarty.php"); +require_once("include/bbcode.php"); // random string, there are 86 characters max in text mode, 128 for hex // output is urlsafe @@ -94,6 +95,8 @@ function z_input_filter($channel_id,$s,$type = 'text/bbcode') { return escape_tags($s); if($type == 'text/plain') return escape_tags($s); + if($type == 'application/x-pdl') + return escape_tags($s); $a = get_app(); if($a->is_sys) { @@ -529,11 +532,12 @@ function attribute_contains($attr, $s) { * LOGGER_DATA and LOGGER_ALL. * * Since PHP5.4 we get the file, function and line automatically where the logger - * was caleld, so no need to add it to the message anymore. + * was called, so no need to add it to the message anymore. * * @param string $msg Message to log * @param int $level A log level. */ + function logger($msg, $level = 0) { // turn off logger in install mode global $a; @@ -555,7 +559,13 @@ function logger($msg, $level = 0) { $where = basename($stack[0]['file']) . ':' . $stack[0]['line'] . ':' . $stack[1]['function'] . ': '; } - @file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $where . $msg . PHP_EOL, FILE_APPEND); + $s = datetime_convert() . ':' . session_id() . ' ' . $where . $msg . PHP_EOL; + $pluginfo = array('filename' => $logfile, 'loglevel' => $level, 'message' => $s,'logged' => false); + + call_hooks('logger',$pluginfo); + + if(! $pluginfo['logged']) + @file_put_contents($pluginfo['filename'], $pluginfo['message'], FILE_APPEND); } /** @@ -1289,7 +1299,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) ; @@ -1371,7 +1381,37 @@ function generate_named_map($location) { return (($arr['html']) ? $arr['html'] : $location); } +function format_event($jobject) { + $event = array(); + + $object = json_decode($jobject,true); + //ensure compatibility with older items - this check can be removed at a later point + if(array_key_exists('description', $object)) { + + $bd_format = t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM + + $event['header'] = replace_macros(get_markup_template('event_item_header.tpl'),array( + '$title' => bbcode($object['title']), + '$dtstart_label' => t('Starts:'), + '$dtstart_title' => datetime_convert('UTC', 'UTC', $object['start'], (($object['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )), + '$dtstart_dt' => (($object['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $object['start'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $object['start'] , $bd_format))), + '$finish' => (($object['nofinish']) ? false : true), + '$dtend_label' => t('Finishes:'), + '$dtend_title' => datetime_convert('UTC','UTC',$object['finish'], (($object['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )), + '$dtend_dt' => (($object['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $object['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $object['finish'] , $bd_format ))) + )); + + $event['content'] = replace_macros(get_markup_template('event_item_content.tpl'),array( + '$description' => bbcode($object['description']), + '$location_label' => t('Location:'), + '$location' => bbcode($object['location']) + )); + + } + + return $event; +} function prepare_body(&$item,$attach = false) { require_once('include/identity.php'); @@ -1394,19 +1434,22 @@ 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 = '<div class="inline-photo-item-wrapper"><a href="' . zid(rawurldecode($object['id'])) . '" target="_newwin"><img class="inline-photo-item" style="max-width:' . $object['link'][0]['width'] . 'px; width:100%; height:auto;" src="' . zid(rawurldecode($object['link'][0]['href'])) . '"></a></div>' . $s; + $s = '<div class="inline-photo-item-wrapper"><a href="' . zid(rawurldecode($object['id'])) . '" target="_blank"><img class="inline-photo-item" style="max-width:' . $object['link'][0]['width'] . 'px; width:100%; height:auto;" src="' . zid(rawurldecode($object['link'][0]['href'])) . '"></a></div>' . $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 = '<a href="' . zid(rawurldecode($object['id'])) . '" target="_newwin"><img style="max-width:' . $object['link'][$scale]['width'] . 'px; width:100%; height:auto;" src="' . zid(rawurldecode($object['link'][$scale]['href'])) . '"></a>'; + $photo = '<a href="' . zid(rawurldecode($object['id'])) . '" target="_blank"><img style="max-width:' . $object['link'][$scale]['width'] . 'px; width:100%; height:auto;" src="' . zid(rawurldecode($object['link'][$scale]['href'])) . '"></a>'; } } + $event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event($item['object']) : false); + $prep_arr = array( 'item' => $item, - 'html' => $s, + 'html' => $event ? $event['content'] : $s, + 'event' => $event['header'], 'photo' => $photo ); @@ -1414,6 +1457,7 @@ function prepare_body(&$item,$attach = false) { $s = $prep_arr['html']; $photo = $prep_arr['photo']; + $event = $prep_arr['event']; // q("update item set html = '%s' where id = %d", // dbesc($s), @@ -1480,6 +1524,7 @@ function prepare_body(&$item,$attach = false) { 'item' => $item, 'photo' => $photo, 'html' => $s, + 'event' => $event, 'categories' => $categories, 'folders' => $filer, 'tags' => $tags, @@ -1517,6 +1562,11 @@ function prepare_text($text, $content_type = 'text/bbcode', $cache = false) { $s = Markdown($text); break; + + case 'application/x-pdl'; + $s = escape_tags($text); + break; + // No security checking is done here at display time - so we need to verify // that the author is allowed to use PHP before storing. We also cannot allow // importation of PHP text bodies from other sites. Therefore this content @@ -1681,7 +1731,8 @@ function mimetype_select($channel_id, $current = 'text/bbcode') { 'text/bbcode', 'text/html', 'text/markdown', - 'text/plain' + 'text/plain', + 'application/x-pdl' ); $a = get_app(); diff --git a/include/widgets.php b/include/widgets.php index 0f61a04a0..89836f90c 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -7,6 +7,7 @@ require_once('include/dir_fns.php'); require_once('include/contact_widgets.php'); +require_once('include/attach.php'); function widget_profile($args) { @@ -661,6 +662,32 @@ function widget_conversations($arr) { return $o; } +function widget_eventsmenu($arr) { + if (! local_channel()) + return; + + return replace_macros(get_markup_template('events_menu_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_eventstools($arr) { + if (! local_channel()) + return; + + return replace_macros(get_markup_template('events_tools_side.tpl'), array( + '$title' => t('Events Tools'), + '$export' => t('Export Calendar'), + '$import' => t('Import Calendar'), + '$submit' => t('Submit') + )); +} function widget_design_tools($arr) { $a = get_app(); @@ -1121,7 +1148,7 @@ function widget_forums($arr) { foreach($r1 as $rr) { if($unseen && (! intval($rr['unseen']))) continue; - $o .= '<li><span class="pull-right">' . ((intval($rr['unseen'])) ? intval($rr['unseen']) : '') . '</span><a href="network?f=&pf=1&cid=' . $rr['abook_id'] . '" ><img src="' . $rr['xchan_photo_s'] . '" style="width: 16px; height: 16px;" /> ' . $rr['xchan_name'] . '</a></li>'; + $o .= '<li><a href="network?f=&pf=1&cid=' . $rr['abook_id'] . '" ><span class="badge pull-right">' . ((intval($rr['unseen'])) ? intval($rr['unseen']) : '') . '</span><img src="' . $rr['xchan_photo_s'] . '" style="width: 16px; height: 16px;" /> ' . $rr['xchan_name'] . '</a></li>'; } $o .= '</ul></div>'; } @@ -1132,6 +1159,8 @@ function widget_forums($arr) { function widget_tasklist($arr) { + if (! local_channel()) + return; require_once('include/event.php'); $o .= '<script>var tasksShowAll = 0; $(document).ready(function() { tasksFetch(); $("#tasklist-new-form").submit(function(event) { event.preventDefault(); $.post( "tasks/new", $("#tasklist-new-form").serialize(), function(data) { tasksFetch(); $("#tasklist-new-summary").val(""); } ); return false; } )});</script>'; @@ -1221,3 +1250,102 @@ function widget_admin($arr) { return $o; } + + + +function widget_album($args) { + + $owner_uid = get_app()->profile_uid; + $sql_extra = permissions_sql($owner_uid); + + + if(! perm_is_allowed($owner_uid,get_observer_hash(),'view_storage')) + return ''; + + if($args['album']) + $album = $args['album']; + if($args['title']) + $title = $args['title']; + + /** + * This may return incorrect permissions if you have multiple directories of the same name. + * It is a limitation of the photo table using a name for a photo album instead of a folder hash + */ + + if($album) { + $x = q("select hash from attach where filename = '%s' and uid = %d limit 1", + dbesc($album), + intval($owner_uid) + ); + if($x) { + $y = attach_can_view_folder($owner_uid,get_observer_hash(),$x[0]['hash']); + if(! $y) + return ''; + } + } + + $order = 'DESC'; + + $r = q("SELECT p.resource_id, p.id, p.filename, p.type, p.scale, p.description, p.created FROM photo p INNER JOIN + (SELECT resource_id, max(scale) scale FROM photo WHERE uid = %d AND album = '%s' AND scale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph + ON (p.resource_id = ph.resource_id AND p.scale = ph.scale) + ORDER BY created $order ", + intval($owner_uid), + dbesc($album), + intval(PHOTO_NORMAL), + intval(PHOTO_PROFILE) + ); + + //edit album name + $album_edit = null; + + + $photos = array(); + if($r) { + $twist = 'rotright'; + foreach($r as $rr) { + + if($twist == 'rotright') + $twist = 'rotleft'; + else + $twist = 'rotright'; + + $ext = $phototypes[$rr['type']]; + + $imgalt_e = $rr['filename']; + $desc_e = $rr['description']; + + $imagelink = (z_root() . '/photos/' . get_app()->profile['channel_address'] . '/image/' . $rr['resource_id']); + + + $photos[] = array( + 'id' => $rr['id'], + 'twist' => ' ' . $twist . rand(2,4), + 'link' => $imagelink, + 'title' => t('View Photo'), + 'src' => z_root() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext, + 'alt' => $imgalt_e, + 'desc'=> $desc_e, + 'ext' => $ext, + 'hash'=> $rr['resource_id'], + 'unknown' => t('Unknown') + ); + } + } + + + $tpl = get_markup_template('photo_album.tpl'); + $o .= replace_macros($tpl, array( + '$photos' => $photos, + '$album' => (($title) ? $title : $album), + '$album_edit' => array(t('Edit Album'), $album_edit), + '$can_post' => false, + '$upload' => array(t('Upload'), z_root() . '/photos/' . get_app()->profile['channel_address'] . '/upload/' . bin2hex($album)), + '$order' => false, + '$upload_form' => $upload_form, + '$usage' => $usage_message + )); + + return $o; +} + diff --git a/include/zot.php b/include/zot.php index d5d68f72c..6764072aa 100644 --- a/include/zot.php +++ b/include/zot.php @@ -554,18 +554,8 @@ function zot_gethub($arr,$multiple = false) { if($arr['guid'] && $arr['guid_sig'] && $arr['url'] && $arr['url_sig']) { - $blacklisted = false; - $bl1 = get_config('system','blacklisted_sites'); - if(is_array($bl1) && $bl1) { - foreach($bl1 as $bl) { - if($bl && strpos($arr['url'],$bl) !== false) { - $blacklisted = true; - break; - } - } - } - if($blacklisted) { - logger('zot_gethub: blacklisted site: ' . $arr['url']); + if(! check_siteallowed($arr['url'])) { + logger('blacklisted site: ' . $arr['url']); return null; } @@ -745,8 +735,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { || ($r[0]['xchan_follow'] != $arr['follow_url']) || ($r[0]['xchan_connpage'] != $arr['connect_url']) || ($r[0]['xchan_url'] != $arr['url']) - || $hidden_changed || adult_changed || deleted_changed || $pubforum_changed ) { - $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_follow = '%s', + || $hidden_changed || $adult_changed || $deleted_changed || $pubforum_changed ) { + $rup = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_follow = '%s', xchan_connpage = '%s', xchan_hidden = %d, xchan_selfcensored = %d, xchan_deleted = %d, xchan_pubforum = %d, xchan_addr = '%s', xchan_url = '%s' where xchan_hash = '%s'", dbesc(($arr['name']) ? $arr['name'] : '-'), @@ -763,8 +753,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { dbesc($xchan_hash) ); - logger('import_xchan: existing: ' . print_r($r[0],true), LOGGER_DATA); - logger('import_xchan: new: ' . print_r($arr,true), LOGGER_DATA); + logger('import_xchan: update: existing: ' . print_r($r[0],true), LOGGER_DATA); + logger('import_xchan: update: new: ' . print_r($arr,true), LOGGER_DATA); $what .= 'xchan '; $changed = true; } @@ -1246,6 +1236,10 @@ function zot_import($arr, $sender_url) { $no_dups = array(); if($deliveries) { foreach($deliveries as $d) { + if(! is_array($d)) { + logger('Delivery hash array is not an array: ' . print_r($d,true)); + continue; + } if(! in_array($d['hash'],$no_dups)) $no_dups[] = $d['hash']; } @@ -1933,11 +1927,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')) ); @@ -3949,6 +3944,7 @@ function delivery_report_is_storable($dr) { if(! $c) return false; + // is the recipient one of our connections, or do we want to store every report? $r = explode(' ', $dr['recipient']); @@ -3957,6 +3953,14 @@ function delivery_report_is_storable($dr) { if($pcf) return true; + // We always add ourself as a recipient to private and relayed posts + // So if a remote site says they can't find us, that's no big surprise + // and just creates a lot of extra report noise + + if(($dr['location'] !== z_root()) && ($dr['sender'] === $rxchan) && ($dr['status'] === 'recipient_not_found')) + return false; + + $r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1", dbesc($rxchan), intval($c[0]['channel_id']) @@ -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/install/INSTALL.txt b/install/INSTALL.txt index c81510522..25852497b 100644 --- a/install/INSTALL.txt +++ b/install/INSTALL.txt @@ -341,3 +341,44 @@ This is obvious as soon as you notice that the cron uses proc_open to execute php-scripts that also use proc_open, but it took me quite some time to find that out. I hope this saves some time for other people using suhosin with function blacklists. + +##################################################################### +- Apache processes hanging, using as much CPU as they can +##################################################################### + +This seems to happen sometimes if you use mpm_prefork and the PHP process +started by Apache cannot get database access. + +Consider the following settings: + +In /etc/apache2/mods-enabled/mpm_prefork.conf (Debian, path and file name +may vary depending on your OS and distribution), set + + GracefulShutdownTimeout 300 + +This makes sure that Apache processes that are running wild will not do so +forever, but will be killed if they didn't stop five minutes after a +shutdown command was sent to the process. + +If you expect high load on your server (public servers, e.g.), also make +sure that Apache will not spawn more processes than MySQL will accept +connections. + +In the default Debian configuration, in +/etc/apache2/mods-enabled/mpm_prefork.conf the maximum number of workers +is set to 150: + + MaxRequestWorkers 150 + +However, in /etc/mysql/my.cnf the maximum number of connection is set to +100: + + max_connections = 100 + +150 workers are a lot and probably too much for small servers. However you +set those values, make sure that the number of Apache workers is smaller +than the number of connections MySQL accepts, leaving some room for other +stuff on your server that might access MySQL, and Hubzilla's poller which +needs MySQL access, too. A good setting for a medium-sized hub might be to +keep MySQL's max_connections at 100 and set mpm_prefork's +MaxRequestWorkers to 70. diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 70a7a576a..95ed9acb7 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -44,7 +44,6 @@ CREATE TABLE "abook" ( create index "abook_profile" on abook ("abook_profile"); create index "abook_dob" on abook ("abook_dob"); create index "abook_connected" on abook ("abook_connected"); - create index "abook_rating" on abook ("abook_rating"); create index "abook_channel_closeness" on abook ("abook_channel", "abook_closeness"); CREATE TABLE "account" ( @@ -342,8 +341,8 @@ create index "conv_created_idx" on conv ("created"); create index "conv_updated_idx" on conv ("updated"); CREATE TABLE IF NOT EXISTS "dreport" ( - "dreport_id" int(11) NOT NULL, - "dreport_channel" int(11) NOT NULL DEFAULT '0', + "dreport_id" int NOT NULL, + "dreport_channel" int NOT NULL DEFAULT '0', "dreport_mid" char(255) NOT NULL DEFAULT '', "dreport_site" char(255) NOT NULL DEFAULT '', "dreport_recip" char(255) NOT NULL DEFAULT '', @@ -388,7 +387,7 @@ CREATE TABLE "event" ( "deny_gid" text NOT NULL, "event_status" char(255) NOT NULL DEFAULT '', "event_status_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', - "event_percent" smallint(6) NOT NULL DEFAULT '0', + "event_percent" smallint NOT NULL DEFAULT '0', "event_repeat" text NOT NULL, "event_sequence" smallint NOT NULL DEFAULT '0', "event_priority" smallint NOT NULL DEFAULT '0', @@ -623,7 +622,7 @@ CREATE TABLE "item" ( "item_retained" smallint NOT NULL DEFAULT '0', "item_rss" smallint NOT NULL DEFAULT '0', "item_deleted" smallint NOT NULL DEFAULT '0', - "item_type" int(11) NOT NULL DEFAULT '0', + "item_type" int NOT NULL DEFAULT '0', "item_hidden" smallint NOT NULL DEFAULT '0', "item_unpublished" smallint NOT NULL DEFAULT '0', "item_delayed" smallint NOT NULL DEFAULT '0', @@ -918,11 +917,11 @@ CREATE TABLE "photo" ( "data" bytea NOT NULL, "scale" numeric(3) NOT NULL, "profile" numeric(1) NOT NULL DEFAULT '0', - "photo_usage" smallint(6) NOT NULL DEFAULT '0', + "photo_usage" smallint NOT NULL DEFAULT '0', "is_nsfw" smallint NOT NULL DEFAULT '0', "os_storage" smallint NOT NULL DEFAULT '0', - "os_path" mediumtext NOT NULL, - "display_path" mediumtext NOT NULL, + "os_path" text NOT NULL, + "display_path" text NOT NULL, "photo_flags" bigint NOT NULL DEFAULT '0', "allow_cid" text NOT NULL, "allow_gid" text NOT NULL, diff --git a/library/bootstrap/css/bootstrap-theme.css b/library/bootstrap/css/bootstrap-theme.css index b0fdfcbf9..c19cd5c4b 100644 --- a/library/bootstrap/css/bootstrap-theme.css +++ b/library/bootstrap/css/bootstrap-theme.css @@ -1,9 +1,8 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ - .btn-default, .btn-primary, .btn-success, @@ -29,6 +28,27 @@ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } +.btn-default.disabled, +.btn-primary.disabled, +.btn-success.disabled, +.btn-info.disabled, +.btn-warning.disabled, +.btn-danger.disabled, +.btn-default[disabled], +.btn-primary[disabled], +.btn-success[disabled], +.btn-info[disabled], +.btn-warning[disabled], +.btn-danger[disabled], +fieldset[disabled] .btn-default, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-danger { + -webkit-box-shadow: none; + box-shadow: none; +} .btn-default .badge, .btn-primary .badge, .btn-success .badge, @@ -64,8 +84,23 @@ border-color: #dbdbdb; } .btn-default.disabled, -.btn-default:disabled, -.btn-default[disabled] { +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { background-color: #e0e0e0; background-image: none; } @@ -90,8 +125,23 @@ border-color: #245580; } .btn-primary.disabled, -.btn-primary:disabled, -.btn-primary[disabled] { +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { background-color: #265a88; background-image: none; } @@ -116,8 +166,23 @@ border-color: #3e8f3e; } .btn-success.disabled, -.btn-success:disabled, -.btn-success[disabled] { +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { background-color: #419641; background-image: none; } @@ -142,8 +207,23 @@ border-color: #28a4c9; } .btn-info.disabled, -.btn-info:disabled, -.btn-info[disabled] { +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { background-color: #2aabd2; background-image: none; } @@ -168,8 +248,23 @@ border-color: #e38d13; } .btn-warning.disabled, -.btn-warning:disabled, -.btn-warning[disabled] { +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { background-color: #eb9316; background-image: none; } @@ -194,8 +289,23 @@ border-color: #b92c28; } .btn-danger.disabled, -.btn-danger:disabled, -.btn-danger[disabled] { +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { background-color: #c12e2a; background-image: none; } @@ -260,6 +370,7 @@ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; + border-radius: 4px; } .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .active > a { diff --git a/library/bootstrap/css/bootstrap-theme.min.css b/library/bootstrap/css/bootstrap-theme.min.css index cefa3d1ae..61358b13d 100644 --- a/library/bootstrap/css/bootstrap-theme.min.css +++ b/library/bootstrap/css/bootstrap-theme.min.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary:disabled,.btn-primary[disabled]{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file diff --git a/library/bootstrap/css/bootstrap.css b/library/bootstrap/css/bootstrap.css index fb15e3d69..680e76878 100644 --- a/library/bootstrap/css/bootstrap.css +++ b/library/bootstrap/css/bootstrap.css @@ -1,10 +1,9 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ - -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { font-family: sans-serif; -webkit-text-size-adjust: 100%; @@ -239,9 +238,6 @@ th { h3 { page-break-after: avoid; } - select { - background: #fff !important; - } .navbar { display: none; } @@ -1344,62 +1340,72 @@ mark, .text-primary { color: #337ab7; } -a.text-primary:hover { +a.text-primary:hover, +a.text-primary:focus { color: #286090; } .text-success { color: #3c763d; } -a.text-success:hover { +a.text-success:hover, +a.text-success:focus { color: #2b542c; } .text-info { color: #31708f; } -a.text-info:hover { +a.text-info:hover, +a.text-info:focus { color: #245269; } .text-warning { color: #8a6d3b; } -a.text-warning:hover { +a.text-warning:hover, +a.text-warning:focus { color: #66512c; } .text-danger { color: #a94442; } -a.text-danger:hover { +a.text-danger:hover, +a.text-danger:focus { color: #843534; } .bg-primary { color: #fff; background-color: #337ab7; } -a.bg-primary:hover { +a.bg-primary:hover, +a.bg-primary:focus { background-color: #286090; } .bg-success { background-color: #dff0d8; } -a.bg-success:hover { +a.bg-success:hover, +a.bg-success:focus { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } -a.bg-info:hover { +a.bg-info:hover, +a.bg-info:focus { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } -a.bg-warning:hover { +a.bg-warning:hover, +a.bg-warning:focus { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } -a.bg-danger:hover { +a.bg-danger:hover, +a.bg-danger:focus { background-color: #e4b9b9; } .page-header { @@ -2593,10 +2599,10 @@ input[type="search"] { -webkit-appearance: none; } @media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { line-height: 34px; } input[type="date"].input-sm, @@ -2718,18 +2724,18 @@ select[multiple].input-sm { line-height: 1.5; border-radius: 3px; } -select.form-group-sm .form-control { +.form-group-sm select.form-control { height: 30px; line-height: 30px; } -textarea.form-group-sm .form-control, -select[multiple].form-group-sm .form-control { +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { height: auto; } .form-group-sm .form-control-static { height: 30px; min-height: 32px; - padding: 5px 10px; + padding: 6px 10px; font-size: 12px; line-height: 1.5; } @@ -2755,18 +2761,18 @@ select[multiple].input-lg { line-height: 1.3333333; border-radius: 6px; } -select.form-group-lg .form-control { +.form-group-lg select.form-control { height: 46px; line-height: 46px; } -textarea.form-group-lg .form-control, -select[multiple].form-group-lg .form-control { +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { height: auto; } .form-group-lg .form-control-static { height: 46px; min-height: 38px; - padding: 10px 16px; + padding: 11px 16px; font-size: 18px; line-height: 1.3333333; } @@ -2788,12 +2794,16 @@ select[multiple].form-group-lg .form-control { text-align: center; pointer-events: none; } -.input-lg + .form-control-feedback { +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { width: 46px; height: 46px; line-height: 46px; } -.input-sm + .form-control-feedback { +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { width: 30px; height: 30px; line-height: 30px; @@ -2979,11 +2989,13 @@ select[multiple].form-group-lg .form-control { @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { padding-top: 14.333333px; + font-size: 18px; } } @media (min-width: 768px) { .form-horizontal .form-group-sm .control-label { padding-top: 6px; + font-size: 12px; } } .btn { @@ -3033,21 +3045,32 @@ select[multiple].form-group-lg .form-control { .btn.disabled, .btn[disabled], fieldset[disabled] .btn { - pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; opacity: .65; } +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} .btn-default { color: #333; background-color: #fff; border-color: #ccc; } -.btn-default:hover, .btn-default:focus, -.btn-default.focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { @@ -3055,6 +3078,19 @@ fieldset[disabled] .btn { background-color: #e6e6e6; border-color: #adadad; } +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { @@ -3090,9 +3126,17 @@ fieldset[disabled] .btn-default.active { background-color: #337ab7; border-color: #2e6da4; } -.btn-primary:hover, .btn-primary:focus, -.btn-primary.focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { @@ -3100,6 +3144,19 @@ fieldset[disabled] .btn-default.active { background-color: #286090; border-color: #204d74; } +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { @@ -3135,9 +3192,17 @@ fieldset[disabled] .btn-primary.active { background-color: #5cb85c; border-color: #4cae4c; } -.btn-success:hover, .btn-success:focus, -.btn-success.focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { @@ -3145,6 +3210,19 @@ fieldset[disabled] .btn-primary.active { background-color: #449d44; border-color: #398439; } +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { @@ -3180,9 +3258,17 @@ fieldset[disabled] .btn-success.active { background-color: #5bc0de; border-color: #46b8da; } -.btn-info:hover, .btn-info:focus, -.btn-info.focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { @@ -3190,6 +3276,19 @@ fieldset[disabled] .btn-success.active { background-color: #31b0d5; border-color: #269abc; } +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { @@ -3225,9 +3324,17 @@ fieldset[disabled] .btn-info.active { background-color: #f0ad4e; border-color: #eea236; } -.btn-warning:hover, .btn-warning:focus, -.btn-warning.focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { @@ -3235,6 +3342,19 @@ fieldset[disabled] .btn-info.active { background-color: #ec971f; border-color: #d58512; } +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { @@ -3270,9 +3390,17 @@ fieldset[disabled] .btn-warning.active { background-color: #d9534f; border-color: #d43f3a; } -.btn-danger:hover, .btn-danger:focus, -.btn-danger.focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { @@ -3280,6 +3408,19 @@ fieldset[disabled] .btn-warning.active { background-color: #c9302c; border-color: #ac2925; } +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { @@ -3418,6 +3559,7 @@ tbody.collapse.in { margin-left: 2px; vertical-align: middle; border-top: 4px dashed; + border-top: 4px solid \9; border-right: 4px solid transparent; border-left: 4px solid transparent; } @@ -3534,7 +3676,8 @@ tbody.collapse.in { .navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; - border-bottom: 4px solid; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { @@ -3582,6 +3725,7 @@ tbody.collapse.in { .btn-toolbar { margin-left: -5px; } +.btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group { float: left; @@ -3872,6 +4016,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { + z-index: 2; margin-left: -1px; } .nav { @@ -4647,6 +4792,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { + z-index: 3; color: #23527c; background-color: #eee; border-color: #ddd; @@ -4678,6 +4824,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; + line-height: 1.3333333; } .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { @@ -4693,6 +4840,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; + line-height: 1.5; } .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { @@ -4819,7 +4967,7 @@ a.label:focus { color: #fff; text-align: center; white-space: nowrap; - vertical-align: baseline; + vertical-align: middle; background-color: #777; border-radius: 10px; } @@ -4856,7 +5004,8 @@ a.badge:focus { margin-left: 3px; } .jumbotron { - padding: 30px 15px; + padding-top: 30px; + padding-bottom: 30px; margin-bottom: 30px; color: inherit; background-color: #eee; @@ -4882,7 +5031,8 @@ a.badge:focus { } @media screen and (min-width: 768px) { .jumbotron { - padding: 48px 0; + padding-top: 48px; + padding-bottom: 48px; } .container .jumbotron, .container-fluid .jumbotron { @@ -5106,6 +5256,9 @@ a.thumbnail.active { .media-object { display: block; } +.media-object.img-thumbnail { + max-width: none; +} .media-right, .media > .pull-right { padding-left: 10px; @@ -5155,18 +5308,26 @@ a.thumbnail.active { border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } -a.list-group-item { +a.list-group-item, +button.list-group-item { color: #555; } -a.list-group-item .list-group-item-heading { +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { color: #333; } a.list-group-item:hover, -a.list-group-item:focus { +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { color: #555; text-decoration: none; background-color: #f5f5f5; } +button.list-group-item { + width: 100%; + text-align: left; +} .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { @@ -5212,20 +5373,27 @@ a.list-group-item:focus { color: #3c763d; background-color: #dff0d8; } -a.list-group-item-success { +a.list-group-item-success, +button.list-group-item-success { color: #3c763d; } -a.list-group-item-success .list-group-item-heading { +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { color: inherit; } a.list-group-item-success:hover, -a.list-group-item-success:focus { +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, +button.list-group-item-success.active, a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; border-color: #3c763d; @@ -5234,20 +5402,27 @@ a.list-group-item-success.active:focus { color: #31708f; background-color: #d9edf7; } -a.list-group-item-info { +a.list-group-item-info, +button.list-group-item-info { color: #31708f; } -a.list-group-item-info .list-group-item-heading { +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { color: inherit; } a.list-group-item-info:hover, -a.list-group-item-info:focus { +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, +button.list-group-item-info.active, a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { color: #fff; background-color: #31708f; border-color: #31708f; @@ -5256,20 +5431,27 @@ a.list-group-item-info.active:focus { color: #8a6d3b; background-color: #fcf8e3; } -a.list-group-item-warning { +a.list-group-item-warning, +button.list-group-item-warning { color: #8a6d3b; } -a.list-group-item-warning .list-group-item-heading { +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { color: inherit; } a.list-group-item-warning:hover, -a.list-group-item-warning:focus { +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, +button.list-group-item-warning.active, a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; border-color: #8a6d3b; @@ -5278,20 +5460,27 @@ a.list-group-item-warning.active:focus { color: #a94442; background-color: #f2dede; } -a.list-group-item-danger { +a.list-group-item-danger, +button.list-group-item-danger { color: #a94442; } -a.list-group-item-danger .list-group-item-heading { +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { color: inherit; } a.list-group-item-danger:hover, -a.list-group-item-danger:focus { +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, +button.list-group-item-danger.active, a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; border-color: #a94442; @@ -5365,6 +5554,10 @@ a.list-group-item-danger.active:focus { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} .panel-heading + .list-group .list-group-item:first-child { border-top-width: 0; } @@ -5846,10 +6039,23 @@ button.close { display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; + font-style: normal; font-weight: normal; - line-height: 1.4; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; filter: alpha(opacity=0); opacity: 0; + + line-break: auto; } .tooltip.in { filter: alpha(opacity=90); @@ -5876,7 +6082,6 @@ button.close { padding: 3px 8px; color: #fff; text-align: center; - text-decoration: none; background-color: #000; border-radius: 4px; } @@ -5953,9 +6158,18 @@ button.close { padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; + font-style: normal; font-weight: normal; line-height: 1.42857143; text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; white-space: normal; background-color: #fff; -webkit-background-clip: padding-box; @@ -5965,6 +6179,8 @@ button.close { border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; } .popover.top { margin-top: -10px; @@ -6092,8 +6308,8 @@ button.close { -webkit-backface-visibility: hidden; backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; + -webkit-perspective: 1000px; + perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { @@ -6192,6 +6408,7 @@ button.close { top: 50%; z-index: 5; display: inline-block; + margin-top: -10px; } .carousel-control .icon-prev, .carousel-control .glyphicon-chevron-left { @@ -6207,7 +6424,6 @@ button.close { .carousel-control .icon-next { width: 20px; height: 20px; - margin-top: -10px; font-family: serif; line-height: 1; } @@ -6399,7 +6615,7 @@ button.close { display: block !important; } table.visible-xs { - display: table; + display: table !important; } tr.visible-xs { display: table-row !important; @@ -6429,7 +6645,7 @@ button.close { display: block !important; } table.visible-sm { - display: table; + display: table !important; } tr.visible-sm { display: table-row !important; @@ -6459,7 +6675,7 @@ button.close { display: block !important; } table.visible-md { - display: table; + display: table !important; } tr.visible-md { display: table-row !important; @@ -6489,7 +6705,7 @@ button.close { display: block !important; } table.visible-lg { - display: table; + display: table !important; } tr.visible-lg { display: table-row !important; @@ -6542,7 +6758,7 @@ button.close { display: block !important; } table.visible-print { - display: table; + display: table !important; } tr.visible-print { display: table-row !important; diff --git a/library/bootstrap/css/bootstrap.min.css b/library/bootstrap/css/bootstrap.min.css index cd1c616ad..d65c66b1b 100644 --- a/library/bootstrap/css/bootstrap.min.css +++ b/library/bootstrap/css/bootstrap.min.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file diff --git a/library/bootstrap/js/bootstrap.js b/library/bootstrap/js/bootstrap.js index 1c88b71e8..5debfd7de 100644 --- a/library/bootstrap/js/bootstrap.js +++ b/library/bootstrap/js/bootstrap.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Licensed under the MIT license */ if (typeof jQuery === 'undefined') { @@ -17,7 +17,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: transition.js v3.3.4 + * Bootstrap: transition.js v3.3.5 * http://getbootstrap.com/javascript/#transitions * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -77,7 +77,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: alert.js v3.3.4 + * Bootstrap: alert.js v3.3.5 * http://getbootstrap.com/javascript/#alerts * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') { $(el).on('click', dismiss, this.close) } - Alert.VERSION = '3.3.4' + Alert.VERSION = '3.3.5' Alert.TRANSITION_DURATION = 150 @@ -172,7 +172,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: button.js v3.3.4 + * Bootstrap: button.js v3.3.5 * http://getbootstrap.com/javascript/#buttons * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') { this.isLoading = false } - Button.VERSION = '3.3.4' + Button.VERSION = '3.3.5' Button.DEFAULTS = { loadingText: 'loading...' @@ -204,7 +204,7 @@ if (typeof jQuery === 'undefined') { var val = $el.is('input') ? 'val' : 'html' var data = $el.data() - state = state + 'Text' + state += 'Text' if (data.resetText == null) $el.data('resetText', $el[val]()) @@ -229,15 +229,19 @@ if (typeof jQuery === 'undefined') { if ($parent.length) { var $input = this.$element.find('input') if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') + if ($input.prop('checked')) changed = false + $parent.find('.active').removeClass('active') + this.$element.addClass('active') + } else if ($input.prop('type') == 'checkbox') { + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false + this.$element.toggleClass('active') } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + $input.prop('checked', this.$element.hasClass('active')) + if (changed) $input.trigger('change') } else { this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + this.$element.toggleClass('active') } - - if (changed) this.$element.toggleClass('active') } @@ -280,7 +284,7 @@ if (typeof jQuery === 'undefined') { var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') Plugin.call($btn, 'toggle') - e.preventDefault() + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() }) .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) @@ -289,7 +293,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: carousel.js v3.3.4 + * Bootstrap: carousel.js v3.3.5 * http://getbootstrap.com/javascript/#carousel * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -320,7 +324,7 @@ if (typeof jQuery === 'undefined') { .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } - Carousel.VERSION = '3.3.4' + Carousel.VERSION = '3.3.5' Carousel.TRANSITION_DURATION = 600 @@ -527,7 +531,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: collapse.js v3.3.4 + * Bootstrap: collapse.js v3.3.5 * http://getbootstrap.com/javascript/#collapse * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -557,7 +561,7 @@ if (typeof jQuery === 'undefined') { if (this.options.toggle) this.toggle() } - Collapse.VERSION = '3.3.4' + Collapse.VERSION = '3.3.5' Collapse.TRANSITION_DURATION = 350 @@ -739,7 +743,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: dropdown.js v3.3.4 + * Bootstrap: dropdown.js v3.3.5 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -759,7 +763,41 @@ if (typeof jQuery === 'undefined') { $(element).on('click.bs.dropdown', this.toggle) } - Dropdown.VERSION = '3.3.4' + Dropdown.VERSION = '3.3.5' + + function getParent($this) { + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = selector && $(selector) + + return $parent && $parent.length ? $parent : $this.parent() + } + + function clearMenus(e) { + if (e && e.which === 3) return + $(backdrop).remove() + $(toggle).each(function () { + var $this = $(this) + var $parent = getParent($this) + var relatedTarget = { relatedTarget: this } + + if (!$parent.hasClass('open')) return + + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return + + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) + + if (e.isDefaultPrevented()) return + + $this.attr('aria-expanded', 'false') + $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) + }) + } Dropdown.prototype.toggle = function (e) { var $this = $(this) @@ -774,7 +812,10 @@ if (typeof jQuery === 'undefined') { if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate - $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) + $(document.createElement('div')) + .addClass('dropdown-backdrop') + .insertAfter($(this)) + .on('click', clearMenus) } var relatedTarget = { relatedTarget: this } @@ -807,57 +848,25 @@ if (typeof jQuery === 'undefined') { var $parent = getParent($this) var isActive = $parent.hasClass('open') - if ((!isActive && e.which != 27) || (isActive && e.which == 27)) { + if (!isActive && e.which != 27 || isActive && e.which == 27) { if (e.which == 27) $parent.find(toggle).trigger('focus') return $this.trigger('click') } var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) + var $items = $parent.find('.dropdown-menu' + desc) if (!$items.length) return var index = $items.index(e.target) - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 + if (e.which == 38 && index > 0) index-- // up + if (e.which == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 $items.eq(index).trigger('focus') } - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) - }) - } - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - // DROPDOWN PLUGIN DEFINITION // ========================== @@ -895,13 +904,12 @@ if (typeof jQuery === 'undefined') { .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown) + .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) }(jQuery); /* ======================================================================== - * Bootstrap: modal.js v3.3.4 + * Bootstrap: modal.js v3.3.5 * http://getbootstrap.com/javascript/#modals * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -935,7 +943,7 @@ if (typeof jQuery === 'undefined') { } } - Modal.VERSION = '3.3.4' + Modal.VERSION = '3.3.5' Modal.TRANSITION_DURATION = 300 Modal.BACKDROP_TRANSITION_DURATION = 150 @@ -992,9 +1000,7 @@ if (typeof jQuery === 'undefined') { that.$element[0].offsetWidth // force reflow } - that.$element - .addClass('in') - .attr('aria-hidden', false) + that.$element.addClass('in') that.enforceFocus() @@ -1028,7 +1034,6 @@ if (typeof jQuery === 'undefined') { this.$element .removeClass('in') - .attr('aria-hidden', true) .off('click.dismiss.bs.modal') .off('mouseup.dismiss.bs.modal') @@ -1092,7 +1097,8 @@ if (typeof jQuery === 'undefined') { if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate - this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') + this.$backdrop = $(document.createElement('div')) + .addClass('modal-backdrop ' + animate) .appendTo(this.$body) this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { @@ -1241,7 +1247,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: tooltip.js v3.3.4 + * Bootstrap: tooltip.js v3.3.5 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== @@ -1263,11 +1269,12 @@ if (typeof jQuery === 'undefined') { this.timeout = null this.hoverState = null this.$element = null + this.inState = null this.init('tooltip', element, options) } - Tooltip.VERSION = '3.3.4' + Tooltip.VERSION = '3.3.5' Tooltip.TRANSITION_DURATION = 150 @@ -1292,7 +1299,8 @@ if (typeof jQuery === 'undefined') { this.type = type this.$element = $(element) this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport) + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) + this.inState = { click: false, hover: false, focus: false } if (this.$element[0] instanceof document.constructor && !this.options.selector) { throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') @@ -1351,16 +1359,20 @@ if (typeof jQuery === 'undefined') { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) - if (self && self.$tip && self.$tip.is(':visible')) { - self.hoverState = 'in' - return - } - if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true + } + + if (self.tip().hasClass('in') || self.hoverState == 'in') { + self.hoverState = 'in' + return + } + clearTimeout(self.timeout) self.hoverState = 'in' @@ -1372,6 +1384,14 @@ if (typeof jQuery === 'undefined') { }, self.options.delay.show) } + Tooltip.prototype.isInStateTrue = function () { + for (var key in this.inState) { + if (this.inState[key]) return true + } + + return false + } + Tooltip.prototype.leave = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) @@ -1381,6 +1401,12 @@ if (typeof jQuery === 'undefined') { $(obj.currentTarget).data('bs.' + this.type, self) } + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false + } + + if (self.isInStateTrue()) return + clearTimeout(self.timeout) self.hoverState = 'out' @@ -1427,6 +1453,7 @@ if (typeof jQuery === 'undefined') { .data('bs.' + this.type, this) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) + this.$element.trigger('inserted.bs.' + this.type) var pos = this.getPosition() var actualWidth = $tip[0].offsetWidth @@ -1434,13 +1461,12 @@ if (typeof jQuery === 'undefined') { if (autoPlace) { var orgPlacement = placement - var $container = this.options.container ? $(this.options.container) : this.$element.parent() - var containerDim = this.getPosition($container) + var viewportDim = this.getPosition(this.$viewport) - placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' : + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : + placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : + placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : + placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement $tip @@ -1481,8 +1507,8 @@ if (typeof jQuery === 'undefined') { if (isNaN(marginTop)) marginTop = 0 if (isNaN(marginLeft)) marginLeft = 0 - offset.top = offset.top + marginTop - offset.left = offset.left + marginLeft + offset.top += marginTop + offset.left += marginLeft // $.fn.offset doesn't round pixel values // so we use setOffset directly with our own function B-0 @@ -1564,7 +1590,7 @@ if (typeof jQuery === 'undefined') { Tooltip.prototype.fixTitle = function () { var $e = this.$element - if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') { + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') } } @@ -1619,7 +1645,7 @@ if (typeof jQuery === 'undefined') { var rightEdgeOffset = pos.left + viewportPadding + actualWidth if (leftEdgeOffset < viewportDimensions.left) { // left overflow delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow + } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset } } @@ -1645,7 +1671,13 @@ if (typeof jQuery === 'undefined') { } Tooltip.prototype.tip = function () { - return (this.$tip = this.$tip || $(this.options.template)) + if (!this.$tip) { + this.$tip = $(this.options.template) + if (this.$tip.length != 1) { + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') + } + } + return this.$tip } Tooltip.prototype.arrow = function () { @@ -1674,7 +1706,13 @@ if (typeof jQuery === 'undefined') { } } - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + if (e) { + self.inState.click = !self.inState.click + if (self.isInStateTrue()) self.enter(self) + else self.leave(self) + } else { + self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + } } Tooltip.prototype.destroy = function () { @@ -1682,6 +1720,12 @@ if (typeof jQuery === 'undefined') { clearTimeout(this.timeout) this.hide(function () { that.$element.off('.' + that.type).removeData('bs.' + that.type) + if (that.$tip) { + that.$tip.detach() + } + that.$tip = null + that.$arrow = null + that.$viewport = null }) } @@ -1718,7 +1762,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: popover.js v3.3.4 + * Bootstrap: popover.js v3.3.5 * http://getbootstrap.com/javascript/#popovers * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -1738,7 +1782,7 @@ if (typeof jQuery === 'undefined') { if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - Popover.VERSION = '3.3.4' + Popover.VERSION = '3.3.5' Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { placement: 'right', @@ -1827,7 +1871,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: scrollspy.js v3.3.4 + * Bootstrap: scrollspy.js v3.3.5 * http://getbootstrap.com/javascript/#scrollspy * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -1856,7 +1900,7 @@ if (typeof jQuery === 'undefined') { this.process() } - ScrollSpy.VERSION = '3.3.4' + ScrollSpy.VERSION = '3.3.5' ScrollSpy.DEFAULTS = { offset: 10 @@ -2000,7 +2044,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: tab.js v3.3.4 + * Bootstrap: tab.js v3.3.5 * http://getbootstrap.com/javascript/#tabs * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -2015,10 +2059,12 @@ if (typeof jQuery === 'undefined') { // ==================== var Tab = function (element) { + // jscs:disable requireDollarBeforejQueryAssignment this.element = $(element) + // jscs:enable requireDollarBeforejQueryAssignment } - Tab.VERSION = '3.3.4' + Tab.VERSION = '3.3.5' Tab.TRANSITION_DURATION = 150 @@ -2066,7 +2112,7 @@ if (typeof jQuery === 'undefined') { var $active = container.find('> .active') var transition = callback && $.support.transition - && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length) + && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) function next() { $active @@ -2154,7 +2200,7 @@ if (typeof jQuery === 'undefined') { }(jQuery); /* ======================================================================== - * Bootstrap: affix.js v3.3.4 + * Bootstrap: affix.js v3.3.5 * http://getbootstrap.com/javascript/#affix * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -2183,7 +2229,7 @@ if (typeof jQuery === 'undefined') { this.checkPosition() } - Affix.VERSION = '3.3.4' + Affix.VERSION = '3.3.5' Affix.RESET = 'affix affix-top affix-bottom' @@ -2233,7 +2279,7 @@ if (typeof jQuery === 'undefined') { var offset = this.options.offset var offsetTop = offset.top var offsetBottom = offset.bottom - var scrollHeight = $(document.body).height() + var scrollHeight = Math.max($(document).height(), $(document.body).height()) if (typeof offset != 'object') offsetBottom = offsetTop = offset if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) diff --git a/library/bootstrap/js/bootstrap.min.js b/library/bootstrap/js/bootstrap.min.js index c8f82e592..133aeecb9 100644 --- a/library/bootstrap/js/bootstrap.min.js +++ b/library/bootstrap/js/bootstrap.min.js @@ -1,7 +1,7 @@ /*! - * Bootstrap v3.3.4 (http://getbootstrap.com) + * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Licensed under the MIT license */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.4",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.4",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.4",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.4",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.4",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.4",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.4",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.4",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){ -var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.4",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a(document.body).height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")), +d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file diff --git a/library/datetimepicker/jquery.datetimepicker.css b/library/datetimepicker/jquery.datetimepicker.css index acf674af7..a26fccec4 100644 --- a/library/datetimepicker/jquery.datetimepicker.css +++ b/library/datetimepicker/jquery.datetimepicker.css @@ -1,37 +1,38 @@ -.xdsoft_datetimepicker{ - box-shadow: 0px 5px 15px -5px rgba(0, 0, 0, 0.506); - background: #FFFFFF; - border-bottom: 1px solid #BBBBBB; - border-left: 1px solid #CCCCCC; - border-right: 1px solid #CCCCCC; - border-top: 1px solid #CCCCCC; - color: #333333; - font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; +.xdsoft_datetimepicker { + box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506); + background: #fff; + border-bottom: 1px solid #bbb; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + border-top: 1px solid #ccc; + color: #333; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; padding: 8px; - padding-left: 0px; + padding-left: 0; padding-top: 2px; position: absolute; z-index: 9999; -moz-box-sizing: border-box; box-sizing: border-box; - display:none; + display: none; } .xdsoft_datetimepicker iframe { - position: absolute; - left: 0; - top: 0; - width: 75px; - height: 210px; - background: transparent; - border:none; + position: absolute; + left: 0; + top: 0; + width: 75px; + height: 210px; + background: transparent; + border: none; } + /*For IE8 or lower*/ .xdsoft_datetimepicker button { - border:none !important; + border: none !important; } -.xdsoft_noselect{ +.xdsoft_noselect { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -40,379 +41,505 @@ -o-user-select: none; user-select: none; } -.xdsoft_noselect::selection { background: transparent; } -.xdsoft_noselect::-moz-selection { background: transparent; } -.xdsoft_datetimepicker.xdsoft_inline{ + +.xdsoft_noselect::selection { background: transparent } +.xdsoft_noselect::-moz-selection { background: transparent } + +.xdsoft_datetimepicker.xdsoft_inline { display: inline-block; position: static; box-shadow: none; } -.xdsoft_datetimepicker *{ + +.xdsoft_datetimepicker * { -moz-box-sizing: border-box; box-sizing: border-box; - padding:0px; - margin:0px; + padding: 0; + margin: 0; } -.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker{ - display:none; + +.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker { + display: none; } -.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active{ - display:block; + +.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active { + display: block; } -.xdsoft_datetimepicker .xdsoft_datepicker{ + +.xdsoft_datetimepicker .xdsoft_datepicker { width: 224px; - float:left; - margin-left:8px; + float: left; + margin-left: 8px; } -.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{ + +.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker { width: 256px; } -.xdsoft_datetimepicker .xdsoft_timepicker{ + +.xdsoft_datetimepicker .xdsoft_timepicker { width: 58px; - float:left; - text-align:center; - margin-left:8px; - margin-top:0px; + float: left; + text-align: center; + margin-left: 8px; + margin-top: 0; } -.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{ - margin-top:8px; - margin-bottom:3px + +.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker { + margin-top: 8px; + margin-bottom: 3px } -.xdsoft_datetimepicker .xdsoft_mounthpicker{ + +.xdsoft_datetimepicker .xdsoft_mounthpicker { position: relative; text-align: center; } .xdsoft_datetimepicker .xdsoft_label i, -.xdsoft_datetimepicker .xdsoft_prev, -.xdsoft_datetimepicker .xdsoft_next, -.xdsoft_datetimepicker .xdsoft_today_button{ +.xdsoft_datetimepicker .xdsoft_prev, +.xdsoft_datetimepicker .xdsoft_next, +.xdsoft_datetimepicker .xdsoft_today_button { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC); } -.xdsoft_datetimepicker .xdsoft_label i{ - opacity:0.5; - background-position:-92px -19px; +.xdsoft_datetimepicker .xdsoft_label i { + opacity: 0.5; + background-position: -92px -19px; display: inline-block; width: 9px; height: 20px; vertical-align: middle; } -.xdsoft_datetimepicker .xdsoft_prev{ - float: left; - background-position:-20px 0px; +.xdsoft_datetimepicker .xdsoft_prev { + float: left; + background-position: -20px 0; } -.xdsoft_datetimepicker .xdsoft_today_button{ - float: left; - background-position:-70px 0px; - margin-left:5px; +.xdsoft_datetimepicker .xdsoft_today_button { + float: left; + background-position: -70px 0; + margin-left: 5px; } -.xdsoft_datetimepicker .xdsoft_next{ - float: right; - background-position:0px 0px; +.xdsoft_datetimepicker .xdsoft_next { + float: right; + background-position: 0 0; } -.xdsoft_datetimepicker .xdsoft_next, -.xdsoft_datetimepicker .xdsoft_prev , -.xdsoft_datetimepicker .xdsoft_today_button{ +.xdsoft_datetimepicker .xdsoft_next, +.xdsoft_datetimepicker .xdsoft_prev , +.xdsoft_datetimepicker .xdsoft_today_button { background-color: transparent; background-repeat: no-repeat; - border: 0px none currentColor; + border: 0 none; cursor: pointer; display: block; height: 30px; opacity: 0.5; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; - outline: medium none currentColor; + outline: medium none; overflow: hidden; - padding: 0px; + padding: 0; position: relative; text-indent: 100%; white-space: nowrap; width: 20px; + min-width: 0; } -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev, -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{ - float:none; - background-position:-40px -15px; + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next { + float: none; + background-position: -40px -15px; height: 15px; width: 30px; display: block; - margin-left:14px; - margin-top:7px; -} -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{ - background-position:-40px 0px; - margin-bottom:7px; - margin-top:0px; -} -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{ - height:151px; - overflow:hidden; - border-bottom:1px solid #DDDDDD; -} -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div{ - background: #F5F5F5; - border-top:1px solid #DDDDDD; - color: #666666; + margin-left: 14px; + margin-top: 7px; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev { + background-position: -40px 0; + margin-bottom: 7px; + margin-top: 0; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box { + height: 151px; + overflow: hidden; + border-bottom: 1px solid #ddd; +} + +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div { + background: #f5f5f5; + border-top: 1px solid #ddd; + color: #666; font-size: 12px; text-align: center; - border-collapse:collapse; - cursor:pointer; - border-bottom-width:0px; - height:25px; - line-height:25px; + border-collapse: collapse; + cursor: pointer; + border-bottom-width: 0; + height: 25px; + line-height: 25px; } -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child{ - border-top-width:0px; +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child { + border-top-width: 0; } -.xdsoft_datetimepicker .xdsoft_today_button:hover, -.xdsoft_datetimepicker .xdsoft_next:hover, -.xdsoft_datetimepicker .xdsoft_prev:hover { - opacity: 1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + +.xdsoft_datetimepicker .xdsoft_today_button:hover, +.xdsoft_datetimepicker .xdsoft_next:hover, +.xdsoft_datetimepicker .xdsoft_prev:hover { + opacity: 1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } -.xdsoft_datetimepicker .xdsoft_label{ + +.xdsoft_datetimepicker .xdsoft_label { display: inline; - position: relative; - z-index: 9999; - margin: 0; - padding: 5px 3px; - font-size: 14px; - line-height: 20px; - font-weight: bold; - background-color: #fff; - float:left; - width:182px; - text-align:center; - cursor:pointer; -} -.xdsoft_datetimepicker .xdsoft_label:hover>span{ - text-decoration:underline; -} -.xdsoft_datetimepicker .xdsoft_label:hover i{ - opacity:1.0; -} -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select{ - border:1px solid #ccc; - position:absolute; - right:0px; - top:30px; - z-index:101; - display:none; - background:#fff; - max-height:160px; - overflow-y:hidden; -} -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{right:-7px;} -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{right:2px;} -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{ + position: relative; + z-index: 9999; + margin: 0; + padding: 5px 3px; + font-size: 14px; + line-height: 20px; + font-weight: bold; + background-color: #fff; + float: left; + width: 182px; + text-align: center; + cursor: pointer; +} + +.xdsoft_datetimepicker .xdsoft_label:hover>span { + text-decoration: underline; +} + +.xdsoft_datetimepicker .xdsoft_label:hover i { + opacity: 1.0; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select { + border: 1px solid #ccc; + position: absolute; + right: 0; + top: 30px; + z-index: 101; + display: none; + background: #fff; + max-height: 160px; + overflow-y: hidden; +} + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px } +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px } +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { color: #fff; - background: #ff8000; + background: #ff8000; } -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option{ - padding:2px 10px 2px 5px; - text-decoration:none !important; + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option { + padding: 2px 10px 2px 5px; + text-decoration: none !important; } -.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{ - background: #33AAFF; - box-shadow: #178FE5 0px 1px 3px 0px inset; - color:#fff; + +.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { + background: #33aaff; + box-shadow: #178fe5 0 1px 3px 0 inset; + color: #fff; font-weight: 700; } -.xdsoft_datetimepicker .xdsoft_month{ - width:100px; - text-align:right; + +.xdsoft_datetimepicker .xdsoft_month { + width: 100px; + text-align: right; } -.xdsoft_datetimepicker .xdsoft_calendar{ - clear:both; + +.xdsoft_datetimepicker .xdsoft_calendar { + clear: both; } -.xdsoft_datetimepicker .xdsoft_year{ + +.xdsoft_datetimepicker .xdsoft_year{ width: 48px; margin-left: 5px; } -.xdsoft_datetimepicker .xdsoft_calendar table{ - border-collapse:collapse; - width:100%; - + +.xdsoft_datetimepicker .xdsoft_calendar table { + border-collapse: collapse; + width: 100%; + } -.xdsoft_datetimepicker .xdsoft_calendar td > div{ - padding-right:5px; + +.xdsoft_datetimepicker .xdsoft_calendar td > div { + padding-right: 5px; } -.xdsoft_datetimepicker .xdsoft_calendar th{ + +.xdsoft_datetimepicker .xdsoft_calendar th { height: 25px; } -.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{ - width:14.2857142%; - background: #F5F5F5; - border:1px solid #DDDDDD; - color: #666666; + +.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th { + width: 14.2857142%; + background: #f5f5f5; + border: 1px solid #ddd; + color: #666; font-size: 12px; text-align: right; vertical-align: middle; - padding:0px; - border-collapse:collapse; - cursor:pointer; + padding: 0; + border-collapse: collapse; + cursor: pointer; height: 25px; } -.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{ - width:12.5%; +.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th { + width: 12.5%; } -.xdsoft_datetimepicker .xdsoft_calendar th{ - background: #F1F1F1; + +.xdsoft_datetimepicker .xdsoft_calendar th { + background: #f1f1f1; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today { + color: #33aaff; } -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{ - color:#33AAFF; + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default { + background: #ffe9d2; + box-shadow: #ffb871 0 1px 4px 0 inset; + color: #000; } -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{ - background: #33AAFF; - box-shadow: #178FE5 0px 1px 3px 0px inset; - color:#fff; +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint { + background: #c1ffc9; + box-shadow: #00dd1c 0 1px 4px 0 inset; + color: #000; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { + background: #33aaff; + box-shadow: #178fe5 0 1px 3px 0 inset; + color: #fff; font-weight: 700; } -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month, -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled, -.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled{ - opacity:0.5; + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month, +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled, +.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled { + opacity: 0.5; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + cursor: default; } -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{ - opacity:0.2; + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled { + opacity: 0.2; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; } -.xdsoft_datetimepicker .xdsoft_calendar td:hover, -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover{ + +.xdsoft_datetimepicker .xdsoft_calendar td:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover { + color: #fff !important; + background: #ff8000 !important; + box-shadow: none !important; +} + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover { + background: #33aaff !important; + box-shadow: #178fe5 0 1px 3px 0 inset !important; color: #fff !important; - background: #ff8000 !important; - box-shadow: none !important; } -.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover, -.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover{ + +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover { color: inherit !important; - background: inherit !important; - box-shadow: inherit !important; + background: inherit !important; + box-shadow: inherit !important; } -.xdsoft_datetimepicker .xdsoft_calendar th{ + +.xdsoft_datetimepicker .xdsoft_calendar th { font-weight: 700; text-align: center; color: #999; - cursor:default; + cursor: default; } -.xdsoft_datetimepicker .xdsoft_copyright{ color:#ccc !important; font-size:10px;clear:both;float:none;margin-left:8px;} -.xdsoft_datetimepicker .xdsoft_copyright a{ color:#eee !important;} -.xdsoft_datetimepicker .xdsoft_copyright a:hover{ color:#aaa !important;} +.xdsoft_datetimepicker .xdsoft_copyright { + color: #ccc !important; + font-size: 10px; + clear: both; + float: none; + margin-left: 8px; +} + +.xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important } +.xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important } -.xdsoft_time_box{ - position:relative; - border:1px solid #ccc; +.xdsoft_time_box { + position: relative; + border: 1px solid #ccc; } -.xdsoft_scrollbar >.xdsoft_scroller{ - background:#ccc !important; - height:20px; - border-radius:3px; +.xdsoft_scrollbar >.xdsoft_scroller { + background: #ccc !important; + height: 20px; + border-radius: 3px; } -.xdsoft_scrollbar{ - position:absolute; - width:7px; - right:0px; - top:0px; - bottom:0px; - cursor:pointer; +.xdsoft_scrollbar { + position: absolute; + width: 7px; + right: 0; + top: 0; + bottom: 0; + cursor: pointer; } -.xdsoft_scroller_box{ -position:relative; +.xdsoft_scroller_box { + position: relative; } - -.xdsoft_datetimepicker.xdsoft_dark{ - box-shadow: 0px 5px 15px -5px rgba(255, 255, 255, 0.506); - background: #000000; - border-bottom: 1px solid #444444; - border-left: 1px solid #333333; - border-right: 1px solid #333333; - border-top: 1px solid #333333; - color: #cccccc; +.xdsoft_datetimepicker.xdsoft_dark { + box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506); + background: #000; + border-bottom: 1px solid #444; + border-left: 1px solid #333; + border-right: 1px solid #333; + border-top: 1px solid #333; + color: #ccc; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{ - border-bottom:1px solid #222222; +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box { + border-bottom: 1px solid #222; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div { background: #0a0a0a; - border-top:1px solid #222222; - color: #999999; + border-top: 1px solid #222; + color: #999; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{ - background-color: #000; +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label { + background-color: #000; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select{ - border:1px solid #333; - background:#000; +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select { + border: 1px solid #333; + background: #000; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { color: #000; - background: #007fff; + background: #007fff; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { background: #cc5500; - box-shadow: #b03e00 0px 1px 3px 0px inset; - color:#000; + box-shadow: #b03e00 0 1px 3px 0 inset; + color: #000; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==); } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { background: #0a0a0a; - border:1px solid #222222; - color: #999999; + border: 1px solid #222; + color: #999; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { background: #0e0e0e; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{ - color:#cc5500; + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today { + color: #cc5500; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{ - background: #cc5500; - box-shadow: #b03e00 0px 1px 3px 0px inset; + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default { + background: #ffe9d2; + box-shadow: #ffb871 0 1px 4px 0 inset; color:#000; } +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint { + background: #c1ffc9; + box-shadow: #00dd1c 0 1px 4px 0 inset; + color:#000; +} + +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { + background: #cc5500; + box-shadow: #b03e00 0 1px 3px 0 inset; + color: #000; +} -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover, -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover, +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover { color: #000 !important; - background: #007fff !important; + background: #007fff !important; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{ +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { color: #666; } -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{ color:#333 !important;} -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{ color:#111 !important;} -.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{ color:#555 !important;} +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important } +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important } +.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important } -.xdsoft_dark .xdsoft_time_box{ - border:1px solid #333; +.xdsoft_dark .xdsoft_time_box { + border: 1px solid #333; } -.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller{ - background:#333 !important; + +.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller { + background: #333 !important; +} +.xdsoft_datetimepicker .xdsoft_save_selected { + display: block; + border: 1px solid #dddddd !important; + margin-top: 5px; + width: 100%; + color: #454551; + font-size: 13px; +} +.xdsoft_datetimepicker .blue-gradient-button { + font-family: "museo-sans", "Book Antiqua", sans-serif; + font-size: 12px; + font-weight: 300; + color: #82878c; + height: 28px; + position: relative; + padding: 4px 17px 4px 33px; + border: 1px solid #d7d8da; + background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%); + /* IE10+ */ + background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%); + /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 ); +/* IE6-9 */ +} +.xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span { + color: #454551; + background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%); + /* IE10+ */ + background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%); + /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 ); + /* IE6-9 */ } diff --git a/library/datetimepicker/jquery.datetimepicker.js b/library/datetimepicker/jquery.datetimepicker.js index d4e93dd13..9c00413c2 100644 --- a/library/datetimepicker/jquery.datetimepicker.js +++ b/library/datetimepicker/jquery.datetimepicker.js @@ -1,9 +1,9 @@ /** - * @preserve jQuery DateTimePicker plugin v2.4.0 + * @preserve jQuery DateTimePicker plugin v2.4.5 * @homepage http://xdsoft.net/jqplugins/datetimepicker/ * (c) 2014, Chupurnov Valeriy. */ -/*global document,window,jQuery,setTimeout,clearTimeout*/ +/*global document,window,jQuery,setTimeout,clearTimeout,HighlightedDate,getCurrentValue*/ (function ($) { 'use strict'; var default_options = { @@ -29,7 +29,15 @@ "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" ], dayOfWeek: [ - "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Min" + "Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab" + ] + }, + is: { // Icelandic + months: [ + "Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember" + ], + dayOfWeek: [ + "Sun", "Mán", "Þrið", "Mið", "Fim", "Fös", "Lau" ] }, bg: { // Bulgarian @@ -231,7 +239,207 @@ dayOfWeek: [ "Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo" ] - } + }, + az: { //Azerbaijanian (Azeri) + months: [ + "Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr" + ], + dayOfWeek: [ + "B", "Be", "Ça", "Ç", "Ca", "C", "Ş" + ] + }, + bs: { //Bosanski + months: [ + "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" + ], + dayOfWeek: [ + "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub" + ] + }, + ca: { //Català + months: [ + "Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre" + ], + dayOfWeek: [ + "Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds" + ] + }, + 'en-GB': { //English (British) + months: [ + "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" + ], + dayOfWeek: [ + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" + ] + }, + et: { //"Eesti" + months: [ + "Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember" + ], + dayOfWeek: [ + "P", "E", "T", "K", "N", "R", "L" + ] + }, + eu: { //Euskara + months: [ + "Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua" + ], + dayOfWeek: [ + "Ig.", "Al.", "Ar.", "Az.", "Og.", "Or.", "La." + ] + }, + fi: { //Finnish (Suomi) + months: [ + "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu" + ], + dayOfWeek: [ + "Su", "Ma", "Ti", "Ke", "To", "Pe", "La" + ] + }, + gl: { //Galego + months: [ + "Xan", "Feb", "Maz", "Abr", "Mai", "Xun", "Xul", "Ago", "Set", "Out", "Nov", "Dec" + ], + dayOfWeek: [ + "Dom", "Lun", "Mar", "Mer", "Xov", "Ven", "Sab" + ] + }, + hr: { //Hrvatski + months: [ + "Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac" + ], + dayOfWeek: [ + "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub" + ] + }, + ko: { //Korean (한국어) + months: [ + "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월" + ], + dayOfWeek: [ + "일", "월", "화", "수", "목", "금", "토" + ] + }, + lt: { //Lithuanian (lietuvių) + months: [ + "Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio" + ], + dayOfWeek: [ + "Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš" + ] + }, + lv: { //Latvian (Latviešu) + months: [ + "Janvāris", "Februāris", "Marts", "Aprīlis ", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris" + ], + dayOfWeek: [ + "Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "St" + ] + }, + mk: { //Macedonian (Македонски) + months: [ + "јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември" + ], + dayOfWeek: [ + "нед", "пон", "вто", "сре", "чет", "пет", "саб" + ] + }, + mn: { //Mongolian (Монгол) + months: [ + "1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар" + ], + dayOfWeek: [ + "Дав", "Мяг", "Лха", "Пүр", "Бсн", "Бям", "Ням" + ] + }, + 'pt-BR': { //Português(Brasil) + months: [ + "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" + ], + dayOfWeek: [ + "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb" + ] + }, + sk: { //Slovenčina + months: [ + "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December" + ], + dayOfWeek: [ + "Ne", "Po", "Ut", "St", "Št", "Pi", "So" + ] + }, + sq: { //Albanian (Shqip) + months: [ + "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" + ], + dayOfWeek: [ + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" + ] + }, + 'sr-YU': { //Serbian (Srpski) + months: [ + "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" + ], + dayOfWeek: [ + "Ned", "Pon", "Uto", "Sre", "čet", "Pet", "Sub" + ] + }, + sr: { //Serbian Cyrillic (Српски) + months: [ + "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар" + ], + dayOfWeek: [ + "нед", "пон", "уто", "сре", "чет", "пет", "суб" + ] + }, + sv: { //Svenska + months: [ + "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December" + ], + dayOfWeek: [ + "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör" + ] + }, + 'zh-TW': { //Traditional Chinese (繁體中文) + months: [ + "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" + ], + dayOfWeek: [ + "日", "一", "二", "三", "四", "五", "六" + ] + }, + zh: { //Simplified Chinese (简体中文) + months: [ + "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" + ], + dayOfWeek: [ + "日", "一", "二", "三", "四", "五", "六" + ] + }, + he: { //Hebrew (עברית) + months: [ + 'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר' + ], + dayOfWeek: [ + 'א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו\'', 'שבת' + ] + }, + hy: { // Armenian + months: [ + "Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր" + ], + dayOfWeek: [ + "Կի", "Երկ", "Երք", "Չոր", "Հնգ", "Ուրբ", "Շբթ" + ] + }, + kg: { // Kyrgyz + months: [ + 'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы' + ], + dayOfWeek: [ + "Жек", "Дүй", "Шей", "Шар", "Бей", "Жум", "Ише" + ] + } }, value: '', lang: 'en', @@ -245,6 +453,7 @@ monthChangeSpinner: true, closeOnDateSelect: false, + closeOnTimeSelect: true, closeOnWithoutClick: true, closeOnInputClick: true, @@ -259,6 +468,8 @@ maxDate: false, minTime: false, maxTime: false, + disabledMinTime: false, + disabledMaxTime: false, allowTimes: [], opened: false, @@ -278,13 +489,15 @@ withoutCopyright: true, inverseButton: false, hours12: false, - next: 'xdsoft_next', + next: 'xdsoft_next', prev : 'xdsoft_prev', dayOfWeekStart: 0, parentID: 'body', timeHeightInTimePicker: 25, timepickerScrollbar: true, todayButton: true, + prevButton: true, + nextButton: true, defaultSelect: true, scrollMonth: true, @@ -297,19 +510,43 @@ allowBlank: true, yearStart: 1950, yearEnd: 2050, + monthStart: 0, + monthEnd: 11, style: '', id: '', fixed: false, roundTime: 'round', // ceil, floor className: '', weekends: [], + highlightedDates: [], + highlightedPeriods: [], disabledDates : [], + disabledWeekDays: [], yearOffset: 0, beforeShowDay: null, - enterLikeTab: true + enterLikeTab: true, + showApplyButton: false }; // fix for ie8 + if (!window.getComputedStyle) { + window.getComputedStyle = function (el, pseudo) { + this.el = el; + this.getPropertyValue = function (prop) { + var re = /(\-([a-z]){1})/g; + if (prop === 'float') { + prop = 'styleFloat'; + } + if (re.test(prop)) { + prop = prop.replace(re, function (a, b, c) { + return c.toUpperCase(); + }); + } + return el.currentStyle[prop] || null; + }; + return this; + }; + } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (obj, start) { var i, j; @@ -506,12 +743,11 @@ lazyInitTimer = 0, createDateTimePicker, destroyDateTimePicker, - _xdsoft_datetime, lazyInit = function (input) { input .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function initOnActionCallback(event) { - if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible') || input.data('xdsoft_datetimepicker')) { + if (input.is(':disabled') || input.data('xdsoft_datetimepicker')) { return; } clearTimeout(lazyInitTimer); @@ -528,7 +764,7 @@ }; createDateTimePicker = function (input) { - var datetimepicker = $('<div ' + (options.id ? 'id="' + options.id + '"' : '') + ' ' + (options.style ? 'style="' + options.style + '"' : '') + ' class="xdsoft_datetimepicker xdsoft_' + options.theme + ' xdsoft_noselect ' + (options.weeks ? ' xdsoft_showweeks' : '') + options.className + '"></div>'), + var datetimepicker = $('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'), xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'), datepicker = $('<div class="xdsoft_datepicker active"></div>'), mounth_picker = $('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button>' + @@ -539,6 +775,7 @@ timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'), timeboxparent = timepicker.find('.xdsoft_time_box').eq(0), timebox = $('<div class="xdsoft_time_variant"></div>'), + applyButton = $('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'), /*scrollbar = $('<div class="xdsoft_scrollbar"></div>'), scroller = $('<div class="xdsoft_scroller"></div>'),*/ monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'), @@ -551,7 +788,21 @@ current_time_index, setPos, timer = 0, - timer1 = 0; + timer1 = 0, + _xdsoft_datetime; + + if (options.id) { + datetimepicker.attr('id', options.id); + } + if (options.style) { + datetimepicker.attr('style', options.style); + } + if (options.weeks) { + datetimepicker.addClass('xdsoft_showweeks'); + } + + datetimepicker.addClass('xdsoft_' + options.theme); + datetimepicker.addClass(options.className); mounth_picker .find('.xdsoft_month span') @@ -599,6 +850,11 @@ event.preventDefault(); }) .on('mousedown.xdsoft', '.xdsoft_option', function (event) { + + if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) { + _xdsoft_datetime.currentTime = _xdsoft_datetime.now(); + } + var year = _xdsoft_datetime.currentTime.getFullYear(); if (_xdsoft_datetime && _xdsoft_datetime.currentTime) { _xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value')); @@ -617,6 +873,48 @@ }); datetimepicker.setOptions = function (_options) { + var highlightedDates = {}, + getCaretPos = function (input) { + try { + if (document.selection && document.selection.createRange) { + var range = document.selection.createRange(); + return range.getBookmark().charCodeAt(2) - 2; + } + if (input.setSelectionRange) { + return input.selectionStart; + } + } catch (e) { + return 0; + } + }, + setCaretPos = function (node, pos) { + node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node; + if (!node) { + return false; + } + if (node.createTextRange) { + var textRange = node.createTextRange(); + textRange.collapse(true); + textRange.moveEnd('character', pos); + textRange.moveStart('character', pos); + textRange.select(); + return true; + } + if (node.setSelectionRange) { + node.setSelectionRange(pos, pos); + return true; + } + return false; + }, + isValidValue = function (mask, value) { + var reg = mask + .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1') + .replace(/_/g, '{digit+}') + .replace(/([0-9]{1})/g, '{digit$1}') + .replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}') + .replace(/\{digit[\+]\}/g, '[0-9_]{1}'); + return (new RegExp(reg)).test(value); + }; options = $.extend(true, {}, options, _options); if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) { @@ -627,9 +925,62 @@ options.weekends = $.extend(true, [], _options.weekends); } + if (_options.highlightedDates && $.isArray(_options.highlightedDates) && _options.highlightedDates.length) { + $.each(_options.highlightedDates, function (index, value) { + var splitData = $.map(value.split(','), $.trim), + exDesc, + hDate = new HighlightedDate(Date.parseDate(splitData[0], options.formatDate), splitData[1], splitData[2]), // date, desc, style + keyDate = hDate.date.dateFormat(options.formatDate); + if (highlightedDates[keyDate] !== undefined) { + exDesc = highlightedDates[keyDate].desc; + if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) { + highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc; + } + } else { + highlightedDates[keyDate] = hDate; + } + }); + + options.highlightedDates = $.extend(true, [], highlightedDates); + } + + if (_options.highlightedPeriods && $.isArray(_options.highlightedPeriods) && _options.highlightedPeriods.length) { + highlightedDates = $.extend(true, [], options.highlightedDates); + $.each(_options.highlightedPeriods, function (index, value) { + var splitData = $.map(value.split(','), $.trim), + dateTest = Date.parseDate(splitData[0], options.formatDate), // start date + dateEnd = Date.parseDate(splitData[1], options.formatDate), + desc = splitData[2], + hDate, + keyDate, + exDesc, + style = splitData[3]; + + while (dateTest <= dateEnd) { + hDate = new HighlightedDate(dateTest, desc, style); + keyDate = dateTest.dateFormat(options.formatDate); + dateTest.setDate(dateTest.getDate() + 1); + if (highlightedDates[keyDate] !== undefined) { + exDesc = highlightedDates[keyDate].desc; + if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) { + highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc; + } + } else { + highlightedDates[keyDate] = hDate; + } + } + }); + + options.highlightedDates = $.extend(true, [], highlightedDates); + } + if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) { - options.disabledDates = $.extend(true, [], _options.disabledDates); - } + options.disabledDates = $.extend(true, [], _options.disabledDates); + } + + if (_options.disabledWeekDays && $.isArray(_options.disabledWeekDays) && _options.disabledWeekDays.length) { + options.disabledWeekDays = $.extend(true, [], _options.disabledWeekDays); + } if ((options.open || options.opened) && (!options.inline)) { input.trigger('open.xdsoft'); @@ -659,10 +1010,10 @@ } if (options.value) { + _xdsoft_datetime.setCurrentTime(options.value); if (input && input.val) { - input.val(options.value); + input.val(_xdsoft_datetime.str); } - _xdsoft_datetime.setCurrentTime(options.value); } if (isNaN(options.dayOfWeekStart)) { @@ -683,53 +1034,21 @@ options.maxDate = _xdsoft_datetime.strToDateTime(options.maxDate).dateFormat(options.formatDate); } + applyButton.toggle(options.showApplyButton); + mounth_picker .find('.xdsoft_today_button') .css('visibility', !options.todayButton ? 'hidden' : 'visible'); + mounth_picker + .find('.' + options.prev) + .css('visibility', !options.prevButton ? 'hidden' : 'visible'); + + mounth_picker + .find('.' + options.next) + .css('visibility', !options.nextButton ? 'hidden' : 'visible'); + if (options.mask) { - var e, - getCaretPos = function (input) { - try { - if (document.selection && document.selection.createRange) { - var range = document.selection.createRange(); - return range.getBookmark().charCodeAt(2) - 2; - } - if (input.setSelectionRange) { - return input.selectionStart; - } - } catch (e) { - return 0; - } - }, - setCaretPos = function (node, pos) { - node = (typeof node === "string" || node instanceof String) ? document.getElementById(node) : node; - if (!node) { - return false; - } - if (node.createTextRange) { - var textRange = node.createTextRange(); - textRange.collapse(true); - textRange.moveEnd('character', pos); - textRange.moveStart('character', pos); - textRange.select(); - return true; - } - if (node.setSelectionRange) { - node.setSelectionRange(pos, pos); - return true; - } - return false; - }, - isValidValue = function (mask, value) { - var reg = mask - .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1') - .replace(/_/g, '{digit+}') - .replace(/([0-9]{1})/g, '{digit$1}') - .replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}') - .replace(/\{digit[\+]\}/g, '[0-9_]{1}'); - return (new RegExp(reg)).test(value); - }; input.off('keydown.xdsoft'); if (options.mask === true) { @@ -809,11 +1128,23 @@ $(this).val(null); datetimepicker.data('xdsoft_datetime').empty(); } else if (!Date.parseDate($(this).val(), options.format)) { - $(this).val((_xdsoft_datetime.now()).dateFormat(options.format)); + var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')), + splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join('')); + + // parse the numbers as 0312 => 03:12 + if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) { + $(this).val([splittedHours, splittedMinutes].map(function (item) { + return item > 9 ? item : '0' + item; + }).join(':')); + } else { + $(this).val((_xdsoft_datetime.now()).dateFormat(options.format)); + } + datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); } else { datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); } + datetimepicker.trigger('changedatetime.xdsoft'); }); } @@ -853,7 +1184,8 @@ datepicker .append(mounth_picker) - .append(calendar); + .append(calendar) + .append(applyButton); $(options.parentID) .append(datetimepicker); @@ -866,7 +1198,7 @@ time; if (!norecursion && options.defaultDate) { - date = _this.strToDate(options.defaultDate); + date = _this.strToDateTime(options.defaultDate); d.setFullYear(date.getFullYear()); d.setMonth(date.getMonth()); d.setDate(date.getDate()); @@ -881,7 +1213,6 @@ d.setHours(time.getHours()); d.setMinutes(time.getMinutes()); } - return d; }; @@ -906,6 +1237,11 @@ }; _this.nextMonth = function () { + + if (_this.currentTime === undefined || _this.currentTime === null) { + _this.currentTime = _this.now(); + } + var month = _this.currentTime.getMonth() + 1, year; if (month === 12) { @@ -936,6 +1272,11 @@ }; _this.prevMonth = function () { + + if (_this.currentTime === undefined || _this.currentTime === null) { + _this.currentTime = _this.now(); + } + var month = _this.currentTime.getMonth() - 1; if (month === -1) { _this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1); @@ -973,7 +1314,7 @@ } if (tmpDate && tmpDate[2]) { timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000; - currentTime = new Date((_xdsoft_datetime.now()).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset); + currentTime = new Date((_this.now(true)).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset); } else { currentTime = sDateTime ? Date.parseDate(sDateTime, options.format) : _this.now(); } @@ -1016,6 +1357,13 @@ _xdsoft_datetime = new XDSoft_datetime(); + applyButton.on('click', function (e) {//pathbrite + e.preventDefault(); + datetimepicker.data('changed', true); + _xdsoft_datetime.setCurrentTime(getCurrentValue()); + input.val(_xdsoft_datetime.str()); + datetimepicker.trigger('close.xdsoft'); + }); mounth_picker .find('.xdsoft_today_button') .on('mousedown.xdsoft', function () { @@ -1023,6 +1371,18 @@ _xdsoft_datetime.setCurrentTime(0); datetimepicker.trigger('afterOpen.xdsoft'); }).on('dblclick.xdsoft', function () { + var currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate; + currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()); + minDate = _xdsoft_datetime.strToDate(options.minDate); + minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()); + if (currentDate < minDate) { + return; + } + maxDate = _xdsoft_datetime.strToDate(options.maxDate); + maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()); + if (currentDate > maxDate) { + return; + } input.val(_xdsoft_datetime.str()); datetimepicker.trigger('close.xdsoft'); }); @@ -1034,7 +1394,6 @@ stop = false; (function arguments_callee1(v) { - var month = _xdsoft_datetime.currentTime.getMonth(); if ($this.hasClass(options.next)) { _xdsoft_datetime.nextMonth(); } else if ($this.hasClass(options.prev)) { @@ -1090,6 +1449,11 @@ .on('xchange.xdsoft', function (event) { clearTimeout(xchangeTimer); xchangeTimer = setTimeout(function () { + + if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) { + _xdsoft_datetime.currentTime = _xdsoft_datetime.now(); + } + var table = '', start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0), i = 0, @@ -1097,6 +1461,8 @@ today = _xdsoft_datetime.now(), maxDate = false, minDate = false, + hDate, + day, d, y, m, @@ -1106,7 +1472,8 @@ newRow = true, time = '', h = '', - line_time; + line_time, + description; while (start.getDay() !== options.dayOfWeekStart) { start.setDate(start.getDate() - 1); @@ -1139,10 +1506,12 @@ classes = []; i += 1; + day = start.getDay(); d = start.getDate(); y = start.getFullYear(); m = start.getMonth(); w = _xdsoft_datetime.getWeekOfYear(start); + description = ''; classes.push('xdsoft_date'); @@ -1156,6 +1525,8 @@ classes.push('xdsoft_disabled'); } else if (options.disabledDates.indexOf(start.dateFormat(options.formatDate)) !== -1) { classes.push('xdsoft_disabled'); + } else if (options.disabledWeekDays.indexOf(day) !== -1) { + classes.push('xdsoft_disabled'); } if (customDateSettings && customDateSettings[1] !== "") { @@ -1174,10 +1545,16 @@ classes.push('xdsoft_today'); } - if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(start.dateFormat(options.formatDate)) === -1) { + if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(start.dateFormat(options.formatDate)) !== -1) { classes.push('xdsoft_weekend'); } + if (options.highlightedDates[start.dateFormat(options.formatDate)] !== undefined) { + hDate = options.highlightedDates[start.dateFormat(options.formatDate)]; + classes.push(hDate.style === undefined ? 'xdsoft_highlighted_default' : hDate.style); + description = hDate.desc === undefined ? '' : hDate.desc; + } + if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) { classes.push(options.beforeShowDay(start)); } @@ -1190,7 +1567,7 @@ } } - table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '">' + + table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '" title="' + description + '">' + '<div>' + d + '</div>' + '</td>'; @@ -1213,17 +1590,27 @@ h = ''; m = ''; line_time = function line_time(h, m) { - var now = _xdsoft_datetime.now(); + var now = _xdsoft_datetime.now(), optionDateTime, current_time; now.setHours(h); h = parseInt(now.getHours(), 10); now.setMinutes(m); m = parseInt(now.getMinutes(), 10); - + optionDateTime = new Date(_xdsoft_datetime.currentTime); + optionDateTime.setHours(h); + optionDateTime.setMinutes(m); classes = []; - if ((options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) { + if ((options.minDateTime !== false && options.minDateTime > optionDateTime) || (options.maxTime !== false && _xdsoft_datetime.strtotime(options.maxTime).getTime() < now.getTime()) || (options.minTime !== false && _xdsoft_datetime.strtotime(options.minTime).getTime() > now.getTime())) { classes.push('xdsoft_disabled'); } - if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && parseInt(_xdsoft_datetime.currentTime.getHours(), 10) === parseInt(h, 10) && (options.step > 59 || Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step === parseInt(m, 10))) { + if ((options.minDateTime !== false && options.minDateTime > optionDateTime) || ((options.disabledMinTime !== false && now.getTime() > _xdsoft_datetime.strtotime(options.disabledMinTime).getTime()) && (options.disabledMaxTime !== false && now.getTime() < _xdsoft_datetime.strtotime(options.disabledMaxTime).getTime()))) { + classes.push('xdsoft_disabled'); + } + + current_time = new Date(_xdsoft_datetime.currentTime); + current_time.setHours(parseInt(_xdsoft_datetime.currentTime.getHours(), 10)); + current_time.setMinutes(Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step); + + if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && current_time.getHours() === parseInt(h, 10) && (options.step > 59 || current_time.getMinutes() === parseInt(m, 10))) { if (options.defaultSelect || datetimepicker.data('changed')) { classes.push('xdsoft_current'); } else if (options.initTime) { @@ -1263,7 +1650,7 @@ yearselect.children().eq(0) .html(opt); - for (i = 0, opt = ''; i <= 11; i += 1) { + for (i = parseInt(options.monthStart, 10), opt = ''; i <= parseInt(options.monthEnd, 10); i += 1) { opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[options.lang].months[i] + '</div>'; } monthselect.children().eq(0).html(opt); @@ -1319,7 +1706,7 @@ datetimepicker.trigger('select.xdsoft', [currentTime]); input.val(_xdsoft_datetime.str()); - if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === 0 && !options.timepicker))) && !options.inline) { + if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === false && !options.timepicker))) && !options.inline) { datetimepicker.trigger('close.xdsoft'); } @@ -1354,9 +1741,10 @@ datetimepicker.trigger('select.xdsoft', [currentTime]); datetimepicker.data('input').val(_xdsoft_datetime.str()); - if (!options.inline) { - datetimepicker.trigger('close.xdsoft'); - } + + if (options.inline !== true && options.closeOnTimeSelect === true) { + datetimepicker.trigger('close.xdsoft'); + } if (options.onSelectTime && $.isFunction(options.onSelectTime)) { options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent); @@ -1430,7 +1818,7 @@ current_time_index = 0; setPos = function () { - var offset = datetimepicker.data('input').offset(), top = offset.top + datetimepicker.data('input')[0].offsetHeight - 1, left = offset.left, position = "absolute"; + var offset = datetimepicker.data('input').offset(), top = offset.top + datetimepicker.data('input')[0].offsetHeight - 1, left = offset.left, position = "absolute", node; if (options.fixed) { top -= $(window).scrollTop(); left -= $(window).scrollLeft(); @@ -1446,6 +1834,15 @@ left = $(window).width() - datetimepicker[0].offsetWidth; } } + + node = datetimepicker[0]; + do { + node = node.parentNode; + if (window.getComputedStyle(node).getPropertyValue('position') === 'relative' && $(window).width() >= node.offsetWidth) { + left = left - (($(window).width() - node.offsetWidth) / 2); + break; + } + } while (node.nodeName !== 'HTML'); datetimepicker.css({ left: left, top: top, @@ -1488,7 +1885,11 @@ event.stopPropagation(); }) .on('toggle.xdsoft', function (event) { - datetimepicker.is(':visible') ? datetimepicker.trigger('close.xdsoft') : datetimepicker.trigger('open.xdsoft'); + if (datetimepicker.is(':visible')) { + datetimepicker.trigger('close.xdsoft'); + } else { + datetimepicker.trigger('open.xdsoft'); + } }) .data('input', input); @@ -1499,7 +1900,6 @@ datetimepicker.setOptions(options); function getCurrentValue() { - var ct = false, time; if (options.startDate) { @@ -1509,7 +1909,7 @@ if (ct) { ct = _xdsoft_datetime.strToDateTime(ct); } else if (options.defaultDate) { - ct = _xdsoft_datetime.strToDate(options.defaultDate); + ct = _xdsoft_datetime.strToDateTime(options.defaultDate); if (options.defaultTime) { time = _xdsoft_datetime.strtotime(options.defaultTime); ct.setHours(time.getHours()); @@ -1532,12 +1932,12 @@ input .data('xdsoft_datetimepicker', datetimepicker) .on('open.xdsoft focusin.xdsoft mousedown.xdsoft', function (event) { - if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) { + if (input.is(':disabled') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) { return; } clearTimeout(timer); timer = setTimeout(function () { - if (input.is(':disabled') || input.is(':hidden') || !input.is(':visible')) { + if (input.is(':disabled')) { return; } @@ -1590,7 +1990,7 @@ } }); return this.each(function () { - var datetimepicker = $(this).data('xdsoft_datetimepicker'); + var datetimepicker = $(this).data('xdsoft_datetimepicker'), $input; if (datetimepicker) { if ($.type(opt) === 'string') { switch (opt) { @@ -1614,6 +2014,10 @@ } datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value); break; + case 'validate': + $input = datetimepicker.data('input'); + $input.trigger('blur.xdsoft'); + break; } } else { datetimepicker @@ -1632,6 +2036,14 @@ }; $.fn.datetimepicker.defaults = default_options; }(jQuery)); + +function HighlightedDate(date, desc, style) { + "use strict"; + this.date = date; + this.desc = desc; + this.style = style; +} + (function () { /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh) @@ -1657,5 +2069,5 @@ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ -Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function() {return ";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}eval(code.substring(0,code.length-3)+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"}; +Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var codePrefix="Date.prototype."+funcName+" = function() {return ";var code="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}if(code.length==0){code="\"\"";}else{code=code.substring(0,code.length-3);}eval(codePrefix+code+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,c){if(c=="unixtime"){return new Date(!isNaN(parseInt(a))?parseInt(a)*1000:0);}if(Date.parseFunctions[c]==null){Date.createParser(c);}var b=Date.parseFunctions[c];return Date[b](a);};Date.createParser=function(format){var funcName="parse"+Date.parseFunctions.count++;var regexNum=Date.parseRegexes.length;var currentGroup=1;Date.parseFunctions[format]=funcName;var code="Date."+funcName+" = function(input) {\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, z = -1;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {";var regex="";var special=false;var ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$",'i');eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate();};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay());var a=new Date(this.getFullYear(),0,1);var c=(7-a.getDay()+4);return String.leftPad(Math.ceil((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"}; }()); 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 <a> 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 <a> 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 `<button>` w/ an inner `<span>` for better css cusomization + - thus CSS has changed. IF UPGRADING FROM PREVIOUS VERSIONS, + UPGRADE YOUR FULLCALENDAR.CSS FILE + + +v1.1 (2009-05-10) +----------------- + +- Added the following options: + - weekStart + - rightToLeft + - titleFormat + - timeFormat + - cacheParam + - resize +- Fixed rendering bugs + - Opera 9.25 (events placement & window resizing) + - IE6 (window resizing) +- Optimized window resizing for ALL browsers +- Events on same day now sorted by start time (but first by timespan) +- Correct z-index when dragging +- Dragging contained in overflow DIV for IE6 +- Modified fullcalendar.css + - for right-to-left support + - for variable start-of-week + - for IE6 resizing bug + - for THEAD and TBODY (in 1.0, just used TBODY, restructured in 1.1) + - IF UPGRADING FROM FULLCALENDAR 1.0, YOU MUST UPGRADE FULLCALENDAR.CSS diff --git a/library/fullcalendar/CONTRIBUTING.txt b/library/fullcalendar/CONTRIBUTING.txt new file mode 100644 index 000000000..0204d12c7 --- /dev/null +++ b/library/fullcalendar/CONTRIBUTING.txt @@ -0,0 +1,128 @@ + +## Reporting Bugs + +Each bug report MUST have a [JSFiddle/JSBin] recreation before any work can begin. [further instructions »](http://fullcalendar.io/wiki/Reporting-Bugs/) + + +## Requesting Features + +Please search the [Issue Tracker] to see if your feature has already been requested, and if so, subscribe to it. Otherwise, read these [further instructions »](http://fullcalendar.io/wiki/Requesting-Features/) + + +## Contributing Features + +The FullCalendar project welcomes [Pull Requests][Using Pull Requests] for new features, but because there are so many feature requests (over 100), and because every new feature requires refinement and maintenance, each PR will be prioritized against the project's other demands and might take a while to make it to an official release. + +Furthermore, each new feature should be designed as robustly as possible and be useful beyond the immediate usecase it was initially designed for. Feel free to start a ticket discussing the feature's specs before coding. + + +## Contributing Bugfixes + +In the description of your [Pull Request][Using Pull Requests], please include recreation steps for the bug as well as a [JSFiddle/JSBin] demo. Communicating the buggy behavior is a requirement before a merge can happen. + + +## Contributing Languages + +Please edit the original files in the `lang/` directory. DO NOT edit anything in the `dist/` directory. The build system will responsible for merging FullCalendar's `lang/` data with the [MomentJS locale data]. + + +## Other Ways to Contribute + +[Read about other ways to contribute »](http://fullcalendar.io/wiki/Contributing/) + + +## Getting Set Up + +You will need [Git][git], [Node][node], and NPM installed. For clarification, please view the [jQuery readme][jq-readme], which requires a similar setup. + +Also, you will need the [grunt-cli][grunt-cli] and [bower][bower] packages installed globally (`-g`) on your system: + + npm install -g grunt-cli bower + +Then, clone FullCalendar's git repo: + + git clone git://github.com/arshaw/fullcalendar.git + +Enter the directory and install FullCalendar's development dependencies: + + cd fullcalendar + ./build/init.sh + + +## What to edit + +When modifying files, please do not edit the generated or minified files in the `dist/` directory. Please edit the original `src/` files. + + +## Development Workflow + +After you make code changes, you'll want to compile the JS/CSS so that it can be previewed from the tests and demos. You can either manually rebuild each time you make a change: + + grunt dev + +Or, you can run a script that automatically rebuilds whenever you save a source file: + + ./build/watch.sh + +When you are finished, run the following command to write the distributable files into the `./dist/` directory: + + grunt + +If you want to clean up the generated files, run: + + grunt clean + + +## Style Guide + +Please follow the [Google JavaScript Style Guide] as closely as possible. With the following exceptions: + +```js +if (true) { +} +else { // please put else, else if, and catch on a separate line +} + +// please write one-line array literals with a one-space padding inside +var a = [ 1, 2, 3 ]; + +// please write one-line object literals with a one-space padding inside +var o = { a: 1, b: 2, c: 3 }; +``` + +Other exceptions: + +- please ignore anything about Google Closure Compiler or the `goog` library +- please do not write JSDoc comments + +Notes about whitespace: + +- **use *tabs* instead of spaces** +- separate functions with *2* blank lines +- separate logical blocks within functions with *1* blank line + +Run the command line tool to automatically check your style: + + grunt check + + +## Before Submitting your Code + +If you have edited code (including **tests** and **translations**) and would like to submit a pull request, please make sure you have done the following: + +1. Conformed to the style guide (successfully run `grunt check`) + +2. Written automated tests. View the [Automated Test Readme] + + +[JSFiddle/JSBin]: http://fullcalendar.io/wiki/Reporting-Bugs/ +[Issue Tracker]: https://github.com/fullcalendar/fullcalendar/issues +[Using Pull Requests]: https://help.github.com/articles/using-pull-requests/ +[MomentJS locale data]: https://github.com/moment/moment/tree/develop/locale +[git]: http://git-scm.com/ +[node]: http://nodejs.org/ +[grunt-cli]: http://gruntjs.com/getting-started#installing-the-cli +[bower]: http://bower.io/ +[jq-readme]: https://github.com/jquery/jquery/blob/master/README.md#what-you-need-to-build-your-own-jquery +[Google JavaScript Style Guide]: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml +[Automated Test Readme]: https://github.com/fullcalendar/fullcalendar/wiki/Automated-Tests diff --git a/library/fullcalendar/GPL-LICENSE.txt b/library/fullcalendar/GPL-LICENSE.txt deleted file mode 100644 index 11dddd00e..000000000 --- a/library/fullcalendar/GPL-LICENSE.txt +++ /dev/null @@ -1,278 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. diff --git a/library/fullcalendar/MIT-LICENSE.txt b/library/fullcalendar/LICENSE.txt index 46d475449..eafaf97ec 100644 --- a/library/fullcalendar/MIT-LICENSE.txt +++ b/library/fullcalendar/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009 Adam Shaw +Copyright (c) 2015 Adam Shaw Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/library/fullcalendar/changelog.txt b/library/fullcalendar/changelog.txt deleted file mode 100644 index 549631ad0..000000000 --- a/library/fullcalendar/changelog.txt +++ /dev/null @@ -1,342 +0,0 @@ - -version 1.6.0 (3/18/13) - - visual facelift, with bootstrap-inspired buttons and colors - - simplified HTML/CSS for events and buttons - - dayRender, for modifying a day cell (issue 191, thx althaus) - - week numbers on side of calendar (issue 295) - - weekNumber - - weekNumberCalculation - - weekNumberTitle - - "W" formatting variable - - finer snapping granularity for agenda view events (issue 495, thx ms-doodle-com) - - eventAfterAllRender (issue 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 - -version 1.5.4 (9/5/12) - - made compatible with jQuery 1.8.* (thx archaeron) - - bundled with jQuery 1.8.1 and jQuery UI 1.8.23 - -version 1.5.3 (2/6/12) - - fixed dragging issue with jQuery UI 1.8.16 (issue 1168) - - bundled with jQuery 1.7.1 and jQuery UI 1.8.17 - -version 1.5.2 (8/21/11) - - correctly process UTC "Z" ISO8601 date strings (issue 750) - -version 1.5.1 (4/9/11) - - more flexible ISO8601 date parsing (issue 814) - - more flexible parsing of UNIX timestamps (issue 826) - - FullCalendar now buildable from source on a Mac (issue 795) - - FullCalendar QA'd in FF4 (issue 883) - - upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11 - -version 1.5 (3/19/11) - - slicker default styling for buttons - - reworked a lot of the calendar's HTML and accompanying CSS - (solves issues 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 issue 299) - - can now color events through FullCalendar options and Event-Object properties (issue 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 (issue 386) - allows for easily attaching ajax handlers such as `error` (issue 754) - allows for turning caching on (issue 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 (issue 504) - - remove `cacheParam` - use json event source `cache` option instead - - latest jquery/jquery-ui - -version 1.4.11 (2/22/11) - - fixed rerenderEvents bug (issue 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 - -version 1.4.10 (1/2/11) - - fixed bug with resizing event to different week in 5-day month view (issue 740) - - fixed bug with events not sticking after a removeEvents call (issue 757) - - fixed bug with underlying parseTime method, and other uses of parseInt (issue 688) - -version 1.4.9 (11/16/10) - - new algorithm for vertically stacking events (issue 111) - - resizing an event to a different week (issue 306) - - bug: some events not rendered with consecutive calls to addEventSource (issue 679) - -version 1.4.8 (10/16/10) - - ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates) - - bugfixes - - event refetching not being called under certain conditions (issues 417, 554) - - event refetching being called multiple times under certain conditions (issues 586, 616) - - selection cannot be triggered by right mouse button (issue 558) - - agenda view left axis sized incorrectly (issue 465) - - IE js error when calendar is too narrow (issue 517) - - agenda view looks strange when no scrollbars (issue 235) - - improved parsing of ISO8601 dates with UTC offsets - - $.fullCalendar.version - - an internal refactor of the code, for easier future development and modularity - -version 1.4.7 (7/5/10) - - "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 (issue 406) - - bug rendering events that have an endtime with seconds, but no hours/minutes (issue 477) - - gotoDate date overflow bug (issue 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 - -version 1.4.6 (5/31/10) - - "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 - -version 1.4.5 (2/21/10) - - 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 (issue 320) - - error when rendering a hidden calendar (in jquery ui tabs for example) in IE (issue 340) - - interconnected bugs related to calendar resizing and scrollbars - - when switching views or clicking prev/next, calendar would "blink" (issue 333) - - liquid-width calendar's events shifted (depending on initial height of browser) (issue 341) - - more robust underlying algorithm for calendar resizing - -version 1.4.4 (2/3/10) - - 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 - -version 1.4.3 (12/22/09) - - 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 - -version 1.4.2 (12/02/09) - - 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') - -version 1.4.1 (10/31/09) - - 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 - -version 1.4 (10/19/09) - - 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 - -version 1.3.2 (10/13/09) - - 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 - -version 1.3.1 (9/30/09) - - 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 - -version 1.3 (9/21/09) - - 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 <a> 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 - -version 1.2.1 (6/29/09) - - 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 - -version 1.2 (5/31/09) - - 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 <button> w/ an inner <span> for better css cusomization - - thus CSS has changed. IF UPGRADING FROM PREVIOUS VERSIONS, - UPGRADE YOUR FULLCALENDAR.CSS FILE!!! - -version 1.1 (5/10/09) - - Added the following options: - - weekStart - - rightToLeft - - titleFormat - - timeFormat - - cacheParam - - resize - - Fixed rendering bugs - - Opera 9.25 (events placement & window resizing) - - IE6 (window resizing) - - Optimized window resizing for ALL browsers - - Events on same day now sorted by start time (but first by timespan) - - Correct z-index when dragging - - Dragging contained in overflow DIV for IE6 - - Modified fullcalendar.css - - for right-to-left support - - for variable start-of-week - - for IE6 resizing bug - - for THEAD and TBODY (in 1.0, just used TBODY, restructured in 1.1) - - IF UPGRADING FROM FULLCALENDAR 1.0, YOU MUST UPGRADE FULLCALENDAR.CSS - !!!!!!!!!!! - diff --git a/library/fullcalendar/fullcalendar.css b/library/fullcalendar/fullcalendar.css index db0544543..51838f4cd 100644 --- a/library/fullcalendar/fullcalendar.css +++ b/library/fullcalendar/fullcalendar.css @@ -1,196 +1,207 @@ /*! - * FullCalendar v1.6.0 Stylesheet - * Docs & License: http://arshaw.com/fullcalendar/ - * (c) 2013 Adam Shaw + * FullCalendar v2.5.0-beta Stylesheet + * Docs & License: http://fullcalendar.io/ + * (c) 2015 Adam Shaw */ .fc { direction: ltr; text-align: left; - } - -.fc table { - border-collapse: collapse; - border-spacing: 0; - } - -html .fc, -.fc table { - font-size: 1em; - } - -.fc td, -.fc th { - padding: 0; - vertical-align: top; - } +} +.fc-rtl { + text-align: right; +} +body .fc { /* extra precedence to overcome jqui */ + font-size: 1em; +} -/* Header -------------------------------------------------------------------------*/ -.fc-header td { - white-space: nowrap; - } +/* Colors +--------------------------------------------------------------------------------------------------*/ -.fc-header-left { - width: 25%; - text-align: left; - } - -.fc-header-center { - text-align: center; - } - -.fc-header-right { - width: 25%; - text-align: right; - } - -.fc-header-title { - display: inline-block; - vertical-align: top; - } - -.fc-header-title h2 { - margin-top: 0; - white-space: nowrap; - } - -.fc .fc-header-space { - padding-left: 10px; - } - -.fc-header .fc-button { - margin-bottom: 1em; - vertical-align: top; - } - -/* buttons edges butting together */ +.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: #ddd; +} -.fc-header .fc-button { - margin-right: -1px; - } - -.fc-header .fc-corner-right, /* non-theme */ -.fc-header .ui-corner-right { /* theme */ - margin-right: 0; /* back to normal */ - } - -/* button layering (for border precedence) */ - -.fc-header .fc-state-hover, -.fc-header .ui-state-hover { - z-index: 2; - } - -.fc-header .fc-state-down { - z-index: 3; - } +.fc-unthemed .fc-popover { + background-color: #fff; +} -.fc-header .fc-state-active, -.fc-header .ui-state-active { - z-index: 4; - } - - - -/* Content -------------------------------------------------------------------------*/ - -.fc-content { - clear: both; - } - -.fc-view { - width: 100%; /* needed for view switching (when view is absolute) */ - overflow: hidden; - } - - +.fc-unthemed .fc-divider, +.fc-unthemed .fc-popover .fc-header { + background: #eee; +} -/* Cell Styles -------------------------------------------------------------------------*/ +.fc-unthemed .fc-popover .fc-header .fc-close { + color: #666; +} -.fc-widget-header, /* <th>, usually */ -.fc-widget-content { /* <td>, usually */ - border: 1px solid #ddd; - } - -.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */ +.fc-unthemed .fc-today { background: #fcf8e3; - } - -.fc-cell-overlay { /* semi-transparent rectangle while dragging */ +} + +.fc-highlight { /* when user is selecting cells */ background: #bce8f1; opacity: .3; filter: alpha(opacity=30); /* for IE */ +} + +.fc-bgevent { /* default look for background events */ + background: rgb(143, 223, 130); + opacity: .3; + filter: alpha(opacity=30); /* for IE */ +} + +.fc-nonbusiness { /* default look for non-business-hours areas */ + /* will inherit .fc-bgevent's styles */ + background: #d7d7d7; +} + + +/* Icons (inline elements with styled text that mock arrow icons) +--------------------------------------------------------------------------------------------------*/ + +.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; + + /* don't allow browser text-selection */ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } - +/* +Acceptable font-family overrides for individual icons: + "Arial", sans-serif + "Times New Roman", serif -/* Buttons -------------------------------------------------------------------------*/ +NOTE: use percentage font sizes or else old IE chokes +*/ -.fc-button { +.fc-icon:after { position: relative; - display: inline-block; + margin: 0 -1em; /* ensures character will be centered, regardless of width */ +} + +.fc-icon-left-single-arrow:after { + content: "\02039"; + font-weight: bold; + font-size: 200%; + top: -7%; + left: 3%; +} + +.fc-icon-right-single-arrow:after { + content: "\0203A"; + font-weight: bold; + 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%; +} + + +/* Buttons (styled <button> tags, normalized to work cross-browser) +--------------------------------------------------------------------------------------------------*/ + +.fc button { + /* force height to include the border and padding */ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + + /* dimensions */ + margin: 0; + height: 2.1em; padding: 0 .6em; - overflow: hidden; - height: 1.9em; - line-height: 1.9em; + + /* text & cursor */ + font-size: 1em; /* normalize */ white-space: nowrap; cursor: pointer; - } +} + +/* Firefox has an annoying inner border */ +.fc button::-moz-focus-inner { margin: 0; padding: 0; } .fc-state-default { /* non-theme */ border: 1px solid; - } +} .fc-state-default.fc-corner-left { /* non-theme */ border-top-left-radius: 4px; border-bottom-left-radius: 4px; - } +} .fc-state-default.fc-corner-right { /* non-theme */ border-top-right-radius: 4px; border-bottom-right-radius: 4px; - } - -/* - Our default prev/next buttons use HTML entities like ‹ › « » - and we'll try to make them look good cross-browser. -*/ +} -.fc-text-arrow { - margin: 0 .1em; - font-size: 2em; - font-family: "Courier New", Courier, monospace; - vertical-align: baseline; /* for IE7 */ - } +/* icons in buttons */ -.fc-button-prev .fc-text-arrow, -.fc-button-next .fc-text-arrow { /* for ‹ › */ - font-weight: bold; - } - -/* icon (for jquery ui) */ - -.fc-button .fc-icon-wrap { - position: relative; - float: left; - top: 50%; - } - -.fc-button .ui-icon { +.fc button .fc-icon { /* non-theme */ position: relative; - float: left; - margin-top: -50%; - *margin-top: 0; - *top: -50%; - } + top: -0.05em; /* seems to be a good adjustment across browsers */ + margin: 0 .2em; + vertical-align: middle; +} /* button states @@ -210,7 +221,7 @@ html .fc, color: #333; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - } +} .fc-state-hover, .fc-state-down, @@ -218,7 +229,7 @@ html .fc, .fc-state-disabled { color: #333333; background-color: #e6e6e6; - } +} .fc-state-hover { color: #333333; @@ -228,15 +239,14 @@ html .fc, -moz-transition: background-position 0.1s linear; -o-transition: background-position 0.1s linear; transition: background-position 0.1s linear; - } +} .fc-state-down, .fc-state-active { background-color: #cccccc; background-image: none; - outline: 0; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - } +} .fc-state-disabled { cursor: default; @@ -244,336 +254,816 @@ html .fc, opacity: 0.65; filter: alpha(opacity=65); box-shadow: none; - } +} + + +/* Buttons Groups +--------------------------------------------------------------------------------------------------*/ + +.fc-button-group { + display: inline-block; +} + +/* +every button that is not first in a button group should scootch over one pixel and cover the +previous button's border... +*/ + +.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */ + float: left; + margin: 0 0 0 -1px; +} + +.fc .fc-button-group > :first-child { /* same */ + margin-left: 0; +} + + +/* Popover +--------------------------------------------------------------------------------------------------*/ + +.fc-popover { + position: absolute; + box-shadow: 0 2px 6px rgba(0,0,0,.15); +} + +.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */ + 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-rtl .fc-popover .fc-header .fc-title, +.fc-ltr .fc-popover .fc-header .fc-close { + float: right; +} + +/* unthemed */ + +.fc-unthemed .fc-popover { + border-width: 1px; + border-style: solid; +} + +.fc-unthemed .fc-popover .fc-header .fc-close { + font-size: .9em; + margin-top: 2px; +} + +/* jqui themed */ + +.fc-popover > .ui-widget-header + .ui-widget-content { + border-top: 0; /* where they meet, let the header have the border */ +} + + +/* Misc Reusable Components +--------------------------------------------------------------------------------------------------*/ + +.fc-divider { + border-style: solid; + border-width: 1px; +} + +hr.fc-divider { + height: 0; + margin: 0; + padding: 0 0 2px; /* height is unreliable across browsers, so use padding */ + border-width: 1px 0; +} + +.fc-clear { + clear: both; +} + +.fc-bg, +.fc-bgevent-skeleton, +.fc-highlight-skeleton, +.fc-helper-skeleton { + /* these element should always cling to top-left/right corners */ + position: absolute; + top: 0; + left: 0; + right: 0; +} + +.fc-bg { + bottom: 0; /* strech bg to bottom edge */ +} + +.fc-bg table { + height: 100%; /* strech bg to bottom edge */ +} + + +/* Tables +--------------------------------------------------------------------------------------------------*/ + +.fc table { + width: 100%; + table-layout: fixed; + border-collapse: collapse; + border-spacing: 0; + font-size: 1em; /* normalize cross-browser */ +} + +.fc th { + text-align: center; +} + +.fc th, +.fc td { + border-style: solid; + border-width: 1px; + padding: 0; + vertical-align: top; +} + +.fc td.fc-today { + border-style: double; /* overcome neighboring borders */ +} + + +/* Fake Table Rows +--------------------------------------------------------------------------------------------------*/ + +.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */ + /* no visible border by default. but make available if need be (scrollbar width compensation) */ + border-style: solid; + border-width: 0; +} + +.fc-row table { + /* don't put left/right border on anything within a fake row. + the outer tbody will worry about this */ + border-left: 0 hidden transparent; + border-right: 0 hidden transparent; + + /* no bottom borders on rows */ + border-bottom: 0 hidden transparent; +} + +.fc-row:first-child table { + border-top: 0 hidden transparent; /* no top border on first row */ +} + + +/* Day Row (used within the header and the DayGrid) +--------------------------------------------------------------------------------------------------*/ + +.fc-row { + position: relative; +} + +.fc-row .fc-bg { + z-index: 1; +} + +/* highlighting cells & background event skeleton */ + +.fc-row .fc-bgevent-skeleton, +.fc-row .fc-highlight-skeleton { + bottom: 0; /* stretch skeleton to bottom of row */ +} + +.fc-row .fc-bgevent-skeleton table, +.fc-row .fc-highlight-skeleton table { + height: 100%; /* stretch skeleton to bottom of row */ +} + +.fc-row .fc-highlight-skeleton td, +.fc-row .fc-bgevent-skeleton td { + border-color: transparent; +} + +.fc-row .fc-bgevent-skeleton { + z-index: 2; + +} + +.fc-row .fc-highlight-skeleton { + z-index: 3; +} + +/* +row content (which contains day/week numbers and events) as well as "helper" (which contains +temporary rendered events). +*/ + +.fc-row .fc-content-skeleton { + position: relative; + z-index: 4; + padding-bottom: 2px; /* matches the space above the events */ +} + +.fc-row .fc-helper-skeleton { + z-index: 5; +} + +.fc-row .fc-content-skeleton td, +.fc-row .fc-helper-skeleton td { + /* see-through to the background below */ + background: none; /* in case <td>s are globally styled */ + border-color: transparent; + + /* don't put a border between events and/or the day number */ + border-bottom: 0; +} + +.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */ +.fc-row .fc-helper-skeleton tbody td { + /* don't put a border between event cells */ + border-top: 0; +} + + +/* Scrolling Container +--------------------------------------------------------------------------------------------------*/ + +.fc-scroller { /* this class goes on elements for guaranteed vertical scrollbars */ + overflow-y: scroll; + overflow-x: hidden; +} + +.fc-scroller > * { /* we expect an immediate inner element */ + position: relative; /* re-scope all positions */ + width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */ + overflow: hidden; /* don't let negative margins or absolute positioning create further scroll */ +} - /* Global Event Styles -------------------------------------------------------------------------*/ - +--------------------------------------------------------------------------------------------------*/ + .fc-event { + position: relative; /* for resize handle and other inner positioning */ + display: block; /* make the <a> tag block */ + font-size: .85em; + line-height: 1.3; + border-radius: 3px; border: 1px solid #3a87ad; /* default BORDER color */ background-color: #3a87ad; /* default BACKGROUND color */ - color: #fff; /* default TEXT color */ - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - font-size: .85em; - cursor: default; - } + font-weight: normal; /* undo jqui's ui-widget-header bold */ +} -a.fc-event { - text-decoration: none; - } - -a.fc-event, -.fc-event-draggable { - cursor: pointer; - } - -.fc-rtl .fc-event { - text-align: right; - } +/* overpower some of bootstrap's and jqui's styles on <a> tags */ +.fc-event, +.fc-event:hover, +.ui-widget .fc-event { + color: #fff; /* default TEXT color */ + text-decoration: none; /* if <a> has an href */ +} -.fc-event-inner { - width: 100%; - overflow: hidden; - } - -.fc-event-time, -.fc-event-title { - padding: 0 1px; - } - -.fc .ui-resizable-handle { - display: block; +.fc-event[href], +.fc-event.fc-draggable { + cursor: pointer; /* give events with links and draggable events a hand mouse pointer */ +} + +.fc-not-allowed, /* causes a "warning" cursor. applied on body */ +.fc-not-allowed .fc-event { /* to override an event's custom cursor */ + cursor: not-allowed; +} + +.fc-event .fc-bg { /* the generic .fc-bg already does position */ + z-index: 1; + background: #fff; + opacity: .25; + filter: alpha(opacity=25); /* for IE */ +} + +.fc-event .fc-content { + position: relative; + z-index: 2; +} + +.fc-event .fc-resizer { position: absolute; - z-index: 99999; - overflow: hidden; /* hacky spaces (IE6/7) */ - font-size: 300%; /* */ - line-height: 50%; /* */ - } - - - + z-index: 3; +} + + /* Horizontal Events -------------------------------------------------------------------------*/ +--------------------------------------------------------------------------------------------------*/ -.fc-event-hori { - border-width: 1px 0; - margin-bottom: 1px; - } +/* events that are continuing to/from another week. kill rounded corners and butt up against edge */ -.fc-ltr .fc-event-hori.fc-event-start, -.fc-rtl .fc-event-hori.fc-event-end { - border-left-width: 1px; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - } +.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; /* replace the border with padding */ + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} -.fc-ltr .fc-event-hori.fc-event-end, -.fc-rtl .fc-event-hori.fc-event-start { - border-right-width: 1px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - } - -/* resizable */ - -.fc-event-hori .ui-resizable-e { - top: 0 !important; /* importants override pre jquery ui 1.7 styles */ - right: -3px !important; - width: 7px !important; - height: 100% !important; - cursor: e-resize; - } - -.fc-event-hori .ui-resizable-w { - top: 0 !important; - left: -3px !important; - width: 7px !important; - height: 100% !important; +.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; /* replace the border with padding */ + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +/* resizer */ + +.fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */ + top: -1px; + bottom: -1px; + left: -1px; + right: -1px; + width: 5px; +} + +/* left resizer */ +.fc-ltr .fc-h-event .fc-start-resizer, +.fc-ltr .fc-h-event .fc-start-resizer:before, +.fc-ltr .fc-h-event .fc-start-resizer:after, +.fc-rtl .fc-h-event .fc-end-resizer, +.fc-rtl .fc-h-event .fc-end-resizer:before, +.fc-rtl .fc-h-event .fc-end-resizer:after { + right: auto; /* ignore the right and only use the left */ cursor: w-resize; - } - -.fc-event-hori .ui-resizable-handle { - _padding-bottom: 14px; /* IE6 had 0 height */ - } - - - -/* Reusable Separate-border Table -------------------------------------------------------------*/ +} -table.fc-border-separate { - border-collapse: separate; - } - -.fc-border-separate th, -.fc-border-separate td { - border-width: 1px 0 0 1px; - } - -.fc-border-separate th.fc-last, -.fc-border-separate td.fc-last { - border-right-width: 1px; - } - -.fc-border-separate tr.fc-last th, -.fc-border-separate tr.fc-last td { - border-bottom-width: 1px; - } - -.fc-border-separate tbody tr.fc-first td, -.fc-border-separate tbody tr.fc-first th { - border-top-width: 0; - } - - +/* right resizer */ +.fc-ltr .fc-h-event .fc-end-resizer, +.fc-ltr .fc-h-event .fc-end-resizer:before, +.fc-ltr .fc-h-event .fc-end-resizer:after, +.fc-rtl .fc-h-event .fc-start-resizer, +.fc-rtl .fc-h-event .fc-start-resizer:before, +.fc-rtl .fc-h-event .fc-start-resizer:after { + left: auto; /* ignore the left and only use the right */ + cursor: e-resize; +} -/* Month View, Basic Week View, Basic Day View -------------------------------------------------------------------------*/ -.fc-grid th { - text-align: center; - } +/* DayGrid events +---------------------------------------------------------------------------------------------------- +We use the full "fc-day-grid-event" class instead of using descendants because the event won't +be a descendant of the grid when it is being dragged. +*/ + +.fc-day-grid-event { + margin: 1px 2px 0; /* spacing between events and edges */ + padding: 0 1px; +} + + +.fc-day-grid-event .fc-content { /* force events to be one-line tall */ + white-space: nowrap; + overflow: hidden; +} + +.fc-day-grid-event .fc-time { + font-weight: bold; +} + +.fc-day-grid-event .fc-resizer { /* enlarge the default hit area */ + left: -3px; + right: -3px; + width: 7px; +} + + +/* Event Limiting +--------------------------------------------------------------------------------------------------*/ + +/* "more" link that represents hidden events */ + +a.fc-more { + margin: 1px 3px; + font-size: .85em; + cursor: pointer; + text-decoration: none; +} + +a.fc-more:hover { + text-decoration: underline; +} + +.fc-limited { /* rows and cells that are hidden because of a "more" link */ + display: none; +} + +/* popover that appears when "more" link is clicked */ + +.fc-day-grid .fc-row { + z-index: 1; /* make the "more" popover one higher than this */ +} + +.fc-more-popover { + z-index: 2; + width: 220px; +} + +.fc-more-popover .fc-event-container { + padding: 10px; +} + +/* Toolbar +--------------------------------------------------------------------------------------------------*/ -.fc .fc-week-number { - width: 22px; +.fc-toolbar { text-align: center; - } + margin-bottom: 1em; +} -.fc .fc-week-number div { - padding: 0 2px; - } - -.fc-grid .fc-day-number { +.fc-toolbar .fc-left { + float: left; +} + +.fc-toolbar .fc-right { float: right; - padding: 0 2px; - } +} + +.fc-toolbar .fc-center { + display: inline-block; +} + +/* the things within each left/right/center section */ +.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */ + float: left; + margin-left: .75em; +} + +/* the first thing within each left/center/right section */ +.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */ + margin-left: 0; +} + +/* title text */ + +.fc-toolbar h2 { + margin: 0; +} + +/* button layering (for border precedence) */ + +.fc-toolbar button { + position: relative; +} + +.fc-toolbar .fc-state-hover, +.fc-toolbar .ui-state-hover { + z-index: 2; +} -.fc-grid .fc-other-month .fc-day-number { +.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; +} + + +/* View Structure +--------------------------------------------------------------------------------------------------*/ + +/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */ +/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */ +.fc-view-container *, +.fc-view-container *:before, +.fc-view-container *:after { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +.fc-view, /* scope positioning and z-index's for everything within the view */ +.fc-view > table { /* so dragged elements can be above the view's main element */ + position: relative; + z-index: 1; +} + +/* BasicView +--------------------------------------------------------------------------------------------------*/ + +/* day row structure */ + +.fc-basicWeek-view .fc-content-skeleton, +.fc-basicDay-view .fc-content-skeleton { + /* we are sure there are no day numbers in these views, so... */ + padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */ + padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */ +} + +.fc-basic-view .fc-body .fc-row { + min-height: 4em; /* ensure that all rows are at least this tall */ +} + +/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */ + +.fc-row.fc-rigid { + overflow: hidden; +} + +.fc-row.fc-rigid .fc-content-skeleton { + position: absolute; + top: 0; + left: 0; + right: 0; +} + +/* week and day number styling */ + +.fc-basic-view .fc-week-number, +.fc-basic-view .fc-day-number { + padding: 0 2px; +} + +.fc-basic-view td.fc-week-number span, +.fc-basic-view td.fc-day-number { + padding-top: 2px; + padding-bottom: 2px; +} + +.fc-basic-view .fc-week-number { + text-align: center; +} + +.fc-basic-view .fc-week-number span { + /* work around the way we do column resizing and ensure a minimum width */ + 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: 0.3; filter: alpha(opacity=30); /* for IE */ /* opacity with small font can sometimes look too faded might want to set the 'color' property instead making day-numbers bold also fixes the problem */ - } - -.fc-grid .fc-day-content { - clear: both; - padding: 2px 2px 1px; /* distance between events and day edges */ - } - -/* event styles */ - -.fc-grid .fc-event-time { - font-weight: bold; - } - -/* right-to-left */ - -.fc-rtl .fc-grid .fc-day-number { - float: left; - } - -.fc-rtl .fc-grid .fc-event-time { - float: right; - } - - +} -/* Agenda Week View, Agenda Day View -------------------------------------------------------------------------*/ +/* AgendaView all-day area +--------------------------------------------------------------------------------------------------*/ -.fc-agenda table { - border-collapse: separate; - } - -.fc-agenda-days th { - text-align: center; - } - -.fc-agenda .fc-agenda-axis { - width: 50px; - padding: 0 4px; +.fc-agenda-view .fc-day-grid { + position: relative; + z-index: 2; /* so the "more.." popover will be over the time grid */ +} + +.fc-agenda-view .fc-day-grid .fc-row { + min-height: 3em; /* all-day section will never get shorter than this */ +} + +.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton { + padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */ + padding-bottom: 1em; /* give space underneath events for clicking/selecting days */ +} + + +/* TimeGrid axis running down the side (for both the all-day area and the slot area) +--------------------------------------------------------------------------------------------------*/ + +.fc .fc-axis { /* .fc to overcome default cell styles */ vertical-align: middle; - text-align: right; + padding: 0 4px; white-space: nowrap; - font-weight: normal; - } +} -.fc-agenda .fc-week-number { - font-weight: bold; - } - -.fc-agenda .fc-day-content { - padding: 2px 2px 1px; - } - -/* make axis border take precedence */ - -.fc-agenda-days .fc-agenda-axis { - border-right-width: 1px; - } - -.fc-agenda-days .fc-col0 { - border-left-width: 0; - } - -/* all-day area */ - -.fc-agenda-allday th { - border-width: 0 1px; - } - -.fc-agenda-allday .fc-day-content { - min-height: 34px; /* TODO: doesnt work well in quirksmode */ - _height: 34px; - } - -/* divider (between all-day and slots) */ - -.fc-agenda-divider-inner { - height: 2px; - overflow: hidden; - } - -.fc-widget-header .fc-agenda-divider-inner { - background: #eee; - } - -/* slot rows */ - -.fc-agenda-slots th { - border-width: 1px 1px 0; - } - -.fc-agenda-slots td { - border-width: 1px 0 0; - background: none; - } - -.fc-agenda-slots td div { - height: 20px; - } - -.fc-agenda-slots tr.fc-slot0 th, -.fc-agenda-slots tr.fc-slot0 td { - border-top-width: 0; - } +.fc-ltr .fc-axis { + text-align: right; +} -.fc-agenda-slots tr.fc-minor th, -.fc-agenda-slots tr.fc-minor td { - border-top-style: dotted; - } - -.fc-agenda-slots tr.fc-minor th.ui-widget-header { - *border-top-style: solid; /* doesn't work with background in IE6/7 */ - } - +.fc-rtl .fc-axis { + text-align: left; +} +.ui-widget td.fc-axis { + font-weight: normal; /* overcome jqui theme making it bold */ +} -/* Vertical Events -------------------------------------------------------------------------*/ -.fc-event-vert { - border-width: 0 1px; - } +/* TimeGrid Structure +--------------------------------------------------------------------------------------------------*/ -.fc-event-vert.fc-event-start { - border-top-width: 1px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } +.fc-time-grid-container, /* so scroll container's z-index is below all-day */ +.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */ + position: relative; + z-index: 1; +} -.fc-event-vert.fc-event-end { - border-bottom-width: 1px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; - } - -.fc-event-vert .fc-event-time { - white-space: nowrap; - font-size: 10px; - } +.fc-time-grid { + min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */ +} + +.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */ + border: 0 hidden transparent; +} -.fc-event-vert .fc-event-inner { +.fc-time-grid > .fc-bg { + z-index: 1; +} + +.fc-time-grid .fc-slats, +.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */ position: relative; z-index: 2; - } - -.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ +} + +.fc-time-grid .fc-bgevent-skeleton, +.fc-time-grid .fc-content-skeleton { position: absolute; - z-index: 1; top: 0; left: 0; - width: 100%; - height: 100%; - background: #fff; - opacity: .3; - filter: alpha(opacity=30); - } - -.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ -.fc-select-helper .fc-event-bg { - display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ - } - -/* resizable */ - -.fc-event-vert .ui-resizable-s { - bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ - width: 100% !important; - height: 8px !important; - overflow: hidden !important; - line-height: 8px !important; - font-size: 11px !important; + 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; +} + + +/* TimeGrid Slats (lines that run horizontally) +--------------------------------------------------------------------------------------------------*/ + +.fc-time-grid .fc-slats td { + height: 1.5em; + border-bottom: 0; /* each cell is responsible for its top border */ +} + +.fc-time-grid .fc-slats .fc-minor td { + border-top-style: dotted; +} + +.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */ + background: none; /* see through to fc-bg */ +} + + +/* TimeGrid Highlighting Slots +--------------------------------------------------------------------------------------------------*/ + +.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */ + position: relative; /* scopes the left/right of the fc-highlight to be in the column */ +} + +.fc-time-grid .fc-highlight { + position: absolute; + left: 0; + right: 0; + /* top and bottom will be in by JS */ +} + + +/* TimeGrid Event Containment +--------------------------------------------------------------------------------------------------*/ + +.fc-time-grid .fc-event-container, /* a div within a cell within the fc-content-skeleton */ +.fc-time-grid .fc-bgevent-container { /* a div within a cell within the fc-bgevent-skeleton */ + position: relative; +} + +.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */ + margin: 0 2.5% 0 2px; +} + +.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */ + margin: 0 2px 0 2.5%; +} + +.fc-time-grid .fc-event, +.fc-time-grid .fc-bgevent { + position: absolute; + z-index: 1; /* scope inner z-index's */ +} + +.fc-time-grid .fc-bgevent { + /* background events always span full width */ + left: 0; + right: 0; +} + + +/* Generic Vertical Event +--------------------------------------------------------------------------------------------------*/ + +.fc-v-event.fc-not-start { /* events that are continuing from another day */ + /* replace space made by the top border with padding */ + border-top-width: 0; + padding-top: 1px; + + /* remove top rounded corners */ + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.fc-v-event.fc-not-end { + /* replace space made by the top border with padding */ + border-bottom-width: 0; + padding-bottom: 1px; + + /* remove bottom rounded corners */ + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + + +/* TimeGrid Event Styling +---------------------------------------------------------------------------------------------------- +We use the full "fc-time-grid-event" class instead of using descendants because the event won't +be a descendant of the grid when it is being dragged. +*/ + +.fc-time-grid-event { + overflow: hidden; /* don't let the bg flow over rounded corners */ +} + +.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; +} + +/* short mode, where time and title are on the same line */ + +.fc-time-grid-event.fc-short .fc-content { + /* don't wrap to second line (now that contents will be inline) */ + white-space: nowrap; +} + +.fc-time-grid-event.fc-short .fc-time, +.fc-time-grid-event.fc-short .fc-title { + /* put the time and title on the same line */ + display: inline-block; + vertical-align: top; +} + +.fc-time-grid-event.fc-short .fc-time span { + display: none; /* don't display the full time text... */ +} + +.fc-time-grid-event.fc-short .fc-time:before { + content: attr(data-start); /* ...instead, display only the start time */ +} + +.fc-time-grid-event.fc-short .fc-time:after { + content: "\000A0-\000A0"; /* seperate with a dash, wrapped in nbsp's */ +} + +.fc-time-grid-event.fc-short .fc-title { + font-size: .85em; /* make the title text the same size as the time */ + padding: 0; /* undo padding from above */ +} + +/* resizer */ + +.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-agenda .ui-resizable-resizing { /* TODO: better selector */ - _overflow: hidden; - } - - +} + +.fc-time-grid-event .fc-resizer:after { + content: "="; +} diff --git a/library/fullcalendar/fullcalendar.js b/library/fullcalendar/fullcalendar.js index 648938fee..4d17f353e 100644 --- a/library/fullcalendar/fullcalendar.js +++ b/library/fullcalendar/fullcalendar.js @@ -1,200 +1,8225 @@ /*! - * 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(factory) { + if (typeof define === 'function' && define.amd) { + define([ 'jquery', 'moment' ], factory); + } + else if (typeof exports === 'object') { // Node/CommonJS + module.exports = factory(require('jquery'), require('moment')); + } + else { + factory(jQuery, moment); + } +})(function($, moment) { + +;; + +var FC = $.fullCalendar = { version: "2.5.0-beta" }; +var fcViews = FC.views = {}; + + +$.fn.fullCalendar = function(options) { + var args = Array.prototype.slice.call(arguments, 1); // for a possible method call + var res = this; // what this function will return (this jQuery object by default) + + this.each(function(i, _element) { // loop each DOM element involved + var element = $(_element); + var calendar = element.data('fullCalendar'); // get the existing calendar object (if any) + var singleRes; // the returned value of this single method call + + // a method call + if (typeof options === 'string') { + if (calendar && $.isFunction(calendar[options])) { + singleRes = calendar[options].apply(calendar, args); + if (!i) { + res = singleRes; // record the first method call result + } + if (options === 'destroy') { // for the destroy method, must remove Calendar object data + element.removeData('fullCalendar'); + } + } + } + // a new calendar initialization + else if (!calendar) { // don't initialize twice + calendar = new Calendar(element, options); + element.data('fullCalendar', calendar); + calendar.render(); + } + }); + + return res; +}; + + +var complexOptions = [ // names of options that are objects whose properties should be combined + 'header', + 'buttonText', + 'buttonIcons', + 'themeButtonIcons' +]; + + +// Merges an array of option objects into a single object +function mergeOptions(optionObjs) { + return mergeProps(optionObjs, complexOptions); +} + + +// Given options specified for the calendar's constructor, massages any legacy options into a non-legacy form. +// Converts View-Option-Hashes into the View-Specific-Options format. +function massageOverrides(input) { + var overrides = { views: input.views || {} }; // the output. ensure a `views` hash + var subObj; + + // iterate through all option override properties (except `views`) + $.each(input, function(name, val) { + if (name != 'views') { + + // could the value be a legacy View-Option-Hash? + if ( + $.isPlainObject(val) && + !/(time|duration|interval)$/i.test(name) && // exclude duration options. might be given as objects + $.inArray(name, complexOptions) == -1 // complex options aren't allowed to be View-Option-Hashes + ) { + subObj = null; + + // iterate through the properties of this possible View-Option-Hash value + $.each(val, function(subName, subVal) { + + // is the property targeting a view? + if (/^(month|week|day|default|basic(Week|Day)?|agenda(Week|Day)?)$/.test(subName)) { + if (!overrides.views[subName]) { // ensure the view-target entry exists + overrides.views[subName] = {}; + } + overrides.views[subName][name] = subVal; // record the value in the `views` object + } + else { // a non-View-Option-Hash property + if (!subObj) { + subObj = {}; + } + subObj[subName] = subVal; // accumulate these unrelated values for later + } + }); + + if (subObj) { // non-View-Option-Hash properties? transfer them as-is + overrides[name] = subObj; + } + } + else { + overrides[name] = val; // transfer normal options as-is + } + } + }); + + return overrides; +} + +;; + +// exports +FC.intersectionToSeg = intersectionToSeg; +FC.applyAll = applyAll; +FC.debounce = debounce; +FC.isInt = isInt; +FC.htmlEscape = htmlEscape; +FC.cssToStr = cssToStr; +FC.proxy = proxy; +FC.capitaliseFirstLetter = capitaliseFirstLetter; + + +/* FullCalendar-specific DOM Utilities +----------------------------------------------------------------------------------------------------------------------*/ + + +// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left +// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. +function compensateScroll(rowEls, scrollbarWidths) { + if (scrollbarWidths.left) { + rowEls.css({ + 'border-left-width': 1, + 'margin-left': scrollbarWidths.left - 1 + }); + } + if (scrollbarWidths.right) { + rowEls.css({ + 'border-right-width': 1, + 'margin-right': scrollbarWidths.right - 1 + }); + } +} + + +// Undoes compensateScroll and restores all borders/margins +function uncompensateScroll(rowEls) { + rowEls.css({ + 'margin-left': '', + 'margin-right': '', + 'border-left-width': '', + 'border-right-width': '' + }); +} + + +// Make the mouse cursor express that an event is not allowed in the current area +function disableCursor() { + $('body').addClass('fc-not-allowed'); +} + + +// Returns the mouse cursor to its original look +function enableCursor() { + $('body').removeClass('fc-not-allowed'); +} + + +// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. +// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering +// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and +// reduces the available height. +function distributeHeight(els, availableHeight, shouldRedistribute) { + + // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, + // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. + + var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element + var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* + var flexEls = []; // elements that are allowed to expand. array of DOM nodes + var flexOffsets = []; // amount of vertical space it takes up + var flexHeights = []; // actual css height + var usedHeight = 0; + + undistributeHeight(els); // give all elements their natural height + + // find elements that are below the recommended height (expandable). + // important to query for heights in a single first pass (to avoid reflow oscillation). + els.each(function(i, el) { + var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; + var naturalOffset = $(el).outerHeight(true); + + if (naturalOffset < minOffset) { + flexEls.push(el); + flexOffsets.push(naturalOffset); + flexHeights.push($(el).height()); + } + else { + // this element stretches past recommended height (non-expandable). mark the space as occupied. + usedHeight += naturalOffset; + } + }); + + // readjust the recommended height to only consider the height available to non-maxed-out rows. + if (shouldRedistribute) { + availableHeight -= usedHeight; + minOffset1 = Math.floor(availableHeight / flexEls.length); + minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* + } + + // assign heights to all expandable elements + $(flexEls).each(function(i, el) { + var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; + var naturalOffset = flexOffsets[i]; + var naturalHeight = flexHeights[i]; + var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding + + if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things + $(el).height(newHeight); + } + }); +} + + +// Undoes distrubuteHeight, restoring all els to their natural height +function undistributeHeight(els) { + els.height(''); +} + + +// Given `els`, a jQuery set of <td> cells, find the cell with the largest natural width and set the widths of all the +// cells to be that width. +// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline +function matchCellWidths(els) { + var maxInnerWidth = 0; + + els.find('> *').each(function(i, innerEl) { + var innerWidth = $(innerEl).outerWidth(); + if (innerWidth > maxInnerWidth) { + maxInnerWidth = innerWidth; + } + }); + + maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance + + els.width(maxInnerWidth); + + return maxInnerWidth; +} + + +// Turns a container element into a scroller if its contents is taller than the allotted height. +// Returns true if the element is now a scroller, false otherwise. +// NOTE: this method is best because it takes weird zooming dimensions into account +function setPotentialScroller(containerEl, height) { + containerEl.height(height).addClass('fc-scroller'); + + // are scrollbars needed? + if (containerEl[0].scrollHeight - 1 > containerEl[0].clientHeight) { // !!! -1 because IE is often off-by-one :( + return true; + } + + unsetScroller(containerEl); // undo + return false; +} + + +// Takes an element that might have been a scroller, and turns it back into a normal element. +function unsetScroller(containerEl) { + containerEl.height('').removeClass('fc-scroller'); +} + + +/* General DOM Utilities +----------------------------------------------------------------------------------------------------------------------*/ + +FC.getOuterRect = getOuterRect; +FC.getClientRect = getClientRect; +FC.getContentRect = getContentRect; +FC.getScrollbarWidths = getScrollbarWidths; + + +// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51 +function getScrollParent(el) { + var position = el.css('position'), + scrollParent = el.parents().filter(function() { + var parent = $(this); + return (/(auto|scroll)/).test( + parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x') + ); + }).eq(0); + + return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent; +} + + +// Queries the outer bounding area of a jQuery element. +// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). +function getOuterRect(el) { + var offset = el.offset(); + + return { + left: offset.left, + right: offset.left + el.outerWidth(), + top: offset.top, + bottom: offset.top + el.outerHeight() + }; +} + + +// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding. +// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). +// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser. +function getClientRect(el) { + var offset = el.offset(); + var scrollbarWidths = getScrollbarWidths(el); + var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left; + var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top; + + return { + left: left, + right: left + el[0].clientWidth, // clientWidth includes padding but NOT scrollbars + top: top, + bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars + }; +} + + +// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars. +// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). +function getContentRect(el) { + var offset = el.offset(); // just outside of border, margin not included + var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left'); + var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top'); + + return { + left: left, + right: left + el.width(), + top: top, + bottom: top + el.height() + }; +} + + +// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element. +// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser. +function getScrollbarWidths(el) { + var leftRightWidth = el.innerWidth() - el[0].clientWidth; // the paddings cancel out, leaving the scrollbars + var widths = { + left: 0, + right: 0, + top: 0, + bottom: el.innerHeight() - el[0].clientHeight // the paddings cancel out, leaving the bottom scrollbar + }; + + if (getIsLeftRtlScrollbars() && el.css('direction') == 'rtl') { // is the scrollbar on the left side? + widths.left = leftRightWidth; + } + else { + widths.right = leftRightWidth; + } + + return widths; +} + + +// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side + +var _isLeftRtlScrollbars = null; + +function getIsLeftRtlScrollbars() { // responsible for caching the computation + if (_isLeftRtlScrollbars === null) { + _isLeftRtlScrollbars = computeIsLeftRtlScrollbars(); + } + return _isLeftRtlScrollbars; +} + +function computeIsLeftRtlScrollbars() { // creates an offscreen test element, then removes it + var el = $('<div><div/></div>') + .css({ + position: 'absolute', + top: -1000, + left: 0, + border: 0, + padding: 0, + overflow: 'scroll', + direction: 'rtl' + }) + .appendTo('body'); + var innerEl = el.children(); + var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar? + el.remove(); + return res; +} + + +// Retrieves a jQuery element's computed CSS value as a floating-point number. +// If the queried value is non-numeric (ex: IE can return "medium" for border width), will just return zero. +function getCssFloat(el, prop) { + return parseFloat(el.css(prop)) || 0; +} + + +// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) +function isPrimaryMouseButton(ev) { + return ev.which == 1 && !ev.ctrlKey; +} + + +/* Geometry +----------------------------------------------------------------------------------------------------------------------*/ + +FC.intersectRects = intersectRects; + +// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false +function intersectRects(rect1, rect2) { + var res = { + left: Math.max(rect1.left, rect2.left), + right: Math.min(rect1.right, rect2.right), + top: Math.max(rect1.top, rect2.top), + bottom: Math.min(rect1.bottom, rect2.bottom) + }; + + if (res.left < res.right && res.top < res.bottom) { + return res; + } + return false; +} + + +// Returns a new point that will have been moved to reside within the given rectangle +function constrainPoint(point, rect) { + return { + left: Math.min(Math.max(point.left, rect.left), rect.right), + top: Math.min(Math.max(point.top, rect.top), rect.bottom) + }; +} + + +// Returns a point that is the center of the given rectangle +function getRectCenter(rect) { + return { + left: (rect.left + rect.right) / 2, + top: (rect.top + rect.bottom) / 2 + }; +} + + +// Subtracts point2's coordinates from point1's coordinates, returning a delta +function diffPoints(point1, point2) { + return { + left: point1.left - point2.left, + top: point1.top - point2.top + }; +} + + +/* Object Ordering by Field +----------------------------------------------------------------------------------------------------------------------*/ + +FC.parseFieldSpecs = parseFieldSpecs; +FC.compareByFieldSpecs = compareByFieldSpecs; +FC.compareByFieldSpec = compareByFieldSpec; +FC.flexibleCompare = flexibleCompare; + + +function parseFieldSpecs(input) { + var specs = []; + var tokens = []; + var i, token; + + if (typeof input === 'string') { + tokens = input.split(/\s*,\s*/); + } + else if (typeof input === 'function') { + tokens = [ input ]; + } + else if ($.isArray(input)) { + tokens = input; + } + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + + if (typeof token === 'string') { + specs.push( + token.charAt(0) == '-' ? + { field: token.substring(1), order: -1 } : + { field: token, order: 1 } + ); + } + else if (typeof token === 'function') { + specs.push({ func: token }); + } + } + + return specs; +} + + +function compareByFieldSpecs(obj1, obj2, fieldSpecs) { + var i; + var cmp; + + for (i = 0; i < fieldSpecs.length; i++) { + cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i]); + if (cmp) { + return cmp; + } + } + + return 0; +} + + +function compareByFieldSpec(obj1, obj2, fieldSpec) { + if (fieldSpec.func) { + return fieldSpec.func(obj1, obj2); + } + return flexibleCompare(obj1[fieldSpec.field], obj2[fieldSpec.field]) * + (fieldSpec.order || 1); +} + + +function flexibleCompare(a, b) { + if (!a && !b) { + return 0; + } + if (b == null) { + return -1; + } + if (a == null) { + return 1; + } + if ($.type(a) === 'string' || $.type(b) === 'string') { + return String(a).localeCompare(String(b)); + } + return a - b; +} + + +/* FullCalendar-specific Misc Utilities +----------------------------------------------------------------------------------------------------------------------*/ + + +// Creates a basic segment with the intersection of the two ranges. Returns undefined if no intersection. +// Expects all dates to be normalized to the same timezone beforehand. +// TODO: move to date section? +function intersectionToSeg(subjectRange, constraintRange) { + var subjectStart = subjectRange.start; + var subjectEnd = subjectRange.end; + var constraintStart = constraintRange.start; + var constraintEnd = constraintRange.end; + var segStart, segEnd; + var isStart, isEnd; + + if (subjectEnd > constraintStart && subjectStart < constraintEnd) { // in bounds at all? + + if (subjectStart >= constraintStart) { + segStart = subjectStart.clone(); + isStart = true; + } + else { + segStart = constraintStart.clone(); + isStart = false; + } + + if (subjectEnd <= constraintEnd) { + segEnd = subjectEnd.clone(); + isEnd = true; + } + else { + segEnd = constraintEnd.clone(); + isEnd = false; + } + + return { + start: segStart, + end: segEnd, + isStart: isStart, + isEnd: isEnd + }; + } +} + + +/* Date Utilities +----------------------------------------------------------------------------------------------------------------------*/ + +FC.computeIntervalUnit = computeIntervalUnit; +FC.divideRangeByDuration = divideRangeByDuration; +FC.divideDurationByDuration = divideDurationByDuration; +FC.multiplyDuration = multiplyDuration; +FC.durationHasTime = durationHasTime; + +var dayIDs = [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat' ]; +var intervalUnits = [ 'year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond' ]; + + +// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time. +// Moments will have their timezones normalized. +function diffDayTime(a, b) { + return moment.duration({ + days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'), + ms: a.time() - b.time() // time-of-day from day start. disregards timezone + }); +} + + +// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations. +function diffDay(a, b) { + return moment.duration({ + days: a.clone().stripTime().diff(b.clone().stripTime(), 'days') + }); +} + + +// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding. +function diffByUnit(a, b, unit) { + return moment.duration( + Math.round(a.diff(b, unit, true)), // returnFloat=true + unit + ); +} + + +// Computes the unit name of the largest whole-unit period of time. +// For example, 48 hours will be "days" whereas 49 hours will be "hours". +// Accepts start/end, a range object, or an original duration object. +function computeIntervalUnit(start, end) { + var i, unit; + var val; + + for (i = 0; i < intervalUnits.length; i++) { + unit = intervalUnits[i]; + val = computeRangeAs(unit, start, end); + + if (val >= 1 && isInt(val)) { + break; + } + } + + return unit; // will be "milliseconds" if nothing else matches +} + + +// Computes the number of units (like "hours") in the given range. +// Range can be a {start,end} object, separate start/end args, or a Duration. +// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling +// of month-diffing logic (which tends to vary from version to version). +function computeRangeAs(unit, start, end) { + + if (end != null) { // given start, end + return end.diff(start, unit, true); + } + else if (moment.isDuration(start)) { // given duration + return start.as(unit); + } + else { // given { start, end } range object + return start.end.diff(start.start, unit, true); + } +} + + +// Intelligently divides a range (specified by a start/end params) by a duration +function divideRangeByDuration(start, end, dur) { + var months; + + if (durationHasTime(dur)) { + return (end - start) / dur; + } + months = dur.asMonths(); + if (Math.abs(months) >= 1 && isInt(months)) { + return end.diff(start, 'months', true) / months; + } + return end.diff(start, 'days', true) / dur.asDays(); +} + + +// Intelligently divides one duration by another +function divideDurationByDuration(dur1, dur2) { + var months1, months2; + + if (durationHasTime(dur1) || durationHasTime(dur2)) { + return dur1 / dur2; + } + months1 = dur1.asMonths(); + months2 = dur2.asMonths(); + if ( + Math.abs(months1) >= 1 && isInt(months1) && + Math.abs(months2) >= 1 && isInt(months2) + ) { + return months1 / months2; + } + return dur1.asDays() / dur2.asDays(); +} + + +// Intelligently multiplies a duration by a number +function multiplyDuration(dur, n) { + var months; + + if (durationHasTime(dur)) { + return moment.duration(dur * n); + } + months = dur.asMonths(); + if (Math.abs(months) >= 1 && isInt(months)) { + return moment.duration({ months: months * n }); + } + return moment.duration({ days: dur.asDays() * n }); +} + + +// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms) +function durationHasTime(dur) { + return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds()); +} + + +function isNativeDate(input) { + return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date; +} + + +// Returns a boolean about whether the given input is a time string, like "06:40:00" or "06:00" +function isTimeString(str) { + return /^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(str); +} + + +/* Logging and Debug +----------------------------------------------------------------------------------------------------------------------*/ + +FC.log = function() { + var console = window.console; + + if (console && console.log) { + return console.log.apply(console, arguments); + } +}; + +FC.warn = function() { + var console = window.console; + + if (console && console.warn) { + return console.warn.apply(console, arguments); + } + else { + return FC.log.apply(FC, arguments); + } +}; + + +/* General Utilities +----------------------------------------------------------------------------------------------------------------------*/ + +var hasOwnPropMethod = {}.hasOwnProperty; + + +// Merges an array of objects into a single object. +// The second argument allows for an array of property names who's object values will be merged together. +function mergeProps(propObjs, complexProps) { + var dest = {}; + var i, name; + var complexObjs; + var j, val; + var props; + + if (complexProps) { + for (i = 0; i < complexProps.length; i++) { + name = complexProps[i]; + complexObjs = []; + + // collect the trailing object values, stopping when a non-object is discovered + for (j = propObjs.length - 1; j >= 0; j--) { + val = propObjs[j][name]; + + if (typeof val === 'object') { + complexObjs.unshift(val); + } + else if (val !== undefined) { + dest[name] = val; // if there were no objects, this value will be used + break; + } + } + + // if the trailing values were objects, use the merged value + if (complexObjs.length) { + dest[name] = mergeProps(complexObjs); + } + } + } + + // copy values into the destination, going from last to first + for (i = propObjs.length - 1; i >= 0; i--) { + props = propObjs[i]; + + for (name in props) { + if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign + dest[name] = props[name]; + } + } + } + + return dest; +} + + +// Create an object that has the given prototype. Just like Object.create +function createObject(proto) { + var f = function() {}; + f.prototype = proto; + return new f(); +} + + +function copyOwnProps(src, dest) { + for (var name in src) { + if (hasOwnProp(src, name)) { + dest[name] = src[name]; + } + } +} + + +// Copies over certain methods with the same names as Object.prototype methods. Overcomes an IE<=8 bug: +// https://developer.mozilla.org/en-US/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug +function copyNativeMethods(src, dest) { + var names = [ 'constructor', 'toString', 'valueOf' ]; + var i, name; + + for (i = 0; i < names.length; i++) { + name = names[i]; + + if (src[name] !== Object.prototype[name]) { + dest[name] = src[name]; + } + } +} + + +function hasOwnProp(obj, name) { + return hasOwnPropMethod.call(obj, name); +} + + +// Is the given value a non-object non-function value? +function isAtomic(val) { + return /undefined|null|boolean|number|string/.test($.type(val)); +} + + +function applyAll(functions, thisObj, args) { + if ($.isFunction(functions)) { + functions = [ functions ]; + } + if (functions) { + var i; + var ret; + for (i=0; i<functions.length; i++) { + ret = functions[i].apply(thisObj, args) || ret; + } + return ret; + } +} + + +function firstDefined() { + for (var i=0; i<arguments.length; i++) { + if (arguments[i] !== undefined) { + return arguments[i]; + } + } +} + + +function htmlEscape(s) { + return (s + '').replace(/&/g, '&') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"') + .replace(/\n/g, '<br />'); +} + + +function stripHtmlEntities(text) { + return text.replace(/&.*?;/g, ''); +} + + +// Given a hash of CSS properties, returns a string of CSS. +// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. +function cssToStr(cssProps) { + var statements = []; + + $.each(cssProps, function(name, val) { + if (val != null) { + statements.push(name + ':' + val); + } + }); + + return statements.join(';'); +} + + +function capitaliseFirstLetter(str) { + return str.charAt(0).toUpperCase() + str.slice(1); +} + + +function compareNumbers(a, b) { // for .sort() + return a - b; +} + + +function isInt(n) { + return n % 1 === 0; +} + + +// Returns a method bound to the given object context. +// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with +// different contexts as identical when binding/unbinding events. +function proxy(obj, methodName) { + var method = obj[methodName]; + + return function() { + return method.apply(obj, arguments); + }; +} + + +// Returns a function, that, as long as it continues to be invoked, will not +// be triggered. The function will be called after it stops being called for +// N milliseconds. +// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 +function debounce(func, wait) { + var timeoutId; + var args; + var context; + var timestamp; // of most recent call + var later = function() { + var last = +new Date() - timestamp; + if (last < wait && last > 0) { + timeoutId = setTimeout(later, wait - last); + } + else { + timeoutId = null; + func.apply(context, args); + if (!timeoutId) { + context = args = null; + } + } + }; + + return function() { + context = this; + args = arguments; + timestamp = +new Date(); + if (!timeoutId) { + timeoutId = setTimeout(later, wait); + } + }; +} + +;; + +var ambigDateOfMonthRegex = /^\s*\d{4}-\d\d$/; +var ambigTimeOrZoneRegex = + /^\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+)?)?)?)?)?$/; +var newMomentProto = moment.fn; // where we will attach our new methods +var oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods +var allowValueOptimization; +var setUTCValues; // function defined below +var setLocalValues; // function defined below + + +// Creating +// ------------------------------------------------------------------------------------------------- + +// Creates a new moment, similar to the vanilla moment(...) constructor, but with +// extra features (ambiguous time, enhanced formatting). When given an existing moment, +// it will function as a clone (and retain the zone of the moment). Anything else will +// result in a moment in the local zone. +FC.moment = function() { + return makeMoment(arguments); +}; + +// Sames as FC.moment, but forces the resulting moment to be in the UTC timezone. +FC.moment.utc = function() { + var mom = makeMoment(arguments, true); + + // Force it into UTC because makeMoment doesn't guarantee it + // (if given a pre-existing moment for example) + if (mom.hasTime()) { // don't give ambiguously-timed moments a UTC zone + mom.utc(); + } + + return mom; +}; + +// Same as FC.moment, but when given an ISO8601 string, the timezone offset is preserved. +// ISO8601 strings with no timezone offset will become ambiguously zoned. +FC.moment.parseZone = function() { + return makeMoment(arguments, true, true); +}; + +// Builds an enhanced moment from args. When given an existing moment, it clones. When given a +// native Date, or called with no arguments (the current time), the resulting moment will be local. +// Anything else needs to be "parsed" (a string or an array), and will be affected by: +// parseAsUTC - if there is no zone information, should we parse the input in UTC? +// parseZone - if there is zone information, should we force the zone of the moment? +function makeMoment(args, parseAsUTC, parseZone) { + var input = args[0]; + var isSingleString = args.length == 1 && typeof input === 'string'; + var isAmbigTime; + var isAmbigZone; + var ambigMatch; + var mom; + + if (moment.isMoment(input)) { + mom = moment.apply(null, args); // clone it + transferAmbigs(input, mom); // the ambig flags weren't transfered with the clone + } + else if (isNativeDate(input) || input === undefined) { + mom = moment.apply(null, args); // will be local + } + else { // "parsing" is required + isAmbigTime = false; + isAmbigZone = false; + + if (isSingleString) { + if (ambigDateOfMonthRegex.test(input)) { + // accept strings like '2014-05', but convert to the first of the month + input += '-01'; + args = [ input ]; // for when we pass it on to moment's constructor + isAmbigTime = true; + isAmbigZone = true; + } + else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) { + isAmbigTime = !ambigMatch[5]; // no time part? + isAmbigZone = true; + } + } + else if ($.isArray(input)) { + // arrays have no timezone information, so assume ambiguous zone + isAmbigZone = true; + } + // otherwise, probably a string with a format + + if (parseAsUTC || isAmbigTime) { + mom = moment.utc.apply(moment, args); + } + else { + mom = moment.apply(null, args); + } + + if (isAmbigTime) { + mom._ambigTime = true; + mom._ambigZone = true; // ambiguous time always means ambiguous zone + } + else if (parseZone) { // let's record the inputted zone somehow + if (isAmbigZone) { + mom._ambigZone = true; + } + else if (isSingleString) { + if (mom.utcOffset) { + mom.utcOffset(input); // if not a valid zone, will assign UTC + } + else { + mom.zone(input); // for moment-pre-2.9 + } + } + } + } + + mom._fullCalendar = true; // flag for extended functionality + + return mom; +} + + +// A clone method that works with the flags related to our enhanced functionality. +// In the future, use moment.momentProperties +newMomentProto.clone = function() { + var mom = oldMomentProto.clone.apply(this, arguments); + + // these flags weren't transfered with the clone + transferAmbigs(this, mom); + if (this._fullCalendar) { + mom._fullCalendar = true; + } + + return mom; +}; + + +// Week Number +// ------------------------------------------------------------------------------------------------- + + +// Returns the week number, considering the locale's custom week number calcuation +// `weeks` is an alias for `week` +newMomentProto.week = newMomentProto.weeks = function(input) { + var weekCalc = (this._locale || this._lang) // works pre-moment-2.8 + ._fullCalendar_weekCalc; + + if (input == null && typeof weekCalc === 'function') { // custom function only works for getter + return weekCalc(this); + } + else if (weekCalc === 'ISO') { + return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter + } + + return oldMomentProto.week.apply(this, arguments); // local getter/setter +}; + + +// Time-of-day +// ------------------------------------------------------------------------------------------------- + +// GETTER +// Returns a Duration with the hours/minutes/seconds/ms values of the moment. +// If the moment has an ambiguous time, a duration of 00:00 will be returned. +// +// SETTER +// You can supply a Duration, a Moment, or a Duration-like argument. +// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous. +newMomentProto.time = function(time) { + + // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar. + // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins. + if (!this._fullCalendar) { + return oldMomentProto.time.apply(this, arguments); + } + + if (time == null) { // getter + return moment.duration({ + hours: this.hours(), + minutes: this.minutes(), + seconds: this.seconds(), + milliseconds: this.milliseconds() + }); + } + else { // setter + + this._ambigTime = false; // mark that the moment now has a time + + if (!moment.isDuration(time) && !moment.isMoment(time)) { + time = moment.duration(time); + } + + // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day). + // Only for Duration times, not Moment times. + var dayHours = 0; + if (moment.isDuration(time)) { + dayHours = Math.floor(time.asDays()) * 24; + } + + // We need to set the individual fields. + // Can't use startOf('day') then add duration. In case of DST at start of day. + return this.hours(dayHours + time.hours()) + .minutes(time.minutes()) + .seconds(time.seconds()) + .milliseconds(time.milliseconds()); + } +}; + +// Converts the moment to UTC, stripping out its time-of-day and timezone offset, +// but preserving its YMD. A moment with a stripped time will display no time +// nor timezone offset when .format() is called. +newMomentProto.stripTime = function() { + var a; + + if (!this._ambigTime) { + + // get the values before any conversion happens + a = this.toArray(); // array of y/m/d/h/m/s/ms + + // TODO: use keepLocalTime in the future + this.utc(); // set the internal UTC flag (will clear the ambig flags) + setUTCValues(this, a.slice(0, 3)); // set the year/month/date. time will be zero + + // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(), + // which clears all ambig flags. Same with setUTCValues with moment-timezone. + this._ambigTime = true; + this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset + } + + return this; // for chaining +}; + +// Returns if the moment has a non-ambiguous time (boolean) +newMomentProto.hasTime = function() { + return !this._ambigTime; +}; + + +// Timezone +// ------------------------------------------------------------------------------------------------- + +// Converts the moment to UTC, stripping out its timezone offset, but preserving its +// YMD and time-of-day. A moment with a stripped timezone offset will display no +// timezone offset when .format() is called. +// TODO: look into Moment's keepLocalTime functionality +newMomentProto.stripZone = function() { + var a, wasAmbigTime; + + if (!this._ambigZone) { + + // get the values before any conversion happens + a = this.toArray(); // array of y/m/d/h/m/s/ms + wasAmbigTime = this._ambigTime; + + this.utc(); // set the internal UTC flag (might clear the ambig flags, depending on Moment internals) + setUTCValues(this, a); // will set the year/month/date/hours/minutes/seconds/ms + + // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore + this._ambigTime = wasAmbigTime || false; + + // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(), + // which clears the ambig flags. Same with setUTCValues with moment-timezone. + this._ambigZone = true; + } + + return this; // for chaining +}; + +// Returns of the moment has a non-ambiguous timezone offset (boolean) +newMomentProto.hasZone = function() { + return !this._ambigZone; +}; + + +// this method implicitly marks a zone +newMomentProto.local = function() { + var a = this.toArray(); // year,month,date,hours,minutes,seconds,ms as an array + var wasAmbigZone = this._ambigZone; + + oldMomentProto.local.apply(this, arguments); + + // ensure non-ambiguous + // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals + this._ambigTime = false; + this._ambigZone = false; + + if (wasAmbigZone) { + // If the moment was ambiguously zoned, the date fields were stored as UTC. + // We want to preserve these, but in local time. + // TODO: look into Moment's keepLocalTime functionality + setLocalValues(this, a); + } + + return this; // for chaining +}; + + +// implicitly marks a zone +newMomentProto.utc = function() { + oldMomentProto.utc.apply(this, arguments); + + // ensure non-ambiguous + // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals + this._ambigTime = false; + this._ambigZone = false; + + return this; +}; + + +// methods for arbitrarily manipulating timezone offset. +// should clear time/zone ambiguity when called. +$.each([ + 'zone', // only in moment-pre-2.9. deprecated afterwards + 'utcOffset' +], function(i, name) { + if (oldMomentProto[name]) { // original method exists? + + // this method implicitly marks a zone (will probably get called upon .utc() and .local()) + newMomentProto[name] = function(tzo) { + + if (tzo != null) { // setter + // these assignments needs to happen before the original zone method is called. + // I forget why, something to do with a browser crash. + this._ambigTime = false; + this._ambigZone = false; + } + + return oldMomentProto[name].apply(this, arguments); + }; + } +}); + + +// Formatting +// ------------------------------------------------------------------------------------------------- + +newMomentProto.format = function() { + if (this._fullCalendar && arguments[0]) { // an enhanced moment? and a format string provided? + return formatDate(this, arguments[0]); // our extended formatting + } + if (this._ambigTime) { + return oldMomentFormat(this, 'YYYY-MM-DD'); + } + if (this._ambigZone) { + return oldMomentFormat(this, 'YYYY-MM-DD[T]HH:mm:ss'); + } + return oldMomentProto.format.apply(this, arguments); +}; + +newMomentProto.toISOString = function() { + if (this._ambigTime) { + return oldMomentFormat(this, 'YYYY-MM-DD'); + } + if (this._ambigZone) { + return oldMomentFormat(this, 'YYYY-MM-DD[T]HH:mm:ss'); + } + return oldMomentProto.toISOString.apply(this, arguments); +}; + + +// Querying +// ------------------------------------------------------------------------------------------------- + +// Is the moment within the specified range? `end` is exclusive. +// FYI, this method is not a standard Moment method, so always do our enhanced logic. +newMomentProto.isWithin = function(start, end) { + var a = commonlyAmbiguate([ this, start, end ]); + return a[0] >= a[1] && a[0] < a[2]; +}; + +// When isSame is called with units, timezone ambiguity is normalized before the comparison happens. +// If no units specified, the two moments must be identically the same, with matching ambig flags. +newMomentProto.isSame = function(input, units) { + var a; + + // only do custom logic if this is an enhanced moment + if (!this._fullCalendar) { + return oldMomentProto.isSame.apply(this, arguments); + } + + if (units) { + a = commonlyAmbiguate([ this, input ], true); // normalize timezones but don't erase times + return oldMomentProto.isSame.call(a[0], a[1], units); + } + else { + input = FC.moment.parseZone(input); // normalize input + return oldMomentProto.isSame.call(this, input) && + Boolean(this._ambigTime) === Boolean(input._ambigTime) && + Boolean(this._ambigZone) === Boolean(input._ambigZone); + } +}; + +// Make these query methods work with ambiguous moments +$.each([ + 'isBefore', + 'isAfter' +], function(i, methodName) { + newMomentProto[methodName] = function(input, units) { + var a; + + // only do custom logic if this is an enhanced moment + if (!this._fullCalendar) { + return oldMomentProto[methodName].apply(this, arguments); + } + + a = commonlyAmbiguate([ this, input ]); + return oldMomentProto[methodName].call(a[0], a[1], units); + }; +}); + + +// Misc Internals +// ------------------------------------------------------------------------------------------------- + +// given an array of moment-like inputs, return a parallel array w/ moments similarly ambiguated. +// for example, of one moment has ambig time, but not others, all moments will have their time stripped. +// set `preserveTime` to `true` to keep times, but only normalize zone ambiguity. +// returns the original moments if no modifications are necessary. +function commonlyAmbiguate(inputs, preserveTime) { + var anyAmbigTime = false; + var anyAmbigZone = false; + var len = inputs.length; + var moms = []; + var i, mom; + + // parse inputs into real moments and query their ambig flags + for (i = 0; i < len; i++) { + mom = inputs[i]; + if (!moment.isMoment(mom)) { + mom = FC.moment.parseZone(mom); + } + anyAmbigTime = anyAmbigTime || mom._ambigTime; + anyAmbigZone = anyAmbigZone || mom._ambigZone; + moms.push(mom); + } + + // strip each moment down to lowest common ambiguity + // use clones to avoid modifying the original moments + for (i = 0; i < len; i++) { + mom = moms[i]; + if (!preserveTime && anyAmbigTime && !mom._ambigTime) { + moms[i] = mom.clone().stripTime(); + } + else if (anyAmbigZone && !mom._ambigZone) { + moms[i] = mom.clone().stripZone(); + } + } + + return moms; +} + +// Transfers all the flags related to ambiguous time/zone from the `src` moment to the `dest` moment +// TODO: look into moment.momentProperties for this. +function transferAmbigs(src, dest) { + if (src._ambigTime) { + dest._ambigTime = true; + } + else if (dest._ambigTime) { + dest._ambigTime = false; + } + + if (src._ambigZone) { + dest._ambigZone = true; + } + else if (dest._ambigZone) { + dest._ambigZone = false; + } +} + + +// Sets the year/month/date/etc values of the moment from the given array. +// Inefficient because it calls each individual setter. +function setMomentValues(mom, a) { + mom.year(a[0] || 0) + .month(a[1] || 0) + .date(a[2] || 0) + .hours(a[3] || 0) + .minutes(a[4] || 0) + .seconds(a[5] || 0) + .milliseconds(a[6] || 0); +} + +// Can we set the moment's internal date directly? +allowValueOptimization = '_d' in moment() && 'updateOffset' in moment; + +// Utility function. Accepts a moment and an array of the UTC year/month/date/etc values to set. +// Assumes the given moment is already in UTC mode. +setUTCValues = allowValueOptimization ? function(mom, a) { + // simlate what moment's accessors do + mom._d.setTime(Date.UTC.apply(Date, a)); + moment.updateOffset(mom, false); // keepTime=false +} : setMomentValues; + +// Utility function. Accepts a moment and an array of the local year/month/date/etc values to set. +// Assumes the given moment is already in local mode. +setLocalValues = allowValueOptimization ? function(mom, a) { + // simlate what moment's accessors do + mom._d.setTime(+new Date( // FYI, there is now way to apply an array of args to a constructor + a[0] || 0, + a[1] || 0, + a[2] || 0, + a[3] || 0, + a[4] || 0, + a[5] || 0, + a[6] || 0 + )); + moment.updateOffset(mom, false); // keepTime=false +} : setMomentValues; + +;; + +// Single Date Formatting +// ------------------------------------------------------------------------------------------------- + + +// call this if you want Moment's original format method to be used +function oldMomentFormat(mom, formatStr) { + return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js +} + + +// Formats `date` with a Moment formatting string, but allow our non-zero areas and +// additional token. +function formatDate(date, formatStr) { + return formatDateWithChunks(date, getFormatStringChunks(formatStr)); +} + + +function formatDateWithChunks(date, chunks) { + var s = ''; + var i; + + for (i=0; i<chunks.length; i++) { + s += formatDateWithChunk(date, chunks[i]); + } + + return s; +} + + +// addition formatting tokens we want recognized +var tokenOverrides = { + t: function(date) { // "a" or "p" + return oldMomentFormat(date, 'a').charAt(0); + }, + T: function(date) { // "A" or "P" + return oldMomentFormat(date, 'A').charAt(0); + } +}; + + +function formatDateWithChunk(date, chunk) { + var token; + var maybeStr; + + if (typeof chunk === 'string') { // a literal string + return chunk; + } + else if ((token = chunk.token)) { // a token, like "YYYY" + if (tokenOverrides[token]) { + return tokenOverrides[token](date); // use our custom token + } + return oldMomentFormat(date, token); + } + else if (chunk.maybe) { // a grouping of other chunks that must be non-zero + maybeStr = formatDateWithChunks(date, chunk.maybe); + if (maybeStr.match(/[1-9]/)) { + return maybeStr; + } + } + + return ''; +} + + +// Date Range Formatting +// ------------------------------------------------------------------------------------------------- +// TODO: make it work with timezone offset + +// Using a formatting string meant for a single date, generate a range string, like +// "Sep 2 - 9 2013", that intelligently inserts a separator where the dates differ. +// If the dates are the same as far as the format string is concerned, just return a single +// rendering of one date, without any separator. +function formatRange(date1, date2, formatStr, separator, isRTL) { + var localeData; + + date1 = FC.moment.parseZone(date1); + date2 = FC.moment.parseZone(date2); + + localeData = (date1.localeData || date1.lang).call(date1); // works with moment-pre-2.8 + + // Expand localized format strings, like "LL" -> "MMMM D YYYY" + formatStr = localeData.longDateFormat(formatStr) || formatStr; + // BTW, this is not important for `formatDate` because it is impossible to put custom tokens + // or non-zero areas in Moment's localized format strings. + + separator = separator || ' - '; + + return formatRangeWithChunks( + date1, + date2, + getFormatStringChunks(formatStr), + separator, + isRTL + ); +} +FC.formatRange = formatRange; // expose + + +function formatRangeWithChunks(date1, date2, chunks, separator, isRTL) { + var chunkStr; // the rendering of the chunk + var leftI; + var leftStr = ''; + var rightI; + var rightStr = ''; + var middleI; + var middleStr1 = ''; + var middleStr2 = ''; + var middleStr = ''; + + // Start at the leftmost side of the formatting string and continue until you hit a token + // that is not the same between dates. + for (leftI=0; leftI<chunks.length; leftI++) { + chunkStr = formatSimilarChunk(date1, date2, chunks[leftI]); + if (chunkStr === false) { + break; + } + leftStr += chunkStr; + } + + // Similarly, start at the rightmost side of the formatting string and move left + for (rightI=chunks.length-1; rightI>leftI; rightI--) { + chunkStr = formatSimilarChunk(date1, date2, chunks[rightI]); + if (chunkStr === false) { + break; + } + rightStr = chunkStr + rightStr; + } + + // The area in the middle is different for both of the dates. + // Collect them distinctly so we can jam them together later. + for (middleI=leftI; middleI<=rightI; middleI++) { + middleStr1 += formatDateWithChunk(date1, chunks[middleI]); + middleStr2 += formatDateWithChunk(date2, chunks[middleI]); + } + + if (middleStr1 || middleStr2) { + if (isRTL) { + middleStr = middleStr2 + separator + middleStr1; + } + else { + middleStr = middleStr1 + separator + middleStr2; + } + } + + return leftStr + middleStr + rightStr; +} + + +var similarUnitMap = { + Y: 'year', + M: 'month', + D: 'day', // day of month + d: 'day', // day of week + // prevents a separator between anything time-related... + A: 'second', // AM/PM + a: 'second', // am/pm + T: 'second', // A/P + t: 'second', // a/p + H: 'second', // hour (24) + h: 'second', // hour (12) + m: 'second', // minute + s: 'second' // second +}; +// TODO: week maybe? + + +// Given a formatting chunk, and given that both dates are similar in the regard the +// formatting chunk is concerned, format date1 against `chunk`. Otherwise, return `false`. +function formatSimilarChunk(date1, date2, chunk) { + var token; + var unit; + + if (typeof chunk === 'string') { // a literal string + return chunk; + } + else if ((token = chunk.token)) { + unit = similarUnitMap[token.charAt(0)]; + // are the dates the same for this unit of measurement? + if (unit && date1.isSame(date2, unit)) { + return oldMomentFormat(date1, token); // would be the same if we used `date2` + // BTW, don't support custom tokens + } + } + + return false; // the chunk is NOT the same for the two dates + // BTW, don't support splitting on non-zero areas +} + + +// Chunking Utils +// ------------------------------------------------------------------------------------------------- + + +var formatStringChunkCache = {}; + + +function getFormatStringChunks(formatStr) { + if (formatStr in formatStringChunkCache) { + return formatStringChunkCache[formatStr]; + } + return (formatStringChunkCache[formatStr] = chunkFormatString(formatStr)); +} + + +// Break the formatting string into an array of chunks +function chunkFormatString(formatStr) { + var chunks = []; + var chunker = /\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g; // TODO: more descrimination + var match; + + while ((match = chunker.exec(formatStr))) { + if (match[1]) { // a literal string inside [ ... ] + chunks.push(match[1]); + } + else if (match[2]) { // non-zero formatting inside ( ... ) + chunks.push({ maybe: chunkFormatString(match[2]) }); + } + else if (match[3]) { // a formatting token + chunks.push({ token: match[3] }); + } + else if (match[5]) { // an unenclosed literal string + chunks.push(match[5]); + } + } + + return chunks; +} + +;; + +FC.Class = Class; // export + +// Class that all other classes will inherit from +function Class() { } + + +// Called on a class to create a subclass. +// Last argument contains instance methods. Any argument before the last are considered mixins. +Class.extend = function() { + var len = arguments.length; + var i; + var members; + + for (i = 0; i < len; i++) { + members = arguments[i]; + if (i < len - 1) { // not the last argument? + mixIntoClass(this, members); + } + } + + return extendClass(this, members || {}); // members will be undefined if no arguments +}; + + +// Adds new member variables/methods to the class's prototype. +// Can be called with another class, or a plain object hash containing new members. +Class.mixin = function(members) { + mixIntoClass(this, members); +}; + + +function extendClass(superClass, members) { + var subClass; + + // ensure a constructor for the subclass, forwarding all arguments to the super-constructor if it doesn't exist + if (hasOwnProp(members, 'constructor')) { + subClass = members.constructor; + } + if (typeof subClass !== 'function') { + subClass = members.constructor = function() { + superClass.apply(this, arguments); + }; + } + + // build the base prototype for the subclass, which is an new object chained to the superclass's prototype + subClass.prototype = createObject(superClass.prototype); + + // copy each member variable/method onto the the subclass's prototype + copyOwnProps(members, subClass.prototype); + copyNativeMethods(members, subClass.prototype); // hack for IE8 + + // copy over all class variables/methods to the subclass, such as `extend` and `mixin` + copyOwnProps(superClass, subClass); + + return subClass; +} + + +function mixIntoClass(theClass, members) { + copyOwnProps(members.prototype || members, theClass.prototype); // TODO: copyNativeMethods? +} +;; + +var Emitter = FC.Emitter = Class.extend({ + + callbackHash: null, + + + on: function(name, callback) { + this.getCallbacks(name).add(callback); + return this; // for chaining + }, + + + off: function(name, callback) { + this.getCallbacks(name).remove(callback); + return this; // for chaining + }, + + + trigger: function(name) { // args... + var args = Array.prototype.slice.call(arguments, 1); + + this.triggerWith(name, this, args); + + return this; // for chaining + }, + + + triggerWith: function(name, context, args) { + var callbacks = this.getCallbacks(name); + + callbacks.fireWith(context, args); + + return this; // for chaining + }, + + + getCallbacks: function(name) { + var callbacks; + + if (!this.callbackHash) { + this.callbackHash = {}; + } + + callbacks = this.callbackHash[name]; + if (!callbacks) { + callbacks = this.callbackHash[name] = $.Callbacks(); + } + + return callbacks; + } + +}); +;; + +/* A rectangular panel that is absolutely positioned over other content +------------------------------------------------------------------------------------------------------------------------ +Options: + - className (string) + - content (HTML string or jQuery element set) + - parentEl + - top + - left + - right (the x coord of where the right edge should be. not a "CSS" right) + - autoHide (boolean) + - show (callback) + - hide (callback) +*/ + +var Popover = Class.extend({ + + isHidden: true, + options: null, + el: null, // the container element for the popover. generated by this object + documentMousedownProxy: null, // document mousedown handler bound to `this` + margin: 10, // the space required between the popover and the edges of the scroll container + + + constructor: function(options) { + this.options = options || {}; + }, + + + // Shows the popover on the specified position. Renders it if not already + show: function() { + if (this.isHidden) { + if (!this.el) { + this.render(); + } + this.el.show(); + this.position(); + this.isHidden = false; + this.trigger('show'); + } + }, + + + // Hides the popover, through CSS, but does not remove it from the DOM + hide: function() { + if (!this.isHidden) { + this.el.hide(); + this.isHidden = true; + this.trigger('hide'); + } + }, + + + // Creates `this.el` and renders content inside of it + render: function() { + var _this = this; + var options = this.options; + + this.el = $('<div class="fc-popover"/>') + .addClass(options.className || '') + .css({ + // position initially to the top left to avoid creating scrollbars + top: 0, + left: 0 + }) + .append(options.content) + .appendTo(options.parentEl); + + // when a click happens on anything inside with a 'fc-close' className, hide the popover + this.el.on('click', '.fc-close', function() { + _this.hide(); + }); + + if (options.autoHide) { + $(document).on('mousedown', this.documentMousedownProxy = proxy(this, 'documentMousedown')); + } + }, + + + // Triggered when the user clicks *anywhere* in the document, for the autoHide feature + documentMousedown: function(ev) { + // only hide the popover if the click happened outside the popover + if (this.el && !$(ev.target).closest(this.el).length) { + this.hide(); + } + }, + + + // Hides and unregisters any handlers + removeElement: function() { + this.hide(); + + if (this.el) { + this.el.remove(); + this.el = null; + } + + $(document).off('mousedown', this.documentMousedownProxy); + }, + + + // Positions the popover optimally, using the top/left/right options + position: function() { + var options = this.options; + var origin = this.el.offsetParent().offset(); + var width = this.el.outerWidth(); + var height = this.el.outerHeight(); + var windowEl = $(window); + var viewportEl = getScrollParent(this.el); + var viewportTop; + var viewportLeft; + var viewportOffset; + var top; // the "position" (not "offset") values for the popover + var left; // + + // compute top and left + top = options.top || 0; + if (options.left !== undefined) { + left = options.left; + } + else if (options.right !== undefined) { + left = options.right - width; // derive the left value from the right value + } + else { + left = 0; + } + + if (viewportEl.is(window) || viewportEl.is(document)) { // normalize getScrollParent's result + viewportEl = windowEl; + viewportTop = 0; // the window is always at the top left + viewportLeft = 0; // (and .offset() won't work if called here) + } + else { + viewportOffset = viewportEl.offset(); + viewportTop = viewportOffset.top; + viewportLeft = viewportOffset.left; + } + + // if the window is scrolled, it causes the visible area to be further down + viewportTop += windowEl.scrollTop(); + viewportLeft += windowEl.scrollLeft(); + + // constrain to the view port. if constrained by two edges, give precedence to top/left + if (options.viewportConstrain !== false) { + top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin); + top = Math.max(top, viewportTop + this.margin); + left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin); + left = Math.max(left, viewportLeft + this.margin); + } + + this.el.css({ + top: top - origin.top, + left: left - origin.left + }); + }, + + + // Triggers a callback. Calls a function in the option hash of the same name. + // Arguments beyond the first `name` are forwarded on. + // TODO: better code reuse for this. Repeat code + trigger: function(name) { + if (this.options[name]) { + this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); + } + } + +}); + +;; + /* - * Use fullcalendar.css for basic styling. - * For event drag & drop, requires jQuery UI draggable. - * For event resizing, requires jQuery UI resizable. - */ - -(function($, undefined) { +A cache for the left/right/top/bottom/width/height values for one or more elements. +Works with both offset (from topleft document) and position (from offsetParent). + +options: +- els +- isHorizontal +- isVertical +*/ +var CoordCache = FC.CoordCache = Class.extend({ + + els: null, // jQuery set (assumed to be siblings) + origin: null, // {left,top} position of offsetParent of els + boundingRect: null, // constrain cordinates to this rectangle. {left,right,top,bottom} or null + isHorizontal: false, // whether to query for left/right/width + isVertical: false, // whether to query for top/bottom/height + + // arrays of coordinates (offsets from topleft of document) + lefts: null, + rights: null, + tops: null, + bottoms: null, + + + constructor: function(options) { + this.els = $(options.els); + this.isHorizontal = options.isHorizontal; + this.isVertical = options.isVertical; + }, + + + // Queries the els for coordinates and stores them. + // Call this method before using and of the get* methods below. + build: function() { + this.origin = this.els.eq(0).offsetParent().offset(); + this.boundingRect = this.queryBoundingRect(); + + if (this.isHorizontal) { + this.buildElHorizontals(); + } + if (this.isVertical) { + this.buildElVerticals(); + } + }, + + + // Destroys all internal data about coordinates, freeing memory + clear: function() { + this.origin = null; + this.boundingRect = null; + this.lefts = null; + this.rights = null; + this.tops = null; + this.bottoms = null; + }, + + + // Compute and return what the elements' bounding rectangle is, from the user's perspective. + // Right now, only returns a rectangle if constrained by an overflow:scroll element. + queryBoundingRect: function() { + var scrollParentEl = getScrollParent(this.els.eq(0)); + + if (!scrollParentEl.is(document)) { + return getClientRect(scrollParentEl); + } + }, + + + // Populates the left/right internal coordinate arrays + buildElHorizontals: function() { + var lefts = []; + var rights = []; + + this.els.each(function(i, node) { + var el = $(node); + var left = el.offset().left; + var width = el.outerWidth(); + + lefts.push(left); + rights.push(left + width); + }); + + this.lefts = lefts; + this.rights = rights; + }, + + + // Populates the top/bottom internal coordinate arrays + buildElVerticals: function() { + var tops = []; + var bottoms = []; + + this.els.each(function(i, node) { + var el = $(node); + var top = el.offset().top; + var height = el.outerHeight(); + + tops.push(top); + bottoms.push(top + height); + }); + + this.tops = tops; + this.bottoms = bottoms; + }, + + + // Given a left offset (from document left), returns the index of the el that it horizontally intersects. + // If no intersection is made, or outside of the boundingRect, returns undefined. + getHorizontalIndex: function(leftOffset) { + var boundingRect = this.boundingRect; + var lefts = this.lefts; + var rights = this.rights; + var len = lefts.length; + var i; + + if (!boundingRect || (leftOffset >= boundingRect.left && leftOffset < boundingRect.right)) { + for (i = 0; i < len; i++) { + if (leftOffset >= lefts[i] && leftOffset < rights[i]) { + return i; + } + } + } + }, + + + // Given a top offset (from document top), returns the index of the el that it vertically intersects. + // If no intersection is made, or outside of the boundingRect, returns undefined. + getVerticalIndex: function(topOffset) { + var boundingRect = this.boundingRect; + var tops = this.tops; + var bottoms = this.bottoms; + var len = tops.length; + var i; + + if (!boundingRect || (topOffset >= boundingRect.top && topOffset < boundingRect.bottom)) { + for (i = 0; i < len; i++) { + if (topOffset >= tops[i] && topOffset < bottoms[i]) { + return i; + } + } + } + }, + + + // Gets the left offset (from document left) of the element at the given index + getLeftOffset: function(leftIndex) { + return this.lefts[leftIndex]; + }, + // Gets the left position (from offsetParent left) of the element at the given index + getLeftPosition: function(leftIndex) { + return this.lefts[leftIndex] - this.origin.left; + }, + + + // Gets the right offset (from document left) of the element at the given index. + // This value is NOT relative to the document's right edge, like the CSS concept of "right" would be. + getRightOffset: function(leftIndex) { + return this.rights[leftIndex]; + }, + + + // Gets the right position (from offsetParent left) of the element at the given index. + // This value is NOT relative to the offsetParent's right edge, like the CSS concept of "right" would be. + getRightPosition: function(leftIndex) { + return this.rights[leftIndex] - this.origin.left; + }, + + + // Gets the width of the element at the given index + getWidth: function(leftIndex) { + return this.rights[leftIndex] - this.lefts[leftIndex]; + }, + + + // Gets the top offset (from document top) of the element at the given index + getTopOffset: function(topIndex) { + return this.tops[topIndex]; + }, + + + // Gets the top position (from offsetParent top) of the element at the given position + getTopPosition: function(topIndex) { + return this.tops[topIndex] - this.origin.top; + }, + + // Gets the bottom offset (from the document top) of the element at the given index. + // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of "bottom" would be. + getBottomOffset: function(topIndex) { + return this.bottoms[topIndex]; + }, + + + // Gets the bottom position (from the offsetParent top) of the element at the given index. + // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of "bottom" would be. + getBottomPosition: function(topIndex) { + return this.bottoms[topIndex] - this.origin.top; + }, + + + // Gets the height of the element at the given index + getHeight: function(topIndex) { + return this.bottoms[topIndex] - this.tops[topIndex]; + } + +}); + ;; -var defaults = { +/* Tracks a drag's mouse movement, firing various handlers +----------------------------------------------------------------------------------------------------------------------*/ +// TODO: use Emitter - // display - defaultView: 'month', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' +var DragListener = FC.DragListener = Class.extend({ + + options: null, + + isListening: false, + isDragging: false, + + // coordinates of the initial mousedown + originX: null, + originY: null, + + // handler attached to the document, bound to the DragListener's `this` + mousemoveProxy: null, + mouseupProxy: null, + + // for IE8 bug-fighting behavior, for now + subjectEl: null, // the element being draged. optional + subjectHref: null, + + scrollEl: null, + scrollBounds: null, // { top, bottom, left, right } + scrollTopVel: null, // pixels per second + scrollLeftVel: null, // pixels per second + scrollIntervalId: null, // ID of setTimeout for scrolling animation loop + scrollHandlerProxy: null, // this-scoped function for handling when scrollEl is scrolled + + scrollSensitivity: 30, // pixels from edge for scrolling to start + scrollSpeed: 200, // pixels per second, at maximum speed + scrollIntervalMs: 50, // millisecond wait between scroll increment + + + constructor: function(options) { + options = options || {}; + this.options = options; + this.subjectEl = options.subjectEl; }, - weekends: true, - weekNumbers: false, - weekNumberCalculation: 'iso', - weekNumberTitle: 'W', - - // editing - //editable: false, - //disableDragging: false, - //disableResizing: false, - - allDayDefault: true, - ignoreTimezone: true, - - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - - // time formats - titleFormat: { - month: 'MMMM yyyy', - week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", - day: 'dddd, MMM d, yyyy' + + + // Call this when the user does a mousedown. Will probably lead to startListening + mousedown: function(ev) { + if (isPrimaryMouseButton(ev)) { + + ev.preventDefault(); // prevents native selection in most browsers + + this.startListening(ev); + + // start the drag immediately if there is no minimum distance for a drag start + if (!this.options.distance) { + this.startDrag(ev); + } + } }, - columnFormat: { - month: 'ddd', - week: 'ddd M/d', - day: 'dddd M/d' + + + // Call this to start tracking mouse movements + startListening: function(ev) { + var scrollParent; + + if (!this.isListening) { + + // grab scroll container and attach handler + if (ev && this.options.scroll) { + scrollParent = getScrollParent($(ev.target)); + if (!scrollParent.is(window) && !scrollParent.is(document)) { + this.scrollEl = scrollParent; + + // scope to `this`, and use `debounce` to make sure rapid calls don't happen + this.scrollHandlerProxy = debounce(proxy(this, 'scrollHandler'), 100); + this.scrollEl.on('scroll', this.scrollHandlerProxy); + } + } + + $(document) + .on('mousemove', this.mousemoveProxy = proxy(this, 'mousemove')) + .on('mouseup', this.mouseupProxy = proxy(this, 'mouseup')) + .on('selectstart', this.preventDefault); // prevents native selection in IE<=8 + + if (ev) { + this.originX = ev.pageX; + this.originY = ev.pageY; + } + else { + // if no starting information was given, origin will be the topleft corner of the screen. + // if so, dx/dy in the future will be the absolute coordinates. + this.originX = 0; + this.originY = 0; + } + + this.isListening = true; + this.listenStart(ev); + } }, - timeFormat: { // for event elements - '': 'h(:mm)t' // default + + + // Called when drag listening has started (but a real drag has not necessarily began) + listenStart: function(ev) { + this.trigger('listenStart', ev); }, - - // locale - isRTL: false, - 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: "<span class='fc-text-arrow'>‹</span>", - next: "<span class='fc-text-arrow'>›</span>", - prevYear: "<span class='fc-text-arrow'>«</span>", - nextYear: "<span class='fc-text-arrow'>»</span>", - today: 'today', - month: 'month', - week: 'week', - day: 'day' + + + // Called when the user moves the mouse + mousemove: function(ev) { + var dx = ev.pageX - this.originX; + var dy = ev.pageY - this.originY; + var minDistance; + var distanceSq; // current distance from the origin, squared + + if (!this.isDragging) { // if not already dragging... + // then start the drag if the minimum distance criteria is met + minDistance = this.options.distance || 1; + distanceSq = dx * dx + dy * dy; + if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem + this.startDrag(ev); + } + } + + if (this.isDragging) { + this.drag(dx, dy, ev); // report a drag, even if this mousemove initiated the drag + } }, - - // jquery-ui theming - theme: false, - buttonIcons: { - prev: 'circle-triangle-w', - next: 'circle-triangle-e' + + + // Call this to initiate a legitimate drag. + // This function is called internally from this class, but can also be called explicitly from outside + startDrag: function(ev) { + + if (!this.isListening) { // startDrag must have manually initiated + this.startListening(); + } + + if (!this.isDragging) { + this.isDragging = true; + this.dragStart(ev); + } }, - - //selectable: false, - unselectAuto: true, - - dropAccept: '*' - -}; -// right-to-left defaults -var rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' + + // Called when the actual drag has started (went beyond minDistance) + dragStart: function(ev) { + var subjectEl = this.subjectEl; + + this.trigger('dragStart', ev); + + // remove a mousedown'd <a>'s href so it is not visited (IE8 bug) + if ((this.subjectHref = subjectEl ? subjectEl.attr('href') : null)) { + subjectEl.removeAttr('href'); + } }, - buttonText: { - prev: "<span class='fc-text-arrow'>›</span>", - next: "<span class='fc-text-arrow'>‹</span>", - prevYear: "<span class='fc-text-arrow'>»</span>", - nextYear: "<span class='fc-text-arrow'>«</span>" + + + // Called while the mouse is being moved and when we know a legitimate drag is taking place + drag: function(dx, dy, ev) { + this.trigger('drag', dx, dy, ev); + this.updateScroll(ev); // will possibly cause scrolling }, - buttonIcons: { - prev: 'circle-triangle-e', - next: 'circle-triangle-w' + + + // Called when the user does a mouseup + mouseup: function(ev) { + this.stopListening(ev); + }, + + + // Called when the drag is over. Will not cause listening to stop however. + // A concluding 'cellOut' event will NOT be triggered. + stopDrag: function(ev) { + if (this.isDragging) { + this.stopScrolling(); + this.dragStop(ev); + this.isDragging = false; + } + }, + + + // Called when dragging has been stopped + dragStop: function(ev) { + var _this = this; + + this.trigger('dragStop', ev); + + // restore a mousedown'd <a>'s href (for IE8 bug) + setTimeout(function() { // must be outside of the click's execution + if (_this.subjectHref) { + _this.subjectEl.attr('href', _this.subjectHref); + } + }, 0); + }, + + + // Call this to stop listening to the user's mouse events + stopListening: function(ev) { + this.stopDrag(ev); // if there's a current drag, kill it + + if (this.isListening) { + + // remove the scroll handler if there is a scrollEl + if (this.scrollEl) { + this.scrollEl.off('scroll', this.scrollHandlerProxy); + this.scrollHandlerProxy = null; + } + + $(document) + .off('mousemove', this.mousemoveProxy) + .off('mouseup', this.mouseupProxy) + .off('selectstart', this.preventDefault); + + this.mousemoveProxy = null; + this.mouseupProxy = null; + + this.isListening = false; + this.listenStop(ev); + } + }, + + + // Called when drag listening has stopped + listenStop: function(ev) { + this.trigger('listenStop', ev); + }, + + + // Triggers a callback. Calls a function in the option hash of the same name. + // Arguments beyond the first `name` are forwarded on. + trigger: function(name) { + if (this.options[name]) { + this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); + } + }, + + + // Stops a given mouse event from doing it's native browser action. In our case, text selection. + preventDefault: function(ev) { + ev.preventDefault(); + }, + + + /* Scrolling + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes and stores the bounding rectangle of scrollEl + computeScrollBounds: function() { + var el = this.scrollEl; + + this.scrollBounds = el ? getOuterRect(el) : null; + // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars + }, + + + // Called when the dragging is in progress and scrolling should be updated + updateScroll: function(ev) { + var sensitivity = this.scrollSensitivity; + var bounds = this.scrollBounds; + var topCloseness, bottomCloseness; + var leftCloseness, rightCloseness; + var topVel = 0; + var leftVel = 0; + + if (bounds) { // only scroll if scrollEl exists + + // compute closeness to edges. valid range is from 0.0 - 1.0 + topCloseness = (sensitivity - (ev.pageY - bounds.top)) / sensitivity; + bottomCloseness = (sensitivity - (bounds.bottom - ev.pageY)) / sensitivity; + leftCloseness = (sensitivity - (ev.pageX - bounds.left)) / sensitivity; + rightCloseness = (sensitivity - (bounds.right - ev.pageX)) / sensitivity; + + // translate vertical closeness into velocity. + // mouse must be completely in bounds for velocity to happen. + if (topCloseness >= 0 && topCloseness <= 1) { + topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up + } + else if (bottomCloseness >= 0 && bottomCloseness <= 1) { + topVel = bottomCloseness * this.scrollSpeed; + } + + // translate horizontal closeness into velocity + if (leftCloseness >= 0 && leftCloseness <= 1) { + leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left + } + else if (rightCloseness >= 0 && rightCloseness <= 1) { + leftVel = rightCloseness * this.scrollSpeed; + } + } + + this.setScrollVel(topVel, leftVel); + }, + + + // Sets the speed-of-scrolling for the scrollEl + setScrollVel: function(topVel, leftVel) { + + this.scrollTopVel = topVel; + this.scrollLeftVel = leftVel; + + this.constrainScrollVel(); // massages into realistic values + + // if there is non-zero velocity, and an animation loop hasn't already started, then START + if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) { + this.scrollIntervalId = setInterval( + proxy(this, 'scrollIntervalFunc'), // scope to `this` + this.scrollIntervalMs + ); + } + }, + + + // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way + constrainScrollVel: function() { + var el = this.scrollEl; + + if (this.scrollTopVel < 0) { // scrolling up? + if (el.scrollTop() <= 0) { // already scrolled all the way up? + this.scrollTopVel = 0; + } + } + else if (this.scrollTopVel > 0) { // scrolling down? + if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) { // already scrolled all the way down? + this.scrollTopVel = 0; + } + } + + if (this.scrollLeftVel < 0) { // scrolling left? + if (el.scrollLeft() <= 0) { // already scrolled all the left? + this.scrollLeftVel = 0; + } + } + else if (this.scrollLeftVel > 0) { // scrolling right? + if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) { // already scrolled all the way right? + this.scrollLeftVel = 0; + } + } + }, + + + // This function gets called during every iteration of the scrolling animation loop + scrollIntervalFunc: function() { + var el = this.scrollEl; + var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by + + // change the value of scrollEl's scroll + if (this.scrollTopVel) { + el.scrollTop(el.scrollTop() + this.scrollTopVel * frac); + } + if (this.scrollLeftVel) { + el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac); + } + + this.constrainScrollVel(); // since the scroll values changed, recompute the velocities + + // if scrolled all the way, which causes the vels to be zero, stop the animation loop + if (!this.scrollTopVel && !this.scrollLeftVel) { + this.stopScrolling(); + } + }, + + + // Kills any existing scrolling animation loop + stopScrolling: function() { + if (this.scrollIntervalId) { + clearInterval(this.scrollIntervalId); + this.scrollIntervalId = null; + + // when all done with scrolling, recompute positions since they probably changed + this.scrollStop(); + } + }, + + + // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce) + scrollHandler: function() { + // recompute all coordinates, but *only* if this is *not* part of our scrolling animation + if (!this.scrollIntervalId) { + this.scrollStop(); + } + }, + + + // Called when scrolling has stopped, whether through auto scroll, or the user scrolling + scrollStop: function() { } -}; +}); + +;; + +/* Tracks mouse movements over a component and raises events about which hit the mouse is over. +------------------------------------------------------------------------------------------------------------------------ +options: +- subjectEl +- subjectCenter +*/ + +var HitDragListener = DragListener.extend({ + + component: null, // converts coordinates to hits + // methods: prepareHits, releaseHits, queryHit + + origHit: null, // the hit the mouse was over when listening started + hit: null, // the hit the mouse is over + coordAdjust: null, // delta that will be added to the mouse coordinates when computing collisions + + + constructor: function(component, options) { + DragListener.call(this, options); // call the super-constructor + + this.component = component; + }, + + + // Called when drag listening starts (but a real drag has not necessarily began). + // ev might be undefined if dragging was started manually. + listenStart: function(ev) { + var subjectEl = this.subjectEl; + var subjectRect; + var origPoint; + var point; + + DragListener.prototype.listenStart.apply(this, arguments); // call the super-method + + this.computeCoords(); + + if (ev) { + origPoint = { left: ev.pageX, top: ev.pageY }; + point = origPoint; + + // constrain the point to bounds of the element being dragged + if (subjectEl) { + subjectRect = getOuterRect(subjectEl); // used for centering as well + point = constrainPoint(point, subjectRect); + } + + this.origHit = this.queryHit(point.left, point.top); + + // treat the center of the subject as the collision point? + if (subjectEl && this.options.subjectCenter) { + + // only consider the area the subject overlaps the hit. best for large subjects. + // TODO: skip this if hit didn't supply left/right/top/bottom + if (this.origHit) { + subjectRect = intersectRects(this.origHit, subjectRect) || + subjectRect; // in case there is no intersection + } + + point = getRectCenter(subjectRect); + } + + this.coordAdjust = diffPoints(point, origPoint); // point - origPoint + } + else { + this.origHit = null; + this.coordAdjust = null; + } + }, + + + // Recomputes the drag-critical positions of elements + computeCoords: function() { + this.component.prepareHits(); + this.computeScrollBounds(); // why is this here??? + }, + + + // Called when the actual drag has started + dragStart: function(ev) { + var hit; + + DragListener.prototype.dragStart.apply(this, arguments); // call the super-method + + // might be different from this.origHit if the min-distance is large + hit = this.queryHit(ev.pageX, ev.pageY); + + // report the initial hit the mouse is over + // especially important if no min-distance and drag starts immediately + if (hit) { + this.hitOver(hit); + } + }, + + + // Called when the drag moves + drag: function(dx, dy, ev) { + var hit; + + DragListener.prototype.drag.apply(this, arguments); // call the super-method + + hit = this.queryHit(ev.pageX, ev.pageY); + + if (!isHitsEqual(hit, this.hit)) { // a different hit than before? + if (this.hit) { + this.hitOut(); + } + if (hit) { + this.hitOver(hit); + } + } + }, + + + // Called when dragging has been stopped + dragStop: function() { + this.hitDone(); + DragListener.prototype.dragStop.apply(this, arguments); // call the super-method + }, + + + // Called when a the mouse has just moved over a new hit + hitOver: function(hit) { + var isOrig = isHitsEqual(hit, this.origHit); + + this.hit = hit; + + this.trigger('hitOver', this.hit, isOrig, this.origHit); + }, + + + // Called when the mouse has just moved out of a hit + hitOut: function() { + if (this.hit) { + this.trigger('hitOut', this.hit); + this.hitDone(); + this.hit = null; + } + }, + + + // Called after a hitOut. Also called before a dragStop + hitDone: function() { + if (this.hit) { + this.trigger('hitDone', this.hit); + } + }, + + + // Called when drag listening has stopped + listenStop: function() { + DragListener.prototype.listenStop.apply(this, arguments); // call the super-method + + this.origHit = null; + this.hit = null; + + this.component.releaseHits(); + }, + + + // Called when scrolling has stopped, whether through auto scroll, or the user scrolling + scrollStop: function() { + DragListener.prototype.scrollStop.apply(this, arguments); // call the super-method + + this.computeCoords(); // hits' absolute positions will be in new places. recompute + }, + // Gets the hit underneath the coordinates for the given mouse event + queryHit: function(left, top) { + + if (this.coordAdjust) { + left += this.coordAdjust.left; + top += this.coordAdjust.top; + } + + return this.component.queryHit(left, top); + } + +}); + + +// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component. +// Two null values will be considered equal, as two "out of the component" states are the same. +function isHitsEqual(hit0, hit1) { + + if (!hit0 && !hit1) { + return true; + } + + if (hit0 && hit1) { + return hit0.component === hit1.component && + isHitPropsWithin(hit0, hit1) && + isHitPropsWithin(hit1, hit0); // ensures all props are identical + } + + return false; +} + + +// Returns true if all of subHit's non-standard properties are within superHit +function isHitPropsWithin(subHit, superHit) { + for (var propName in subHit) { + if (!/^(component|left|right|top|bottom)$/.test(propName)) { + if (subHit[propName] !== superHit[propName]) { + return false; + } + } + } + return true; +} + ;; -var fc = $.fullCalendar = { version: "1.6.0" }; -var fcViews = fc.views = {}; +/* Creates a clone of an element and lets it track the mouse as it moves +----------------------------------------------------------------------------------------------------------------------*/ +var MouseFollower = Class.extend({ -$.fn.fullCalendar = function(options) { + options: null, + sourceEl: null, // the element that will be cloned and made to look like it is dragging + el: null, // the clone of `sourceEl` that will track the mouse + parentEl: null, // the element that `el` (the clone) will be attached to - // method calling - if (typeof options == 'string') { - var args = Array.prototype.slice.call(arguments, 1); - var res; - this.each(function() { - var calendar = $.data(this, 'fullCalendar'); - if (calendar && $.isFunction(calendar[options])) { - var r = calendar[options].apply(calendar, args); - if (res === undefined) { - res = r; + // the initial position of el, relative to the offset parent. made to match the initial offset of sourceEl + top0: null, + left0: null, + + // the initial position of the mouse + mouseY0: null, + mouseX0: null, + + // the number of pixels the mouse has moved from its initial position + topDelta: null, + leftDelta: null, + + mousemoveProxy: null, // document mousemove handler, bound to the MouseFollower's `this` + + isFollowing: false, + isHidden: false, + isAnimating: false, // doing the revert animation? + + constructor: function(sourceEl, options) { + this.options = options = options || {}; + this.sourceEl = sourceEl; + this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent + }, + + + // Causes the element to start following the mouse + start: function(ev) { + if (!this.isFollowing) { + this.isFollowing = true; + + this.mouseY0 = ev.pageY; + this.mouseX0 = ev.pageX; + this.topDelta = 0; + this.leftDelta = 0; + + if (!this.isHidden) { + this.updatePosition(); + } + + $(document).on('mousemove', this.mousemoveProxy = proxy(this, 'mousemove')); + } + }, + + + // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position. + // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately. + stop: function(shouldRevert, callback) { + var _this = this; + var revertDuration = this.options.revertDuration; + + function complete() { + this.isAnimating = false; + _this.removeElement(); + + this.top0 = this.left0 = null; // reset state for future updatePosition calls + + if (callback) { + callback(); + } + } + + if (this.isFollowing && !this.isAnimating) { // disallow more than one stop animation at a time + this.isFollowing = false; + + $(document).off('mousemove', this.mousemoveProxy); + + if (shouldRevert && revertDuration && !this.isHidden) { // do a revert animation? + this.isAnimating = true; + this.el.animate({ + top: this.top0, + left: this.left0 + }, { + duration: revertDuration, + complete: complete + }); + } + else { + complete(); + } + } + }, + + + // Gets the tracking element. Create it if necessary + getEl: function() { + var el = this.el; + + if (!el) { + this.sourceEl.width(); // hack to force IE8 to compute correct bounding box + el = this.el = this.sourceEl.clone() + .css({ + position: 'absolute', + visibility: '', // in case original element was hidden (commonly through hideEvents()) + display: this.isHidden ? 'none' : '', // for when initially hidden + margin: 0, + right: 'auto', // erase and set width instead + bottom: 'auto', // erase and set height instead + width: this.sourceEl.width(), // explicit height in case there was a 'right' value + height: this.sourceEl.height(), // explicit width in case there was a 'bottom' value + opacity: this.options.opacity || '', + zIndex: this.options.zIndex + }) + .appendTo(this.parentEl); + } + + return el; + }, + + + // Removes the tracking element if it has already been created + removeElement: function() { + if (this.el) { + this.el.remove(); + this.el = null; + } + }, + + + // Update the CSS position of the tracking element + updatePosition: function() { + var sourceOffset; + var origin; + + this.getEl(); // ensure this.el + + // make sure origin info was computed + if (this.top0 === null) { + this.sourceEl.width(); // hack to force IE8 to compute correct bounding box + sourceOffset = this.sourceEl.offset(); + origin = this.el.offsetParent().offset(); + this.top0 = sourceOffset.top - origin.top; + this.left0 = sourceOffset.left - origin.left; + } + + this.el.css({ + top: this.top0 + this.topDelta, + left: this.left0 + this.leftDelta + }); + }, + + + // Gets called when the user moves the mouse + mousemove: function(ev) { + this.topDelta = ev.pageY - this.mouseY0; + this.leftDelta = ev.pageX - this.mouseX0; + + if (!this.isHidden) { + this.updatePosition(); + } + }, + + + // Temporarily makes the tracking element invisible. Can be called before following starts + hide: function() { + if (!this.isHidden) { + this.isHidden = true; + if (this.el) { + this.el.hide(); + } + } + }, + + + // Show the tracking element after it has been temporarily hidden + show: function() { + if (this.isHidden) { + this.isHidden = false; + this.updatePosition(); + this.getEl().show(); + } + } + +}); + +;; + +/* An abstract class comprised of a "grid" of areas that each represent a specific datetime +----------------------------------------------------------------------------------------------------------------------*/ + +var Grid = FC.Grid = Class.extend({ + + view: null, // a View object + isRTL: null, // shortcut to the view's isRTL option + + start: null, + end: null, + + el: null, // the containing element + elsByFill: null, // a hash of jQuery element sets used for rendering each fill. Keyed by fill name. + + externalDragStartProxy: null, // binds the Grid's scope to externalDragStart (in DayGrid.events) + + // derived from options + eventTimeFormat: null, + displayEventTime: null, + displayEventEnd: null, + + minResizeDuration: null, // TODO: hack. set by subclasses. minumum event resize duration + + // if defined, holds the unit identified (ex: "year" or "month") that determines the level of granularity + // of the date areas. if not defined, assumes to be day and time granularity. + // TODO: port isTimeScale into same system? + largeUnit: null, + + + constructor: function(view) { + this.view = view; + this.isRTL = view.opt('isRTL'); + + this.elsByFill = {}; + this.externalDragStartProxy = proxy(this, 'externalDragStart'); + }, + + + /* Options + ------------------------------------------------------------------------------------------------------------------*/ + + + // Generates the format string used for event time text, if not explicitly defined by 'timeFormat' + computeEventTimeFormat: function() { + return this.view.opt('smallTimeFormat'); + }, + + + // Determines whether events should have their end times displayed, if not explicitly defined by 'displayEventTime'. + // Only applies to non-all-day events. + computeDisplayEventTime: function() { + return true; + }, + + + // Determines whether events should have their end times displayed, if not explicitly defined by 'displayEventEnd' + computeDisplayEventEnd: function() { + return true; + }, + + + /* Dates + ------------------------------------------------------------------------------------------------------------------*/ + + + // Tells the grid about what period of time to display. + // Any date-related internal data should be generated. + setRange: function(range) { + this.start = range.start.clone(); + this.end = range.end.clone(); + + this.rangeUpdated(); + this.processRangeOptions(); + }, + + + // Called when internal variables that rely on the range should be updated + rangeUpdated: function() { + }, + + + // Updates values that rely on options and also relate to range + processRangeOptions: function() { + var view = this.view; + var displayEventTime; + var displayEventEnd; + + this.eventTimeFormat = + view.opt('eventTimeFormat') || + view.opt('timeFormat') || // deprecated + this.computeEventTimeFormat(); + + displayEventTime = view.opt('displayEventTime'); + if (displayEventTime == null) { + displayEventTime = this.computeDisplayEventTime(); // might be based off of range + } + + displayEventEnd = view.opt('displayEventEnd'); + if (displayEventEnd == null) { + displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range + } + + this.displayEventTime = displayEventTime; + this.displayEventEnd = displayEventEnd; + }, + + + // Converts a range with an inclusive `start` and an exclusive `end` into an array of segment objects + rangeToSegs: function(range) { + // subclasses must implement + }, + + + // Diffs the two dates, returning a duration, based on granularity of the grid + // TODO: port isTimeScale into this system? + diffDates: function(a, b) { + if (this.largeUnit) { + return diffByUnit(a, b, this.largeUnit); + } + else { + return diffDayTime(a, b); + } + }, + + + /* Hit Area + ------------------------------------------------------------------------------------------------------------------*/ + + + // Called before one or more queryHit calls might happen. Should prepare any cached coordinates for queryHit + prepareHits: function() { + }, + + + // Called when queryHit calls have subsided. Good place to clear any coordinate caches. + releaseHits: function() { + }, + + + // Given coordinates from the topleft of the document, return data about the date-related area underneath. + // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged). + // Must have a `grid` property, a reference to this current grid. TODO: avoid this + // The returned object will be processed by getHitSpan and getHitEl. + queryHit: function(leftOffset, topOffset) { + }, + + + // Given position-level information about a date-related area within the grid, + // should return an object with at least a start/end date. Can provide other information as well. + getHitSpan: function(hit) { + }, + + + // Given position-level information about a date-related area within the grid, + // should return a jQuery element that best represents it. passed to dayClick callback. + getHitEl: function(hit) { + }, + + + /* Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Sets the container element that the grid should render inside of. + // Does other DOM-related initializations. + setElement: function(el) { + var _this = this; + + this.el = el; + + // attach a handler to the grid's root element. + // jQuery will take care of unregistering them when removeElement gets called. + el.on('mousedown', function(ev) { + if ( + !$(ev.target).is('.fc-event-container *, .fc-more') && // not an an event element, or "more.." link + !$(ev.target).closest('.fc-popover').length // not on a popover (like the "more.." events one) + ) { + _this.dayMousedown(ev); + } + }); + + // attach event-element-related handlers. in Grid.events + // same garbage collection note as above. + this.bindSegHandlers(); + + this.bindGlobalHandlers(); + }, + + + // Removes the grid's container element from the DOM. Undoes any other DOM-related attachments. + // DOES NOT remove any content beforehand (doesn't clear events or call unrenderDates), unlike View + removeElement: function() { + this.unbindGlobalHandlers(); + + this.el.remove(); + + // NOTE: we don't null-out this.el for the same reasons we don't do it within View::removeElement + }, + + + // Renders the basic structure of grid view before any content is rendered + renderSkeleton: function() { + // subclasses should implement + }, + + + // Renders the grid's date-related content (like areas that represent days/times). + // Assumes setRange has already been called and the skeleton has already been rendered. + renderDates: function() { + // subclasses should implement + }, + + + // Unrenders the grid's date-related content + unrenderDates: function() { + // subclasses should implement + }, + + + /* Handlers + ------------------------------------------------------------------------------------------------------------------*/ + + + // Binds DOM handlers to elements that reside outside the grid, such as the document + bindGlobalHandlers: function() { + $(document).on('dragstart sortstart', this.externalDragStartProxy); // jqui + }, + + + // Unbinds DOM handlers from elements that reside outside the grid + unbindGlobalHandlers: function() { + $(document).off('dragstart sortstart', this.externalDragStartProxy); // jqui + }, + + + // Process a mousedown on an element that represents a day. For day clicking and selecting. + dayMousedown: function(ev) { + var _this = this; + var view = this.view; + var isSelectable = view.opt('selectable'); + var dayClickHit; // null if invalid dayClick + var selectionSpan; // null if invalid selection + + // this listener tracks a mousedown on a day element, and a subsequent drag. + // if the drag ends on the same day, it is a 'dayClick'. + // if 'selectable' is enabled, this listener also detects selections. + var dragListener = new HitDragListener(this, { + //distance: 5, // needs more work if we want dayClick to fire correctly + scroll: view.opt('dragScroll'), + dragStart: function() { + view.unselect(); // since we could be rendering a new selection, we want to clear any old one + }, + hitOver: function(hit, isOrig, origHit) { + if (origHit) { // click needs to have started on a hit + dayClickHit = isOrig ? hit : null; // single-hit selection is a day click + if (isSelectable) { + selectionSpan = _this.computeSelection( + _this.getHitSpan(origHit), + _this.getHitSpan(hit) + ); + if (selectionSpan) { + _this.renderSelection(selectionSpan); + } + else if (selectionSpan === false) { + disableCursor(); + } + } + } + }, + hitOut: function() { + dayClickHit = null; + selectionSpan = null; + _this.unrenderSelection(); + enableCursor(); + }, + listenStop: function(ev) { + if (dayClickHit) { + view.triggerDayClick( + _this.getHitSpan(dayClickHit).start, + _this.getHitEl(dayClickHit), + ev + ); } - if (options == 'destroy') { - $.removeData(this, 'fullCalendar'); + if (selectionSpan) { + // the selection will already have been rendered. just report it + view.reportSelection(selectionSpan, ev); } + enableCursor(); } }); - if (res !== undefined) { - return res; + + dragListener.mousedown(ev); // start listening, which will eventually initiate a dragStart + }, + + + /* Event Helper + ------------------------------------------------------------------------------------------------------------------*/ + // TODO: should probably move this to Grid.events, like we did event dragging / resizing + + + // Renders a mock event over the given range + renderRangeHelper: function(range, sourceSeg) { + var fakeEvent = this.fabricateHelperEvent(range, sourceSeg); + + this.renderHelper(fakeEvent, sourceSeg); // do the actual rendering + }, + + + // Builds a fake event given a date range it should cover, and a segment is should be inspired from. + // The range's end can be null, in which case the mock event that is rendered will have a null end time. + // `sourceSeg` is the internal segment object involved in the drag. If null, something external is dragging. + fabricateHelperEvent: function(range, sourceSeg) { + var fakeEvent = sourceSeg ? createObject(sourceSeg.event) : {}; // mask the original event object if possible + + fakeEvent.start = range.start.clone(); + fakeEvent.end = range.end ? range.end.clone() : null; + fakeEvent.allDay = null; // force it to be freshly computed by normalizeEventRange + this.view.calendar.normalizeEventRange(fakeEvent); + + // this extra className will be useful for differentiating real events from mock events in CSS + fakeEvent.className = (fakeEvent.className || []).concat('fc-helper'); + + // if something external is being dragged in, don't render a resizer + if (!sourceSeg) { + fakeEvent.editable = false; + } + + return fakeEvent; + }, + + + // Renders a mock event + renderHelper: function(event, sourceSeg) { + // subclasses must implement + }, + + + // Unrenders a mock event + unrenderHelper: function() { + // subclasses must implement + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection. Will highlight by default but can be overridden by subclasses. + renderSelection: function(range) { + this.renderHighlight(this.selectionRangeToSegs(range)); + }, + + + // Unrenders any visual indications of a selection. Will unrender a highlight by default. + unrenderSelection: function() { + this.unrenderHighlight(); + }, + + + // Given the first and last date-spans of a selection, returns another date-span object. + // Subclasses can override and provide additional data in the span object. Will be passed to renderSelection(). + // Will return false if the selection is invalid and this should be indicated to the user. + // Will return null/undefined if a selection invalid but no error should be reported. + computeSelection: function(span0, span1) { + var dates = [ span0.start, span0.end, span1.start, span1.end ]; + var combinedSpan; + + dates.sort(compareNumbers); // sorts chronologically. works with Moments + combinedSpan = { start: dates[0].clone(), end: dates[3].clone() }; + + if (!this.view.calendar.isSelectionRangeAllowed(combinedSpan)) { + return false; + } + + return combinedSpan; + }, + + + selectionRangeToSegs: function(range) { + return this.rangeToSegs(range); + }, + + + /* Highlight + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders an emphasis on the given date range. Given an array of segments. + renderHighlight: function(segs) { + this.renderFill('highlight', segs); + }, + + + // Unrenders the emphasis on a date range + unrenderHighlight: function() { + this.unrenderFill('highlight'); + }, + + + // Generates an array of classNames for rendering the highlight. Used by the fill system. + highlightSegClasses: function() { + return [ 'fc-highlight' ]; + }, + + + /* Fill System (highlight, background events, business hours) + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a set of rectangles over the given segments of time. + // MUST RETURN a subset of segs, the segs that were actually rendered. + // Responsible for populating this.elsByFill. TODO: better API for expressing this requirement + renderFill: function(type, segs) { + // subclasses must implement + }, + + + // Unrenders a specific type of fill that is currently rendered on the grid + unrenderFill: function(type) { + var el = this.elsByFill[type]; + + if (el) { + el.remove(); + delete this.elsByFill[type]; + } + }, + + + // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. + // Only returns segments that successfully rendered. + // To be harnessed by renderFill (implemented by subclasses). + // Analagous to renderFgSegEls. + renderFillSegEls: function(type, segs) { + var _this = this; + var segElMethod = this[type + 'SegEl']; + var html = ''; + var renderedSegs = []; + var i; + + if (segs.length) { + + // build a large concatenation of segment HTML + for (i = 0; i < segs.length; i++) { + html += this.fillSegHtml(type, segs[i]); + } + + // Grab individual elements from the combined HTML string. Use each as the default rendering. + // Then, compute the 'el' for each segment. + $(html).each(function(i, node) { + var seg = segs[i]; + var el = $(node); + + // allow custom filter methods per-type + if (segElMethod) { + el = segElMethod.call(_this, seg, el); + } + + if (el) { // custom filters did not cancel the render + el = $(el); // allow custom filter to return raw DOM node + + // correct element type? (would be bad if a non-TD were inserted into a table for example) + if (el.is(_this.fillSegTag)) { + seg.el = el; + renderedSegs.push(seg); + } + } + }); + } + + return renderedSegs; + }, + + + fillSegTag: 'div', // subclasses can override + + + // Builds the HTML needed for one fill segment. Generic enought o work with different types. + fillSegHtml: function(type, seg) { + + // custom hooks per-type + var classesMethod = this[type + 'SegClasses']; + var cssMethod = this[type + 'SegCss']; + + var classes = classesMethod ? classesMethod.call(this, seg) : []; + var css = cssToStr(cssMethod ? cssMethod.call(this, seg) : {}); + + return '<' + this.fillSegTag + + (classes.length ? ' class="' + classes.join(' ') + '"' : '') + + (css ? ' style="' + css + '"' : '') + + ' />'; + }, + + + + /* Generic rendering utilities for subclasses + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes HTML classNames for a single-day element + getDayClasses: function(date) { + var view = this.view; + var today = view.calendar.getNow().stripTime(); + var classes = [ 'fc-' + dayIDs[date.day()] ]; + + if ( + view.intervalDuration.as('months') == 1 && + date.month() != view.intervalStart.month() + ) { + classes.push('fc-other-month'); + } + + if (date.isSame(today, 'day')) { + classes.push( + 'fc-today', + view.highlightStateClass + ); + } + else if (date < today) { + classes.push('fc-past'); } - return this; + else { + classes.push('fc-future'); + } + + return classes; } - - - // would like to have this logic in EventManager, but needs to happen before options are recursively extended - var eventSources = options.eventSources || []; - delete options.eventSources; - if (options.events) { - eventSources.push(options.events); - delete options.events; + +}); + +;; + +/* Event-rendering and event-interaction methods for the abstract Grid class +----------------------------------------------------------------------------------------------------------------------*/ + +Grid.mixin({ + + mousedOverSeg: null, // the segment object the user's mouse is over. null if over nothing + isDraggingSeg: false, // is a segment being dragged? boolean + isResizingSeg: false, // is a segment being resized? boolean + isDraggingExternal: false, // jqui-dragging an external element? boolean + segs: null, // the event segments currently rendered in the grid + + + // Renders the given events onto the grid + renderEvents: function(events) { + var segs = this.eventsToSegs(events); + var bgSegs = []; + var fgSegs = []; + var i, seg; + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + + if (isBgEvent(seg.event)) { + bgSegs.push(seg); + } + else { + fgSegs.push(seg); + } + } + + // Render each different type of segment. + // Each function may return a subset of the segs, segs that were actually rendered. + bgSegs = this.renderBgSegs(bgSegs) || bgSegs; + fgSegs = this.renderFgSegs(fgSegs) || fgSegs; + + this.segs = bgSegs.concat(fgSegs); + }, + + + // Unrenders all events currently rendered on the grid + unrenderEvents: function() { + this.triggerSegMouseout(); // trigger an eventMouseout if user's mouse is over an event + + this.unrenderFgSegs(); + this.unrenderBgSegs(); + + this.segs = null; + }, + + + // Retrieves all rendered segment objects currently rendered on the grid + getEventSegs: function() { + return this.segs || []; + }, + + + /* Foreground Segment Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders foreground event segments onto the grid. May return a subset of segs that were rendered. + renderFgSegs: function(segs) { + // subclasses must implement + }, + + + // Unrenders all currently rendered foreground segments + unrenderFgSegs: function() { + // subclasses must implement + }, + + + // Renders and assigns an `el` property for each foreground event segment. + // Only returns segments that successfully rendered. + // A utility that subclasses may use. + renderFgSegEls: function(segs, disableResizing) { + var view = this.view; + var html = ''; + var renderedSegs = []; + var i; + + if (segs.length) { // don't build an empty html string + + // build a large concatenation of event segment HTML + for (i = 0; i < segs.length; i++) { + html += this.fgSegHtml(segs[i], disableResizing); + } + + // Grab individual elements from the combined HTML string. Use each as the default rendering. + // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. + $(html).each(function(i, node) { + var seg = segs[i]; + var el = view.resolveEventEl(seg.event, $(node)); + + if (el) { + el.data('fc-seg', seg); // used by handlers + seg.el = el; + renderedSegs.push(seg); + } + }); + } + + return renderedSegs; + }, + + + // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls() + fgSegHtml: function(seg, disableResizing) { + // subclasses should implement + }, + + + /* Background Segment Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders the given background event segments onto the grid. + // Returns a subset of the segs that were actually rendered. + renderBgSegs: function(segs) { + return this.renderFill('bgEvent', segs); + }, + + + // Unrenders all the currently rendered background event segments + unrenderBgSegs: function() { + this.unrenderFill('bgEvent'); + }, + + + // Renders a background event element, given the default rendering. Called by the fill system. + bgEventSegEl: function(seg, el) { + return this.view.resolveEventEl(seg.event, el); // will filter through eventRender + }, + + + // Generates an array of classNames to be used for the default rendering of a background event. + // Called by the fill system. + bgEventSegClasses: function(seg) { + var event = seg.event; + var source = event.source || {}; + + return [ 'fc-bgevent' ].concat( + event.className, + source.className || [] + ); + }, + + + // Generates a semicolon-separated CSS string to be used for the default rendering of a background event. + // Called by the fill system. + // TODO: consolidate with getEventSkinCss? + bgEventSegCss: function(seg) { + var view = this.view; + var event = seg.event; + var source = event.source || {}; + + return { + 'background-color': + event.backgroundColor || + event.color || + source.backgroundColor || + source.color || + view.opt('eventBackgroundColor') || + view.opt('eventColor') + }; + }, + + + // Generates an array of classNames to be used for the rendering business hours overlay. Called by the fill system. + businessHoursSegClasses: function(seg) { + return [ 'fc-nonbusiness', 'fc-bgevent' ]; + }, + + + /* Handlers + ------------------------------------------------------------------------------------------------------------------*/ + + + // Attaches event-element-related handlers to the container element and leverage bubbling + bindSegHandlers: function() { + var _this = this; + var view = this.view; + + $.each( + { + mouseenter: function(seg, ev) { + _this.triggerSegMouseover(seg, ev); + }, + mouseleave: function(seg, ev) { + _this.triggerSegMouseout(seg, ev); + }, + click: function(seg, ev) { + return view.trigger('eventClick', this, seg.event, ev); // can return `false` to cancel + }, + mousedown: function(seg, ev) { + if ($(ev.target).is('.fc-resizer') && view.isEventResizable(seg.event)) { + _this.segResizeMousedown(seg, ev, $(ev.target).is('.fc-start-resizer')); + } + else if (view.isEventDraggable(seg.event)) { + _this.segDragMousedown(seg, ev); + } + } + }, + function(name, func) { + // attach the handler to the container element and only listen for real event elements via bubbling + _this.el.on(name, '.fc-event-container > *', function(ev) { + var seg = $(this).data('fc-seg'); // grab segment data. put there by View::renderEvents + + // only call the handlers if there is not a drag/resize in progress + if (seg && !_this.isDraggingSeg && !_this.isResizingSeg) { + return func.call(this, seg, ev); // `this` will be the event element + } + }); + } + ); + }, + + + // Updates internal state and triggers handlers for when an event element is moused over + triggerSegMouseover: function(seg, ev) { + if (!this.mousedOverSeg) { + this.mousedOverSeg = seg; + this.view.trigger('eventMouseover', seg.el[0], seg.event, ev); + } + }, + + + // Updates internal state and triggers handlers for when an event element is moused out. + // Can be given no arguments, in which case it will mouseout the segment that was previously moused over. + triggerSegMouseout: function(seg, ev) { + ev = ev || {}; // if given no args, make a mock mouse event + + if (this.mousedOverSeg) { + seg = seg || this.mousedOverSeg; // if given no args, use the currently moused-over segment + this.mousedOverSeg = null; + this.view.trigger('eventMouseout', seg.el[0], seg.event, ev); + } + }, + + + /* Event Dragging + ------------------------------------------------------------------------------------------------------------------*/ + + + // Called when the user does a mousedown on an event, which might lead to dragging. + // Generic enough to work with any type of Grid. + segDragMousedown: function(seg, ev) { + var _this = this; + var view = this.view; + var calendar = view.calendar; + var el = seg.el; + var event = seg.event; + var dropLocation; // a "span" (start/end possibly with additional properties) + + // A clone of the original element that will move with the mouse + var mouseFollower = new MouseFollower(seg.el, { + parentEl: view.el, + opacity: view.opt('dragOpacity'), + revertDuration: view.opt('dragRevertDuration'), + zIndex: 2 // one above the .fc-view + }); + + // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents + // of the view. + var dragListener = new HitDragListener(view, { + distance: 5, + scroll: view.opt('dragScroll'), + subjectEl: el, + subjectCenter: true, + listenStart: function(ev) { + mouseFollower.hide(); // don't show until we know this is a real drag + mouseFollower.start(ev); + }, + dragStart: function(ev) { + _this.triggerSegMouseout(seg, ev); // ensure a mouseout on the manipulated event has been reported + _this.segDragStart(seg, ev); + view.hideEvent(event); // hide all event segments. our mouseFollower will take over + }, + hitOver: function(hit, isOrig, origHit) { + + // starting hit could be forced (DayGrid.limit) + if (seg.hit) { + origHit = seg.hit; + } + + // since we are querying the parent view, might not belong to this grid + dropLocation = _this.computeEventDrop( + origHit.component.getHitSpan(origHit), + hit.component.getHitSpan(hit), + event + ); + + if (dropLocation && !calendar.isEventRangeAllowed(dropLocation, event)) { + disableCursor(); + dropLocation = null; + } + + // if a valid drop location, have the subclass render a visual indication + if (dropLocation && view.renderDrag(dropLocation, seg)) { + mouseFollower.hide(); // if the subclass is already using a mock event "helper", hide our own + } + else { + mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping) + } + + if (isOrig) { + dropLocation = null; // needs to have moved hits to be a valid drop + } + }, + hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits + view.unrenderDrag(); // unrender whatever was done in renderDrag + mouseFollower.show(); // show in case we are moving out of all hits + dropLocation = null; + }, + hitDone: function() { // Called after a hitOut OR before a dragStop + enableCursor(); + }, + dragStop: function(ev) { + // do revert animation if hasn't changed. calls a callback when finished (whether animation or not) + mouseFollower.stop(!dropLocation, function() { + view.unrenderDrag(); + view.showEvent(event); + _this.segDragStop(seg, ev); + + if (dropLocation) { + view.reportEventDrop(event, dropLocation, this.largeUnit, el, ev); + } + }); + }, + listenStop: function() { + mouseFollower.stop(); // put in listenStop in case there was a mousedown but the drag never started + } + }); + + dragListener.mousedown(ev); // start listening, which will eventually lead to a dragStart + }, + + + // Called before event segment dragging starts + segDragStart: function(seg, ev) { + this.isDraggingSeg = true; + this.view.trigger('eventDragStart', seg.el[0], seg.event, ev, {}); // last argument is jqui dummy + }, + + + // Called after event segment dragging stops + segDragStop: function(seg, ev) { + this.isDraggingSeg = false; + this.view.trigger('eventDragStop', seg.el[0], seg.event, ev, {}); // last argument is jqui dummy + }, + + + // Given the spans an event drag began, and the span event was dropped, calculates the new start/end/allDay + // values for the event. Subclasses may override and set additional properties to be used by renderDrag. + // A falsy returned value indicates an invalid drop. + computeEventDrop: function(startSpan, endSpan, event) { + var calendar = this.view.calendar; + var dragStart = startSpan.start; + var dragEnd = endSpan.start; + var delta; + var dropLocation; + + if (dragStart.hasTime() === dragEnd.hasTime()) { + delta = this.diffDates(dragEnd, dragStart); + + // if an all-day event was in a timed area and it was dragged to a different time, + // guarantee an end and adjust start/end to have times + if (event.allDay && durationHasTime(delta)) { + dropLocation = { + start: event.start.clone(), + end: calendar.getEventEnd(event), // will be an ambig day + allDay: false // for normalizeEventRangeTimes + }; + calendar.normalizeEventRangeTimes(dropLocation); + } + // othewise, work off existing values + else { + dropLocation = { + start: event.start.clone(), + end: event.end ? event.end.clone() : null, + allDay: event.allDay // keep it the same + }; + } + + dropLocation.start.add(delta); + if (dropLocation.end) { + dropLocation.end.add(delta); + } + } + else { + // if switching from day <-> timed, start should be reset to the dropped date, and the end cleared + dropLocation = { + start: dragEnd.clone(), + end: null, // end should be cleared + allDay: !dragEnd.hasTime() + }; + } + + return dropLocation; + }, + + + // Utility for apply dragOpacity to a jQuery set + applyDragOpacity: function(els) { + var opacity = this.view.opt('dragOpacity'); + + if (opacity != null) { + els.each(function(i, node) { + // Don't use jQuery (will set an IE filter), do it the old fashioned way. + // In IE8, a helper element will disappears if there's a filter. + node.style.opacity = opacity; + }); + } + }, + + + /* External Element Dragging + ------------------------------------------------------------------------------------------------------------------*/ + + + // Called when a jQuery UI drag is initiated anywhere in the DOM + externalDragStart: function(ev, ui) { + var view = this.view; + var el; + var accept; + + if (view.opt('droppable')) { // only listen if this setting is on + el = $((ui ? ui.item : null) || ev.target); + + // Test that the dragged element passes the dropAccept selector or filter function. + // FYI, the default is "*" (matches all) + accept = view.opt('dropAccept'); + if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) { + if (!this.isDraggingExternal) { // prevent double-listening if fired twice + this.listenToExternalDrag(el, ev, ui); + } + } + } + }, + + + // Called when a jQuery UI drag starts and it needs to be monitored for dropping + listenToExternalDrag: function(el, ev, ui) { + var _this = this; + var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create + var dropLocation; // a null value signals an unsuccessful drag + + // listener that tracks mouse movement over date-associated pixel regions + var dragListener = new HitDragListener(this, { + listenStart: function() { + _this.isDraggingExternal = true; + }, + hitOver: function(hit) { + dropLocation = _this.computeExternalDrop( + hit.component.getHitSpan(hit), // since we are querying the parent view, might not belong to this grid + meta + ); + if (dropLocation) { + _this.renderDrag(dropLocation); // called without a seg parameter + } + else { // invalid hit + disableCursor(); + } + }, + hitOut: function() { + dropLocation = null; // signal unsuccessful + _this.unrenderDrag(); + enableCursor(); + }, + dragStop: function() { + _this.unrenderDrag(); + enableCursor(); + + if (dropLocation) { // element was dropped on a valid hit + _this.view.reportExternalDrop(meta, dropLocation, el, ev, ui); + } + }, + listenStop: function() { + _this.isDraggingExternal = false; + } + }); + + dragListener.startDrag(ev); // start listening immediately + }, + + + // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object), + // returns start/end dates for the event that would result from the hypothetical drop. end might be null. + // Returning a null value signals an invalid drop hit. + computeExternalDrop: function(span, meta) { + var dropLocation = { + start: span.start, + end: null + }; + + // if dropped on an all-day span, and element's metadata specified a time, set it + if (meta.startTime && !dropLocation.start.hasTime()) { + dropLocation.start.time(meta.startTime); + } + + if (meta.duration) { + dropLocation.end = dropLocation.start.clone().add(meta.duration); + } + + if (!this.view.calendar.isExternalDropRangeAllowed(dropLocation, meta.eventProps)) { + return null; + } + + return dropLocation; + }, + + + + /* Drag Rendering (for both events and an external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of an event or external element being dragged. + // `dropLocation` contains hypothetical start/end/allDay values the event would have if dropped. end can be null. + // `seg` is the internal segment object that is being dragged. If dragging an external element, `seg` is null. + // A truthy returned value indicates this method has rendered a helper element. + renderDrag: function(dropLocation, seg) { + // subclasses must implement + }, + + + // Unrenders a visual indication of an event or external element being dragged + unrenderDrag: function() { + // subclasses must implement + }, + + + /* Resizing + ------------------------------------------------------------------------------------------------------------------*/ + + + // Called when the user does a mousedown on an event's resizer, which might lead to resizing. + // Generic enough to work with any type of Grid. + segResizeMousedown: function(seg, ev, isStart) { + var _this = this; + var view = this.view; + var calendar = view.calendar; + var el = seg.el; + var event = seg.event; + var eventEnd = calendar.getEventEnd(event); + var resizeLocation; // falsy if invalid resize + + // Tracks mouse movement over the *grid's* coordinate map + var dragListener = new HitDragListener(this, { + distance: 5, + scroll: view.opt('dragScroll'), + subjectEl: el, + dragStart: function(ev) { + _this.triggerSegMouseout(seg, ev); // ensure a mouseout on the manipulated event has been reported + _this.segResizeStart(seg, ev); + }, + hitOver: function(hit, isOrig, origHit) { + var origHitSpan = _this.getHitSpan(origHit); + var hitSpan = _this.getHitSpan(hit); + + resizeLocation = isStart ? + _this.computeEventStartResize(origHitSpan, hitSpan, event) : + _this.computeEventEndResize(origHitSpan, hitSpan, event); + + if (resizeLocation) { + if (!calendar.isEventRangeAllowed(resizeLocation, event)) { + disableCursor(); + resizeLocation = null; + } + // no change? (TODO: how does this work with timezones?) + else if (resizeLocation.start.isSame(event.start) && resizeLocation.end.isSame(eventEnd)) { + resizeLocation = null; + } + } + + if (resizeLocation) { + view.hideEvent(event); + _this.renderEventResize(resizeLocation, seg); + } + }, + hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits + resizeLocation = null; + }, + hitDone: function() { // resets the rendering to show the original event + _this.unrenderEventResize(); + view.showEvent(event); + enableCursor(); + }, + dragStop: function(ev) { + _this.segResizeStop(seg, ev); + + if (resizeLocation) { // valid date to resize to? + view.reportEventResize(event, resizeLocation, this.largeUnit, el, ev); + } + } + }); + + dragListener.mousedown(ev); // start listening, which will eventually lead to a dragStart + }, + + + // Called before event segment resizing starts + segResizeStart: function(seg, ev) { + this.isResizingSeg = true; + this.view.trigger('eventResizeStart', seg.el[0], seg.event, ev, {}); // last argument is jqui dummy + }, + + + // Called after event segment resizing stops + segResizeStop: function(seg, ev) { + this.isResizingSeg = false; + this.view.trigger('eventResizeStop', seg.el[0], seg.event, ev, {}); // last argument is jqui dummy + }, + + + // Returns new date-information for an event segment being resized from its start + computeEventStartResize: function(startSpan, endSpan, event) { + return this.computeEventResize('start', startSpan, endSpan, event); + }, + + + // Returns new date-information for an event segment being resized from its end + computeEventEndResize: function(startSpan, endSpan, event) { + return this.computeEventResize('end', startSpan, endSpan, event); + }, + + + // Returns new date-information for an event segment being resized from its start OR end + // `type` is either 'start' or 'end' + computeEventResize: function(type, startSpan, endSpan, event) { + var calendar = this.view.calendar; + var delta = this.diffDates(endSpan[type], startSpan[type]); + var range; + var defaultDuration; + + // build original values to work from, guaranteeing a start and end + range = { + start: event.start.clone(), + end: calendar.getEventEnd(event), + allDay: event.allDay + }; + + // if an all-day event was in a timed area and was resized to a time, adjust start/end to have times + if (range.allDay && durationHasTime(delta)) { + range.allDay = false; + calendar.normalizeEventRangeTimes(range); + } + + range[type].add(delta); // apply delta to start or end + + // if the event was compressed too small, find a new reasonable duration for it + if (!range.start.isBefore(range.end)) { + + defaultDuration = + this.minResizeDuration || // TODO: hack + (event.allDay ? + calendar.defaultAllDayEventDuration : + calendar.defaultTimedEventDuration); + + if (type == 'start') { // resizing the start? + range.start = range.end.clone().subtract(defaultDuration); + } + else { // resizing the end? + range.end = range.start.clone().add(defaultDuration); + } + } + + return range; + }, + + + // Renders a visual indication of an event being resized. + // `range` has the updated dates of the event. `seg` is the original segment object involved in the drag. + renderEventResize: function(range, seg) { + // subclasses must implement + }, + + + // Unrenders a visual indication of an event being resized. + unrenderEventResize: function() { + // subclasses must implement + }, + + + /* Rendering Utils + ------------------------------------------------------------------------------------------------------------------*/ + + + // Compute the text that should be displayed on an event's element. + // `range` can be the Event object itself, or something range-like, with at least a `start`. + // If event times are disabled, or the event has no time, will return a blank string. + // If not specified, formatStr will default to the eventTimeFormat setting, + // and displayEnd will default to the displayEventEnd setting. + getEventTimeText: function(range, formatStr, displayEnd) { + + if (formatStr == null) { + formatStr = this.eventTimeFormat; + } + + if (displayEnd == null) { + displayEnd = this.displayEventEnd; + } + + if (this.displayEventTime && range.start.hasTime()) { + if (displayEnd && range.end) { + return this.view.formatRange(range, formatStr); + } + else { + return range.start.format(formatStr); + } + } + + return ''; + }, + + + // Generic utility for generating the HTML classNames for an event segment's element + getSegClasses: function(seg, isDraggable, isResizable) { + var event = seg.event; + var classes = [ + 'fc-event', + seg.isStart ? 'fc-start' : 'fc-not-start', + seg.isEnd ? 'fc-end' : 'fc-not-end' + ].concat( + event.className, + event.source ? event.source.className : [] + ); + + if (isDraggable) { + classes.push('fc-draggable'); + } + if (isResizable) { + classes.push('fc-resizable'); + } + + return classes; + }, + + + // Utility for generating event skin-related CSS properties + getEventSkinCss: function(event) { + var view = this.view; + var source = event.source || {}; + var eventColor = event.color; + var sourceColor = source.color; + var optionColor = view.opt('eventColor'); + + return { + 'background-color': + event.backgroundColor || + eventColor || + source.backgroundColor || + sourceColor || + view.opt('eventBackgroundColor') || + optionColor, + 'border-color': + event.borderColor || + eventColor || + source.borderColor || + sourceColor || + view.opt('eventBorderColor') || + optionColor, + color: + event.textColor || + source.textColor || + view.opt('eventTextColor') + }; + }, + + + /* Converting events -> ranges -> segs + ------------------------------------------------------------------------------------------------------------------*/ + + + // Converts an array of event objects into an array of event segment objects. + // A custom `rangeToSegsFunc` may be given for arbitrarily slicing up events. + // Doesn't guarantee an order for the resulting array. + eventsToSegs: function(events, rangeToSegsFunc) { + var eventRanges = this.eventsToRanges(events); + var segs = []; + var i; + + for (i = 0; i < eventRanges.length; i++) { + segs.push.apply( + segs, + this.eventRangeToSegs(eventRanges[i], rangeToSegsFunc) + ); + } + + return segs; + }, + + + // Converts an array of events into an array of "range" objects. + // A "range" object is a plain object with start/end properties denoting the time it covers. Also an event property. + // For "normal" events, this will be identical to the event's start/end, but for "inverse-background" events, + // will create an array of ranges that span the time *not* covered by the given event. + // Doesn't guarantee an order for the resulting array. + eventsToRanges: function(events) { + var _this = this; + var eventsById = groupEventsById(events); + var ranges = []; + + // group by ID so that related inverse-background events can be rendered together + $.each(eventsById, function(id, eventGroup) { + if (eventGroup.length) { + ranges.push.apply( + ranges, + isInverseBgEvent(eventGroup[0]) ? + _this.eventsToInverseRanges(eventGroup) : + _this.eventsToNormalRanges(eventGroup) + ); + } + }); + + return ranges; + }, + + + // Converts an array of "normal" events (not inverted rendering) into a parallel array of ranges + eventsToNormalRanges: function(events) { + var calendar = this.view.calendar; + var ranges = []; + var i, event; + var eventStart, eventEnd; + + for (i = 0; i < events.length; i++) { + event = events[i]; + + // make copies and normalize by stripping timezone + eventStart = event.start.clone().stripZone(); + eventEnd = calendar.getEventEnd(event).stripZone(); + + ranges.push({ + event: event, + start: eventStart, + end: eventEnd, + eventStartMS: +eventStart, + eventDurationMS: eventEnd - eventStart + }); + } + + return ranges; + }, + + + // Converts an array of events, with inverse-background rendering, into an array of range objects. + // The range objects will cover all the time NOT covered by the events. + eventsToInverseRanges: function(events) { + var view = this.view; + var viewStart = view.start.clone().stripZone(); // normalize timezone + var viewEnd = view.end.clone().stripZone(); // normalize timezone + var normalRanges = this.eventsToNormalRanges(events); // will give us normalized dates we can use w/o copies + var inverseRanges = []; + var event0 = events[0]; // assign this to each range's `.event` + var start = viewStart; // the end of the previous range. the start of the new range + var i, normalRange; + + // ranges need to be in order. required for our date-walking algorithm + normalRanges.sort(compareNormalRanges); + + for (i = 0; i < normalRanges.length; i++) { + normalRange = normalRanges[i]; + + // add the span of time before the event (if there is any) + if (normalRange.start > start) { // compare millisecond time (skip any ambig logic) + inverseRanges.push({ + event: event0, + start: start, + end: normalRange.start + }); + } + + start = normalRange.end; + } + + // add the span of time after the last event (if there is any) + if (start < viewEnd) { // compare millisecond time (skip any ambig logic) + inverseRanges.push({ + event: event0, + start: start, + end: viewEnd + }); + } + + return inverseRanges; + }, + + + // Slices the given event range into one or more segment objects. + // A `rangeToSegsFunc` custom slicing function can be given. + eventRangeToSegs: function(eventRange, rangeToSegsFunc) { + var segs; + var i, seg; + + eventRange = this.view.calendar.ensureVisibleEventRange(eventRange); + + if (rangeToSegsFunc) { + segs = rangeToSegsFunc(eventRange); + } + else { + segs = this.rangeToSegs(eventRange); // defined by the subclass + } + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + seg.event = eventRange.event; + seg.eventStartMS = eventRange.eventStartMS; + seg.eventDurationMS = eventRange.eventDurationMS; + } + + return segs; + }, + + + sortSegs: function(segs) { + segs.sort(proxy(this, 'compareSegs')); + }, + + + // A cmp function for determining which segments should take visual priority + // DOES NOT WORK ON INVERTED BACKGROUND EVENTS because they have no eventStartMS/eventDurationMS + compareSegs: function(seg1, seg2) { + return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first + seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first + seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) + compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); + } + +}); + + +/* Utilities +----------------------------------------------------------------------------------------------------------------------*/ + + +function isBgEvent(event) { // returns true if background OR inverse-background + var rendering = getEventRendering(event); + return rendering === 'background' || rendering === 'inverse-background'; +} + + +function isInverseBgEvent(event) { + return getEventRendering(event) === 'inverse-background'; +} + + +function getEventRendering(event) { + return firstDefined((event.source || {}).rendering, event.rendering); +} + + +function groupEventsById(events) { + var eventsById = {}; + var i, event; + + for (i = 0; i < events.length; i++) { + event = events[i]; + (eventsById[event._id] || (eventsById[event._id] = [])).push(event); + } + + return eventsById; +} + + +// A cmp function for determining which non-inverted "ranges" (see above) happen earlier +function compareNormalRanges(range1, range2) { + return range1.eventStartMS - range2.eventStartMS; // earlier ranges go first +} + + +/* External-Dragging-Element Data +----------------------------------------------------------------------------------------------------------------------*/ + +// Require all HTML5 data-* attributes used by FullCalendar to have this prefix. +// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event. +FC.dataAttrPrefix = ''; + +// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure +// to be used for Event Object creation. +// A defined `.eventProps`, even when empty, indicates that an event should be created. +function getDraggedElMeta(el) { + var prefix = FC.dataAttrPrefix; + var eventProps; // properties for creating the event, not related to date/time + var startTime; // a Duration + var duration; + var stick; + + if (prefix) { prefix += '-'; } + eventProps = el.data(prefix + 'event') || null; + + if (eventProps) { + if (typeof eventProps === 'object') { + eventProps = $.extend({}, eventProps); // make a copy + } + else { // something like 1 or true. still signal event creation + eventProps = {}; + } + + // pluck special-cased date/time properties + startTime = eventProps.start; + if (startTime == null) { startTime = eventProps.time; } // accept 'time' as well + duration = eventProps.duration; + stick = eventProps.stick; + delete eventProps.start; + delete eventProps.time; + delete eventProps.duration; + delete eventProps.stick; + } + + // fallback to standalone attribute values for each of the date/time properties + if (startTime == null) { startTime = el.data(prefix + 'start'); } + if (startTime == null) { startTime = el.data(prefix + 'time'); } // accept 'time' as well + if (duration == null) { duration = el.data(prefix + 'duration'); } + if (stick == null) { stick = el.data(prefix + 'stick'); } + + // massage into correct data types + startTime = startTime != null ? moment.duration(startTime) : null; + duration = duration != null ? moment.duration(duration) : null; + stick = Boolean(stick); + + return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick }; +} + + +;; + +/* +A set of rendering and date-related methods for a visual component comprised of one or more rows of day columns. +Prerequisite: the object being mixed into needs to be a *Grid* +*/ +var DayTableMixin = FC.DayTableMixin = { + + breakOnWeeks: false, // should create a new row for each week? + dayDates: null, // whole-day dates for each column. left to right + dayIndices: null, // for each day from start, the offset + daysPerRow: null, + rowCnt: null, + colCnt: null, + colHeadFormat: null, + + + // Populates internal variables used for date calculation and rendering + updateDayTable: function() { + var view = this.view; + var date = this.start.clone(); + var dayIndex = -1; + var dayIndices = []; + var dayDates = []; + var daysPerRow; + var firstDay; + var rowCnt; + + while (date.isBefore(this.end)) { // loop each day from start to end + if (view.isHiddenDay(date)) { + dayIndices.push(dayIndex + 0.5); // mark that it's between indices + } + else { + dayIndex++; + dayIndices.push(dayIndex); + dayDates.push(date.clone()); + } + date.add(1, 'days'); + } + + if (this.breakOnWeeks) { + // count columns until the day-of-week repeats + firstDay = dayDates[0].day(); + for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) { + if (dayDates[daysPerRow].day() == firstDay) { + break; + } + } + rowCnt = Math.ceil(dayDates.length / daysPerRow); + } + else { + rowCnt = 1; + daysPerRow = dayDates.length; + } + + this.dayDates = dayDates; + this.dayIndices = dayIndices; + this.daysPerRow = daysPerRow; + this.rowCnt = rowCnt; + + this.updateDayTableCols(); + }, + + + // Computes and assigned the colCnt property and updates any options that may be computed from it + updateDayTableCols: function() { + this.colCnt = this.computeColCnt(); + this.colHeadFormat = this.view.opt('columnFormat') || this.computeColHeadFormat(); + }, + + + // Determines how many columns there should be in the table + computeColCnt: function() { + return this.daysPerRow; + }, + + + // Computes the ambiguously-timed moment for the given cell + getCellDate: function(row, col) { + return this.dayDates[ + this.getCellDayIndex(row, col) + ].clone(); + }, + + + // Computes the ambiguously-timed date range for the given cell + getCellRange: function(row, col) { + var start = this.getCellDate(row, col); + var end = start.clone().add(1, 'days'); + + return { start: start, end: end }; + }, + + + // Returns the number of day cells, chronologically, from the first of the grid (0-based) + getCellDayIndex: function(row, col) { + return row * this.daysPerRow + this.getColDayIndex(col); + }, + + + // Returns the numner of day cells, chronologically, from the first cell in *any given row* + getColDayIndex: function(col) { + if (this.isRTL) { + return this.colCnt - 1 - col; + } + else { + return col; + } + }, + + + // Given a date, returns its chronolocial cell-index from the first cell of the grid. + // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. + // If before the first offset, returns a negative number. + // If after the last offset, returns an offset past the last cell offset. + // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. + getDateDayIndex: function(date) { + var dayIndices = this.dayIndices; + var dayOffset = date.diff(this.start, 'days'); + + if (dayOffset < 0) { + return dayIndices[0] - 1; + } + else if (dayOffset >= dayIndices.length) { + return dayIndices[dayIndices.length - 1] + 1; + } + else { + return dayIndices[dayOffset]; + } + }, + + + /* Options + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes a default column header formatting string if `colFormat` is not explicitly defined + computeColHeadFormat: function() { + // if more than one week row, or if there are a lot of columns with not much space, + // put just the day numbers will be in each cell + if (this.rowCnt > 1 || this.colCnt > 10) { + return 'ddd'; // "Sat" + } + // multiple days, so full single date string WON'T be in title text + else if (this.colCnt > 1) { + return this.view.opt('dayOfMonthFormat'); // "Sat 12/10" + } + // single day, so full single date string will probably be in title text + else { + return 'dddd'; // "Saturday" + } + }, + + + /* Slicing + ------------------------------------------------------------------------------------------------------------------*/ + + + // Slices up a date range into a segment for every week-row it intersects with + sliceRangeByRow: function(range) { + var daysPerRow = this.daysPerRow; + var normalRange = this.view.computeDayRange(range); // make whole-day range, considering nextDayThreshold + var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index + var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index + var segs = []; + var row; + var rowFirst, rowLast; // inclusive day-index range for current row + var segFirst, segLast; // inclusive day-index range for segment + + for (row = 0; row < this.rowCnt; row++) { + rowFirst = row * daysPerRow; + rowLast = rowFirst + daysPerRow - 1; + + // intersect segment's offset range with the row's + segFirst = Math.max(rangeFirst, rowFirst); + segLast = Math.min(rangeLast, rowLast); + + // deal with in-between indices + segFirst = Math.ceil(segFirst); // in-between starts round to next cell + segLast = Math.floor(segLast); // in-between ends round to prev cell + + if (segFirst <= segLast) { // was there any intersection with the current row? + segs.push({ + row: row, + + // normalize to start of row + firstRowDayIndex: segFirst - rowFirst, + lastRowDayIndex: segLast - rowFirst, + + // must be matching integers to be the segment's start/end + isStart: segFirst === rangeFirst, + isEnd: segLast === rangeLast + }); + } + } + + return segs; + }, + + + // Slices up a date range into a segment for every day-cell it intersects with. + // TODO: make more DRY with sliceRangeByRow somehow. + sliceRangeByDay: function(range) { + var daysPerRow = this.daysPerRow; + var normalRange = this.view.computeDayRange(range); // make whole-day range, considering nextDayThreshold + var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index + var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index + var segs = []; + var row; + var rowFirst, rowLast; // inclusive day-index range for current row + var i; + var segFirst, segLast; // inclusive day-index range for segment + + for (row = 0; row < this.rowCnt; row++) { + rowFirst = row * daysPerRow; + rowLast = rowFirst + daysPerRow - 1; + + for (i = rowFirst; i <= rowLast; i++) { + + // intersect segment's offset range with the row's + segFirst = Math.max(rangeFirst, i); + segLast = Math.min(rangeLast, i); + + // deal with in-between indices + segFirst = Math.ceil(segFirst); // in-between starts round to next cell + segLast = Math.floor(segLast); // in-between ends round to prev cell + + if (segFirst <= segLast) { // was there any intersection with the current row? + segs.push({ + row: row, + + // normalize to start of row + firstRowDayIndex: segFirst - rowFirst, + lastRowDayIndex: segLast - rowFirst, + + // must be matching integers to be the segment's start/end + isStart: segFirst === rangeFirst, + isEnd: segLast === rangeLast + }); + } + } + } + + return segs; + }, + + + /* Header Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + renderHeadHtml: function() { + var view = this.view; + + return '' + + '<div class="fc-row ' + view.widgetHeaderClass + '">' + + '<table>' + + '<thead>' + + this.renderHeadTrHtml() + + '</thead>' + + '</table>' + + '</div>'; + }, + + + renderHeadIntroHtml: function() { + return this.renderIntroHtml(); // fall back to generic + }, + + + renderHeadTrHtml: function() { + return '' + + '<tr>' + + (this.isRTL ? '' : this.renderHeadIntroHtml()) + + this.renderHeadDateCellsHtml() + + (this.isRTL ? this.renderHeadIntroHtml() : '') + + '</tr>'; + }, + + + renderHeadDateCellsHtml: function() { + var htmls = []; + var col, date; + + for (col = 0; col < this.colCnt; col++) { + date = this.getCellDate(0, col); + htmls.push(this.renderHeadDateCellHtml(date)); + } + + return htmls.join(''); + }, + + + renderHeadDateCellHtml: function(date, colspan) { + var view = this.view; + + return '' + + '<th class="fc-day-header ' + view.widgetHeaderClass + ' fc-' + dayIDs[date.day()] + '"' + + (colspan > 1 ? ' colspan="' + colspan + '"' : '') + + '>' + + htmlEscape(date.format(this.colHeadFormat)) + + '</th>'; + }, + + + /* Background Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + renderBgTrHtml: function(row) { + return '' + + '<tr>' + + (this.isRTL ? '' : this.renderBgIntroHtml(row)) + + this.renderBgCellsHtml(row) + + (this.isRTL ? this.renderBgIntroHtml(row) : '') + + '</tr>'; + }, + + + renderBgIntroHtml: function(row) { + return this.renderIntroHtml(); // fall back to generic + }, + + + renderBgCellsHtml: function(row) { + var htmls = []; + var col, date; + + for (col = 0; col < this.colCnt; col++) { + date = this.getCellDate(row, col); + htmls.push(this.renderBgCellHtml(date)); + } + + return htmls.join(''); + }, + + + renderBgCellHtml: function(date) { + var view = this.view; + var classes = this.getDayClasses(date); + + classes.unshift('fc-day', view.widgetContentClass); + + return '<td class="' + classes.join(' ') + '"' + + ' data-date="' + date.format('YYYY-MM-DD') + '"' + // if date has a time, won't format it + '></td>'; + }, + + + /* Generic + ------------------------------------------------------------------------------------------------------------------*/ + + + // Generates the default HTML intro for any row. User classes should override + renderIntroHtml: function() { + }, + + + /* Utils + ------------------------------------------------------------------------------------------------------------------*/ + + + // Applies the generic "intro" and "outro" HTML to the given cells. + // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro. + bookendCells: function(trEl) { + var introHtml = this.renderIntroHtml(); + + if (introHtml) { + if (this.isRTL) { + trEl.append(introHtml); + } + else { + trEl.prepend(introHtml); + } + } } - - options = $.extend(true, {}, - defaults, - (options.isRTL || options.isRTL===undefined && defaults.isRTL) ? rtlDefaults : {}, - options - ); - - - this.each(function(i, _element) { - var element = $(_element); - var calendar = new Calendar(element, options, eventSources); - element.data('fullCalendar', calendar); // TODO: look into memory leak implications - calendar.render(); - }); - - - return this; - }; +;; + +/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week. +----------------------------------------------------------------------------------------------------------------------*/ + +var DayGrid = FC.DayGrid = Grid.extend(DayTableMixin, { + + numbersVisible: false, // should render a row for day/week numbers? set by outside view. TODO: make internal + bottomCoordPadding: 0, // hack for extending the hit area for the last row of the coordinate grid + + rowEls: null, // set of fake row elements + cellEls: null, // set of whole-day elements comprising the row's background + helperEls: null, // set of cell skeleton elements for rendering the mock event "helper" + + rowCoordCache: null, + colCoordCache: null, + + + // Renders the rows and columns into the component's `this.el`, which should already be assigned. + // isRigid determins whether the individual rows should ignore the contents and be a constant height. + // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient. + renderDates: function(isRigid) { + var view = this.view; + var rowCnt = this.rowCnt; + var colCnt = this.colCnt; + var html = ''; + var row; + var col; + + for (row = 0; row < rowCnt; row++) { + html += this.renderDayRowHtml(row, isRigid); + } + this.el.html(html); + + this.rowEls = this.el.find('.fc-row'); + this.cellEls = this.el.find('.fc-day'); + + this.rowCoordCache = new CoordCache({ + els: this.rowEls, + isVertical: true + }); + this.colCoordCache = new CoordCache({ + els: this.cellEls.slice(0, this.colCnt), // only the first row + isHorizontal: true + }); + + // trigger dayRender with each cell's element + for (row = 0; row < rowCnt; row++) { + for (col = 0; col < colCnt; col++) { + view.trigger( + 'dayRender', + null, + this.getCellDate(row, col), + this.getCellEl(row, col) + ); + } + } + }, + + + unrenderDates: function() { + this.removeSegPopover(); + }, + + + renderBusinessHours: function() { + var events = this.view.calendar.getBusinessHoursEvents(true); // wholeDay=true + var segs = this.eventsToSegs(events); + + this.renderFill('businessHours', segs, 'bgevent'); + }, + + + // Generates the HTML for a single row, which is a div that wraps a table. + // `row` is the row number. + renderDayRowHtml: function(row, isRigid) { + var view = this.view; + var classes = [ 'fc-row', 'fc-week', view.widgetContentClass ]; + + if (isRigid) { + classes.push('fc-rigid'); + } + + return '' + + '<div class="' + classes.join(' ') + '">' + + '<div class="fc-bg">' + + '<table>' + + this.renderBgTrHtml(row) + + '</table>' + + '</div>' + + '<div class="fc-content-skeleton">' + + '<table>' + + (this.numbersVisible ? + '<thead>' + + this.renderNumberTrHtml(row) + + '</thead>' : + '' + ) + + '</table>' + + '</div>' + + '</div>'; + }, + + + /* Grid Number Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + renderNumberTrHtml: function(row) { + return '' + + '<tr>' + + (this.isRTL ? '' : this.renderNumberIntroHtml(row)) + + this.renderNumberCellsHtml(row) + + (this.isRTL ? this.renderNumberIntroHtml(row) : '') + + '</tr>'; + }, + + + renderNumberIntroHtml: function(row) { + return this.renderIntroHtml(); + }, + + + renderNumberCellsHtml: function(row) { + var htmls = []; + var col, date; + + for (col = 0; col < this.colCnt; col++) { + date = this.getCellDate(row, col); + htmls.push(this.renderNumberCellHtml(date)); + } + + return htmls.join(''); + }, + + + // Generates the HTML for the <td>s of the "number" row in the DayGrid's content skeleton. + // The number row will only exist if either day numbers or week numbers are turned on. + renderNumberCellHtml: function(date) { + var classes; + + if (!this.view.dayNumbersVisible) { // if there are week numbers but not day numbers + return '<td/>'; // will create an empty space above events :( + } + + classes = this.getDayClasses(date); + classes.unshift('fc-day-number'); + + return '' + + '<td class="' + classes.join(' ') + '" data-date="' + date.format() + '">' + + date.date() + + '</td>'; + }, + + + /* Options + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes a default event time formatting string if `timeFormat` is not explicitly defined + computeEventTimeFormat: function() { + return this.view.opt('extraSmallTimeFormat'); // like "6p" or "6:30p" + }, + + + // Computes a default `displayEventEnd` value if one is not expliclty defined + computeDisplayEventEnd: function() { + return this.colCnt == 1; // we'll likely have space if there's only one day + }, + + + /* Dates + ------------------------------------------------------------------------------------------------------------------*/ + + + rangeUpdated: function() { + this.updateDayTable(); + }, + + + // Slices up a date range by row into an array of segments + rangeToSegs: function(range) { + var segs = this.sliceRangeByRow(range); + var i, seg; + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + if (this.isRTL) { + seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex; + seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex; + } + else { + seg.leftCol = seg.firstRowDayIndex; + seg.rightCol = seg.lastRowDayIndex; + } + } + + return segs; + }, + + + /* Hit System + ------------------------------------------------------------------------------------------------------------------*/ + + + prepareHits: function() { + this.colCoordCache.build(); + this.rowCoordCache.build(); + this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack + }, + + + releaseHits: function() { + this.colCoordCache.clear(); + this.rowCoordCache.clear(); + }, + + + queryHit: function(leftOffset, topOffset) { + var col = this.colCoordCache.getHorizontalIndex(leftOffset); + var row = this.rowCoordCache.getVerticalIndex(topOffset); + + if (row != null && col != null) { + return this.getCellHit(row, col); + } + }, + + + getHitSpan: function(hit) { + return this.getCellRange(hit.row, hit.col); + }, + + + getHitEl: function(hit) { + return this.getCellEl(hit.row, hit.col); + }, + + + /* Cell System + ------------------------------------------------------------------------------------------------------------------*/ + // FYI: the first column is the leftmost column, regardless of date + + + getCellHit: function(row, col) { + return { + row: row, + col: col, + component: this, // needed unfortunately :( + left: this.colCoordCache.getLeftOffset(col), + right: this.colCoordCache.getRightOffset(col), + top: this.rowCoordCache.getTopOffset(row), + bottom: this.rowCoordCache.getBottomOffset(row) + }; + }, + + + getCellEl: function(row, col) { + return this.cellEls.eq(row * this.colCnt + col); + }, + + + /* Event Drag Visualization + ------------------------------------------------------------------------------------------------------------------*/ + // TODO: move to DayGrid.event, similar to what we did with Grid's drag methods + + + // Renders a visual indication of an event or external element being dragged. + // The dropLocation's end can be null. seg can be null. See Grid::renderDrag for more info. + renderDrag: function(dropLocation, seg) { + + // always render a highlight underneath + this.renderHighlight(this.eventRangeToSegs(dropLocation)); + + // if a segment from the same calendar but another component is being dragged, render a helper event + if (seg && !seg.el.closest(this.el).length) { + + this.renderRangeHelper(dropLocation, seg); + this.applyDragOpacity(this.helperEls); + + return true; // a helper has been rendered + } + }, + + + // Unrenders any visual indication of a hovering event + unrenderDrag: function() { + this.unrenderHighlight(); + this.unrenderHelper(); + }, + + + /* Event Resize Visualization + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of an event being resized + renderEventResize: function(range, seg) { + this.renderHighlight(this.eventRangeToSegs(range)); + this.renderRangeHelper(range, seg); + }, + + + // Unrenders a visual indication of an event being resized + unrenderEventResize: function() { + this.unrenderHighlight(); + this.unrenderHelper(); + }, + + + /* Event Helper + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a mock "helper" event. `sourceSeg` is the associated internal segment object. It can be null. + renderHelper: function(event, sourceSeg) { + var helperNodes = []; + var segs = this.eventsToSegs([ event ]); + var rowStructs; + + segs = this.renderFgSegEls(segs); // assigns each seg's el and returns a subset of segs that were rendered + rowStructs = this.renderSegRows(segs); + + // inject each new event skeleton into each associated row + this.rowEls.each(function(row, rowNode) { + var rowEl = $(rowNode); // the .fc-row + var skeletonEl = $('<div class="fc-helper-skeleton"><table/></div>'); // will be absolutely positioned + var skeletonTop; + + // If there is an original segment, match the top position. Otherwise, put it at the row's top level + if (sourceSeg && sourceSeg.row === row) { + skeletonTop = sourceSeg.el.position().top; + } + else { + skeletonTop = rowEl.find('.fc-content-skeleton tbody').position().top; + } + + skeletonEl.css('top', skeletonTop) + .find('table') + .append(rowStructs[row].tbodyEl); + + rowEl.append(skeletonEl); + helperNodes.push(skeletonEl[0]); + }); + + this.helperEls = $(helperNodes); // array -> jQuery set + }, + + + // Unrenders any visual indication of a mock helper event + unrenderHelper: function() { + if (this.helperEls) { + this.helperEls.remove(); + this.helperEls = null; + } + }, + + + /* Fill System (highlight, background events, business hours) + ------------------------------------------------------------------------------------------------------------------*/ + + + fillSegTag: 'td', // override the default tag name + + + // Renders a set of rectangles over the given segments of days. + // Only returns segments that successfully rendered. + renderFill: function(type, segs, className) { + var nodes = []; + var i, seg; + var skeletonEl; + + segs = this.renderFillSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + skeletonEl = this.renderFillRow(type, seg, className); + this.rowEls.eq(seg.row).append(skeletonEl); + nodes.push(skeletonEl[0]); + } + + this.elsByFill[type] = $(nodes); + + return segs; + }, + + + // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. + renderFillRow: function(type, seg, className) { + var colCnt = this.colCnt; + var startCol = seg.leftCol; + var endCol = seg.rightCol + 1; + var skeletonEl; + var trEl; + + className = className || type.toLowerCase(); + + skeletonEl = $( + '<div class="fc-' + className + '-skeleton">' + + '<table><tr/></table>' + + '</div>' + ); + trEl = skeletonEl.find('tr'); + + if (startCol > 0) { + trEl.append('<td colspan="' + startCol + '"/>'); + } + + trEl.append( + seg.el.attr('colspan', endCol - startCol) + ); + + if (endCol < colCnt) { + trEl.append('<td colspan="' + (colCnt - endCol) + '"/>'); + } + + this.bookendCells(trEl); + + return skeletonEl; + } + +}); + +;; + +/* Event-rendering methods for the DayGrid class +----------------------------------------------------------------------------------------------------------------------*/ + +DayGrid.mixin({ + + rowStructs: null, // an array of objects, each holding information about a row's foreground event-rendering + + + // Unrenders all events currently rendered on the grid + unrenderEvents: function() { + this.removeSegPopover(); // removes the "more.." events popover + Grid.prototype.unrenderEvents.apply(this, arguments); // calls the super-method + }, + + + // Retrieves all rendered segment objects currently rendered on the grid + getEventSegs: function() { + return Grid.prototype.getEventSegs.call(this) // get the segments from the super-method + .concat(this.popoverSegs || []); // append the segments from the "more..." popover + }, + + + // Renders the given background event segments onto the grid + renderBgSegs: function(segs) { + + // don't render timed background events + var allDaySegs = $.grep(segs, function(seg) { + return seg.event.allDay; + }); + + return Grid.prototype.renderBgSegs.call(this, allDaySegs); // call the super-method + }, + + + // Renders the given foreground event segments onto the grid + renderFgSegs: function(segs) { + var rowStructs; + + // render an `.el` on each seg + // returns a subset of the segs. segs that were actually rendered + segs = this.renderFgSegEls(segs); + + rowStructs = this.rowStructs = this.renderSegRows(segs); + + // append to each row's content skeleton + this.rowEls.each(function(i, rowNode) { + $(rowNode).find('.fc-content-skeleton > table').append( + rowStructs[i].tbodyEl + ); + }); + + return segs; // return only the segs that were actually rendered + }, + + + // Unrenders all currently rendered foreground event segments + unrenderFgSegs: function() { + var rowStructs = this.rowStructs || []; + var rowStruct; + + while ((rowStruct = rowStructs.pop())) { + rowStruct.tbodyEl.remove(); + } + + this.rowStructs = null; + }, + + + // Uses the given events array to generate <tbody> elements that should be appended to each row's content skeleton. + // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). + // PRECONDITION: each segment shoud already have a rendered and assigned `.el` + renderSegRows: function(segs) { + var rowStructs = []; + var segRows; + var row; + + segRows = this.groupSegRows(segs); // group into nested arrays + + // iterate each row of segment groupings + for (row = 0; row < segRows.length; row++) { + rowStructs.push( + this.renderSegRow(row, segRows[row]) + ); + } + + return rowStructs; + }, + + + // Builds the HTML to be used for the default element for an individual segment + fgSegHtml: function(seg, disableResizing) { + var view = this.view; + var event = seg.event; + var isDraggable = view.isEventDraggable(event); + var isResizableFromStart = !disableResizing && event.allDay && + seg.isStart && view.isEventResizableFromStart(event); + var isResizableFromEnd = !disableResizing && event.allDay && + seg.isEnd && view.isEventResizableFromEnd(event); + var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd); + var skinCss = cssToStr(this.getEventSkinCss(event)); + var timeHtml = ''; + var timeText; + var titleHtml; + + classes.unshift('fc-day-grid-event', 'fc-h-event'); + + // Only display a timed events time if it is the starting segment + if (seg.isStart) { + timeText = this.getEventTimeText(event); + if (timeText) { + timeHtml = '<span class="fc-time">' + htmlEscape(timeText) + '</span>'; + } + } + + titleHtml = + '<span class="fc-title">' + + (htmlEscape(event.title || '') || ' ') + // we always want one line of height + '</span>'; + + return '<a class="' + classes.join(' ') + '"' + + (event.url ? + ' href="' + htmlEscape(event.url) + '"' : + '' + ) + + (skinCss ? + ' style="' + skinCss + '"' : + '' + ) + + '>' + + '<div class="fc-content">' + + (this.isRTL ? + titleHtml + ' ' + timeHtml : // put a natural space in between + timeHtml + ' ' + titleHtml // + ) + + '</div>' + + (isResizableFromStart ? + '<div class="fc-resizer fc-start-resizer" />' : + '' + ) + + (isResizableFromEnd ? + '<div class="fc-resizer fc-end-resizer" />' : + '' + ) + + '</a>'; + }, + + + // Given a row # and an array of segments all in the same row, render a <tbody> element, a skeleton that contains + // the segments. Returns object with a bunch of internal data about how the render was calculated. + // NOTE: modifies rowSegs + renderSegRow: function(row, rowSegs) { + var colCnt = this.colCnt; + var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels + var levelCnt = Math.max(1, segLevels.length); // ensure at least one level + var tbody = $('<tbody/>'); + var segMatrix = []; // lookup for which segments are rendered into which level+col cells + var cellMatrix = []; // lookup for all <td> elements of the level+col matrix + var loneCellMatrix = []; // lookup for <td> elements that only take up a single column + var i, levelSegs; + var col; + var tr; + var j, seg; + var td; + + // populates empty cells from the current column (`col`) to `endCol` + function emptyCellsUntil(endCol) { + while (col < endCol) { + // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell + td = (loneCellMatrix[i - 1] || [])[col]; + if (td) { + td.attr( + 'rowspan', + parseInt(td.attr('rowspan') || 1, 10) + 1 + ); + } + else { + td = $('<td/>'); + tr.append(td); + } + cellMatrix[i][col] = td; + loneCellMatrix[i][col] = td; + col++; + } + } + + for (i = 0; i < levelCnt; i++) { // iterate through all levels + levelSegs = segLevels[i]; + col = 0; + tr = $('<tr/>'); + + segMatrix.push([]); + cellMatrix.push([]); + loneCellMatrix.push([]); + + // levelCnt might be 1 even though there are no actual levels. protect against this. + // this single empty row is useful for styling. + if (levelSegs) { + for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level + seg = levelSegs[j]; + + emptyCellsUntil(seg.leftCol); + + // create a container that occupies or more columns. append the event element. + td = $('<td class="fc-event-container"/>').append(seg.el); + if (seg.leftCol != seg.rightCol) { + td.attr('colspan', seg.rightCol - seg.leftCol + 1); + } + else { // a single-column segment + loneCellMatrix[i][col] = td; + } + + while (col <= seg.rightCol) { + cellMatrix[i][col] = td; + segMatrix[i][col] = seg; + col++; + } + + tr.append(td); + } + } + + emptyCellsUntil(colCnt); // finish off the row + this.bookendCells(tr); + tbody.append(tr); + } + + return { // a "rowStruct" + row: row, // the row number + tbodyEl: tbody, + cellMatrix: cellMatrix, + segMatrix: segMatrix, + segLevels: segLevels, + segs: rowSegs + }; + }, + + + // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. + // NOTE: modifies segs + buildSegLevels: function(segs) { + var levels = []; + var i, seg; + var j; + + // Give preference to elements with certain criteria, so they have + // a chance to be closer to the top. + this.sortSegs(segs); + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + + // loop through levels, starting with the topmost, until the segment doesn't collide with other segments + for (j = 0; j < levels.length; j++) { + if (!isDaySegCollision(seg, levels[j])) { + break; + } + } + // `j` now holds the desired subrow index + seg.level = j; + + // create new level array if needed and append segment + (levels[j] || (levels[j] = [])).push(seg); + } + + // order segments left-to-right. very important if calendar is RTL + for (j = 0; j < levels.length; j++) { + levels[j].sort(compareDaySegCols); + } + + return levels; + }, + + + // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row + groupSegRows: function(segs) { + var segRows = []; + var i; + + for (i = 0; i < this.rowCnt; i++) { + segRows.push([]); + } + + for (i = 0; i < segs.length; i++) { + segRows[segs[i].row].push(segs[i]); + } + + return segRows; + } + +}); + + +// Computes whether two segments' columns collide. They are assumed to be in the same row. +function isDaySegCollision(seg, otherSegs) { + var i, otherSeg; + + for (i = 0; i < otherSegs.length; i++) { + otherSeg = otherSegs[i]; + + if ( + otherSeg.leftCol <= seg.rightCol && + otherSeg.rightCol >= seg.leftCol + ) { + return true; + } + } + + return false; +} + + +// A cmp function for determining the leftmost event +function compareDaySegCols(a, b) { + return a.leftCol - b.leftCol; +} + +;; + +/* Methods relate to limiting the number events for a given day on a DayGrid +----------------------------------------------------------------------------------------------------------------------*/ +// NOTE: all the segs being passed around in here are foreground segs + +DayGrid.mixin({ + + segPopover: null, // the Popover that holds events that can't fit in a cell. null when not visible + popoverSegs: null, // an array of segment objects that the segPopover holds. null when not visible + + + removeSegPopover: function() { + if (this.segPopover) { + this.segPopover.hide(); // in handler, will call segPopover's removeElement + } + }, + + + // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. + // `levelLimit` can be false (don't limit), a number, or true (should be computed). + limitRows: function(levelLimit) { + var rowStructs = this.rowStructs || []; + var row; // row # + var rowLevelLimit; + + for (row = 0; row < rowStructs.length; row++) { + this.unlimitRow(row); + + if (!levelLimit) { + rowLevelLimit = false; + } + else if (typeof levelLimit === 'number') { + rowLevelLimit = levelLimit; + } + else { + rowLevelLimit = this.computeRowLevelLimit(row); + } + + if (rowLevelLimit !== false) { + this.limitRow(row, rowLevelLimit); + } + } + }, + + + // Computes the number of levels a row will accomodate without going outside its bounds. + // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). + // `row` is the row number. + computeRowLevelLimit: function(row) { + var rowEl = this.rowEls.eq(row); // the containing "fake" row div + var rowHeight = rowEl.height(); // TODO: cache somehow? + var trEls = this.rowStructs[row].tbodyEl.children(); + var i, trEl; + var trHeight; + + function iterInnerHeights(i, childNode) { + trHeight = Math.max(trHeight, $(childNode).outerHeight()); + } + + // Reveal one level <tr> at a time and stop when we find one out of bounds + for (i = 0; i < trEls.length; i++) { + trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal) + + // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell, + // so instead, find the tallest inner content element. + trHeight = 0; + trEl.find('> td > :first-child').each(iterInnerHeights); + + if (trEl.position().top + trHeight > rowHeight) { + return i; + } + } + + return false; // should not limit at all + }, + + + // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. + // `row` is the row number. + // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. + limitRow: function(row, levelLimit) { + var _this = this; + var rowStruct = this.rowStructs[row]; + var moreNodes = []; // array of "more" <a> links and <td> DOM nodes + var col = 0; // col #, left-to-right (not chronologically) + var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right + var cellMatrix; // a matrix (by level, then column) of all <td> jQuery elements in the row + var limitedNodes; // array of temporarily hidden level <tr> and segment <td> DOM nodes + var i, seg; + var segsBelow; // array of segment objects below `seg` in the current `col` + var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies + var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) + var td, rowspan; + var segMoreNodes; // array of "more" <td> cells that will stand-in for the current seg's cell + var j; + var moreTd, moreWrap, moreLink; + + // Iterates through empty level cells and places "more" links inside if need be + function emptyCellsUntil(endCol) { // goes from current `col` to `endCol` + while (col < endCol) { + segsBelow = _this.getCellSegs(row, col, levelLimit); + if (segsBelow.length) { + td = cellMatrix[levelLimit - 1][col]; + moreLink = _this.renderMoreLink(row, col, segsBelow); + moreWrap = $('<div/>').append(moreLink); + td.append(moreWrap); + moreNodes.push(moreWrap[0]); + } + col++; + } + } + + if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit? + levelSegs = rowStruct.segLevels[levelLimit - 1]; + cellMatrix = rowStruct.cellMatrix; + + limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level <tr> elements past the limit + .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array + + // iterate though segments in the last allowable level + for (i = 0; i < levelSegs.length; i++) { + seg = levelSegs[i]; + emptyCellsUntil(seg.leftCol); // process empty cells before the segment + + // determine *all* segments below `seg` that occupy the same columns + colSegsBelow = []; + totalSegsBelow = 0; + while (col <= seg.rightCol) { + segsBelow = this.getCellSegs(row, col, levelLimit); + colSegsBelow.push(segsBelow); + totalSegsBelow += segsBelow.length; + col++; + } + + if (totalSegsBelow) { // do we need to replace this segment with one or many "more" links? + td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell + rowspan = td.attr('rowspan') || 1; + segMoreNodes = []; + + // make a replacement <td> for each column the segment occupies. will be one for each colspan + for (j = 0; j < colSegsBelow.length; j++) { + moreTd = $('<td class="fc-more-cell"/>').attr('rowspan', rowspan); + segsBelow = colSegsBelow[j]; + moreLink = this.renderMoreLink( + row, + seg.leftCol + j, + [ seg ].concat(segsBelow) // count seg as hidden too + ); + moreWrap = $('<div/>').append(moreLink); + moreTd.append(moreWrap); + segMoreNodes.push(moreTd[0]); + moreNodes.push(moreTd[0]); + } + + td.addClass('fc-limited').after($(segMoreNodes)); // hide original <td> and inject replacements + limitedNodes.push(td[0]); + } + } + + emptyCellsUntil(this.colCnt); // finish off the level + rowStruct.moreEls = $(moreNodes); // for easy undoing later + rowStruct.limitedEls = $(limitedNodes); // for easy undoing later + } + }, + + + // Reveals all levels and removes all "more"-related elements for a grid's row. + // `row` is a row number. + unlimitRow: function(row) { + var rowStruct = this.rowStructs[row]; + + if (rowStruct.moreEls) { + rowStruct.moreEls.remove(); + rowStruct.moreEls = null; + } + + if (rowStruct.limitedEls) { + rowStruct.limitedEls.removeClass('fc-limited'); + rowStruct.limitedEls = null; + } + }, + + + // Renders an <a> element that represents hidden event element for a cell. + // Responsible for attaching click handler as well. + renderMoreLink: function(row, col, hiddenSegs) { + var _this = this; + var view = this.view; + + return $('<a class="fc-more"/>') + .text( + this.getMoreLinkText(hiddenSegs.length) + ) + .on('click', function(ev) { + var clickOption = view.opt('eventLimitClick'); + var date = _this.getCellDate(row, col); + var moreEl = $(this); + var dayEl = _this.getCellEl(row, col); + var allSegs = _this.getCellSegs(row, col); + + // rescope the segments to be within the cell's date + var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); + var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); + + if (typeof clickOption === 'function') { + // the returned value can be an atomic option + clickOption = view.trigger('eventLimitClick', null, { + date: date, + dayEl: dayEl, + moreEl: moreEl, + segs: reslicedAllSegs, + hiddenSegs: reslicedHiddenSegs + }, ev); + } + + if (clickOption === 'popover') { + _this.showSegPopover(row, col, moreEl, reslicedAllSegs); + } + else if (typeof clickOption === 'string') { // a view name + view.calendar.zoomTo(date, clickOption); + } + }); + }, + + + // Reveals the popover that displays all events within a cell + showSegPopover: function(row, col, moreLink, segs) { + var _this = this; + var view = this.view; + var moreWrap = moreLink.parent(); // the <div> wrapper around the <a> + var topEl; // the element we want to match the top coordinate of + var options; + + if (this.rowCnt == 1) { + topEl = view.el; // will cause the popover to cover any sort of header + } + else { + topEl = this.rowEls.eq(row); // will align with top of row + } + + options = { + className: 'fc-more-popover', + content: this.renderSegPopoverContent(row, col, segs), + parentEl: this.el, + top: topEl.offset().top, + autoHide: true, // when the user clicks elsewhere, hide the popover + viewportConstrain: view.opt('popoverViewportConstrain'), + hide: function() { + // kill everything when the popover is hidden + _this.segPopover.removeElement(); + _this.segPopover = null; + _this.popoverSegs = null; + } + }; + + // Determine horizontal coordinate. + // We use the moreWrap instead of the <td> to avoid border confusion. + if (this.isRTL) { + options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border + } + else { + options.left = moreWrap.offset().left - 1; // -1 to be over cell border + } + + this.segPopover = new Popover(options); + this.segPopover.show(); + }, + + + // Builds the inner DOM contents of the segment popover + renderSegPopoverContent: function(row, col, segs) { + var view = this.view; + var isTheme = view.opt('theme'); + var title = this.getCellDate(row, col).format(view.opt('dayPopoverFormat')); + var content = $( + '<div class="fc-header ' + view.widgetHeaderClass + '">' + + '<span class="fc-close ' + + (isTheme ? 'ui-icon ui-icon-closethick' : 'fc-icon fc-icon-x') + + '"></span>' + + '<span class="fc-title">' + + htmlEscape(title) + + '</span>' + + '<div class="fc-clear"/>' + + '</div>' + + '<div class="fc-body ' + view.widgetContentClass + '">' + + '<div class="fc-event-container"></div>' + + '</div>' + ); + var segContainer = content.find('.fc-event-container'); + var i; + + // render each seg's `el` and only return the visible segs + segs = this.renderFgSegEls(segs, true); // disableResizing=true + this.popoverSegs = segs; + + for (i = 0; i < segs.length; i++) { + + // because segments in the popover are not part of a grid coordinate system, provide a hint to any + // grids that want to do drag-n-drop about which cell it came from + this.prepareHits(); + segs[i].hit = this.getCellHit(row, col); + this.releaseHits(); + + segContainer.append(segs[i].el); + } + + return content; + }, + + + // Given the events within an array of segment objects, reslice them to be in a single day + resliceDaySegs: function(segs, dayDate) { + + // build an array of the original events + var events = $.map(segs, function(seg) { + return seg.event; + }); + + var dayStart = dayDate.clone().stripTime(); + var dayEnd = dayStart.clone().add(1, 'days'); + var dayRange = { start: dayStart, end: dayEnd }; + + // slice the events with a custom slicing function + segs = this.eventsToSegs( + events, + function(range) { + var seg = intersectionToSeg(range, dayRange); // undefind if no intersection + return seg ? [ seg ] : []; // must return an array of segments + } + ); + + // force an order because eventsToSegs doesn't guarantee one + this.sortSegs(segs); + + return segs; + }, + + + // Generates the text that should be inside a "more" link, given the number of events it represents + getMoreLinkText: function(num) { + var opt = this.view.opt('eventLimitText'); + + if (typeof opt === 'function') { + return opt(num); + } + else { + return '+' + num + ' ' + opt; + } + }, + + + // Returns segments within a given cell. + // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. + getCellSegs: function(row, col, startLevel) { + var segMatrix = this.rowStructs[row].segMatrix; + var level = startLevel || 0; + var segs = []; + var seg; + + while (level < segMatrix.length) { + seg = segMatrix[level][col]; + if (seg) { + segs.push(seg); + } + level++; + } + + return segs; + } + +}); + +;; + +/* A component that renders one or more columns of vertical time slots +----------------------------------------------------------------------------------------------------------------------*/ +// We mixin DayTable, even though there is only a single row of days + +var TimeGrid = FC.TimeGrid = Grid.extend(DayTableMixin, { + + slotDuration: null, // duration of a "slot", a distinct time segment on given day, visualized by lines + snapDuration: null, // granularity of time for dragging and selecting + snapsPerSlot: null, + minTime: null, // Duration object that denotes the first visible time of any given day + maxTime: null, // Duration object that denotes the exclusive visible end time of any given day + labelFormat: null, // formatting string for times running along vertical axis + labelInterval: null, // duration of how often a label should be displayed for a slot + + colEls: null, // cells elements in the day-row background + slatEls: null, // elements running horizontally across all columns + helperEl: null, // cell skeleton element for rendering the mock event "helper" + + colCoordCache: null, + slatCoordCache: null, + + businessHourSegs: null, + + + constructor: function() { + Grid.apply(this, arguments); // call the super-constructor + + this.processOptions(); + }, + + + // Renders the time grid into `this.el`, which should already be assigned. + // Relies on the view's colCnt. In the future, this component should probably be self-sufficient. + renderDates: function() { + this.el.html(this.renderHtml()); + this.colEls = this.el.find('.fc-day'); + this.slatEls = this.el.find('.fc-slats tr'); + + this.colCoordCache = new CoordCache({ + els: this.colEls, + isHorizontal: true + }); + this.slatCoordCache = new CoordCache({ + els: this.slatEls, + isVertical: true + }); + }, + + + renderBusinessHours: function() { + var events = this.view.calendar.getBusinessHoursEvents(); + this.businessHourSegs = this.renderFill('businessHours', this.eventsToSegs(events), 'bgevent'); + }, + + + // Renders the basic HTML skeleton for the grid + renderHtml: function() { + return '' + + '<div class="fc-bg">' + + '<table>' + + this.renderBgTrHtml(0) + // row=0 + '</table>' + + '</div>' + + '<div class="fc-slats">' + + '<table>' + + this.renderSlatRowHtml() + + '</table>' + + '</div>'; + }, + + + // Generates the HTML for the horizontal "slats" that run width-wise. Has a time axis on a side. Depends on RTL. + renderSlatRowHtml: function() { + var view = this.view; + var isRTL = this.isRTL; + var html = ''; + var slotTime = moment.duration(+this.minTime); // wish there was .clone() for durations + var slotDate; // will be on the view's first day, but we only care about its time + var isLabeled; + var axisHtml; + + // Calculate the time for each slot + while (slotTime < this.maxTime) { + slotDate = this.start.clone().time(slotTime); // after .time() will be in UTC. but that's good, avoids DST issues + isLabeled = isInt(divideDurationByDuration(slotTime, this.labelInterval)); + + axisHtml = + '<td class="fc-axis fc-time ' + view.widgetContentClass + '" ' + view.axisStyleAttr() + '>' + + (isLabeled ? + '<span>' + // for matchCellWidths + htmlEscape(slotDate.format(this.labelFormat)) + + '</span>' : + '' + ) + + '</td>'; + + html += + '<tr ' + (isLabeled ? '' : 'class="fc-minor"') + '>' + + (!isRTL ? axisHtml : '') + + '<td class="' + view.widgetContentClass + '"/>' + + (isRTL ? axisHtml : '') + + "</tr>"; + + slotTime.add(this.slotDuration); + } + + return html; + }, + + + /* Options + ------------------------------------------------------------------------------------------------------------------*/ + + + // Parses various options into properties of this object + processOptions: function() { + var view = this.view; + var slotDuration = view.opt('slotDuration'); + var snapDuration = view.opt('snapDuration'); + var input; + + slotDuration = moment.duration(slotDuration); + snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration; + + this.slotDuration = slotDuration; + this.snapDuration = snapDuration; + this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple? + + this.minResizeDuration = snapDuration; // hack + + this.minTime = moment.duration(view.opt('minTime')); + this.maxTime = moment.duration(view.opt('maxTime')); + + // might be an array value (for TimelineView). + // if so, getting the most granular entry (the last one probably). + input = view.opt('slotLabelFormat'); + if ($.isArray(input)) { + input = input[input.length - 1]; + } + + this.labelFormat = + input || + view.opt('axisFormat') || // deprecated + view.opt('smallTimeFormat'); // the computed default + + input = view.opt('slotLabelInterval'); + this.labelInterval = input ? + moment.duration(input) : + this.computeLabelInterval(slotDuration); + }, + + + // Computes an automatic value for slotLabelInterval + computeLabelInterval: function(slotDuration) { + var i; + var labelInterval; + var slotsPerLabel; + + // find the smallest stock label interval that results in more than one slots-per-label + for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) { + labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]); + slotsPerLabel = divideDurationByDuration(labelInterval, slotDuration); + if (isInt(slotsPerLabel) && slotsPerLabel > 1) { + return labelInterval; + } + } + + return moment.duration(slotDuration); // fall back. clone + }, + + + // Computes a default event time formatting string if `timeFormat` is not explicitly defined + computeEventTimeFormat: function() { + return this.view.opt('noMeridiemTimeFormat'); // like "6:30" (no AM/PM) + }, + + + // Computes a default `displayEventEnd` value if one is not expliclty defined + computeDisplayEventEnd: function() { + return true; + }, + + + /* Hit System + ------------------------------------------------------------------------------------------------------------------*/ + + + prepareHits: function() { + this.colCoordCache.build(); + this.slatCoordCache.build(); + }, + + + releaseHits: function() { + this.colCoordCache.clear(); + // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop + }, + + + queryHit: function(leftOffset, topOffset) { + var snapsPerSlot = this.snapsPerSlot; + var colCoordCache = this.colCoordCache; + var slatCoordCache = this.slatCoordCache; + var colIndex = colCoordCache.getHorizontalIndex(leftOffset); + var slatIndex = slatCoordCache.getVerticalIndex(topOffset); + + if (colIndex != null && slatIndex != null) { + var slatTop = slatCoordCache.getTopOffset(slatIndex); + var slatHeight = slatCoordCache.getHeight(slatIndex); + var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1 + var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat + var snapIndex = slatIndex * snapsPerSlot + localSnapIndex; + var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight; + var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight; + + return { + col: colIndex, + snap: snapIndex, + component: this, // needed unfortunately :( + left: colCoordCache.getLeftOffset(colIndex), + right: colCoordCache.getRightOffset(colIndex), + top: snapTop, + bottom: snapBottom + }; + } + }, + + + getHitSpan: function(hit) { + var date = this.getCellDate(0, hit.col); // row=0 + var time = this.computeSnapTime(hit.snap); // pass in the snap-index + var start = this.view.calendar.rezoneDate(date); // gives it a 00:00 time + var end; + + start.time(time); + end = start.clone().add(this.snapDuration); + + return { start: start, end: end }; + }, + + + getHitEl: function(hit) { + return this.colEls.eq(hit.col); + }, + + + /* Dates + ------------------------------------------------------------------------------------------------------------------*/ + + + rangeUpdated: function() { + this.updateDayTable(); + }, + + + // Given a row number of the grid, representing a "snap", returns a time (Duration) from its start-of-day + computeSnapTime: function(snapIndex) { + return moment.duration(this.minTime + this.snapDuration * snapIndex); + }, + + + // Slices up a date range by column into an array of segments + rangeToSegs: function(range) { + var segs = this.sliceRangeByTimes(range); + var i; + + for (i = 0; i < segs.length; i++) { + if (this.isRTL) { + segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex; + } + else { + segs[i].col = segs[i].dayIndex; + } + } + + return segs; + }, + + + sliceRangeByTimes: function(range) { + var segs = []; + var seg; + var dayIndex; + var dayDate; + var dayRange; + + // normalize :( + range = { + start: range.start.clone().stripZone(), + end: range.end.clone().stripZone() + }; + + for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) { + dayDate = this.dayDates[dayIndex].clone(); // TODO: better API for this? + dayRange = { + start: dayDate.clone().time(this.minTime), + end: dayDate.clone().time(this.maxTime) + }; + seg = intersectionToSeg(range, dayRange); // both will be ambig timezone + if (seg) { + seg.dayIndex = dayIndex; + segs.push(seg); + } + } + + return segs; + }, + + + /* Coordinates + ------------------------------------------------------------------------------------------------------------------*/ + + + updateSize: function(isResize) { // NOT a standard Grid method + this.slatCoordCache.build(); + + if (isResize) { + this.updateSegVerticals(); + } + }, + + + // Computes the top coordinate, relative to the bounds of the grid, of the given date. + // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight. + computeDateTop: function(date, startOfDayDate) { + return this.computeTimeTop( + moment.duration( + date.clone().stripZone() - startOfDayDate.clone().stripTime() + ) + ); + }, + + + // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration). + computeTimeTop: function(time) { + var len = this.slatEls.length; + var slatCoverage = (time - this.minTime) / this.slotDuration; // floating-point value of # of slots covered + var slatIndex; + var slatRemainder; + + // compute a floating-point number for how many slats should be progressed through. + // from 0 to number of slats (inclusive) + // constrained because minTime/maxTime might be customized. + slatCoverage = Math.max(0, slatCoverage); + slatCoverage = Math.min(len, slatCoverage); + + // an integer index of the furthest whole slat + // from 0 to number slats (*exclusive*, so len-1) + slatIndex = Math.floor(slatCoverage); + slatIndex = Math.min(slatIndex, len - 1); + + // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition. + // could be 1.0 if slatCoverage is covering *all* the slots + slatRemainder = slatCoverage - slatIndex; + + return this.slatCoordCache.getTopPosition(slatIndex) + + this.slatCoordCache.getHeight(slatIndex) * slatRemainder; + }, + + + + /* Event Drag Visualization + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of an event being dragged over the specified date(s). + // dropLocation's end might be null, as well as `seg`. See Grid::renderDrag for more info. + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + + if (seg) { // if there is event information for this drag, render a helper event + this.renderRangeHelper(dropLocation, seg); + this.applyDragOpacity(this.helperEl); + + return true; // signal that a helper has been rendered + } + else { + // otherwise, just render a highlight + this.renderHighlight(this.eventRangeToSegs(dropLocation)); + } + }, + + + // Unrenders any visual indication of an event being dragged + unrenderDrag: function() { + this.unrenderHelper(); + this.unrenderHighlight(); + }, + + + /* Event Resize Visualization + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of an event being resized + renderEventResize: function(range, seg) { + this.renderRangeHelper(range, seg); + }, + + + // Unrenders any visual indication of an event being resized + unrenderEventResize: function() { + this.unrenderHelper(); + }, + + + /* Event Helper + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a mock "helper" event. `sourceSeg` is the original segment object and might be null (an external drag) + renderHelper: function(event, sourceSeg) { + var segs = this.eventsToSegs([ event ]); + var tableEl; + var i, seg; + var sourceEl; + + segs = this.renderFgSegEls(segs); // assigns each seg's el and returns a subset of segs that were rendered + tableEl = this.renderSegTable(segs); + + // Try to make the segment that is in the same row as sourceSeg look the same + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + if (sourceSeg && sourceSeg.col === seg.col) { + sourceEl = sourceSeg.el; + seg.el.css({ + left: sourceEl.css('left'), + right: sourceEl.css('right'), + 'margin-left': sourceEl.css('margin-left'), + 'margin-right': sourceEl.css('margin-right') + }); + } + } + + this.helperEl = $('<div class="fc-helper-skeleton"/>') + .append(tableEl) + .appendTo(this.el); + }, + + + // Unrenders any mock helper event + unrenderHelper: function() { + if (this.helperEl) { + this.helperEl.remove(); + this.helperEl = null; + } + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight. + renderSelection: function(range) { + if (this.view.opt('selectHelper')) { // this setting signals that a mock helper event should be rendered + this.renderRangeHelper(range); + } + else { + this.renderHighlight(this.selectionRangeToSegs(range)); + } + }, + + + // Unrenders any visual indication of a selection + unrenderSelection: function() { + this.unrenderHelper(); + this.unrenderHighlight(); + }, + + + /* Fill System (highlight, background events, business hours) + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a set of rectangles over the given time segments. + // Only returns segments that successfully rendered. + renderFill: function(type, segs, className) { + var segCols; + var skeletonEl; + var trEl; + var col, colSegs; + var tdEl; + var containerEl; + var dayDate; + var i, seg; + + if (segs.length) { + + segs = this.renderFillSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs + segCols = this.groupSegCols(segs); // group into sub-arrays, and assigns 'col' to each seg + + className = className || type.toLowerCase(); + skeletonEl = $( + '<div class="fc-' + className + '-skeleton">' + + '<table><tr/></table>' + + '</div>' + ); + trEl = skeletonEl.find('tr'); + + for (col = 0; col < segCols.length; col++) { + colSegs = segCols[col]; + tdEl = $('<td/>').appendTo(trEl); + + if (colSegs.length) { + containerEl = $('<div class="fc-' + className + '-container"/>').appendTo(tdEl); + dayDate = this.getCellDate(0, col); // row=0 + + for (i = 0; i < colSegs.length; i++) { + seg = colSegs[i]; + containerEl.append( + seg.el.css({ + top: this.computeDateTop(seg.start, dayDate), + bottom: -this.computeDateTop(seg.end, dayDate) // the y position of the bottom edge + }) + ); + } + } + } + + this.bookendCells(trEl); + + this.el.append(skeletonEl); + this.elsByFill[type] = skeletonEl; + } + + return segs; + } + +}); + +;; + +/* Event-rendering methods for the TimeGrid class +----------------------------------------------------------------------------------------------------------------------*/ + +TimeGrid.mixin({ + + eventSkeletonEl: null, // has cells with event-containers, which contain absolutely positioned event elements + + + // Renders the given foreground event segments onto the grid + renderFgSegs: function(segs) { + segs = this.renderFgSegEls(segs); // returns a subset of the segs. segs that were actually rendered + + this.el.append( + this.eventSkeletonEl = $('<div class="fc-content-skeleton"/>') + .append(this.renderSegTable(segs)) + ); + + return segs; // return only the segs that were actually rendered + }, + + + // Unrenders all currently rendered foreground event segments + unrenderFgSegs: function(segs) { + if (this.eventSkeletonEl) { + this.eventSkeletonEl.remove(); + this.eventSkeletonEl = null; + } + }, + + + // Renders and returns the <table> portion of the event-skeleton. + // Returns an object with properties 'tbodyEl' and 'segs'. + renderSegTable: function(segs) { + var tableEl = $('<table><tr/></table>'); + var trEl = tableEl.find('tr'); + var segCols; + var i, seg; + var col, colSegs; + var containerEl; + + segCols = this.groupSegCols(segs); // group into sub-arrays, and assigns 'col' to each seg + + this.computeSegVerticals(segs); // compute and assign top/bottom + + for (col = 0; col < segCols.length; col++) { // iterate each column grouping + colSegs = segCols[col]; + this.placeSlotSegs(colSegs); // compute horizontal coordinates, z-index's, and reorder the array + + containerEl = $('<div class="fc-event-container"/>'); + + // assign positioning CSS and insert into container + for (i = 0; i < colSegs.length; i++) { + seg = colSegs[i]; + seg.el.css(this.generateSegPositionCss(seg)); + + // if the height is short, add a className for alternate styling + if (seg.bottom - seg.top < 30) { + seg.el.addClass('fc-short'); + } + + containerEl.append(seg.el); + } + + trEl.append($('<td/>').append(containerEl)); + } + + this.bookendCells(trEl); + + return tableEl; + }, + + + // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each. + // NOTE: Also reorders the given array by date! + placeSlotSegs: function(segs) { + var levels; + var level0; + var i; + + this.sortSegs(segs); // order by date + levels = buildSlotSegLevels(segs); + computeForwardSlotSegs(levels); + + if ((level0 = levels[0])) { + + for (i = 0; i < level0.length; i++) { + computeSlotSegPressures(level0[i]); + } + + for (i = 0; i < level0.length; i++) { + this.computeSlotSegCoords(level0[i], 0, 0); + } + } + }, + + + // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range + // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to "left" and + // seg.forwardCoord maps to "right" (via percentage). Vice-versa if the calendar is right-to-left. + // + // The segment might be part of a "series", which means consecutive segments with the same pressure + // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of + // segments behind this one in the current series, and `seriesBackwardCoord` is the starting + // coordinate of the first segment in the series. + computeSlotSegCoords: function(seg, seriesBackwardPressure, seriesBackwardCoord) { + var forwardSegs = seg.forwardSegs; + var i; + + if (seg.forwardCoord === undefined) { // not already computed + + if (!forwardSegs.length) { + + // if there are no forward segments, this segment should butt up against the edge + seg.forwardCoord = 1; + } + else { + + // sort highest pressure first + this.sortForwardSlotSegs(forwardSegs); + + // this segment's forwardCoord will be calculated from the backwardCoord of the + // highest-pressure forward segment. + this.computeSlotSegCoords(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord); + seg.forwardCoord = forwardSegs[0].backwardCoord; + } + + // calculate the backwardCoord from the forwardCoord. consider the series + seg.backwardCoord = seg.forwardCoord - + (seg.forwardCoord - seriesBackwardCoord) / // available width for series + (seriesBackwardPressure + 1); // # of segments in the series + + // use this segment's coordinates to computed the coordinates of the less-pressurized + // forward segments + for (i=0; i<forwardSegs.length; i++) { + this.computeSlotSegCoords(forwardSegs[i], 0, seg.forwardCoord); + } + } + }, + + + // Refreshes the CSS top/bottom coordinates for each segment element. Probably after a window resize/zoom. + // Repositions business hours segs too, so not just for events. Maybe shouldn't be here. + updateSegVerticals: function() { + var allSegs = (this.segs || []).concat(this.businessHourSegs || []); + var i; + + this.computeSegVerticals(allSegs); + + for (i = 0; i < allSegs.length; i++) { + allSegs[i].el.css( + this.generateSegVerticalCss(allSegs[i]) + ); + } + }, + + + // For each segment in an array, computes and assigns its top and bottom properties + computeSegVerticals: function(segs) { + var i, seg; + + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + seg.top = this.computeDateTop(seg.start, seg.start); + seg.bottom = this.computeDateTop(seg.end, seg.start); + } + }, + + + // Renders the HTML for a single event segment's default rendering + fgSegHtml: function(seg, disableResizing) { + var view = this.view; + var event = seg.event; + var isDraggable = view.isEventDraggable(event); + var isResizableFromStart = !disableResizing && seg.isStart && view.isEventResizableFromStart(event); + var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventResizableFromEnd(event); + var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd); + var skinCss = cssToStr(this.getEventSkinCss(event)); + var timeText; + var fullTimeText; // more verbose time text. for the print stylesheet + var startTimeText; // just the start time text + + classes.unshift('fc-time-grid-event', 'fc-v-event'); + + if (view.isMultiDayEvent(event)) { // if the event appears to span more than one day... + // Don't display time text on segments that run entirely through a day. + // That would appear as midnight-midnight and would look dumb. + // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am) + if (seg.isStart || seg.isEnd) { + timeText = this.getEventTimeText(seg); + fullTimeText = this.getEventTimeText(seg, 'LT'); + startTimeText = this.getEventTimeText(seg, null, false); // displayEnd=false + } + } else { + // Display the normal time text for the *event's* times + timeText = this.getEventTimeText(event); + fullTimeText = this.getEventTimeText(event, 'LT'); + startTimeText = this.getEventTimeText(event, null, false); // displayEnd=false + } + + return '<a class="' + classes.join(' ') + '"' + + (event.url ? + ' href="' + htmlEscape(event.url) + '"' : + '' + ) + + (skinCss ? + ' style="' + skinCss + '"' : + '' + ) + + '>' + + '<div class="fc-content">' + + (timeText ? + '<div class="fc-time"' + + ' data-start="' + htmlEscape(startTimeText) + '"' + + ' data-full="' + htmlEscape(fullTimeText) + '"' + + '>' + + '<span>' + htmlEscape(timeText) + '</span>' + + '</div>' : + '' + ) + + (event.title ? + '<div class="fc-title">' + + htmlEscape(event.title) + + '</div>' : + '' + ) + + '</div>' + + '<div class="fc-bg"/>' + + /* TODO: write CSS for this + (isResizableFromStart ? + '<div class="fc-resizer fc-start-resizer" />' : + '' + ) + + */ + (isResizableFromEnd ? + '<div class="fc-resizer fc-end-resizer" />' : + '' + ) + + '</a>'; + }, + + + // Generates an object with CSS properties/values that should be applied to an event segment element. + // Contains important positioning-related properties that should be applied to any event element, customized or not. + generateSegPositionCss: function(seg) { + var shouldOverlap = this.view.opt('slotEventOverlap'); + var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point + var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point + var props = this.generateSegVerticalCss(seg); // get top/bottom first + var left; // amount of space from left edge, a fraction of the total width + var right; // amount of space from right edge, a fraction of the total width + + if (shouldOverlap) { + // double the width, but don't go beyond the maximum forward coordinate (1.0) + forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2); + } + + if (this.isRTL) { + left = 1 - forwardCoord; + right = backwardCoord; + } + else { + left = backwardCoord; + right = 1 - forwardCoord; + } + + props.zIndex = seg.level + 1; // convert from 0-base to 1-based + props.left = left * 100 + '%'; + props.right = right * 100 + '%'; + + if (shouldOverlap && seg.forwardPressure) { + // add padding to the edge so that forward stacked events don't cover the resizer's icon + props[this.isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width + } + + return props; + }, + + + // Generates an object with CSS properties for the top/bottom coordinates of a segment element + generateSegVerticalCss: function(seg) { + return { + top: seg.top, + bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container + }; + }, + + + // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col + groupSegCols: function(segs) { + var segCols = []; + var i; + + for (i = 0; i < this.colCnt; i++) { + segCols.push([]); + } + + for (i = 0; i < segs.length; i++) { + segCols[segs[i].col].push(segs[i]); + } + + return segCols; + }, + + + sortForwardSlotSegs: function(forwardSegs) { + forwardSegs.sort(proxy(this, 'compareForwardSlotSegs')); + }, + + + // A cmp function for determining which forward segment to rely on more when computing coordinates. + compareForwardSlotSegs: function(seg1, seg2) { + // put higher-pressure first + return seg2.forwardPressure - seg1.forwardPressure || + // put segments that are closer to initial edge first (and favor ones with no coords yet) + (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) || + // do normal sorting... + this.compareSegs(seg1, seg2); + } + +}); + + +// Builds an array of segments "levels". The first level will be the leftmost tier of segments if the calendar is +// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date. +function buildSlotSegLevels(segs) { + var levels = []; + var i, seg; + var j; + + for (i=0; i<segs.length; i++) { + seg = segs[i]; + + // go through all the levels and stop on the first level where there are no collisions + for (j=0; j<levels.length; j++) { + if (!computeSlotSegCollisions(seg, levels[j]).length) { + break; + } + } + + seg.level = j; + + (levels[j] || (levels[j] = [])).push(seg); + } -// function for adding/overriding defaults -function setDefaults(d) { - $.extend(true, defaults, d); + return levels; } +// For every segment, figure out the other segments that are in subsequent +// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs +function computeForwardSlotSegs(levels) { + var i, level; + var j, seg; + var k; + + for (i=0; i<levels.length; i++) { + level = levels[i]; + + for (j=0; j<level.length; j++) { + seg = level[j]; + + seg.forwardSegs = []; + for (k=i+1; k<levels.length; k++) { + computeSlotSegCollisions(seg, levels[k], seg.forwardSegs); + } + } + } +} + + +// Figure out which path forward (via seg.forwardSegs) results in the longest path until +// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure +function computeSlotSegPressures(seg) { + var forwardSegs = seg.forwardSegs; + var forwardPressure = 0; + var i, forwardSeg; + + if (seg.forwardPressure === undefined) { // not already computed + + for (i=0; i<forwardSegs.length; i++) { + forwardSeg = forwardSegs[i]; + + // figure out the child's maximum forward path + computeSlotSegPressures(forwardSeg); + + // either use the existing maximum, or use the child's forward pressure + // plus one (for the forwardSeg itself) + forwardPressure = Math.max( + forwardPressure, + 1 + forwardSeg.forwardPressure + ); + } + + seg.forwardPressure = forwardPressure; + } +} + + +// Find all the segments in `otherSegs` that vertically collide with `seg`. +// Append into an optionally-supplied `results` array and return. +function computeSlotSegCollisions(seg, otherSegs, results) { + results = results || []; + + for (var i=0; i<otherSegs.length; i++) { + if (isSlotSegCollision(seg, otherSegs[i])) { + results.push(otherSegs[i]); + } + } + + return results; +} + + +// Do these segments occupy the same vertical space? +function isSlotSegCollision(seg1, seg2) { + return seg1.bottom > seg2.top && seg1.top < seg2.bottom; +} + +;; + +/* An abstract class from which other views inherit from +----------------------------------------------------------------------------------------------------------------------*/ + +var View = FC.View = Class.extend({ + + type: null, // subclass' view name (string) + name: null, // deprecated. use `type` instead + title: null, // the text that will be displayed in the header's title + + calendar: null, // owner Calendar object + options: null, // hash containing all options. already merged with view-specific-options + el: null, // the view's containing element. set by Calendar + + displaying: null, // a promise representing the state of rendering. null if no render requested + isSkeletonRendered: false, + isEventsRendered: false, + + // range the view is actually displaying (moments) + start: null, + end: null, // exclusive + + // range the view is formally responsible for (moments) + // may be different from start/end. for example, a month view might have 1st-31st, excluding padded dates + intervalStart: null, + intervalEnd: null, // exclusive + intervalDuration: null, + intervalUnit: null, // name of largest unit being displayed, like "month" or "week" + + isRTL: false, + isSelected: false, // boolean whether a range of time is user-selected or not + + eventOrderSpecs: null, // criteria for ordering events when they have same date/time + + // subclasses can optionally use a scroll container + scrollerEl: null, // the element that will most likely scroll when content is too tall + scrollTop: null, // cached vertical scroll value + + // classNames styled by jqui themes + widgetHeaderClass: null, + widgetContentClass: null, + highlightStateClass: null, + + // for date utils, computed from options + nextDayThreshold: null, + isHiddenDayHash: null, + + // document handlers, bound to `this` object + documentMousedownProxy: null, // TODO: doesn't work with touch + + + constructor: function(calendar, type, options, intervalDuration) { + + this.calendar = calendar; + this.type = this.name = type; // .name is deprecated + this.options = options; + this.intervalDuration = intervalDuration || moment.duration(1, 'day'); + + this.nextDayThreshold = moment.duration(this.opt('nextDayThreshold')); + this.initThemingProps(); + this.initHiddenDays(); + this.isRTL = this.opt('isRTL'); + + this.eventOrderSpecs = parseFieldSpecs(this.opt('eventOrder')); + + this.documentMousedownProxy = proxy(this, 'documentMousedown'); + + this.initialize(); + }, + + + // A good place for subclasses to initialize member variables + initialize: function() { + // subclasses can implement + }, + + + // Retrieves an option with the given name + opt: function(name) { + return this.options[name]; + }, + + + // Triggers handlers that are view-related. Modifies args before passing to calendar. + trigger: function(name, thisObj) { // arguments beyond thisObj are passed along + var calendar = this.calendar; + + return calendar.trigger.apply( + calendar, + [name, thisObj || this].concat( + Array.prototype.slice.call(arguments, 2), // arguments beyond thisObj + [ this ] // always make the last argument a reference to the view. TODO: deprecate + ) + ); + }, + + + /* Dates + ------------------------------------------------------------------------------------------------------------------*/ + + + // Updates all internal dates to center around the given current date + setDate: function(date) { + this.setRange(this.computeRange(date)); + }, + + + // Updates all internal dates for displaying the given range. + // Expects all values to be normalized (like what computeRange does). + setRange: function(range) { + $.extend(this, range); + this.updateTitle(); + }, + + + // Given a single current date, produce information about what range to display. + // Subclasses can override. Must return all properties. + computeRange: function(date) { + var intervalUnit = computeIntervalUnit(this.intervalDuration); + var intervalStart = date.clone().startOf(intervalUnit); + var intervalEnd = intervalStart.clone().add(this.intervalDuration); + var start, end; + + // normalize the range's time-ambiguity + if (/year|month|week|day/.test(intervalUnit)) { // whole-days? + intervalStart.stripTime(); + intervalEnd.stripTime(); + } + else { // needs to have a time? + if (!intervalStart.hasTime()) { + intervalStart = this.calendar.rezoneDate(intervalStart); // convert to current timezone, with 00:00 + } + if (!intervalEnd.hasTime()) { + intervalEnd = this.calendar.rezoneDate(intervalEnd); // convert to current timezone, with 00:00 + } + } + + start = intervalStart.clone(); + start = this.skipHiddenDays(start); + end = intervalEnd.clone(); + end = this.skipHiddenDays(end, -1, true); // exclusively move backwards + + return { + intervalUnit: intervalUnit, + intervalStart: intervalStart, + intervalEnd: intervalEnd, + start: start, + end: end + }; + }, + + + // Computes the new date when the user hits the prev button, given the current date + computePrevDate: function(date) { + return this.massageCurrentDate( + date.clone().startOf(this.intervalUnit).subtract(this.intervalDuration), -1 + ); + }, + + + // Computes the new date when the user hits the next button, given the current date + computeNextDate: function(date) { + return this.massageCurrentDate( + date.clone().startOf(this.intervalUnit).add(this.intervalDuration) + ); + }, + + + // Given an arbitrarily calculated current date of the calendar, returns a date that is ensured to be completely + // visible. `direction` is optional and indicates which direction the current date was being + // incremented or decremented (1 or -1). + massageCurrentDate: function(date, direction) { + if (this.intervalDuration.as('days') <= 1) { // if the view displays a single day or smaller + if (this.isHiddenDay(date)) { + date = this.skipHiddenDays(date, direction); + date.startOf('day'); + } + } + + return date; + }, + + + /* Title and Date Formatting + ------------------------------------------------------------------------------------------------------------------*/ + + + // Sets the view's title property to the most updated computed value + updateTitle: function() { + this.title = this.computeTitle(); + }, + + + // Computes what the title at the top of the calendar should be for this view + computeTitle: function() { + return this.formatRange( + { start: this.intervalStart, end: this.intervalEnd }, + this.opt('titleFormat') || this.computeTitleFormat(), + this.opt('titleRangeSeparator') + ); + }, + + + // Generates the format string that should be used to generate the title for the current date range. + // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. + computeTitleFormat: function() { + if (this.intervalUnit == 'year') { + return 'YYYY'; + } + else if (this.intervalUnit == 'month') { + return this.opt('monthYearFormat'); // like "September 2014" + } + else if (this.intervalDuration.as('days') > 1) { + return 'll'; // multi-day range. shorter, like "Sep 9 - 10 2014" + } + else { + return 'LL'; // one day. longer, like "September 9 2014" + } + }, + + + // Utility for formatting a range. Accepts a range object, formatting string, and optional separator. + // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account. + formatRange: function(range, formatStr, separator) { + var end = range.end; + + if (!end.hasTime()) { // all-day? + end = end.clone().subtract(1); // convert to inclusive. last ms of previous day + } + + return formatRange(range.start, end, formatStr, separator, this.opt('isRTL')); + }, + + + /* Rendering + ------------------------------------------------------------------------------------------------------------------*/ + + + // Sets the container element that the view should render inside of. + // Does other DOM-related initializations. + setElement: function(el) { + this.el = el; + this.bindGlobalHandlers(); + }, + + + // Removes the view's container element from the DOM, clearing any content beforehand. + // Undoes any other DOM-related attachments. + removeElement: function() { + this.clear(); // clears all content + + // clean up the skeleton + if (this.isSkeletonRendered) { + this.unrenderSkeleton(); + this.isSkeletonRendered = false; + } + + this.unbindGlobalHandlers(); + + this.el.remove(); + + // NOTE: don't null-out this.el in case the View was destroyed within an API callback. + // We don't null-out the View's other jQuery element references upon destroy, + // so we shouldn't kill this.el either. + }, + + + // Does everything necessary to display the view centered around the given date. + // Does every type of rendering EXCEPT rendering events. + // Is asychronous and returns a promise. + display: function(date) { + var _this = this; + var scrollState = null; + + if (this.displaying) { + scrollState = this.queryScroll(); + } + + return this.clear().then(function() { // clear the content first (async) + return ( + _this.displaying = + $.when(_this.displayView(date)) // displayView might return a promise + .then(function() { + _this.forceScroll(_this.computeInitialScroll(scrollState)); + _this.triggerRender(); + }) + ); + }); + }, + + + // Does everything necessary to clear the content of the view. + // Clears dates and events. Does not clear the skeleton. + // Is asychronous and returns a promise. + clear: function() { + var _this = this; + var displaying = this.displaying; + + if (displaying) { // previously displayed, or in the process of being displayed? + return displaying.then(function() { // wait for the display to finish + _this.displaying = null; + _this.clearEvents(); + return _this.clearView(); // might return a promise. chain it + }); + } + else { + return $.when(); // an immediately-resolved promise + } + }, + + + // Displays the view's non-event content, such as date-related content or anything required by events. + // Renders the view's non-content skeleton if necessary. + // Can be asynchronous and return a promise. + displayView: function(date) { + if (!this.isSkeletonRendered) { + this.renderSkeleton(); + this.isSkeletonRendered = true; + } + this.setDate(date); + if (this.render) { + this.render(); // TODO: deprecate + } + this.renderDates(); + this.updateSize(); + this.renderBusinessHours(); // might need coordinates, so should go after updateSize() + }, + + + // Unrenders the view content that was rendered in displayView. + // Can be asynchronous and return a promise. + clearView: function() { + this.unselect(); + this.triggerUnrender(); + this.unrenderBusinessHours(); + this.unrenderDates(); + if (this.destroy) { + this.destroy(); // TODO: deprecate + } + }, + + + // Renders the basic structure of the view before any content is rendered + renderSkeleton: function() { + // subclasses should implement + }, + + + // Unrenders the basic structure of the view + unrenderSkeleton: function() { + // subclasses should implement + }, + + + // Renders the view's date-related content. + // Assumes setRange has already been called and the skeleton has already been rendered. + renderDates: function() { + // subclasses should implement + }, + + + // Unrenders the view's date-related content + unrenderDates: function() { + // subclasses should override + }, + + + // Renders business-hours onto the view. Assumes updateSize has already been called. + renderBusinessHours: function() { + // subclasses should implement + }, + + + // Unrenders previously-rendered business-hours + unrenderBusinessHours: function() { + // subclasses should implement + }, + + + // Signals that the view's content has been rendered + triggerRender: function() { + this.trigger('viewRender', this, this, this.el); + }, + + + // Signals that the view's content is about to be unrendered + triggerUnrender: function() { + this.trigger('viewDestroy', this, this, this.el); + }, + + + // Binds DOM handlers to elements that reside outside the view container, such as the document + bindGlobalHandlers: function() { + $(document).on('mousedown', this.documentMousedownProxy); + }, + + + // Unbinds DOM handlers from elements that reside outside the view container + unbindGlobalHandlers: function() { + $(document).off('mousedown', this.documentMousedownProxy); + }, + + + // Initializes internal variables related to theming + initThemingProps: function() { + var tm = this.opt('theme') ? 'ui' : 'fc'; + + this.widgetHeaderClass = tm + '-widget-header'; + this.widgetContentClass = tm + '-widget-content'; + this.highlightStateClass = tm + '-state-highlight'; + }, + + + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ + + + // Refreshes anything dependant upon sizing of the container element of the grid + updateSize: function(isResize) { + var scrollState; + + if (isResize) { + scrollState = this.queryScroll(); + } + + this.updateHeight(isResize); + this.updateWidth(isResize); + + if (isResize) { + this.setScroll(scrollState); + } + }, + + + // Refreshes the horizontal dimensions of the calendar + updateWidth: function(isResize) { + // subclasses should implement + }, + + + // Refreshes the vertical dimensions of the calendar + updateHeight: function(isResize) { + var calendar = this.calendar; // we poll the calendar for height information + + this.setHeight( + calendar.getSuggestedViewHeight(), + calendar.isHeightAuto() + ); + }, + + + // Updates the vertical dimensions of the calendar to the specified height. + // if `isAuto` is set to true, height becomes merely a suggestion and the view should use its "natural" height. + setHeight: function(height, isAuto) { + // subclasses should implement + }, + + + /* Scroller + ------------------------------------------------------------------------------------------------------------------*/ + + + // Given the total height of the view, return the number of pixels that should be used for the scroller. + // Utility for subclasses. + computeScrollerHeight: function(totalHeight) { + var scrollerEl = this.scrollerEl; + var both; + var otherHeight; // cumulative height of everything that is not the scrollerEl in the view (header+borders) + + both = this.el.add(scrollerEl); + + // fuckin IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked + both.css({ + position: 'relative', // cause a reflow, which will force fresh dimension recalculation + left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll + }); + otherHeight = this.el.outerHeight() - scrollerEl.height(); // grab the dimensions + both.css({ position: '', left: '' }); // undo hack + + return totalHeight - otherHeight; + }, + + + // Computes the initial pre-configured scroll state prior to allowing the user to change it. + // Given the scroll state from the previous rendering. If first time rendering, given null. + computeInitialScroll: function(previousScrollState) { + return 0; + }, + + + // Retrieves the view's current natural scroll state. Can return an arbitrary format. + queryScroll: function() { + if (this.scrollerEl) { + return this.scrollerEl.scrollTop(); // operates on scrollerEl by default + } + }, + + + // Sets the view's scroll state. Will accept the same format computeInitialScroll and queryScroll produce. + setScroll: function(scrollState) { + if (this.scrollerEl) { + return this.scrollerEl.scrollTop(scrollState); // operates on scrollerEl by default + } + }, + + + // Sets the scroll state, making sure to overcome any predefined scroll value the browser has in mind + forceScroll: function(scrollState) { + var _this = this; + + this.setScroll(scrollState); + setTimeout(function() { + _this.setScroll(scrollState); + }, 0); + }, + + + /* Event Elements / Segments + ------------------------------------------------------------------------------------------------------------------*/ + + + // Does everything necessary to display the given events onto the current view + displayEvents: function(events) { + var scrollState = this.queryScroll(); + + this.clearEvents(); + this.renderEvents(events); + this.isEventsRendered = true; + this.setScroll(scrollState); + this.triggerEventRender(); + }, + + + // Does everything necessary to clear the view's currently-rendered events + clearEvents: function() { + if (this.isEventsRendered) { + this.triggerEventUnrender(); + if (this.destroyEvents) { + this.destroyEvents(); // TODO: deprecate + } + this.unrenderEvents(); + this.isEventsRendered = false; + } + }, + + + // Renders the events onto the view. + renderEvents: function(events) { + // subclasses should implement + }, + + + // Removes event elements from the view. + unrenderEvents: function() { + // subclasses should implement + }, + + + // Signals that all events have been rendered + triggerEventRender: function() { + this.renderedEventSegEach(function(seg) { + this.trigger('eventAfterRender', seg.event, seg.event, seg.el); + }); + this.trigger('eventAfterAllRender'); + }, + + + // Signals that all event elements are about to be removed + triggerEventUnrender: function() { + this.renderedEventSegEach(function(seg) { + this.trigger('eventDestroy', seg.event, seg.event, seg.el); + }); + }, + + + // Given an event and the default element used for rendering, returns the element that should actually be used. + // Basically runs events and elements through the eventRender hook. + resolveEventEl: function(event, el) { + var custom = this.trigger('eventRender', event, event, el); + + if (custom === false) { // means don't render at all + el = null; + } + else if (custom && custom !== true) { + el = $(custom); + } + + return el; + }, + + + // Hides all rendered event segments linked to the given event + showEvent: function(event) { + this.renderedEventSegEach(function(seg) { + seg.el.css('visibility', ''); + }, event); + }, + + + // Shows all rendered event segments linked to the given event + hideEvent: function(event) { + this.renderedEventSegEach(function(seg) { + seg.el.css('visibility', 'hidden'); + }, event); + }, + + + // Iterates through event segments that have been rendered (have an el). Goes through all by default. + // If the optional `event` argument is specified, only iterates through segments linked to that event. + // The `this` value of the callback function will be the view. + renderedEventSegEach: function(func, event) { + var segs = this.getEventSegs(); + var i; + + for (i = 0; i < segs.length; i++) { + if (!event || segs[i].event._id === event._id) { + if (segs[i].el) { + func.call(this, segs[i]); + } + } + } + }, + + + // Retrieves all the rendered segment objects for the view + getEventSegs: function() { + // subclasses must implement + return []; + }, + + + /* Event Drag-n-Drop + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes if the given event is allowed to be dragged by the user + isEventDraggable: function(event) { + var source = event.source || {}; + + return firstDefined( + event.startEditable, + source.startEditable, + this.opt('eventStartEditable'), + event.editable, + source.editable, + this.opt('editable') + ); + }, + + + // Must be called when an event in the view is dropped onto new location. + // `dropLocation` is an object that contains the new start/end/allDay values for the event. + reportEventDrop: function(event, dropLocation, largeUnit, el, ev) { + var calendar = this.calendar; + var mutateResult = calendar.mutateEvent(event, dropLocation, largeUnit); + var undoFunc = function() { + mutateResult.undo(); + calendar.reportEventChange(); + }; + + this.triggerEventDrop(event, mutateResult.dateDelta, undoFunc, el, ev); + calendar.reportEventChange(); // will rerender events + }, + + + // Triggers event-drop handlers that have subscribed via the API + triggerEventDrop: function(event, dateDelta, undoFunc, el, ev) { + this.trigger('eventDrop', el[0], event, dateDelta, undoFunc, ev, {}); // {} = jqui dummy + }, + + + /* External Element Drag-n-Drop + ------------------------------------------------------------------------------------------------------------------*/ + + + // Must be called when an external element, via jQuery UI, has been dropped onto the calendar. + // `meta` is the parsed data that has been embedded into the dragging event. + // `dropLocation` is an object that contains the new start/end/allDay values for the event. + reportExternalDrop: function(meta, dropLocation, el, ev, ui) { + var eventProps = meta.eventProps; + var eventInput; + var event; + + // Try to build an event object and render it. TODO: decouple the two + if (eventProps) { + eventInput = $.extend({}, eventProps, dropLocation); + event = this.calendar.renderEvent(eventInput, meta.stick)[0]; // renderEvent returns an array + } + + this.triggerExternalDrop(event, dropLocation, el, ev, ui); + }, + + + // Triggers external-drop handlers that have subscribed via the API + triggerExternalDrop: function(event, dropLocation, el, ev, ui) { + + // trigger 'drop' regardless of whether element represents an event + this.trigger('drop', el[0], dropLocation.start, ev, ui); + + if (event) { + this.trigger('eventReceive', null, event); // signal an external event landed + } + }, + + + /* Drag-n-Drop Rendering (for both events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ + + + // Renders a visual indication of a event or external-element drag over the given drop zone. + // If an external-element, seg will be `null` + renderDrag: function(dropLocation, seg) { + // subclasses must implement + }, + + + // Unrenders a visual indication of an event or external-element being dragged. + unrenderDrag: function() { + // subclasses must implement + }, + + + /* Event Resizing + ------------------------------------------------------------------------------------------------------------------*/ + + + // Computes if the given event is allowed to be resized from its starting edge + isEventResizableFromStart: function(event) { + return this.opt('eventResizableFromStart') && this.isEventResizable(event); + }, + + + // Computes if the given event is allowed to be resized from its ending edge + isEventResizableFromEnd: function(event) { + return this.isEventResizable(event); + }, + + + // Computes if the given event is allowed to be resized by the user at all + isEventResizable: function(event) { + var source = event.source || {}; + + return firstDefined( + event.durationEditable, + source.durationEditable, + this.opt('eventDurationEditable'), + event.editable, + source.editable, + this.opt('editable') + ); + }, + + + // Must be called when an event in the view has been resized to a new length + reportEventResize: function(event, resizeLocation, largeUnit, el, ev) { + var calendar = this.calendar; + var mutateResult = calendar.mutateEvent(event, resizeLocation, largeUnit); + var undoFunc = function() { + mutateResult.undo(); + calendar.reportEventChange(); + }; + + this.triggerEventResize(event, mutateResult.durationDelta, undoFunc, el, ev); + calendar.reportEventChange(); // will rerender events + }, + + + // Triggers event-resize handlers that have subscribed via the API + triggerEventResize: function(event, durationDelta, undoFunc, el, ev) { + this.trigger('eventResize', el[0], event, durationDelta, undoFunc, ev, {}); // {} = jqui dummy + }, + + + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ + + + // Selects a date range on the view. `start` and `end` are both Moments. + // `ev` is the native mouse event that begin the interaction. + select: function(range, ev) { + this.unselect(ev); + this.renderSelection(range); + this.reportSelection(range, ev); + }, + + + // Renders a visual indication of the selection + renderSelection: function(range) { + // subclasses should implement + }, + + + // Called when a new selection is made. Updates internal state and triggers handlers. + reportSelection: function(range, ev) { + this.isSelected = true; + this.triggerSelect(range, ev); + }, + + + // Triggers handlers to 'select' + triggerSelect: function(range, ev) { + this.trigger('select', null, range.start, range.end, ev); + }, + + + // Undoes a selection. updates in the internal state and triggers handlers. + // `ev` is the native mouse event that began the interaction. + unselect: function(ev) { + if (this.isSelected) { + this.isSelected = false; + if (this.destroySelection) { + this.destroySelection(); // TODO: deprecate + } + this.unrenderSelection(); + this.trigger('unselect', null, ev); + } + }, + + + // Unrenders a visual indication of selection + unrenderSelection: function() { + // subclasses should implement + }, + + + // Handler for unselecting when the user clicks something and the 'unselectAuto' setting is on + documentMousedown: function(ev) { + var ignore; + + // is there a selection, and has the user made a proper left click? + if (this.isSelected && this.opt('unselectAuto') && isPrimaryMouseButton(ev)) { + + // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element + ignore = this.opt('unselectCancel'); + if (!ignore || !$(ev.target).closest(ignore).length) { + this.unselect(ev); + } + } + }, + + + /* Day Click + ------------------------------------------------------------------------------------------------------------------*/ + + + // Triggers handlers to 'dayClick' + triggerDayClick: function(date, dayEl, ev) { + this.trigger('dayClick', dayEl, date, ev); + }, + + + /* Date Utils + ------------------------------------------------------------------------------------------------------------------*/ + + + // Initializes internal variables related to calculating hidden days-of-week + initHiddenDays: function() { + var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden + var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) + var dayCnt = 0; + var i; + + if (this.opt('weekends') === false) { + hiddenDays.push(0, 6); // 0=sunday, 6=saturday + } + + for (i = 0; i < 7; i++) { + if ( + !(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1) + ) { + dayCnt++; + } + } + + if (!dayCnt) { + throw 'invalid hiddenDays'; // all days were hidden? bad. + } + + this.isHiddenDayHash = isHiddenDayHash; + }, + + + // Is the current day hidden? + // `day` is a day-of-week index (0-6), or a Moment + isHiddenDay: function(day) { + if (moment.isMoment(day)) { + day = day.day(); + } + return this.isHiddenDayHash[day]; + }, + + + // Incrementing the current day until it is no longer a hidden day, returning a copy. + // If the initial value of `date` is not a hidden day, don't do anything. + // Pass `isExclusive` as `true` if you are dealing with an end date. + // `inc` defaults to `1` (increment one day forward each time) + skipHiddenDays: function(date, inc, isExclusive) { + var out = date.clone(); + inc = inc || 1; + while ( + this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7] + ) { + out.add(inc, 'days'); + } + return out; + }, + + + // Returns the date range of the full days the given range visually appears to occupy. + // Returns a new range object. + computeDayRange: function(range) { + var startDay = range.start.clone().stripTime(); // the beginning of the day the range starts + var end = range.end; + var endDay = null; + var endTimeMS; + + if (end) { + endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends + endTimeMS = +end.time(); // # of milliseconds into `endDay` + + // If the end time is actually inclusively part of the next day and is equal to or + // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. + // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. + if (endTimeMS && endTimeMS >= this.nextDayThreshold) { + endDay.add(1, 'days'); + } + } + + // If no end was specified, or if it is within `startDay` but not past nextDayThreshold, + // assign the default duration of one day. + if (!end || endDay <= startDay) { + endDay = startDay.clone().add(1, 'days'); + } + + return { start: startDay, end: endDay }; + }, + + + // Does the given event visually appear to occupy more than one day? + isMultiDayEvent: function(event) { + var range = this.computeDayRange(event); // event is range-ish + + return range.end.diff(range.start, 'days') > 1; + } + +}); ;; - -function Calendar(element, options, eventSources) { +var Calendar = FC.Calendar = Class.extend({ + + dirDefaults: null, // option defaults related to LTR or RTL + langDefaults: null, // option defaults related to current locale + overrides: null, // option overrides given to the fullCalendar constructor + options: null, // all defaults combined with overrides + viewSpecCache: null, // cache of view definitions + view: null, // current View object + header: null, + loadingLevel: 0, // number of simultaneous loading tasks + + + // a lot of this class' OOP logic is scoped within this constructor function, + // but in the future, write individual methods on the prototype. + constructor: Calendar_constructor, + + + // Subclasses can override this for initialization logic after the constructor has been called + initialize: function() { + }, + + + // Initializes `this.options` and other important options-related objects + initOptions: function(overrides) { + var lang, langDefaults; + var isRTL, dirDefaults; + + // converts legacy options into non-legacy ones. + // in the future, when this is removed, don't use `overrides` reference. make a copy. + overrides = massageOverrides(overrides); + + lang = overrides.lang; + langDefaults = langOptionHash[lang]; + if (!langDefaults) { + lang = Calendar.defaults.lang; + langDefaults = langOptionHash[lang] || {}; + } + + isRTL = firstDefined( + overrides.isRTL, + langDefaults.isRTL, + Calendar.defaults.isRTL + ); + dirDefaults = isRTL ? Calendar.rtlDefaults : {}; + + this.dirDefaults = dirDefaults; + this.langDefaults = langDefaults; + this.overrides = overrides; + this.options = mergeOptions([ // merge defaults and overrides. lowest to highest precedence + Calendar.defaults, // global defaults + dirDefaults, + langDefaults, + overrides + ]); + populateInstanceComputableOptions(this.options); + + this.viewSpecCache = {}; // somewhat unrelated + }, + + + // Gets information about how to create a view. Will use a cache. + getViewSpec: function(viewType) { + var cache = this.viewSpecCache; + + return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType)); + }, + + + // Given a duration singular unit, like "week" or "day", finds a matching view spec. + // Preference is given to views that have corresponding buttons. + getUnitViewSpec: function(unit) { + var viewTypes; + var i; + var spec; + + if ($.inArray(unit, intervalUnits) != -1) { + + // put views that have buttons first. there will be duplicates, but oh well + viewTypes = this.header.getViewsWithButtons(); + $.each(FC.views, function(viewType) { // all views + viewTypes.push(viewType); + }); + + for (i = 0; i < viewTypes.length; i++) { + spec = this.getViewSpec(viewTypes[i]); + if (spec) { + if (spec.singleUnit == unit) { + return spec; + } + } + } + } + }, + + + // Builds an object with information on how to create a given view + buildViewSpec: function(requestedViewType) { + var viewOverrides = this.overrides.views || {}; + var specChain = []; // for the view. lowest to highest priority + var defaultsChain = []; // for the view. lowest to highest priority + var overridesChain = []; // for the view. lowest to highest priority + var viewType = requestedViewType; + var spec; // for the view + var overrides; // for the view + var duration; + var unit; + + // iterate from the specific view definition to a more general one until we hit an actual View class + while (viewType) { + spec = fcViews[viewType]; + overrides = viewOverrides[viewType]; + viewType = null; // clear. might repopulate for another iteration + + if (typeof spec === 'function') { // TODO: deprecate + spec = { 'class': spec }; + } + + if (spec) { + specChain.unshift(spec); + defaultsChain.unshift(spec.defaults || {}); + duration = duration || spec.duration; + viewType = viewType || spec.type; + } + + if (overrides) { + overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level + duration = duration || overrides.duration; + viewType = viewType || overrides.type; + } + } + + spec = mergeProps(specChain); + spec.type = requestedViewType; + if (!spec['class']) { + return false; + } + + if (duration) { + duration = moment.duration(duration); + if (duration.valueOf()) { // valid? + spec.duration = duration; + unit = computeIntervalUnit(duration); + + // view is a single-unit duration, like "week" or "day" + // incorporate options for this. lowest priority + if (duration.as(unit) === 1) { + spec.singleUnit = unit; + overridesChain.unshift(viewOverrides[unit] || {}); + } + } + } + + spec.defaults = mergeOptions(defaultsChain); + spec.overrides = mergeOptions(overridesChain); + + this.buildViewSpecOptions(spec); + this.buildViewSpecButtonText(spec, requestedViewType); + + return spec; + }, + + + // Builds and assigns a view spec's options object from its already-assigned defaults and overrides + buildViewSpecOptions: function(spec) { + spec.options = mergeOptions([ // lowest to highest priority + Calendar.defaults, // global defaults + spec.defaults, // view's defaults (from ViewSubclass.defaults) + this.dirDefaults, + this.langDefaults, // locale and dir take precedence over view's defaults! + this.overrides, // calendar's overrides (options given to constructor) + spec.overrides // view's overrides (view-specific options) + ]); + populateInstanceComputableOptions(spec.options); + }, + + + // Computes and assigns a view spec's buttonText-related options + buildViewSpecButtonText: function(spec, requestedViewType) { + + // given an options object with a possible `buttonText` hash, lookup the buttonText for the + // requested view, falling back to a generic unit entry like "week" or "day" + function queryButtonText(options) { + var buttonText = options.buttonText || {}; + return buttonText[requestedViewType] || + (spec.singleUnit ? buttonText[spec.singleUnit] : null); + } + + // highest to lowest priority + spec.buttonTextOverride = + queryButtonText(this.overrides) || // constructor-specified buttonText lookup hash takes precedence + spec.overrides.buttonText; // `buttonText` for view-specific options is a string + + // highest to lowest priority. mirrors buildViewSpecOptions + spec.buttonTextDefault = + queryButtonText(this.langDefaults) || + queryButtonText(this.dirDefaults) || + spec.defaults.buttonText || // a single string. from ViewSubclass.defaults + queryButtonText(Calendar.defaults) || + (spec.duration ? this.humanizeDuration(spec.duration) : null) || // like "3 days" + requestedViewType; // fall back to given view name + }, + + + // Given a view name for a custom view or a standard view, creates a ready-to-go View object + instantiateView: function(viewType) { + var spec = this.getViewSpec(viewType); + + return new spec['class'](this, viewType, spec.options, spec.duration); + }, + + + // Returns a boolean about whether the view is okay to instantiate at some point + isValidViewType: function(viewType) { + return Boolean(this.getViewSpec(viewType)); + }, + + + // Should be called when any type of async data fetching begins + pushLoading: function() { + if (!(this.loadingLevel++)) { + this.trigger('loading', null, true, this.view); + } + }, + + + // Should be called when any type of async data fetching completes + popLoading: function() { + if (!(--this.loadingLevel)) { + this.trigger('loading', null, false, this.view); + } + }, + + + // Given arguments to the select method in the API, returns a range + buildSelectRange: function(start, end) { + + start = this.moment(start); + if (end) { + end = this.moment(end); + } + else if (start.hasTime()) { + end = start.clone().add(this.defaultTimedEventDuration); + } + else { + end = start.clone().add(this.defaultAllDayEventDuration); + } + + return { start: start, end: end }; + } + +}); + + +Calendar.mixin(Emitter); + + +function Calendar_constructor(element, overrides) { var t = this; + + + t.initOptions(overrides || {}); + var options = this.options; + - - // exports - t.options = options; + // Exports + // ----------------------------------------------------------------------------------- + t.render = render; t.destroy = destroy; t.refetchEvents = refetchEvents; t.reportEvents = reportEvents; t.reportEventChange = reportEventChange; - t.rerenderEvents = rerenderEvents; - t.changeView = changeView; + t.rerenderEvents = renderEvents; // `renderEvents` serves as a rerender. an API method + t.changeView = renderView; // `renderView` will switch to another view t.select = select; t.unselect = unselect; t.prev = prev; @@ -204,54 +8229,209 @@ function Calendar(element, options, eventSources) { t.today = today; t.gotoDate = gotoDate; t.incrementDate = incrementDate; - t.formatDate = function(format, date) { return formatDate(format, date, options) }; - t.formatDates = function(format, date1, date2) { return formatDates(format, date1, date2, options) }; + t.zoomTo = zoomTo; t.getDate = getDate; + t.getCalendar = getCalendar; t.getView = getView; t.option = option; t.trigger = trigger; + + + + // Language-data Internals + // ----------------------------------------------------------------------------------- + // Apply overrides to the current language's data + + + var localeData = createObject( // make a cheap copy + getMomentLocaleData(options.lang) // will fall back to en + ); + + if (options.monthNames) { + localeData._months = options.monthNames; + } + if (options.monthNamesShort) { + localeData._monthsShort = options.monthNamesShort; + } + if (options.dayNames) { + localeData._weekdays = options.dayNames; + } + if (options.dayNamesShort) { + localeData._weekdaysShort = options.dayNamesShort; + } + if (options.firstDay != null) { + var _week = createObject(localeData._week); // _week: { dow: # } + _week.dow = options.firstDay; + localeData._week = _week; + } + + // assign a normalized value, to be used by our .week() moment extension + localeData._fullCalendar_weekCalc = (function(weekCalc) { + if (typeof weekCalc === 'function') { + return weekCalc; + } + else if (weekCalc === 'local') { + return weekCalc; + } + else if (weekCalc === 'iso' || weekCalc === 'ISO') { + return 'ISO'; + } + })(options.weekNumberCalculation); + + + + // Calendar-specific Date Utilities + // ----------------------------------------------------------------------------------- + + + t.defaultAllDayEventDuration = moment.duration(options.defaultAllDayEventDuration); + t.defaultTimedEventDuration = moment.duration(options.defaultTimedEventDuration); + + + // Builds a moment using the settings of the current calendar: timezone and language. + // Accepts anything the vanilla moment() constructor accepts. + t.moment = function() { + var mom; + + if (options.timezone === 'local') { + mom = FC.moment.apply(null, arguments); + + // Force the moment to be local, because FC.moment doesn't guarantee it. + if (mom.hasTime()) { // don't give ambiguously-timed moments a local zone + mom.local(); + } + } + else if (options.timezone === 'UTC') { + mom = FC.moment.utc.apply(null, arguments); // process as UTC + } + else { + mom = FC.moment.parseZone.apply(null, arguments); // let the input decide the zone + } + + if ('_locale' in mom) { // moment 2.8 and above + mom._locale = localeData; + } + else { // pre-moment-2.8 + mom._lang = localeData; + } + + return mom; + }; + + + // Returns a boolean about whether or not the calendar knows how to calculate + // the timezone offset of arbitrary dates in the current timezone. + t.getIsAmbigTimezone = function() { + return options.timezone !== 'local' && options.timezone !== 'UTC'; + }; + + + // Returns a copy of the given date in the current timezone of it is ambiguously zoned. + // This will also give the date an unambiguous time. + t.rezoneDate = function(date) { + return t.moment(date.toArray()); + }; + + + // Returns a moment for the current date, as defined by the client's computer, + // or overridden by the `now` option. + t.getNow = function() { + var now = options.now; + if (typeof now === 'function') { + now = now(); + } + return t.moment(now); + }; + + + // Get an event's normalized end date. If not present, calculate it from the defaults. + t.getEventEnd = function(event) { + if (event.end) { + return event.end.clone(); + } + else { + return t.getDefaultEventEnd(event.allDay, event.start); + } + }; + + + // Given an event's allDay status and start date, return swhat its fallback end date should be. + t.getDefaultEventEnd = function(allDay, start) { // TODO: rename to computeDefaultEventEnd + var end = start.clone(); + + if (allDay) { + end.stripTime().add(t.defaultAllDayEventDuration); + } + else { + end.add(t.defaultTimedEventDuration); + } + + if (t.getIsAmbigTimezone()) { + end.stripZone(); // we don't know what the tzo should be + } + + return end; + }; + + + // Produces a human-readable string for the given duration. + // Side-effect: changes the locale of the given duration. + t.humanizeDuration = function(duration) { + return (duration.locale || duration.lang).call(duration, options.lang) // works moment-pre-2.8 + .humanize(); + }; + + - - // imports - EventManager.call(t, options, eventSources); + // Imports + // ----------------------------------------------------------------------------------- + + + EventManager.call(t, options); var isFetchNeeded = t.isFetchNeeded; var fetchEvents = t.fetchEvents; - - - // locals + + + + // Locals + // ----------------------------------------------------------------------------------- + + var _element = element[0]; var header; var headerElement; var content; var tm; // for making theme classes - var currentView; - var viewInstances = {}; - var elementOuterWidth; + var currentView; // NOTE: keep this in sync with this.view + var viewsByType = {}; // holds all instantiated view instances, current or not var suggestedViewHeight; - var absoluteViewElement; - var resizeUID = 0; + var windowResizeProxy; // wraps the windowResize function var ignoreWindowResize = 0; - var date = new Date(); + var date; var events = []; - var _dragElement; - /* Main Rendering - -----------------------------------------------------------------------------*/ - - - setYMD(date, options.year, options.month, options.date); + // Main Rendering + // ----------------------------------------------------------------------------------- + + + if (options.defaultDate != null) { + date = t.moment(options.defaultDate); + } + else { + date = t.getNow(); + } - function render(inc) { + function render() { if (!content) { initialRender(); - }else{ + } + else if (elementVisible()) { + // mainly for the public API calcSize(); - markSizesDirty(); - markEventsDirty(); - renderView(inc); + renderView(); } } @@ -259,197 +8439,169 @@ function Calendar(element, options, eventSources) { function initialRender() { tm = options.theme ? 'ui' : 'fc'; element.addClass('fc'); + if (options.isRTL) { element.addClass('fc-rtl'); } else { element.addClass('fc-ltr'); } + if (options.theme) { element.addClass('ui-widget'); } - content = $("<div class='fc-content' style='position:relative'/>") - .prependTo(element); - header = new Header(t, options); + else { + element.addClass('fc-unthemed'); + } + + content = $("<div class='fc-view-container'/>").prependTo(element); + + header = t.header = new Header(t, options); headerElement = header.render(); if (headerElement) { element.prepend(headerElement); } - changeView(options.defaultView); - $(window).resize(windowResize); - // needed for IE in a 0x0 iframe, b/c when it is resized, never triggers a windowResize - if (!bodyVisible()) { - lateRender(); + + renderView(options.defaultView); + + if (options.handleWindowResize) { + windowResizeProxy = debounce(windowResize, options.windowResizeDelay); // prevents rapid calls + $(window).resize(windowResizeProxy); } } - // called when we know the calendar couldn't be rendered when it was initialized, - // but we think it's ready now - function lateRender() { - setTimeout(function() { // IE7 needs this so dimensions are calculated correctly - if (!currentView.start && bodyVisible()) { // !currentView.start makes sure this never happens more than once - renderView(); - } - },0); - } - - function destroy() { - $(window).unbind('resize', windowResize); - header.destroy(); + + if (currentView) { + currentView.removeElement(); + + // NOTE: don't null-out currentView/t.view in case API methods are called after destroy. + // It is still the "current" view, just not rendered. + } + + header.removeElement(); content.remove(); - element.removeClass('fc fc-rtl ui-widget'); + element.removeClass('fc fc-ltr fc-rtl fc-unthemed ui-widget'); + + if (windowResizeProxy) { + $(window).unbind('resize', windowResizeProxy); + } } - function elementVisible() { - return _element.offsetWidth !== 0; + return element.is(':visible'); } - function bodyVisible() { - return $('body')[0].offsetWidth !== 0; - } - - - - /* View Rendering - -----------------------------------------------------------------------------*/ - - // TODO: improve view switching (still weird transition in IE, and FF has whiteout problem) - - function changeView(newViewName) { - if (!currentView || newViewName != currentView.name) { - ignoreWindowResize++; // because setMinHeight might change the height before render (and subsequently setSize) is reached - - unselect(); - - var oldView = currentView; - var newViewElement; - - if (oldView) { - (oldView.beforeHide || noop)(); // called before changing min-height. if called after, scroll state is reset (in Opera) - setMinHeight(content, content.height()); - oldView.element.hide(); - }else{ - setMinHeight(content, 1); // needs to be 1 (not 0) for IE7, or else view dimensions miscalculated - } - content.css('overflow', 'hidden'); - - currentView = viewInstances[newViewName]; - if (currentView) { - currentView.element.show(); - }else{ - currentView = viewInstances[newViewName] = new fcViews[newViewName]( - newViewElement = absoluteViewElement = - $("<div class='fc-view fc-view-" + newViewName + "' style='position:absolute'/>") - .appendTo(content), - t // the calendar object - ); - } - - if (oldView) { - header.deactivateButton(oldView.name); - } - header.activateButton(newViewName); - - renderView(); // after height has been set, will make absoluteViewElement's position=relative, then set to null - - content.css('overflow', ''); - if (oldView) { - setMinHeight(content, 1); - } - - if (!newViewElement) { - (currentView.afterShow || noop)(); // called after setting min-height/overflow, so in final scroll state (for Opera) + + // View Rendering + // ----------------------------------------------------------------------------------- + + + // Renders a view because of a date change, view-type change, or for the first time. + // If not given a viewType, keep the current view but render different dates. + function renderView(viewType) { + ignoreWindowResize++; + + // if viewType is changing, remove the old view's rendering + if (currentView && viewType && currentView.type !== viewType) { + header.deactivateButton(currentView.type); + freezeContentHeight(); // prevent a scroll jump when view element is removed + currentView.removeElement(); + currentView = t.view = null; + } + + // if viewType changed, or the view was never created, create a fresh view + if (!currentView && viewType) { + currentView = t.view = + viewsByType[viewType] || + (viewsByType[viewType] = t.instantiateView(viewType)); + + currentView.setElement( + $("<div class='fc-view fc-" + viewType + "-view' />").appendTo(content) + ); + header.activateButton(viewType); + } + + if (currentView) { + + // in case the view should render a period of time that is completely hidden + date = currentView.massageCurrentDate(date); + + // render or rerender the view + if ( + !currentView.displaying || + !date.isWithin(currentView.intervalStart, currentView.intervalEnd) // implicit date window change + ) { + if (elementVisible()) { + + freezeContentHeight(); + currentView.display(date); + unfreezeContentHeight(); // immediately unfreeze regardless of whether display is async + + // need to do this after View::render, so dates are calculated + updateHeaderTitle(); + updateTodayButton(); + + getAndRenderEvents(); + } } - - ignoreWindowResize--; } + + unfreezeContentHeight(); // undo any lone freezeContentHeight calls + ignoreWindowResize--; } + + + // Resizing + // ----------------------------------------------------------------------------------- + + + t.getSuggestedViewHeight = function() { + if (suggestedViewHeight === undefined) { + calcSize(); + } + return suggestedViewHeight; + }; + + + t.isHeightAuto = function() { + return options.contentHeight === 'auto' || options.height === 'auto'; + }; - function renderView(inc) { + function updateSize(shouldRecalc) { if (elementVisible()) { - ignoreWindowResize++; // because renderEvents might temporarily change the height before setSize is reached - - unselect(); - - if (suggestedViewHeight === undefined) { - calcSize(); - } - - var forceEventRender = false; - if (!currentView.start || inc || date < currentView.start || date >= currentView.end) { - // view must render an entire new date range (and refetch/render events) - currentView.render(date, inc || 0); // responsible for clearing events - setSize(true); - forceEventRender = true; - } - else if (currentView.sizeDirty) { - // view must resize (and rerender events) - currentView.clearEvents(); - setSize(); - forceEventRender = true; - } - else if (currentView.eventsDirty) { - currentView.clearEvents(); - forceEventRender = true; - } - currentView.sizeDirty = false; - currentView.eventsDirty = false; - updateEvents(forceEventRender); - - elementOuterWidth = element.outerWidth(); - - header.updateTitle(currentView.title); - var today = new Date(); - if (today >= currentView.start && today < currentView.end) { - header.disableButton('today'); - }else{ - header.enableButton('today'); + + if (shouldRecalc) { + _calcSize(); } - + + ignoreWindowResize++; + currentView.updateSize(true); // isResize=true. will poll getSuggestedViewHeight() and isHeightAuto() ignoreWindowResize--; - currentView.trigger('viewDisplay', _element); + + return true; // signal success } } - - - - /* Resizing - -----------------------------------------------------------------------------*/ - - - function updateSize() { - markSizesDirty(); + + + function calcSize() { if (elementVisible()) { - calcSize(); - setSize(); - unselect(); - currentView.clearEvents(); - currentView.renderEvents(events); - currentView.sizeDirty = false; + _calcSize(); } } - function markSizesDirty() { - $.each(viewInstances, function(i, inst) { - inst.sizeDirty = true; - }); - } - - - function calcSize() { - if (options.contentHeight) { + function _calcSize() { // assumes elementVisible + if (typeof options.contentHeight === 'number') { // exists and not 'auto' suggestedViewHeight = options.contentHeight; } - else if (options.height) { - suggestedViewHeight = options.height - (headerElement ? headerElement.height() : 0) - vsides(content); + else if (typeof options.height === 'number') { // exists and not 'auto' + suggestedViewHeight = options.height - (headerElement ? headerElement.outerHeight(true) : 0); } else { suggestedViewHeight = Math.round(content.width() / Math.max(options.aspectRatio, .5)); @@ -457,35 +8609,14 @@ function Calendar(element, options, eventSources) { } - function setSize(dateChanged) { // todo: dateChanged? - ignoreWindowResize++; - currentView.setHeight(suggestedViewHeight, dateChanged); - if (absoluteViewElement) { - absoluteViewElement.css('position', 'relative'); - absoluteViewElement = null; - } - currentView.setWidth(content.width(), dateChanged); - ignoreWindowResize--; - } - - - function windowResize() { - if (!ignoreWindowResize) { - if (currentView.start) { // view has already been rendered - var uid = ++resizeUID; - setTimeout(function() { // add a delay - if (uid == resizeUID && !ignoreWindowResize && elementVisible()) { - if (elementOuterWidth != (elementOuterWidth = element.outerWidth())) { - ignoreWindowResize++; // in case the windowResize callback changes the height - updateSize(); - currentView.trigger('windowResize', _element); - ignoreWindowResize--; - } - } - }, 200); - }else{ - // calendar must have been initialized in a 0x0 iframe that has just been resized - lateRender(); + function windowResize(ev) { + if ( + !ignoreWindowResize && + ev.target === window && // so we don't process jqui "resize" events that have bubbled up + currentView.start // view has already been rendered + ) { + if (updateSize(true)) { + currentView.trigger('windowResize', _element); } } } @@ -494,52 +8625,79 @@ function Calendar(element, options, eventSources) { /* Event Fetching/Rendering -----------------------------------------------------------------------------*/ + // TODO: going forward, most of this stuff should be directly handled by the view + + + function refetchEvents() { // can be called as an API method + destroyEvents(); // so that events are cleared before user starts waiting for AJAX + fetchAndRenderEvents(); + } + + + function renderEvents() { // destroys old events if previously rendered + if (elementVisible()) { + freezeContentHeight(); + currentView.displayEvents(events); + unfreezeContentHeight(); + } + } + + + function destroyEvents() { + freezeContentHeight(); + currentView.clearEvents(); + unfreezeContentHeight(); + } - - // fetches events if necessary, rerenders events if necessary (or if forced) - function updateEvents(forceRender) { - if (!options.lazyFetching || isFetchNeeded(currentView.visStart, currentView.visEnd)) { - refetchEvents(); + + function getAndRenderEvents() { + if (!options.lazyFetching || isFetchNeeded(currentView.start, currentView.end)) { + fetchAndRenderEvents(); } - else if (forceRender) { - rerenderEvents(); + else { + renderEvents(); } } - - - function refetchEvents() { - fetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents + + + function fetchAndRenderEvents() { + fetchEvents(currentView.start, currentView.end); + // ... will call reportEvents + // ... which will call renderEvents } - + // called when event data arrives function reportEvents(_events) { events = _events; - rerenderEvents(); + renderEvents(); } - - + + // called when a single event's data has been changed - function reportEventChange(eventID) { - rerenderEvents(eventID); + function reportEventChange() { + renderEvents(); } - - - // attempts to rerenderEvents - function rerenderEvents(modifiedEventID) { - markEventsDirty(); - if (elementVisible()) { - currentView.clearEvents(); - currentView.renderEvents(events, modifiedEventID); - currentView.eventsDirty = false; - } + + + + /* Header Updating + -----------------------------------------------------------------------------*/ + + + function updateHeaderTitle() { + header.updateTitle(currentView.title); } - - - function markEventsDirty() { - $.each(viewInstances, function(i, inst) { - inst.eventsDirty = true; - }); + + + function updateTodayButton() { + var now = t.getNow(); + if (now.isWithin(currentView.intervalStart, currentView.intervalEnd)) { + header.disableButton('today'); + } + else { + header.enableButton('today'); + } } @@ -548,8 +8706,10 @@ function Calendar(element, options, eventSources) { -----------------------------------------------------------------------------*/ - function select(start, end, allDay) { - currentView.select(start, end, allDay===undefined ? true : allDay); + function select(start, end) { + currentView.select( + t.buildSelectRange.apply(t, arguments) + ); } @@ -566,59 +8726,86 @@ function Calendar(element, options, eventSources) { function prev() { - renderView(-1); + date = currentView.computePrevDate(date); + renderView(); } function next() { - renderView(1); + date = currentView.computeNextDate(date); + renderView(); } function prevYear() { - addYears(date, -1); + date.add(-1, 'years'); renderView(); } function nextYear() { - addYears(date, 1); + date.add(1, 'years'); renderView(); } function today() { - date = new Date(); + date = t.getNow(); renderView(); } - function gotoDate(year, month, dateOfMonth) { - if (year instanceof Date) { - date = cloneDate(year); // provided 1 argument, a Date - }else{ - setYMD(date, year, month, dateOfMonth); - } + function gotoDate(dateInput) { + date = t.moment(dateInput); renderView(); } - function incrementDate(years, months, days) { - if (years !== undefined) { - addYears(date, years); - } - if (months !== undefined) { - addMonths(date, months); - } - if (days !== undefined) { - addDays(date, days); - } + function incrementDate(delta) { + date.add(moment.duration(delta)); renderView(); } + + + // Forces navigation to a view for the given date. + // `viewType` can be a specific view name or a generic one like "week" or "day". + function zoomTo(newDate, viewType) { + var spec; + + viewType = viewType || 'day'; // day is default zoom + spec = t.getViewSpec(viewType) || t.getUnitViewSpec(viewType); + + date = newDate; + renderView(spec ? spec.type : null); + } function getDate() { - return cloneDate(date); + return date.clone(); + } + + + + /* Height "Freezing" + -----------------------------------------------------------------------------*/ + // TODO: move this into the view + + + function freezeContentHeight() { + content.css({ + width: '100%', + height: content.height(), + overflow: 'hidden' + }); + } + + + function unfreezeContentHeight() { + content.css({ + width: '', + height: '', + overflow: '' + }); } @@ -626,6 +8813,11 @@ function Calendar(element, options, eventSources) { /* Misc -----------------------------------------------------------------------------*/ + + function getCalendar() { + return t; + } + function getView() { return currentView; @@ -638,213 +8830,596 @@ function Calendar(element, options, eventSources) { } if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') { options[name] = value; - updateSize(); + updateSize(true); // true = allow recalculation of height } } - function trigger(name, thisObj) { + function trigger(name, thisObj) { // overrides the Emitter's trigger method :( + var args = Array.prototype.slice.call(arguments, 2); + + thisObj = thisObj || _element; + this.triggerWith(name, thisObj, args); // Emitter's method + if (options[name]) { - return options[name].apply( - thisObj || _element, - Array.prototype.slice.call(arguments, 2) - ); + return options[name].apply(thisObj, args); } } + + t.initialize(); +} + +;; + +Calendar.defaults = { + + titleRangeSeparator: ' \u2014 ', // emphasized dash + monthYearFormat: 'MMMM YYYY', // required for en. other languages rely on datepicker computable option + + defaultTimedEventDuration: '02:00:00', + defaultAllDayEventDuration: { days: 1 }, + forceEventDuration: false, + nextDayThreshold: '09:00:00', // 9am + + // display + defaultView: 'month', + aspectRatio: 1.35, + header: { + left: 'title', + center: '', + right: 'today prev,next' + }, + weekends: true, + weekNumbers: false, + + weekNumberTitle: 'W', + weekNumberCalculation: 'local', + //editable: false, + + scrollTime: '06:00:00', + // event ajax + lazyFetching: true, + startParam: 'start', + endParam: 'end', + timezoneParam: 'timezone', + + timezone: false, + + //allDayDefault: undefined, + + // locale + isRTL: false, + buttonText: { + prev: "prev", + next: "next", + prevYear: "prev year", + nextYear: "next year", + year: 'year', // TODO: locale files need to specify this + today: 'today', + month: 'month', + week: 'week', + day: 'day' + }, + + buttonIcons: { + prev: 'left-single-arrow', + next: 'right-single-arrow', + prevYear: 'left-double-arrow', + nextYear: 'right-double-arrow' + }, - /* External Dragging - ------------------------------------------------------------------------*/ + // jquery-ui theming + theme: false, + themeButtonIcons: { + prev: 'circle-triangle-w', + next: 'circle-triangle-e', + prevYear: 'seek-prev', + nextYear: 'seek-next' + }, + + //eventResizableFromStart: false, + dragOpacity: .75, + dragRevertDuration: 500, + dragScroll: true, - if (options.droppable) { - $(document) - .bind('dragstart', function(ev, ui) { - var _e = ev.target; - var e = $(_e); - if (!e.parents('.fc').length) { // not already inside a calendar - var accept = options.dropAccept; - if ($.isFunction(accept) ? accept.call(_e, e) : e.is(accept)) { - _dragElement = _e; - currentView.dragStart(_dragElement, ev, ui); - } - } - }) - .bind('dragstop', function(ev, ui) { - if (_dragElement) { - currentView.dragStop(_dragElement, ev, ui); - _dragElement = null; - } - }); - } + //selectable: false, + unselectAuto: true, + + dropAccept: '*', + + eventOrder: 'title', + + eventLimit: false, + eventLimitText: 'more', + eventLimitClick: 'popover', + dayPopoverFormat: 'LL', + + handleWindowResize: true, + windowResizeDelay: 200 // milliseconds before an updateSize happens +}; + + +Calendar.englishDefaults = { // used by lang.js + dayPopoverFormat: 'dddd, MMMM D' +}; + + +Calendar.rtlDefaults = { // right-to-left defaults + header: { // TODO: smarter solution (first/center/last ?) + left: 'next,prev today', + center: '', + right: 'title' + }, + buttonIcons: { + prev: 'right-single-arrow', + next: 'left-single-arrow', + prevYear: 'right-double-arrow', + nextYear: 'left-double-arrow' + }, + themeButtonIcons: { + prev: 'circle-triangle-e', + next: 'circle-triangle-w', + nextYear: 'seek-prev', + prevYear: 'seek-next' + } +}; + +;; + +var langOptionHash = FC.langs = {}; // initialize and expose + + +// TODO: document the structure and ordering of a FullCalendar lang file +// TODO: rename everything "lang" to "locale", like what the moment project did + + +// Initialize jQuery UI datepicker translations while using some of the translations +// Will set this as the default language for datepicker. +FC.datepickerLang = function(langCode, dpLangCode, dpOptions) { + + // get the FullCalendar internal option hash for this language. create if necessary + var fcOptions = langOptionHash[langCode] || (langOptionHash[langCode] = {}); + + // transfer some simple options from datepicker to fc + fcOptions.isRTL = dpOptions.isRTL; + fcOptions.weekNumberTitle = dpOptions.weekHeader; + + // compute some more complex options from datepicker + $.each(dpComputableOptions, function(name, func) { + fcOptions[name] = func(dpOptions); + }); + + // is jQuery UI Datepicker is on the page? + if ($.datepicker) { + + // Register the language data. + // FullCalendar and MomentJS use language codes like "pt-br" but Datepicker + // does it like "pt-BR" or if it doesn't have the language, maybe just "pt". + // Make an alias so the language can be referenced either way. + $.datepicker.regional[dpLangCode] = + $.datepicker.regional[langCode] = // alias + dpOptions; + + // Alias 'en' to the default language data. Do this every time. + $.datepicker.regional.en = $.datepicker.regional['']; + + // Set as Datepicker's global defaults. + $.datepicker.setDefaults(dpOptions); + } +}; + + +// Sets FullCalendar-specific translations. Will set the language as the global default. +FC.lang = function(langCode, newFcOptions) { + var fcOptions; + var momOptions; + + // get the FullCalendar internal option hash for this language. create if necessary + fcOptions = langOptionHash[langCode] || (langOptionHash[langCode] = {}); + // provided new options for this language? merge them in + if (newFcOptions) { + fcOptions = langOptionHash[langCode] = mergeOptions([ fcOptions, newFcOptions ]); + } + + // compute language options that weren't defined. + // always do this. newFcOptions can be undefined when initializing from i18n file, + // so no way to tell if this is an initialization or a default-setting. + momOptions = getMomentLocaleData(langCode); // will fall back to en + $.each(momComputableOptions, function(name, func) { + if (fcOptions[name] == null) { + fcOptions[name] = func(momOptions, fcOptions); + } + }); + + // set it as the default language for FullCalendar + Calendar.defaults.lang = langCode; +}; + + +// NOTE: can't guarantee any of these computations will run because not every language has datepicker +// configs, so make sure there are English fallbacks for these in the defaults file. +var dpComputableOptions = { + + buttonText: function(dpOptions) { + return { + // the translations sometimes wrongly contain HTML entities + prev: stripHtmlEntities(dpOptions.prevText), + next: stripHtmlEntities(dpOptions.nextText), + today: stripHtmlEntities(dpOptions.currentText) + }; + }, + + // Produces format strings like "MMMM YYYY" -> "September 2014" + monthYearFormat: function(dpOptions) { + return dpOptions.showMonthAfterYear ? + 'YYYY[' + dpOptions.yearSuffix + '] MMMM' : + 'MMMM YYYY[' + dpOptions.yearSuffix + ']'; + } + +}; + +var momComputableOptions = { + + // Produces format strings like "ddd M/D" -> "Fri 9/15" + dayOfMonthFormat: function(momOptions, fcOptions) { + var format = momOptions.longDateFormat('l'); // for the format like "M/D/YYYY" + + // strip the year off the edge, as well as other misc non-whitespace chars + format = format.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g, ''); + + if (fcOptions.isRTL) { + format += ' ddd'; // for RTL, add day-of-week to end + } + else { + format = 'ddd ' + format; // for LTR, add day-of-week to beginning + } + return format; + }, + + // Produces format strings like "h:mma" -> "6:00pm" + mediumTimeFormat: function(momOptions) { // can't be called `timeFormat` because collides with option + return momOptions.longDateFormat('LT') + .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand + }, + + // Produces format strings like "h(:mm)a" -> "6pm" / "6:30pm" + smallTimeFormat: function(momOptions) { + return momOptions.longDateFormat('LT') + .replace(':mm', '(:mm)') + .replace(/(\Wmm)$/, '($1)') // like above, but for foreign langs + .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand + }, + + // Produces format strings like "h(:mm)t" -> "6p" / "6:30p" + extraSmallTimeFormat: function(momOptions) { + return momOptions.longDateFormat('LT') + .replace(':mm', '(:mm)') + .replace(/(\Wmm)$/, '($1)') // like above, but for foreign langs + .replace(/\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand + }, + + // Produces format strings like "ha" / "H" -> "6pm" / "18" + hourFormat: function(momOptions) { + return momOptions.longDateFormat('LT') + .replace(':mm', '') + .replace(/(\Wmm)$/, '') // like above, but for foreign langs + .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand + }, + + // Produces format strings like "h:mm" -> "6:30" (with no AM/PM) + noMeridiemTimeFormat: function(momOptions) { + return momOptions.longDateFormat('LT') + .replace(/\s*a$/i, ''); // remove trailing AM/PM + } + +}; + + +// options that should be computed off live calendar options (considers override options) +// TODO: best place for this? related to lang? +// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it +var instanceComputableOptions = { + + // Produces format strings for results like "Mo 16" + smallDayDateFormat: function(options) { + return options.isRTL ? + 'D dd' : + 'dd D'; + }, + + // Produces format strings for results like "Wk 5" + weekFormat: function(options) { + return options.isRTL ? + 'w[ ' + options.weekNumberTitle + ']' : + '[' + options.weekNumberTitle + ' ]w'; + }, + + // Produces format strings for results like "Wk5" + smallWeekFormat: function(options) { + return options.isRTL ? + 'w[' + options.weekNumberTitle + ']' : + '[' + options.weekNumberTitle + ']w'; + } + +}; + +function populateInstanceComputableOptions(options) { + $.each(instanceComputableOptions, function(name, func) { + if (options[name] == null) { + options[name] = func(options); + } + }); } + +// Returns moment's internal locale data. If doesn't exist, returns English. +// Works with moment-pre-2.8 +function getMomentLocaleData(langCode) { + var func = moment.localeData || moment.langData; + return func.call(moment, langCode) || + func.call(moment, 'en'); // the newer localData could return null, so fall back to en +} + + +// Initialize English by forcing computation of moment-derived options. +// Also, sets it as the default. +FC.lang('en', Calendar.englishDefaults); + ;; +/* Top toolbar area with buttons and title +----------------------------------------------------------------------------------------------------------------------*/ +// TODO: rename all header-related things to "toolbar" + function Header(calendar, options) { var t = this; - // exports t.render = render; - t.destroy = destroy; + t.removeElement = removeElement; t.updateTitle = updateTitle; t.activateButton = activateButton; t.deactivateButton = deactivateButton; t.disableButton = disableButton; t.enableButton = enableButton; - + t.getViewsWithButtons = getViewsWithButtons; // locals - var element = $([]); + var el = $(); + var viewsWithButtons = []; var tm; - function render() { - tm = options.theme ? 'ui' : 'fc'; var sections = options.header; + + tm = options.theme ? 'ui' : 'fc'; + if (sections) { - element = $("<table class='fc-header' style='width:100%'/>") - .append( - $("<tr/>") - .append(renderSection('left')) - .append(renderSection('center')) - .append(renderSection('right')) - ); - return element; + el = $("<div class='fc-toolbar'/>") + .append(renderSection('left')) + .append(renderSection('right')) + .append(renderSection('center')) + .append('<div class="fc-clear"/>'); + + return el; } } - function destroy() { - element.remove(); + function removeElement() { + el.remove(); + el = $(); } function renderSection(position) { - var e = $("<td class='fc-header-" + position + "'/>"); + var sectionEl = $('<div class="fc-' + position + '"/>'); var buttonStr = options.header[position]; + if (buttonStr) { $.each(buttonStr.split(' '), function(i) { - if (i > 0) { - e.append("<span class='fc-header-space'/>"); - } - var prevButton; + var groupChildren = $(); + var isOnlyButtons = true; + var groupEl; + $.each(this.split(','), function(j, buttonName) { + var customButtonProps; + var viewSpec; + var buttonClick; + var overrideText; // text explicitly set by calendar's constructor options. overcomes icons + var defaultText; + var themeIcon; + var normalIcon; + var innerHtml; + var classes; + var button; // the element + if (buttonName == 'title') { - e.append("<span class='fc-header-title'><h2> </h2></span>"); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); - } - prevButton = null; - }else{ - var buttonClick; - if (calendar[buttonName]) { - buttonClick = calendar[buttonName]; // calendar method + groupChildren = groupChildren.add($('<h2> </h2>')); // we always want it to take up height + isOnlyButtons = false; + } + else { + if ((customButtonProps = (calendar.options.customButtons || {})[buttonName])) { + buttonClick = function(ev) { + if (customButtonProps.click) { + customButtonProps.click.call(button[0], ev); + } + }; + overrideText = ''; // icons will override text + defaultText = customButtonProps.text; } - else if (fcViews[buttonName]) { + else if ((viewSpec = calendar.getViewSpec(buttonName))) { buttonClick = function() { - button.removeClass(tm + '-state-hover'); // forget why calendar.changeView(buttonName); }; + viewsWithButtons.push(buttonName); + overrideText = viewSpec.buttonTextOverride; + defaultText = viewSpec.buttonTextDefault; } + else if (calendar[buttonName]) { // a calendar method + buttonClick = function() { + calendar[buttonName](); + }; + overrideText = (calendar.overrides.buttonText || {})[buttonName]; + defaultText = options.buttonText[buttonName]; // everything else is considered default + } + if (buttonClick) { - var icon = options.theme ? smartProperty(options.buttonIcons, buttonName) : null; // why are we using smartProperty here? - var text = smartProperty(options.buttonText, buttonName); // why are we using smartProperty here? - var button = $( - "<span class='fc-button fc-button-" + buttonName + " " + tm + "-state-default'>" + - (icon ? - "<span class='fc-icon-wrap'>" + - "<span class='ui-icon ui-icon-" + icon + "'/>" + - "</span>" : - text - ) + - "</span>" + + themeIcon = + customButtonProps ? + customButtonProps.themeIcon : + options.themeButtonIcons[buttonName]; + + normalIcon = + customButtonProps ? + customButtonProps.icon : + options.buttonIcons[buttonName]; + + if (overrideText) { + innerHtml = htmlEscape(overrideText); + } + else if (themeIcon && options.theme) { + innerHtml = "<span class='ui-icon ui-icon-" + themeIcon + "'></span>"; + } + else if (normalIcon && !options.theme) { + innerHtml = "<span class='fc-icon fc-icon-" + normalIcon + "'></span>"; + } + else { + innerHtml = htmlEscape(defaultText); + } + + classes = [ + 'fc-' + buttonName + '-button', + tm + '-button', + tm + '-state-default' + ]; + + button = $( // type="button" so that it doesn't submit a form + '<button type="button" class="' + classes.join(' ') + '">' + + innerHtml + + '</button>' ) - .click(function() { + .click(function(ev) { + // don't process clicks for disabled buttons if (!button.hasClass(tm + '-state-disabled')) { - buttonClick(); + + 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'); + .removeClass(tm + '-state-down'); // if mouseleave happens before mouseup } - ) - .appendTo(e); - disableTextSelection(button); - if (!prevButton) { - button.addClass(tm + '-corner-left'); - } - prevButton = button; + ); + + groupChildren = groupChildren.add(button); } } }); - if (prevButton) { - prevButton.addClass(tm + '-corner-right'); + + if (isOnlyButtons) { + groupChildren + .first().addClass(tm + '-corner-left').end() + .last().addClass(tm + '-corner-right').end(); + } + + if (groupChildren.length > 1) { + groupEl = $('<div/>'); + if (isOnlyButtons) { + groupEl.addClass('fc-button-group'); + } + groupEl.append(groupChildren); + sectionEl.append(groupEl); + } + else { + sectionEl.append(groupChildren); // 1 or 0 children } }); } - return e; + + return sectionEl; } - function updateTitle(html) { - element.find('h2') - .html(html); + function updateTitle(text) { + el.find('h2').text(text); } function activateButton(buttonName) { - element.find('span.fc-button-' + buttonName) + el.find('.fc-' + buttonName + '-button') .addClass(tm + '-state-active'); } function deactivateButton(buttonName) { - element.find('span.fc-button-' + buttonName) + el.find('.fc-' + buttonName + '-button') .removeClass(tm + '-state-active'); } function disableButton(buttonName) { - element.find('span.fc-button-' + buttonName) + el.find('.fc-' + buttonName + '-button') + .attr('disabled', 'disabled') .addClass(tm + '-state-disabled'); } function enableButton(buttonName) { - element.find('span.fc-button-' + buttonName) + el.find('.fc-' + buttonName + '-button') + .removeAttr('disabled') .removeClass(tm + '-state-disabled'); } + function getViewsWithButtons() { + return viewsWithButtons; + } + } ;; -fc.sourceNormalizers = []; -fc.sourceFetchers = []; +FC.sourceNormalizers = []; +FC.sourceFetchers = []; var ajaxDefaults = { dataType: 'json', @@ -854,7 +9429,7 @@ var ajaxDefaults = { var eventGUID = 1; -function EventManager(options, _sources) { +function EventManager(options) { // assumed to be a calendar var t = this; @@ -867,12 +9442,13 @@ function EventManager(options, _sources) { t.renderEvent = renderEvent; t.removeEvents = removeEvents; t.clientEvents = clientEvents; - t.normalizeEvent = normalizeEvent; + t.mutateEvent = mutateEvent; + t.normalizeEventRange = normalizeEventRange; + t.normalizeEventRangeTimes = normalizeEventRangeTimes; + t.ensureVisibleEventRange = ensureVisibleEventRange; // imports - var trigger = t.trigger; - var getView = t.getView; var reportEvents = t.reportEvents; @@ -882,13 +9458,18 @@ function EventManager(options, _sources) { var rangeStart, rangeEnd; var currentFetchID = 0; var pendingSourceCnt = 0; - var loadingLevel = 0; - var cache = []; - - - for (var i=0; i<_sources.length; i++) { - _addEventSource(_sources[i]); - } + 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); + } + } + ); @@ -897,7 +9478,10 @@ function EventManager(options, _sources) { function isFetchNeeded(start, end) { - return !rangeStart || start < rangeStart || end > rangeEnd; + 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(); } @@ -915,25 +9499,33 @@ function EventManager(options, _sources) { function fetchEventSource(source, fetchID) { - _fetchEventSource(source, function(events) { + _fetchEventSource(source, function(eventInputs) { + var isArraySource = $.isArray(source.events); + var i, eventInput; + var abstractEvent; + if (fetchID == currentFetchID) { - if (events) { - if (options.eventDataTransform) { - events = $.map(events, options.eventDataTransform); - } - if (source.eventDataTransform) { - events = $.map(events, source.eventDataTransform); - } - // TODO: this technique is not ideal for static array event sources. - // For arrays, we'll want to process all events right in the beginning, then never again. - - for (var i=0; i<events.length; i++) { - events[i].source = source; - normalizeEvent(events[i]); + if (eventInputs) { + for (i = 0; i < eventInputs.length; i++) { + eventInput = eventInputs[i]; + + if (isArraySource) { // array sources have already been convert to Event Objects + abstractEvent = eventInput; + } + else { + abstractEvent = buildEventFromInput(eventInput, source); + } + + if (abstractEvent) { // not false (an invalid event) + cache.push.apply( + cache, + expandEvent(abstractEvent) // add individual expanded events to the cache + ); + } } - cache = cache.concat(events); } + pendingSourceCnt--; if (!pendingSourceCnt) { reportEvents(cache); @@ -945,10 +9537,19 @@ function EventManager(options, _sources) { function _fetchEventSource(source, callback) { var i; - var fetchers = fc.sourceFetchers; + var fetchers = FC.sourceFetchers; var res; + for (i=0; i<fetchers.length; i++) { - res = fetchers[i](source, rangeStart, rangeEnd, callback); + res = fetchers[i].call( + t, // this, the Calendar object + source, + rangeStart.clone(), + rangeEnd.clone(), + options.timezone, + callback + ); + if (res === true) { // the fetcher is in charge. made its own async request return; @@ -959,14 +9560,21 @@ function EventManager(options, _sources) { return; } } + var events = source.events; if (events) { if ($.isFunction(events)) { - pushLoading(); - events(cloneDate(rangeStart), cloneDate(rangeEnd), function(events) { - callback(events); - popLoading(); - }); + t.pushLoading(); + events.call( + t, // this, the Calendar object + rangeStart.clone(), + rangeEnd.clone(), + options.timezone, + function(events) { + callback(events); + t.popLoading(); + } + ); } else if ($.isArray(events)) { callback(events); @@ -980,16 +9588,37 @@ function EventManager(options, _sources) { var success = source.success; var error = source.error; var complete = source.complete; - var data = $.extend({}, source.data || {}); + + // retrieve any outbound GET/POST $.ajax data from the options + var customData; + if ($.isFunction(source.data)) { + // supplied as a function that returns a key/value object + customData = source.data(); + } + else { + // supplied as a straight key/value object + customData = source.data; + } + + // use a copy of the custom data so we can modify the parameters + // and not affect the passed-in object. + var data = $.extend({}, customData || {}); + var startParam = firstDefined(source.startParam, options.startParam); var endParam = firstDefined(source.endParam, options.endParam); + var timezoneParam = firstDefined(source.timezoneParam, options.timezoneParam); + if (startParam) { - data[startParam] = Math.round(+rangeStart / 1000); + data[startParam] = rangeStart.format(); } if (endParam) { - data[endParam] = Math.round(+rangeEnd / 1000); + data[endParam] = rangeEnd.format(); + } + if (options.timezone && options.timezone != 'local') { + data[timezoneParam] = options.timezone; } - pushLoading(); + + t.pushLoading(); $.ajax($.extend({}, ajaxDefaults, source, { data: data, success: function(events) { @@ -1006,7 +9635,7 @@ function EventManager(options, _sources) { }, complete: function() { applyAll(complete, this, arguments); - popLoading(); + t.popLoading(); } })); }else{ @@ -1021,29 +9650,60 @@ function EventManager(options, _sources) { -----------------------------------------------------------------------------*/ - function addEventSource(source) { - source = _addEventSource(source); + function addEventSource(sourceInput) { + var source = buildEventSource(sourceInput); if (source) { + sources.push(source); pendingSourceCnt++; fetchEventSource(source, currentFetchID); // will eventually call reportEvents } } - - - function _addEventSource(source) { - if ($.isFunction(source) || $.isArray(source)) { - source = { events: source }; + + + function buildEventSource(sourceInput) { // will return undefined if invalid source + var normalizers = FC.sourceNormalizers; + var source; + var i; + + if ($.isFunction(sourceInput) || $.isArray(sourceInput)) { + source = { events: sourceInput }; } - else if (typeof source == 'string') { - source = { url: source }; + else if (typeof sourceInput === 'string') { + source = { url: sourceInput }; } - if (typeof source == 'object') { - normalizeSource(source); - sources.push(source); + else if (typeof sourceInput === 'object') { + source = $.extend({}, sourceInput); // shallow copy + } + + if (source) { + + // TODO: repeat code, same code for event classNames + if (source.className) { + if (typeof source.className === 'string') { + source.className = source.className.split(/\s+/); + } + // otherwise, assumed to be an array + } + else { + source.className = []; + } + + // for array sources, we convert to standard Event Objects up front + if ($.isArray(source.events)) { + source.origArray = source.events; // for removeEventSource + source.events = $.map(source.events, function(eventInput) { + return buildEventFromInput(eventInput, source); + }); + } + + for (i=0; i<normalizers.length; i++) { + normalizers[i].call(t, source); + } + return source; } } - + function removeEventSource(source) { sources = $.grep(sources, function(src) { @@ -1055,87 +9715,122 @@ function EventManager(options, _sources) { }); reportEvents(cache); } + + + function isSourcesEqual(source1, source2) { + return source1 && source2 && getSourcePrimitive(source1) == getSourcePrimitive(source2); + } + + + function getSourcePrimitive(source) { + return ( + (typeof source === 'object') ? // a normalized event source? + (source.origArray || source.googleCalendarId || source.url || source.events) : // get the primitive + null + ) || + source; // the given argument *is* the primitive + } /* Manipulation -----------------------------------------------------------------------------*/ - - - function updateEvent(event) { // update an existing event - var i, len = cache.length, e, - defaultEventEnd = getView().defaultEventEnd, // getView??? - startDelta = event.start - event._start, - endDelta = event.end ? - (event.end - (event._end || defaultEventEnd(event))) // event._end would be null if event.end - : 0; // was null and event was just resized - for (i=0; i<len; i++) { - e = cache[i]; - if (e._id == event._id && e != event) { - e.start = new Date(+e.start + startDelta); - if (event.end) { - if (e.end) { - e.end = new Date(+e.end + endDelta); - }else{ - e.end = new Date(+defaultEventEnd(e) + endDelta); - } - }else{ - e.end = null; + + + // Only ever called from the externally-facing API + function updateEvent(event) { + + // massage start/end values, even if date string values + event.start = t.moment(event.start); + if (event.end) { + event.end = t.moment(event.end); + } + else { + event.end = null; + } + + mutateEvent(event, getMiscEventProps(event)); // will handle start/end/allDay normalization + reportEvents(cache); // reports event modifications (so we can redraw) + } + + + // Returns a hash of misc event properties that should be copied over to related events. + function getMiscEventProps(event) { + var props = {}; + + $.each(event, function(name, val) { + if (isMiscEventPropName(name)) { + if (val !== undefined && isAtomic(val)) { // a defined non-object + props[name] = val; } - e.title = event.title; - e.url = event.url; - e.allDay = event.allDay; - e.className = event.className; - e.editable = event.editable; - e.color = event.color; - e.backgroudColor = event.backgroudColor; - e.borderColor = event.borderColor; - e.textColor = event.textColor; - normalizeEvent(e); - } - } - normalizeEvent(event); - reportEvents(cache); + } + }); + + return props; } + + // non-date-related, non-id-related, non-secret + function isMiscEventPropName(name) { + return !/^_|^(id|allDay|start|end)$/.test(name); + } + - - function renderEvent(event, stick) { - normalizeEvent(event); - if (!event.source) { - if (stick) { - stickySource.events.push(event); - event.source = stickySource; + // returns the expanded events that were created + function renderEvent(eventInput, stick) { + var abstractEvent = buildEventFromInput(eventInput); + var events; + var i, event; + + if (abstractEvent) { // not false (a valid input) + events = expandEvent(abstractEvent); + + for (i = 0; i < events.length; i++) { + event = events[i]; + + if (!event.source) { + if (stick) { + stickySource.events.push(event); + event.source = stickySource; + } + cache.push(event); + } } - cache.push(event); + + reportEvents(cache); + + return events; } - reportEvents(cache); + + return []; } function removeEvents(filter) { - if (!filter) { // remove all - cache = []; - // clear all array sources - for (var i=0; i<sources.length; i++) { - if ($.isArray(sources[i].events)) { - sources[i].events = []; - } - } - }else{ - if (!$.isFunction(filter)) { // an event ID - var id = filter + ''; - filter = function(e) { - return e._id == id; - }; - } - cache = $.grep(cache, filter, true); - // remove events from array sources - for (var i=0; i<sources.length; i++) { - if ($.isArray(sources[i].events)) { - sources[i].events = $.grep(sources[i].events, filter, true); - } + var eventID; + var i; + + if (filter == null) { // null or undefined. remove all events + filter = function() { return true; }; // will always match + } + else if (!$.isFunction(filter)) { // an event ID + eventID = filter + ''; + filter = function(event) { + return event._id == eventID; + }; + } + + // Purge event(s) from our local cache + cache = $.grep(cache, filter, true); // inverse=true + + // Remove events from array sources. + // This works because they have been converted to official Event Objects up front. + // (and as a result, event._id has been calculated). + for (i=0; i<sources.length; i++) { + if ($.isArray(sources[i].events)) { + sources[i].events = $.grep(sources[i].events, filter, true); } } + reportEvents(cache); } @@ -1144,7 +9839,7 @@ function EventManager(options, _sources) { if ($.isFunction(filter)) { return $.grep(cache, filter); } - else if (filter) { // an event ID + else if (filter != null) { // not null, not undefined. an event ID filter += ''; return $.grep(cache, function(e) { return e._id == filter; @@ -1155,4223 +9850,1615 @@ function EventManager(options, _sources) { - /* Loading State - -----------------------------------------------------------------------------*/ - - - function pushLoading() { - if (!loadingLevel++) { - trigger('loading', null, true); - } - } - - - function popLoading() { - if (!--loadingLevel) { - trigger('loading', null, false); - } - } - - - /* Event Normalization -----------------------------------------------------------------------------*/ - - - function normalizeEvent(event) { - var source = event.source || {}; - var ignoreTimezone = firstDefined(source.ignoreTimezone, options.ignoreTimezone); - event._id = event._id || (event.id === undefined ? '_fc' + eventGUID++ : event.id + ''); - if (event.date) { - if (!event.start) { - event.start = event.date; - } - delete event.date; + + + // 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); } - event._start = cloneDate(event.start = parseDate(event.start, ignoreTimezone)); - event.end = parseDate(event.end, ignoreTimezone); - if (event.end && event.end <= event.start) { - event.end = null; + if (source && source.eventDataTransform) { + input = source.eventDataTransform(input); } - event._end = event.end ? cloneDate(event.end) : null; - if (event.allDay === undefined) { - event.allDay = firstDefined(source.allDayDefault, options.allDayDefault); + + // 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; } - if (event.className) { - if (typeof event.className == 'string') { - event.className = event.className.split(/\s+/); + + out._id = input._id || (input.id === undefined ? '_fc' + eventGUID++ : input.id + ''); + + if (input.className) { + if (typeof input.className == 'string') { + out.className = input.className.split(/\s+/); } - }else{ - event.className = []; - } - // TODO: if there is no start date, return false to indicate an invalid event - } - - - - /* Utils - ------------------------------------------------------------------------------*/ - - - function normalizeSource(source) { - if (source.className) { - // TODO: repeat code, same code for event classNames - if (typeof source.className == 'string') { - source.className = source.className.split(/\s+/); + else { // assumed to be an array + out.className = input.className; } - }else{ - source.className = []; } - var normalizers = fc.sourceNormalizers; - for (var i=0; i<normalizers.length; i++) { - normalizers[i](source); + else { + out.className = []; } - } - - - function isSourcesEqual(source1, source2) { - return source1 && source2 && getSourcePrimitive(source1) == getSourcePrimitive(source2); - } - - - function getSourcePrimitive(source) { - return ((typeof source == 'object') ? (source.events || source.url) : '') || source; - } + 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); + } -;; + 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 { + + if (start) { + start = t.moment(start); + if (!start.isValid()) { + return false; + } + } -fc.addDays = addDays; -fc.cloneDate = cloneDate; -fc.parseDate = parseDate; -fc.parseISO8601 = parseISO8601; -fc.parseTime = parseTime; -fc.formatDate = formatDate; -fc.formatDates = formatDates; + 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); + } -/* Date Math ------------------------------------------------------------------------------*/ + return out; + } -var dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], - DAY_MS = 86400000, - HOUR_MS = 3600000, - MINUTE_MS = 60000; - -function addYears(d, n, keepTime) { - d.setFullYear(d.getFullYear() + n); - if (!keepTime) { - clearTime(d); + // 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); } - return d; -} -function addMonths(d, n, keepTime) { // prevents day overflow/underflow - if (+d) { // prevent infinite looping on invalid dates - var m = d.getMonth() + n, - check = cloneDate(d); - check.setDate(1); - check.setMonth(m); - d.setMonth(m); - if (!keepTime) { - clearTime(d); + // 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; } - while (d.getMonth() != check.getMonth()) { - d.setDate(d.getDate() + (d < check ? 1 : -1)); + + if (!props.end) { + if (options.forceEventDuration) { + props.end = t.getDefaultEventEnd(props.allDay, props.start); + } + else { + props.end = null; + } } } - return d; -} -function addDays(d, n, keepTime) { // deals with daylight savings - if (+d) { - var dd = d.getDate() + n, - check = cloneDate(d); - check.setHours(9); // set to middle of day - check.setDate(dd); - d.setDate(dd); - if (!keepTime) { - clearTime(d); + // 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 + } } - fixDate(d, check); } - return d; -} -function fixDate(d, check) { // force d to be on check's YMD, for daylight savings purposes - if (+d) { // prevent infinite looping on invalid dates - while (d.getDate() != check.getDate()) { - d.setTime(+d + (d < check ? 1 : -1) * HOUR_MS); + // 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; } -} -function addMinutes(d, n) { - d.setMinutes(d.getMinutes() + n); - return d; -} + // 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; -function clearTime(d) { - d.setHours(0); - d.setMinutes(0); - d.setSeconds(0); - d.setMilliseconds(0); - return d; -} + 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; + } + } -function cloneDate(d, dontKeepTime) { - if (dontKeepTime) { - return clearTime(new Date(+d)); - } - return new Date(+d); -} + // 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 -function zeroDate() { // returns a Date with time 00:00:00 and dateOfMonth=1 - var i=0, d; - do { - d = new Date(1970, i++, 1); - } while (d.getHours()); // != 0 - return d; -} + 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); + } -function skipWeekend(date, inc, excl) { - inc = inc || 1; - while (!date.getDay() || (excl && date.getDay()==1 || !excl && date.getDay()==6)) { - addDays(date, inc); + 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; } - return date; -} -function dayDiff(d1, d2) { // d1 - d2 - return Math.round((cloneDate(d1, true) - cloneDate(d2, true)) / DAY_MS); -} + /* 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); + } + } -function setYMD(date, y, m, d) { - if (y !== undefined && y != date.getFullYear()) { - date.setDate(1); - date.setMonth(0); - date.setFullYear(y); - } - if (m !== undefined && m != date.getMonth()) { - date.setDate(1); - date.setMonth(m); - } - if (d !== undefined) { - date.setDate(d); - } -} + 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); -/* Date Parsing ------------------------------------------------------------------------------*/ + // 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); -function parseDate(s, ignoreTimezone) { // ignoreTimezone defaults to true - if (typeof s == 'object') { // already a Date object - return s; - } - if (typeof s == 'number') { // a UNIX timestamp - return new Date(s * 1000); - } - if (typeof s == 'string') { - if (s.match(/^\d+(\.\d+)?$/)) { // a UNIX timestamp - return new Date(parseFloat(s) * 1000); + // compute the delta for moving the end date + if (newProps.end) { + endDelta = diffDates(newProps.end, oldProps.end); + durationDelta = endDelta.subtract(startDelta); } - if (ignoreTimezone === undefined) { - ignoreTimezone = true; + else { + durationDelta = null; } - return parseISO8601(s, ignoreTimezone) || (s ? new Date(s) : 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 + }; } - // TODO: never return invalid dates (like from new Date(<string>)), return null instead - return null; -} -function parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false - // derived from http://delete.me.uk/2005/03/iso8601.html - // TODO: for a know glitch/feature, read tests/issue_206_parseDate_dst.html - var m = s.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 (!m) { - return null; + // 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](); + } + }; } - var date = new Date(m[1], 0, 1); - if (ignoreTimezone || !m[13]) { - var check = new Date(m[1], 0, 1, 9, 0); - if (m[3]) { - date.setMonth(m[3] - 1); - check.setMonth(m[3] - 1); - } - if (m[5]) { - date.setDate(m[5]); - check.setDate(m[5]); - } - fixDate(date, check); - if (m[7]) { - date.setHours(m[7]); - } - if (m[8]) { - date.setMinutes(m[8]); - } - if (m[10]) { - date.setSeconds(m[10]); + + + /* 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 (m[12]) { - date.setMilliseconds(Number("0." + m[12]) * 1000); + + 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 + ); } - fixDate(date, check); - }else{ - date.setUTCFullYear( - m[1], - m[3] ? m[3] - 1 : 0, - m[5] || 1 + + 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 ); - date.setUTCHours( - m[7] || 0, - m[8] || 0, - m[10] || 0, - m[12] ? Number("0." + m[12]) * 1000 : 0 + var overlap = firstDefined( + event.overlap, + source.overlap, + options.eventOverlap ); - if (m[14]) { - var offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0); - offset *= m[15] == '-' ? 1 : -1; - date = new Date(+date + (offset * 60 * 1000)); - } - } - return date; -} + range = ensureVisibleEventRange(range); // ensure a proper range with an end for isRangeAllowed -function parseTime(s) { // returns minutes since start of day - if (typeof s == 'number') { // an hour - return s * 60; + return isRangeAllowed(range, constraint, overlap, event); } - if (typeof s == 'object') { // a Date object - return s.getHours() * 60 + s.getMinutes(); + + + function isSelectionRangeAllowed(range) { + return isRangeAllowed(range, options.selectConstraint, options.selectOverlap); } - var m = s.match(/(\d+)(?::(\d+))?\s*(\w+)?/); - if (m) { - var h = parseInt(m[1], 10); - if (m[3]) { - h %= 12; - if (m[3].toLowerCase().charAt(0) == 'p') { - h += 12; - } + + + // 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]; } - return h * 60 + (m[2] ? parseInt(m[2], 10) : 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); + } + } -/* Date Formatting ------------------------------------------------------------------------------*/ -// TODO: use same function formatDate(date, [date2], format, [options]) + // 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; -function formatDate(date, format, options) { - return formatDates(date, null, format, options); -} + // 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) { -function formatDates(date1, date2, format, options) { - options = options || defaults; - var date = date1, - otherDate = date2, - i, len = format.length, c, - i2, formatter, - res = ''; - for (i=0; i<len; i++) { - c = format.charAt(i); - if (c == "'") { - for (i2=i+1; i2<len; i2++) { - if (format.charAt(i2) == "'") { - if (date) { - if (i2 == i+1) { - res += "'"; - }else{ - res += format.substring(i+1, i2); - } - i = i2; - } + // 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; } } - } - else if (c == '(') { - for (i2=i+1; i2<len; i2++) { - if (format.charAt(i2) == ')') { - var subres = formatDate(date, format.substring(i+1, i2), options); - if (parseInt(subres.replace(/\D/, ''), 10)) { - res += subres; - } - i = i2; - break; - } + + if (!anyContainment) { + return false; } } - else if (c == '[') { - for (i2=i+1; i2<len; i2++) { - if (format.charAt(i2) == ']') { - var subformat = format.substring(i+1, i2); - var subres = formatDate(date, subformat, options); - if (subres != formatDate(otherDate, subformat, options)) { - res += subres; + + 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; } - i = i2; - break; } } } - else if (c == '{') { - date = date2; - otherDate = date1; - } - else if (c == '}') { - date = date1; - otherDate = date2; + + 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(); } - else { - for (i2=len; i2>i; i2--) { - if (formatter = dateFormatters[format.substring(i, i2)]) { - if (date) { - res += formatter(date, options); - } - i = i2 - 1; - break; - } - } - if (i2 == i) { - if (date) { - res += c; - } - } + + if (typeof constraintInput === 'object') { + return expandEvent(buildEventFromInput(constraintInput)); } + + return clientEvents(constraintInput); // probably an ID } - return res; -}; -var dateFormatters = { - s : function(d) { return d.getSeconds() }, - ss : function(d) { return zeroPad(d.getSeconds()) }, - m : function(d) { return d.getMinutes() }, - mm : function(d) { return zeroPad(d.getMinutes()) }, - h : function(d) { return d.getHours() % 12 || 12 }, - hh : function(d) { return zeroPad(d.getHours() % 12 || 12) }, - H : function(d) { return d.getHours() }, - HH : function(d) { return zeroPad(d.getHours()) }, - d : function(d) { return d.getDate() }, - dd : function(d) { return zeroPad(d.getDate()) }, - ddd : function(d,o) { return o.dayNamesShort[d.getDay()] }, - dddd: function(d,o) { return o.dayNames[d.getDay()] }, - M : function(d) { return d.getMonth() + 1 }, - MM : function(d) { return zeroPad(d.getMonth() + 1) }, - MMM : function(d,o) { return o.monthNamesShort[d.getMonth()] }, - MMMM: function(d,o) { return o.monthNames[d.getMonth()] }, - yy : function(d) { return (d.getFullYear()+'').substring(2) }, - yyyy: function(d) { return d.getFullYear() }, - t : function(d) { return d.getHours() < 12 ? 'a' : 'p' }, - tt : function(d) { return d.getHours() < 12 ? 'am' : 'pm' }, - T : function(d) { return d.getHours() < 12 ? 'A' : 'P' }, - TT : function(d) { return d.getHours() < 12 ? 'AM' : 'PM' }, - u : function(d) { return formatDate(d, "yyyy-MM-dd'T'HH:mm:ss'Z'") }, - S : function(d) { - var date = d.getDate(); - if (date > 10 && date < 20) { - return 'th'; - } - return ['st', 'nd', 'rd'][date%10-1] || 'th'; - }, - w : function(d, o) { // local - return o.weekNumberCalculation(d); - }, - W : function(d) { // ISO - return iso8601Week(d); + // 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; } -}; -fc.dateFormatters = dateFormatters; -/* thanks jQuery UI (https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js) - * - * Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - * @param date Date - the date to get the week for - * @return number - the number of the week within the year that contains this date - */ -function iso8601Week(date) { - var time; - var checkDate = new Date(date.getTime()); + // 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; + } - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; + 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; + + 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); + } + } + + return peerEvents; +}; + + +// 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; +} + ;; -fc.applyAll = applyAll; +/* 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({ -/* Event Date Math ------------------------------------------------------------------------------*/ + 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? -function exclEndDay(event) { - if (event.end) { - return _exclEndDay(event.end, event.allDay); - }else{ - return addDays(cloneDate(event.start), 1); - } -} + 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 -function _exclEndDay(end, allDay) { - end = cloneDate(end); - return allDay || end.getHours() || end.getMinutes() ? addDays(end, 1) : clearTime(end); -} + initialize: function() { + this.dayGrid = this.instantiateDayGrid(); + }, -function segCmp(a, b) { - return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); -} + // 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); -function segsCollide(seg1, seg2) { - return seg1.end > seg2.start && seg1.start < seg2.end; -} + 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 -/* Event Sorting ------------------------------------------------------------------------------*/ + this.dayGrid.breakOnWeeks = /year|month|week/.test(this.intervalUnit); // do before setRange + this.dayGrid.setRange(range); + }, -// event rendering utilities -function sliceSegs(events, visEventEnds, start, end) { - var segs = [], - i, len=events.length, event, - eventStart, eventEnd, - segStart, segEnd, - isStart, isEnd; - for (i=0; i<len; i++) { - event = events[i]; - eventStart = event.start; - eventEnd = visEventEnds[i]; - if (eventEnd > start && eventStart < end) { - if (eventStart < start) { - segStart = cloneDate(start); - isStart = false; - }else{ - segStart = eventStart; - isStart = true; - } - if (eventEnd > end) { - segEnd = cloneDate(end); - isEnd = false; - }else{ - segEnd = eventEnd; - isEnd = true; - } - segs.push({ - event: event, - start: segStart, - end: segEnd, - isStart: isStart, - isEnd: isEnd, - msLength: segEnd - segStart - }); - } - } - return segs.sort(segCmp); -} + // 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); -// event rendering calculation utilities -function stackSegs(segs) { - var levels = [], - i, len = segs.length, seg, - j, collide, k; - for (i=0; i<len; i++) { - seg = segs[i]; - j = 0; // the level index where seg should belong - while (true) { - collide = false; - if (levels[j]) { - for (k=0; k<levels[j].length; k++) { - if (segsCollide(levels[j][k], seg)) { - collide = true; - break; - } - } - } - if (collide) { - j++; - }else{ - break; + // 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 } } - if (levels[j]) { - levels[j].push(seg); - }else{ - levels[j] = [seg]; - } - } - return levels; -} - + return range; + }, -/* Event Element Binding ------------------------------------------------------------------------------*/ + // Renders the view into `this.el`, which should already be assigned + renderDates: function() { -function lazySegBind(container, segs, bindHandlers) { - container.unbind('mouseover').mouseover(function(ev) { - var parent=ev.target, e, - i, seg; - while (parent != this) { - e = parent; - parent = parent.parentNode; - } - if ((i = e._fci) !== undefined) { - e._fci = undefined; - seg = segs[i]; - bindHandlers(seg.event, seg.element, seg); - $(ev.target).trigger(ev); - } - ev.stopPropagation(); - }); -} + 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'); -/* Element Dimensions ------------------------------------------------------------------------------*/ + this.dayGrid.setElement(this.el.find('.fc-day-grid')); + this.dayGrid.renderDates(this.hasRigidRows()); + }, -function setOuterWidth(element, width, includeMargins) { - for (var i=0, e; i<element.length; i++) { - e = $(element[i]); - e.width(Math.max(0, width - hsides(e, includeMargins))); - } -} + // 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'); + }, -function setOuterHeight(element, height, includeMargins) { - for (var i=0, e; i<element.length; i++) { - e = $(element[i]); - e.height(Math.max(0, height - vsides(e, includeMargins))); - } -} + // 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(); + }, -function hsides(element, includeMargins) { - return hpadding(element) + hborders(element) + (includeMargins ? hmargins(element) : 0); -} + renderBusinessHours: function() { + this.dayGrid.renderBusinessHours(); + }, -function hpadding(element) { - return (parseFloat($.css(element[0], 'paddingLeft', true)) || 0) + - (parseFloat($.css(element[0], 'paddingRight', true)) || 0); -} + // Builds the HTML skeleton for the view. + // The day-grid component will render inside of a container defined by this HTML. + renderSkeletonHtml: function() { + return '' + + '<table>' + + '<thead class="fc-head">' + + '<tr>' + + '<td class="fc-head-container ' + this.widgetHeaderClass + '"></td>' + + '</tr>' + + '</thead>' + + '<tbody class="fc-body">' + + '<tr>' + + '<td class="' + this.widgetContentClass + '">' + + '<div class="fc-day-grid-container">' + + '<div class="fc-day-grid"/>' + + '</div>' + + '</td>' + + '</tr>' + + '</tbody>' + + '</table>'; + }, -function hmargins(element) { - return (parseFloat($.css(element[0], 'marginLeft', true)) || 0) + - (parseFloat($.css(element[0], 'marginRight', true)) || 0); -} + // 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 ''; + }, -function hborders(element) { - return (parseFloat($.css(element[0], 'borderLeftWidth', true)) || 0) + - (parseFloat($.css(element[0], 'borderRightWidth', true)) || 0); -} + // Determines whether each row should have a constant height + hasRigidRows: function() { + var eventLimit = this.opt('eventLimit'); + return eventLimit && typeof eventLimit !== 'number'; + }, -function vsides(element, includeMargins) { - return vpadding(element) + vborders(element) + (includeMargins ? vmargins(element) : 0); -} + /* Dimensions + ------------------------------------------------------------------------------------------------------------------*/ -function vpadding(element) { - return (parseFloat($.css(element[0], 'paddingTop', true)) || 0) + - (parseFloat($.css(element[0], 'paddingBottom', true)) || 0); -} + // 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') + ); + } + }, -function vmargins(element) { - return (parseFloat($.css(element[0], 'marginTop', true)) || 0) + - (parseFloat($.css(element[0], 'marginBottom', true)) || 0); -} + // 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); -function vborders(element) { - return (parseFloat($.css(element[0], 'borderTopWidth', true)) || 0) + - (parseFloat($.css(element[0], 'borderBottomWidth', true)) || 0); -} + 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 + } -function setMinHeight(element, height) { - height = (typeof height == 'number' ? height + 'px' : height); - element.each(function(i, _element) { - _element.style.cssText += ';min-height:' + height + ';_height:' + height; - // why can't we just use .css() ? i forget - }); -} + 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? -/* Misc Utils ------------------------------------------------------------------------------*/ + 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); + } + }, -//TODO: arraySlice -//TODO: isFunction, grep ? + // 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 + } + }, -function noop() { } + /* Hit Areas + ------------------------------------------------------------------------------------------------------------------*/ + // forward all hit-related method calls to dayGrid -function cmp(a, b) { - return a - b; -} + prepareHits: function() { + this.dayGrid.prepareHits(); + }, -function arrayMax(a) { - return Math.max.apply(Math, a); -} + releaseHits: function() { + this.dayGrid.releaseHits(); + }, -function zeroPad(n) { - return (n < 10 ? '0' : '') + n; -} + queryHit: function(left, top) { + return this.dayGrid.queryHit(left, top); + }, -function smartProperty(obj, name) { // get a camel-cased/namespaced property of an object - if (obj[name] !== undefined) { - return obj[name]; - } - var parts = name.split(/(?=[A-Z])/), - i=parts.length-1, res; - for (; i>=0; i--) { - res = obj[parts[i].toLowerCase()]; - if (res !== undefined) { - return res; - } - } - return obj['']; -} + getHitSpan: function(hit) { + return this.dayGrid.getHitSpan(hit); + }, -function htmlEscape(s) { - return s.replace(/&/g, '&') - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '<br />'); -} + getHitEl: function(hit) { + return this.dayGrid.getHitEl(hit); + }, -function cssKey(_element) { - return _element.id + '/' + _element.className + '/' + _element.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig, ''); -} + /* Events + ------------------------------------------------------------------------------------------------------------------*/ -function disableTextSelection(element) { - element - .attr('unselectable', 'on') - .css('MozUserSelect', 'none') - .bind('selectstart.ui', function() { return false; }); -} + // Renders the given events onto the view and populates the segments array + renderEvents: function(events) { + this.dayGrid.renderEvents(events); -/* -function enableTextSelection(element) { - element - .attr('unselectable', 'off') - .css('MozUserSelect', '') - .unbind('selectstart.ui'); -} -*/ + this.updateHeight(); // must compensate for events that overflow the row + }, -function markFirstLast(e) { - e.children() - .removeClass('fc-first fc-last') - .filter(':first-child') - .addClass('fc-first') - .end() - .filter(':last-child') - .addClass('fc-last'); -} + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.dayGrid.getEventSegs(); + }, -function setDayID(cell, date) { - cell.each(function(i, _cell) { - _cell.className = _cell.className.replace(/^fc-\w*/, 'fc-' + dayIDs[date.getDay()]); - // TODO: make a way that doesn't rely on order of classes - }); -} + // 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 + }, -function getSkinCss(event, opt) { - var source = event.source || {}; - var eventColor = event.color; - var sourceColor = source.color; - var optionColor = opt('eventColor'); - var backgroundColor = - event.backgroundColor || - eventColor || - source.backgroundColor || - sourceColor || - opt('eventBackgroundColor') || - optionColor; - var borderColor = - event.borderColor || - eventColor || - source.borderColor || - sourceColor || - opt('eventBorderColor') || - optionColor; - var textColor = - event.textColor || - source.textColor || - opt('eventTextColor'); - var statements = []; - if (backgroundColor) { - statements.push('background-color:' + backgroundColor); - } - if (borderColor) { - statements.push('border-color:' + borderColor); - } - if (textColor) { - statements.push('color:' + textColor); - } - return statements.join(';'); -} + /* Dragging (for both events and external elements) + ------------------------------------------------------------------------------------------------------------------*/ -function applyAll(functions, thisObj, args) { - if ($.isFunction(functions)) { - functions = [ functions ]; - } - if (functions) { - var i; - var ret; - for (i=0; i<functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} + // A returned value of `true` signals that a mock "helper" event has been rendered. + renderDrag: function(dropLocation, seg) { + return this.dayGrid.renderDrag(dropLocation, seg); + }, -function firstDefined() { - for (var i=0; i<arguments.length; i++) { - if (arguments[i] !== undefined) { - return arguments[i]; - } - } -} + unrenderDrag: function() { + this.dayGrid.unrenderDrag(); + }, -;; -fcViews.month = MonthView; + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ -function MonthView(element, calendar) { - var t = this; - - - // exports - t.render = render; - - - // imports - BasicView.call(t, element, calendar, 'month'); - var opt = t.opt; - var renderBasic = t.renderBasic; - var formatDate = calendar.formatDate; - - - - function render(date, delta) { - if (delta) { - addMonths(date, delta); - date.setDate(1); - } - var start = cloneDate(date, true); - start.setDate(1); - var end = addMonths(cloneDate(start), 1); - var visStart = cloneDate(start); - var visEnd = cloneDate(end); - var firstDay = opt('firstDay'); - var nwe = opt('weekends') ? 0 : 1; - if (nwe) { - skipWeekend(visStart); - skipWeekend(visEnd, -1, true); - } - addDays(visStart, -((visStart.getDay() - Math.max(firstDay, nwe) + 7) % 7)); - addDays(visEnd, (7 - visEnd.getDay() + Math.max(firstDay, nwe)) % 7); - var rowCnt = Math.round((visEnd - visStart) / (DAY_MS * 7)); - if (opt('weekMode') == 'fixed') { - addDays(visEnd, (6 - rowCnt) * 7); - rowCnt = 6; - } - t.title = formatDate(start, opt('titleFormat')); - t.start = start; - t.end = end; - t.visStart = visStart; - t.visEnd = visEnd; - renderBasic(rowCnt, nwe ? 5 : 7, true); - } - - -} -;; + // Renders a visual indication of a selection + renderSelection: function(range) { + this.dayGrid.renderSelection(range); + }, -fcViews.basicWeek = BasicWeekView; -function BasicWeekView(element, calendar) { - var t = this; - - - // exports - t.render = render; - - - // imports - BasicView.call(t, element, calendar, 'basicWeek'); - var opt = t.opt; - var renderBasic = t.renderBasic; - var formatDates = calendar.formatDates; - - - - function render(date, delta) { - if (delta) { - addDays(date, delta * 7); - } - var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7)); - var end = addDays(cloneDate(start), 7); - var visStart = cloneDate(start); - var visEnd = cloneDate(end); - var weekends = opt('weekends'); - if (!weekends) { - skipWeekend(visStart); - skipWeekend(visEnd, -1, true); - } - t.title = formatDates( - visStart, - addDays(cloneDate(visEnd), -1), - opt('titleFormat') - ); - t.start = start; - t.end = end; - t.visStart = visStart; - t.visEnd = visEnd; - renderBasic(1, weekends ? 7 : 5, false); + // Unrenders a visual indications of a selection + unrenderSelection: function() { + this.dayGrid.unrenderSelection(); } - - -} -;; +}); -fcViews.basicDay = BasicDayView; -//TODO: when calendar's date starts out on a weekend, shouldn't happen +// Methods that will customize the rendering behavior of the BasicView's dayGrid +var basicDayGridMethods = { -function BasicDayView(element, calendar) { - var t = this; - - - // exports - t.render = render; - - - // imports - BasicView.call(t, element, calendar, 'basicDay'); - var opt = t.opt; - var renderBasic = t.renderBasic; - var formatDate = calendar.formatDate; - - - - function render(date, delta) { - if (delta) { - addDays(date, delta); - if (!opt('weekends')) { - skipWeekend(date, delta < 0 ? -1 : 1); - } + // Generates the HTML that will go before the day-of week header cells + renderHeadIntroHtml: function() { + var view = this.view; + + if (view.weekNumbersVisible) { + return '' + + '<th class="fc-week-number ' + view.widgetHeaderClass + '" ' + view.weekNumberStyleAttr() + '>' + + '<span>' + // needed for matchCellWidths + htmlEscape(view.opt('weekNumberTitle')) + + '</span>' + + '</th>'; } - t.title = formatDate(date, opt('titleFormat')); - t.start = t.visStart = cloneDate(date, true); - t.end = t.visEnd = addDays(cloneDate(t.start), 1); - renderBasic(1, 1, false); - } - - -} -;; + return ''; + }, -setDefaults({ - weekMode: 'fixed' -}); + // Generates the HTML that will go before content-skeleton cells that display the day/week numbers + renderNumberIntroHtml: function(row) { + var view = this.view; -function BasicView(element, calendar, viewName) { - var t = this; - - - // exports - t.renderBasic = renderBasic; - t.setHeight = setHeight; - t.setWidth = setWidth; - t.renderDayOverlay = renderDayOverlay; - t.defaultSelectionEnd = defaultSelectionEnd; - t.renderSelection = renderSelection; - t.clearSelection = clearSelection; - t.reportDayClick = reportDayClick; // for selection (kinda hacky) - t.dragStart = dragStart; - t.dragStop = dragStop; - t.defaultEventEnd = defaultEventEnd; - t.getHoverListener = function() { return hoverListener }; - t.colContentLeft = colContentLeft; - t.colContentRight = colContentRight; - t.dayOfWeekCol = dayOfWeekCol; - t.dateCell = dateCell; - t.cellDate = cellDate; - t.cellIsAllDay = function() { return true }; - t.allDayRow = allDayRow; - t.allDayBounds = allDayBounds; - t.getRowCnt = function() { return rowCnt }; - t.getColCnt = function() { return colCnt }; - t.getColWidth = function() { return colWidth }; - t.getDaySegmentContainer = function() { return daySegmentContainer }; - - - // imports - View.call(t, element, calendar, viewName); - OverlayManager.call(t); - SelectionManager.call(t); - BasicEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - var clearEvents = t.clearEvents; - var renderOverlay = t.renderOverlay; - var clearOverlays = t.clearOverlays; - var daySelectionMousedown = t.daySelectionMousedown; - var formatDate = calendar.formatDate; - - - // locals - - var table; - var head; - var headCells; - var body; - var bodyRows; - var bodyCells; - var bodyFirstCells; - var bodyCellTopInners; - var daySegmentContainer; - - var viewWidth; - var viewHeight; - var colWidth; - var weekNumberWidth; - - var rowCnt, colCnt; - var coordinateGrid; - var hoverListener; - var colContentPositions; - - var rtl, dis, dit; - var firstDay; - var nwe; // no weekends? a 0 or 1 for easy computations - var tm; - var colFormat; - var showWeekNumbers; - var weekNumberTitle; - var weekNumberFormat; - - - - /* Rendering - ------------------------------------------------------------*/ - - - disableTextSelection(element.addClass('fc-grid')); - - - function renderBasic(r, c, showNumbers) { - rowCnt = r; - colCnt = c; - updateOptions(); - var firstTime = !body; - if (firstTime) { - buildEventContainer(); - }else{ - clearEvents(); + if (view.weekNumbersVisible) { + return '' + + '<td class="fc-week-number" ' + view.weekNumberStyleAttr() + '>' + + '<span>' + // needed for matchCellWidths + this.getCellDate(row, 0).format('w') + + '</span>' + + '</td>'; } - buildTable(showNumbers); - } - - - - function updateOptions() { - rtl = opt('isRTL'); - if (rtl) { - dis = -1; - dit = colCnt - 1; - }else{ - dis = 1; - dit = 0; - } - firstDay = opt('firstDay'); - nwe = opt('weekends') ? 0 : 1; - tm = opt('theme') ? 'ui' : 'fc'; - colFormat = opt('columnFormat'); - // week # options. (TODO: bad, logic also in other views) - showWeekNumbers = opt('weekNumbers'); - weekNumberTitle = opt('weekNumberTitle'); - if (opt('weekNumberCalculation') != 'iso') { - weekNumberFormat = "w"; - } - else { - weekNumberFormat = "W"; - } - } - - - - function buildEventContainer() { - daySegmentContainer = - $("<div style='position:absolute;z-index:8;top:0;left:0'/>") - .appendTo(element); - } - - - - function buildTable(showNumbers) { - var html = ''; - var i, j; - var headerClass = tm + "-widget-header"; - var contentClass = tm + "-widget-content"; - var month = t.start.getMonth(); - var today = clearTime(new Date()); - var cellDate; // not to be confused with local function. TODO: better names - var cellClasses; - var cell; + return ''; + }, + - html += "<table class='fc-border-separate' style='width:100%' cellspacing='0'>" + - "<thead>" + - "<tr>"; + // Generates the HTML that goes before the day bg cells for each day-row + renderBgIntroHtml: function() { + var view = this.view; - if (showWeekNumbers) { - html += "<th class='fc-week-number " + headerClass + "'/>"; + if (view.weekNumbersVisible) { + return '<td class="fc-week-number ' + view.widgetContentClass + '" ' + + view.weekNumberStyleAttr() + '></td>'; } - for (i=0; i<colCnt; i++) { - html += "<th class='fc-day-header fc-" + dayIDs[i] + " " + headerClass + "'/>"; + 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 '<td class="fc-week-number" ' + view.weekNumberStyleAttr() + '></td>'; } - html += "</tr>" + - "</thead>" + - "<tbody>"; + return ''; + } - for (i=0; i<rowCnt; i++) { - html += "<tr class='fc-week'>"; +}; - if (showWeekNumbers) { - html += "<td class='fc-week-number " + contentClass + "'>" + - "<div/>" + - "</td>"; - } +;; - for (j=0; j<colCnt; j++) { - cellDate = _cellDate(i, j); // a little confusing. cellDate is local variable. _cellDate is private function +/* A month view with day cells running in rows (one-per-week) and columns +----------------------------------------------------------------------------------------------------------------------*/ - cellClasses = [ - 'fc-day', - 'fc-' + dayIDs[cellDate.getDay()], - contentClass - ]; - if (cellDate.getMonth() != month) { - cellClasses.push('fc-other-month'); - } - if (+cellDate == +today) { - cellClasses.push('fc-today'); - cellClasses.push(tm + '-state-highlight'); - } +var MonthView = FC.MonthView = BasicView.extend({ - html += "<td" + - " class='" + cellClasses.join(' ') + "'" + - " data-date='" + formatDate(cellDate, 'yyyy-MM-dd') + "'" + - ">" + - "<div>"; - if (showNumbers) { - html += "<div class='fc-day-number'>" + cellDate.getDate() + "</div>"; - } - html += "<div class='fc-day-content'>" + - "<div style='position:relative'> </div>" + - "</div>" + - "</div>" + - "</td>"; - } + // 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; - html += "</tr>"; + // 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'); } - html += "</tbody>" + - "</table>"; - lockHeight(); // the unlock happens later, in setHeight()... - if (table) { - table.remove(); - } - table = $(html).appendTo(element); + return range; + }, - head = table.find('thead'); - headCells = head.find('.fc-day-header'); - body = table.find('tbody'); - bodyRows = body.find('tr'); - bodyCells = body.find('.fc-day'); - bodyFirstCells = bodyRows.find('td:first-child'); - bodyCellTopInners = bodyRows.eq(0).find('.fc-day-content > div'); - - markFirstLast(head.add(head.find('tr'))); // marks first+last tr/th's - markFirstLast(bodyRows); // marks first+last td's - bodyRows.eq(0).addClass('fc-first'); - bodyRows.filter(':last').addClass('fc-last'); - - if (showWeekNumbers) { - head.find('.fc-week-number').text(weekNumberTitle); - } - headCells.each(function(i, _cell) { - var date = indexDate(i); - $(_cell).text(formatDate(date, colFormat)); - }); + // Overrides the default BasicView behavior to have special multi-week auto-height logic + setGridHeight: function(height, isAuto) { - if (showWeekNumbers) { - body.find('.fc-week-number > div').each(function(i, _cell) { - var weekStart = _cellDate(i, 0); - $(_cell).text(formatDate(weekStart, weekNumberFormat)); - }); - } - - bodyCells.each(function(i, _cell) { - var date = indexDate(i); - trigger('dayRender', t, date, $(_cell)); - }); + isAuto = isAuto || this.opt('weekMode') === 'variable'; // LEGACY: weekMode is deprecated - dayBind(bodyCells); - } - - - - function setHeight(height) { - viewHeight = height; - - var bodyHeight = viewHeight - head.height(); - var rowHeight; - var rowHeightLast; - var cell; - - if (opt('weekMode') == 'variable') { - rowHeight = rowHeightLast = Math.floor(bodyHeight / (rowCnt==1 ? 2 : 6)); - }else{ - rowHeight = Math.floor(bodyHeight / rowCnt); - rowHeightLast = bodyHeight - rowHeight * (rowCnt-1); + // 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; } - - bodyFirstCells.each(function(i, _cell) { - if (i < rowCnt) { - cell = $(_cell); - setMinHeight( - cell.find('> div'), - (i==rowCnt-1 ? rowHeightLast : rowHeight) - vsides(cell) - ); - } - }); - - unlockHeight(); - } - - - function setWidth(width) { - viewWidth = width; - colContentPositions.clear(); - weekNumberWidth = 0; - if (showWeekNumbers) { - weekNumberWidth = head.find('th.fc-week-number').outerWidth(); - } + distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows + }, - colWidth = Math.floor((viewWidth - weekNumberWidth) / colCnt); - setOuterWidth(headCells.slice(0, -1), colWidth); - } - - - - /* Day clicking and binding - -----------------------------------------------------------*/ - - - function dayBind(days) { - days.click(dayClick) - .mousedown(daySelectionMousedown); - } - - - function dayClick(ev) { - if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick - var date = parseISO8601($(this).data('date')); - trigger('dayClick', this, date, true, ev); - } - } - - - - /* Semi-transparent Overlay Helpers - ------------------------------------------------------*/ - - - function renderDayOverlay(overlayStart, overlayEnd, refreshCoordinateGrid) { // overlayEnd is exclusive - if (refreshCoordinateGrid) { - coordinateGrid.build(); - } - var rowStart = cloneDate(t.visStart); - var rowEnd = addDays(cloneDate(rowStart), colCnt); - for (var i=0; i<rowCnt; i++) { - var stretchStart = new Date(Math.max(rowStart, overlayStart)); - var stretchEnd = new Date(Math.min(rowEnd, overlayEnd)); - if (stretchStart < stretchEnd) { - var colStart, colEnd; - if (rtl) { - colStart = dayDiff(stretchEnd, rowStart)*dis+dit+1; - colEnd = dayDiff(stretchStart, rowStart)*dis+dit+1; - }else{ - colStart = dayDiff(stretchStart, rowStart); - colEnd = dayDiff(stretchEnd, rowStart); - } - dayBind( - renderCellOverlay(i, colStart, i, colEnd-1) - ); - } - addDays(rowStart, 7); - addDays(rowEnd, 7); - } - } - - - function renderCellOverlay(row0, col0, row1, col1) { // row1,col1 is inclusive - var rect = coordinateGrid.rect(row0, col0, row1, col1, element); - return renderOverlay(rect, element); - } - - - - /* Selection - -----------------------------------------------------------------------*/ - - - function defaultSelectionEnd(startDate, allDay) { - return cloneDate(startDate); - } - - - function renderSelection(startDate, endDate, allDay) { - renderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true); // rebuild every time??? - } - - - function clearSelection() { - clearOverlays(); - } - - - function reportDayClick(date, allDay, ev) { - var cell = dateCell(date); - var _element = bodyCells[cell.row*colCnt + cell.col]; - trigger('dayClick', _element, date, allDay, ev); - } - - - - /* External Dragging - -----------------------------------------------------------------------*/ - - - function dragStart(_dragElement, ev, ui) { - hoverListener.start(function(cell) { - clearOverlays(); - if (cell) { - renderCellOverlay(cell.row, cell.col, cell.row, cell.col); - } - }, ev); - } - - - function dragStop(_dragElement, ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - if (cell) { - var d = cellDate(cell); - trigger('drop', _dragElement, d, true, ev, ui); - } - } - - - - /* Utilities - --------------------------------------------------------*/ - - - function defaultEventEnd(event) { - return cloneDate(event.start); - } - - - coordinateGrid = new CoordinateGrid(function(rows, cols) { - var e, n, p; - headCells.each(function(i, _e) { - e = $(_e); - n = e.offset().left; - if (i) { - p[1] = n; - } - p = [n]; - cols[i] = p; - }); - p[1] = n + e.outerWidth(); - bodyRows.each(function(i, _e) { - if (i < rowCnt) { - e = $(_e); - n = e.offset().top; - if (i) { - p[1] = n; - } - p = [n]; - rows[i] = p; - } - }); - p[1] = n + e.outerHeight(); - }); - - - hoverListener = new HoverListener(coordinateGrid); - - - colContentPositions = new HorizontalPositionCache(function(col) { - return bodyCellTopInners.eq(col); - }); - - - function colContentLeft(col) { - return colContentPositions.left(col); - } - - - function colContentRight(col) { - return colContentPositions.right(col); - } - - - - - function dateCell(date) { - return { - row: Math.floor(dayDiff(date, t.visStart) / 7), - col: dayOfWeekCol(date.getDay()) - }; - } - - - function cellDate(cell) { - return _cellDate(cell.row, cell.col); - } - - - function _cellDate(row, col) { - return addDays(cloneDate(t.visStart), row*7 + col*dis+dit); - // what about weekends in middle of week? - } - - - function indexDate(index) { - return _cellDate(Math.floor(index/colCnt), index%colCnt); - } - - - function dayOfWeekCol(dayOfWeek) { - return ((dayOfWeek - Math.max(firstDay, nwe) + colCnt) % colCnt) * dis + dit; - } - - - - - function allDayRow(i) { - return bodyRows.eq(i); - } - - - function allDayBounds(i) { - var left = 0; - if (showWeekNumbers) { - left += weekNumberWidth; + + 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 { - left: left, - right: viewWidth - }; + + return this.opt('fixedWeekCount'); } +}); +;; - // makes sure height doesn't collapse while we destroy/render new cells - // (this causes a bad end-user scrollbar jump) - // TODO: generalize this for all view rendering. (also in Calendar.js) +fcViews.basic = { + 'class': BasicView +}; - function lockHeight() { - setMinHeight(element, element.height()); - } +fcViews.basicDay = { + type: 'basic', + duration: { days: 1 } +}; - function unlockHeight() { - setMinHeight(element, 1); - } - -} +fcViews.basicWeek = { + type: 'basic', + duration: { weeks: 1 } +}; +fcViews.month = { + 'class': MonthView, + duration: { months: 1 }, // important for prev/next + defaults: { + fixedWeekCount: true + } +}; ;; -function BasicEventRenderer() { - var t = this; - - - // exports - t.renderEvents = renderEvents; - t.compileDaySegs = compileSegs; // for DayEventRenderer - t.clearEvents = clearEvents; - t.bindDaySeg = bindDaySeg; - - - // imports - DayEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - //var setOverflowHidden = t.setOverflowHidden; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var reportEvents = t.reportEvents; - var reportEventClear = t.reportEventClear; - var eventElementHandlers = t.eventElementHandlers; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var getDaySegmentContainer = t.getDaySegmentContainer; - var getHoverListener = t.getHoverListener; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var getRowCnt = t.getRowCnt; - var getColCnt = t.getColCnt; - var renderDaySegs = t.renderDaySegs; - var resizableDayEvent = t.resizableDayEvent; - - - - /* Rendering - --------------------------------------------------------------------*/ - - - function renderEvents(events, modifiedEventId) { - reportEvents(events); - renderDaySegs(compileSegs(events), modifiedEventId); - trigger('eventAfterAllRender'); - } - - - function clearEvents() { - reportEventClear(); - getDaySegmentContainer().empty(); - } - - - function compileSegs(events) { - var rowCnt = getRowCnt(), - colCnt = getColCnt(), - d1 = cloneDate(t.visStart), - d2 = addDays(cloneDate(d1), colCnt), - visEventsEnds = $.map(events, exclEndDay), - i, row, - j, level, - k, seg, - segs=[]; - for (i=0; i<rowCnt; i++) { - row = stackSegs(sliceSegs(events, visEventsEnds, d1, d2)); - for (j=0; j<row.length; j++) { - level = row[j]; - for (k=0; k<level.length; k++) { - seg = level[k]; - seg.row = i; - seg.level = j; // not needed anymore - segs.push(seg); - } - } - addDays(d1, 7); - addDays(d2, 7); - } - return segs; - } - - - function bindDaySeg(event, eventElement, seg) { - if (isEventDraggable(event)) { - draggableDayEvent(event, eventElement); - } - if (seg.isEnd && isEventResizable(event)) { - resizableDayEvent(event, eventElement, seg); - } - eventElementHandlers(event, eventElement); - // needs to be after, because resizableDayEvent might stopImmediatePropagation on click - } - - - - /* Dragging - ----------------------------------------------------------------------------*/ - - - function draggableDayEvent(event, eventElement) { - var hoverListener = getHoverListener(); - var dayDelta; - eventElement.draggable({ - zIndex: 9, - delay: 50, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - eventElement.draggable('option', 'revert', !cell || !rowDelta && !colDelta); - clearOverlays(); - if (cell) { - //setOverflowHidden(true); - dayDelta = rowDelta*7 + colDelta * (opt('isRTL') ? -1 : 1); - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - }else{ - //setOverflowHidden(false); - dayDelta = 0; - } - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (dayDelta) { - eventDrop(this, event, dayDelta, 0, event.allDay, ev, ui); - }else{ - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - } - //setOverflowHidden(false); - } - }); - } +/* 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 -fcViews.agendaWeek = AgendaWeekView; + axisWidth: null, // the width of the time axis running down the side -function AgendaWeekView(element, calendar) { - var t = this; - - - // exports - t.render = render; - - - // imports - AgendaView.call(t, element, calendar, 'agendaWeek'); - var opt = t.opt; - var renderAgenda = t.renderAgenda; - var formatDates = calendar.formatDates; - - - - function render(date, delta) { - if (delta) { - addDays(date, delta * 7); - } - var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7)); - var end = addDays(cloneDate(start), 7); - var visStart = cloneDate(start); - var visEnd = cloneDate(end); - var weekends = opt('weekends'); - if (!weekends) { - skipWeekend(visStart); - skipWeekend(visEnd, -1, true); - } - t.title = formatDates( - visStart, - addDays(cloneDate(visEnd), -1), - opt('titleFormat') - ); - t.start = start; - t.end = end; - t.visStart = visStart; - t.visEnd = visEnd; - renderAgenda(weekends ? 7 : 5); - } - + 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 <hr> underneath + bottomRuleEl: null, + bottomRuleHeight: null, -;; -fcViews.agendaDay = AgendaDayView; + initialize: function() { + this.timeGrid = this.instantiateTimeGrid(); -function AgendaDayView(element, calendar) { - var t = this; - - - // exports - t.render = render; - - - // imports - AgendaView.call(t, element, calendar, 'agendaDay'); - var opt = t.opt; - var renderAgenda = t.renderAgenda; - var formatDate = calendar.formatDate; - - - - function render(date, delta) { - if (delta) { - addDays(date, delta); - if (!opt('weekends')) { - skipWeekend(date, delta < 0 ? -1 : 1); - } + if (this.opt('allDaySlot')) { // should we display the "all-day" area? + this.dayGrid = this.instantiateDayGrid(); // the all-day subcomponent of this view } - var start = cloneDate(date, true); - var end = addDays(cloneDate(start), 1); - t.title = formatDate(date, opt('titleFormat')); - t.start = t.visStart = start; - t.end = t.visEnd = end; - renderAgenda(1); - } - + }, -} -;; + // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass + instantiateTimeGrid: function() { + var subclass = this.timeGridClass.extend(agendaTimeGridMethods); -setDefaults({ - allDaySlot: true, - 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 -}); + return new subclass(this); + }, -// TODO: make it work in quirks mode (event corners, all-day height) -// TODO: test liquid width, especially in IE6 + // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass + instantiateDayGrid: function() { + var subclass = this.dayGridClass.extend(agendaDayGridMethods); + return new subclass(this); + }, -function AgendaView(element, calendar, viewName) { - var t = this; - - - // exports - t.renderAgenda = renderAgenda; - t.setWidth = setWidth; - t.setHeight = setHeight; - t.beforeHide = beforeHide; - t.afterShow = afterShow; - t.defaultEventEnd = defaultEventEnd; - t.timePosition = timePosition; - t.dayOfWeekCol = dayOfWeekCol; - t.dateCell = dateCell; - t.cellDate = cellDate; - t.cellIsAllDay = cellIsAllDay; - t.allDayRow = getAllDayRow; - t.allDayBounds = allDayBounds; - t.getHoverListener = function() { return hoverListener }; - t.colContentLeft = colContentLeft; - t.colContentRight = colContentRight; - t.getDaySegmentContainer = function() { return daySegmentContainer }; - t.getSlotSegmentContainer = function() { return slotSegmentContainer }; - t.getMinMinute = function() { return minMinute }; - t.getMaxMinute = function() { return maxMinute }; - t.getBodyContent = function() { return slotContent }; // !!?? - t.getRowCnt = function() { return 1 }; - t.getColCnt = function() { return colCnt }; - t.getColWidth = function() { return colWidth }; - t.getSnapHeight = function() { return snapHeight }; - t.getSnapMinutes = function() { return snapMinutes }; - t.defaultSelectionEnd = defaultSelectionEnd; - t.renderDayOverlay = renderDayOverlay; - t.renderSelection = renderSelection; - t.clearSelection = clearSelection; - t.reportDayClick = reportDayClick; // selection mousedown hack - t.dragStart = dragStart; - t.dragStop = dragStop; - - - // imports - View.call(t, element, calendar, viewName); - OverlayManager.call(t); - SelectionManager.call(t); - AgendaEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - var clearEvents = t.clearEvents; - var renderOverlay = t.renderOverlay; - var clearOverlays = t.clearOverlays; - var reportSelection = t.reportSelection; - var unselect = t.unselect; - var daySelectionMousedown = t.daySelectionMousedown; - var slotSegHtml = t.slotSegHtml; - var formatDate = calendar.formatDate; - - - // locals - - var dayTable; - var dayHead; - var dayHeadCells; - var dayBody; - var dayBodyCells; - var dayBodyCellInners; - var dayBodyFirstCell; - var dayBodyFirstCellStretcher; - var slotLayer; - var daySegmentContainer; - var allDayTable; - var allDayRow; - var slotScroller; - var slotContent; - var slotSegmentContainer; - var slotTable; - var slotTableFirstInner; - var axisFirstCells; - var gutterCells; - var selectionHelper; - - var viewWidth; - var viewHeight; - var axisWidth; - var colWidth; - var gutterWidth; - var slotHeight; // TODO: what if slotHeight changes? (see issue 650) - - var snapMinutes; - var snapRatio; // ratio of number of "selection" slots to normal slots. (ex: 1, 2, 4) - var snapHeight; // holds the pixel hight of a "selection" slot - - var colCnt; - var slotCnt; - var coordinateGrid; - var hoverListener; - var colContentPositions; - var slotTopCache = {}; - var savedScrollTop; - - var tm; - var firstDay; - var nwe; // no weekends (int) - var rtl, dis, dit; // day index sign / translate - var minMinute, maxMinute; - var colFormat; - var showWeekNumbers; - var weekNumberTitle; - var weekNumberFormat; - - /* Rendering - -----------------------------------------------------------------------------*/ - - - disableTextSelection(element.addClass('fc-agenda')); - - - function renderAgenda(c) { - colCnt = c; - updateOptions(); - if (!dayTable) { - buildSkeleton(); - }else{ - clearEvents(); - } - updateCells(); - } - - - - function updateOptions() { - tm = opt('theme') ? 'ui' : 'fc'; - nwe = opt('weekends') ? 0 : 1; - firstDay = opt('firstDay'); - if (rtl = opt('isRTL')) { - dis = -1; - dit = colCnt - 1; - }else{ - dis = 1; - dit = 0; - } - minMinute = parseTime(opt('minTime')); - maxMinute = parseTime(opt('maxTime')); - colFormat = opt('columnFormat'); + ------------------------------------------------------------------------------------------------------------------*/ - // week # options. (TODO: bad, logic also in other views) - showWeekNumbers = opt('weekNumbers'); - weekNumberTitle = opt('weekNumberTitle'); - if (opt('weekNumberCalculation') != 'iso') { - weekNumberFormat = "w"; - } - else { - weekNumberFormat = "W"; - } - snapMinutes = opt('snapMinutes') || opt('slotMinutes'); - } - - - - function buildSkeleton() { - var headerClass = tm + "-widget-header"; - var contentClass = tm + "-widget-content"; - var s; - var i; - var d; - var maxd; - var minutes; - var slotNormal = opt('slotMinutes') % 15 == 0; - - s = - "<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'>" + - "<thead>" + - "<tr>"; + // Sets the display range and computes all necessary dates + setRange: function(range) { + View.prototype.setRange.call(this, range); // call the super-method - if (showWeekNumbers) { - s += "<th class='fc-agenda-axis fc-week-number " + headerClass + "'/>"; + this.timeGrid.setRange(range); + if (this.dayGrid) { + this.dayGrid.setRange(range); } - else { - s += "<th class='fc-agenda-axis " + headerClass + "'> </th>"; - } - - for (i=0; i<colCnt; i++) { - s += - "<th class='fc- fc-col" + i + ' ' + headerClass + "'/>"; // fc- needed for setDayID - } - s += - "<th class='fc-agenda-gutter " + headerClass + "'> </th>" + - "</tr>" + - "</thead>" + - "<tbody>" + - "<tr>" + - "<th class='fc-agenda-axis " + headerClass + "'> </th>"; - for (i=0; i<colCnt; i++) { - s += - "<td class='fc- fc-col" + i + ' ' + contentClass + "'>" + // fc- needed for setDayID - "<div>" + - "<div class='fc-day-content'>" + - "<div style='position:relative'> </div>" + - "</div>" + - "</div>" + - "</td>"; - } - s += - "<td class='fc-agenda-gutter " + contentClass + "'> </td>" + - "</tr>" + - "</tbody>" + - "</table>"; - dayTable = $(s).appendTo(element); - dayHead = dayTable.find('thead'); - dayHeadCells = dayHead.find('th').slice(1, -1); - dayBody = dayTable.find('tbody'); - dayBodyCells = dayBody.find('td').slice(0, -1); - dayBodyCellInners = dayBodyCells.find('div.fc-day-content div'); - dayBodyFirstCell = dayBodyCells.eq(0); - dayBodyFirstCellStretcher = dayBodyFirstCell.find('> div'); - - markFirstLast(dayHead.add(dayHead.find('tr'))); - markFirstLast(dayBody.add(dayBody.find('tr'))); - - axisFirstCells = dayHead.find('th:first'); - gutterCells = dayTable.find('.fc-agenda-gutter'); - - slotLayer = - $("<div style='position:absolute;z-index:2;left:0;width:100%'/>") - .appendTo(element); - - if (opt('allDaySlot')) { - - daySegmentContainer = - $("<div style='position:absolute;z-index:8;top:0;left:0'/>") - .appendTo(slotLayer); - - s = - "<table style='width:100%' class='fc-agenda-allday' cellspacing='0'>" + - "<tr>" + - "<th class='" + headerClass + " fc-agenda-axis'>" + opt('allDayText') + "</th>" + - "<td>" + - "<div class='fc-day-content'><div style='position:relative'/></div>" + - "</td>" + - "<th class='" + headerClass + " fc-agenda-gutter'> </th>" + - "</tr>" + - "</table>"; - allDayTable = $(s).appendTo(slotLayer); - allDayRow = allDayTable.find('tr'); - - dayBind(allDayRow.find('td')); - - axisFirstCells = axisFirstCells.add(allDayTable.find('th:first')); - gutterCells = gutterCells.add(allDayTable.find('th.fc-agenda-gutter')); - - slotLayer.append( - "<div class='fc-agenda-divider " + headerClass + "'>" + - "<div class='fc-agenda-divider-inner'/>" + - "</div>" - ); - - }else{ - - daySegmentContainer = $([]); // in jQuery 1.4, we can just do $() - - } - - slotScroller = - $("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>") - .appendTo(slotLayer); - - slotContent = - $("<div style='position:relative;width:100%;overflow:hidden'/>") - .appendTo(slotScroller); - - slotSegmentContainer = - $("<div style='position:absolute;z-index:8;top:0;left:0'/>") - .appendTo(slotContent); - - s = - "<table class='fc-agenda-slots' style='width:100%' cellspacing='0'>" + - "<tbody>"; - d = zeroDate(); - maxd = addMinutes(cloneDate(d), maxMinute); - addMinutes(d, minMinute); - slotCnt = 0; - for (i=0; d < maxd; i++) { - minutes = d.getMinutes(); - s += - "<tr class='fc-slot" + i + ' ' + (!minutes ? '' : 'fc-minor') + "'>" + - "<th class='fc-agenda-axis " + headerClass + "'>" + - ((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') + - "</th>" + - "<td class='" + contentClass + "'>" + - "<div style='position:relative'> </div>" + - "</td>" + - "</tr>"; - addMinutes(d, opt('slotMinutes')); - slotCnt++; - } - s += - "</tbody>" + - "</table>"; - slotTable = $(s).appendTo(slotContent); - slotTableFirstInner = slotTable.find('div:first'); - - slotBind(slotTable.find('td')); - - axisFirstCells = axisFirstCells.add(slotTable.find('th:first')); - } - - - - function updateCells() { - var i; - var headCell; - var bodyCell; - var date; - var today = clearTime(new Date()); + }, - if (showWeekNumbers) { - var weekText = formatDate(colDate(0), weekNumberFormat); - if (rtl) { - weekText = weekText + weekNumberTitle; - } - else { - weekText = weekNumberTitle + weekText; - } - dayHead.find('.fc-week-number').text(weekText); - } - for (i=0; i<colCnt; i++) { - date = colDate(i); - headCell = dayHeadCells.eq(i); - headCell.html(formatDate(date, colFormat)); - bodyCell = dayBodyCells.eq(i); - if (+date == +today) { - bodyCell.addClass(tm + '-state-highlight fc-today'); - }else{ - bodyCell.removeClass(tm + '-state-highlight fc-today'); - } - setDayID(headCell.add(bodyCell), date); - } - } - - - - function setHeight(height, dateChanged) { - if (height === undefined) { - height = viewHeight; - } - viewHeight = height; - slotTopCache = {}; - - var headHeight = dayBody.position().top; - var allDayHeight = slotScroller.position().top; // including divider - var bodyHeight = Math.min( // total body height, including borders - height - headHeight, // when scrollbars - slotTable.height() + allDayHeight + 1 // when no scrollbars. +1 for bottom border - ); - - dayBodyFirstCellStretcher - .height(bodyHeight - vsides(dayBodyFirstCell)); - - slotLayer.css('top', headHeight); - - slotScroller.height(bodyHeight - allDayHeight - 1); - - slotHeight = slotTableFirstInner.height() + 1; // +1 for border + // Renders the view into `this.el`, which has already been assigned + renderDates: function() { - snapRatio = opt('slotMinutes') / snapMinutes; - snapHeight = slotHeight / snapRatio; - - if (dateChanged) { - resetScroll(); - } - } - - - - function setWidth(width) { - viewWidth = width; - colContentPositions.clear(); - - axisWidth = 0; - setOuterWidth( - axisFirstCells - .width('') - .each(function(i, _cell) { - axisWidth = Math.max(axisWidth, $(_cell).outerWidth()); - }), - axisWidth - ); - - var slotTableWidth = slotScroller[0].clientWidth; // needs to be done after axisWidth (for IE7) - //slotTable.width(slotTableWidth); - - gutterWidth = slotScroller.width() - slotTableWidth; - if (gutterWidth) { - setOuterWidth(gutterCells, gutterWidth); - gutterCells - .show() - .prev() - .removeClass('fc-last'); - }else{ - gutterCells - .hide() - .prev() - .addClass('fc-last'); - } - - colWidth = Math.floor((slotTableWidth - axisWidth) / colCnt); - setOuterWidth(dayHeadCells.slice(0, -1), colWidth); - } - + 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'); - function resetScroll() { - var d0 = zeroDate(); - var scrollDate = cloneDate(d0); - scrollDate.setHours(opt('firstHour')); - var top = timePosition(d0, scrollDate) + 1; // +1 for the border - function scroll() { - slotScroller.scrollTop(top); - } - scroll(); - setTimeout(scroll, 0); // overrides any previous scroll state made by the browser - } - - - function beforeHide() { - savedScrollTop = slotScroller.scrollTop(); - } - - - function afterShow() { - slotScroller.scrollTop(savedScrollTop); - } - - - - /* Slot/Day clicking and binding - -----------------------------------------------------------------------*/ - + this.timeGrid.setElement(this.el.find('.fc-time-grid')); + this.timeGrid.renderDates(); - function dayBind(cells) { - cells.click(slotClick) - .mousedown(daySelectionMousedown); - } + // the <hr> that sometimes displays under the time-grid + this.bottomRuleEl = $('<hr class="fc-divider ' + this.widgetHeaderClass + '"/>') + .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(); - function slotBind(cells) { - cells.click(slotClick) - .mousedown(slotSelectionMousedown); - } - - - function slotClick(ev) { - if (!opt('selectable')) { // if selectable, SelectionManager will worry about dayClick - var col = Math.min(colCnt-1, Math.floor((ev.pageX - dayTable.offset().left - axisWidth) / colWidth)); - var date = colDate(col); - var rowMatch = this.parentNode.className.match(/fc-slot(\d+)/); // TODO: maybe use data - if (rowMatch) { - var mins = parseInt(rowMatch[1]) * opt('slotMinutes'); - var hours = Math.floor(mins/60); - date.setHours(hours); - date.setMinutes(mins%60 + minMinute); - trigger('dayClick', dayBodyCells[col], date, false, ev); - }else{ - trigger('dayClick', dayBodyCells[col], date, true, ev); - } + // have the day-grid extend it's coordinate area over the <hr> dividing the two grids + this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight(); } - } - - - - /* Semi-transparent Overlay Helpers - -----------------------------------------------------*/ - - function renderDayOverlay(startDate, endDate, refreshCoordinateGrid) { // endDate is exclusive - if (refreshCoordinateGrid) { - coordinateGrid.build(); - } - var visStart = cloneDate(t.visStart); - var startCol, endCol; - if (rtl) { - startCol = dayDiff(endDate, visStart)*dis+dit+1; - endCol = dayDiff(startDate, visStart)*dis+dit+1; - }else{ - startCol = dayDiff(startDate, visStart); - endCol = dayDiff(endDate, visStart); - } - startCol = Math.max(0, startCol); - endCol = Math.min(colCnt, endCol); - if (startCol < endCol) { - dayBind( - renderCellOverlay(0, startCol, 0, endCol-1) - ); - } - } - - - function renderCellOverlay(row0, col0, row1, col1) { // only for all-day? - var rect = coordinateGrid.rect(row0, col0, row1, col1, slotLayer); - return renderOverlay(rect, slotLayer); - } - + this.noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)'); // fake rows not within the scroller + }, - function renderSlotOverlay(overlayStart, overlayEnd) { - var dayStart = cloneDate(t.visStart); - var dayEnd = addDays(cloneDate(dayStart), 1); - for (var i=0; i<colCnt; i++) { - var stretchStart = new Date(Math.max(dayStart, overlayStart)); - var stretchEnd = new Date(Math.min(dayEnd, overlayEnd)); - if (stretchStart < stretchEnd) { - var col = i*dis+dit; - var rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only use it for horizontal coords - var top = timePosition(dayStart, stretchStart); - var bottom = timePosition(dayStart, stretchEnd); - rect.top = top; - rect.height = bottom - top; - slotBind( - renderOverlay(rect, slotContent) - ); - } - addDays(dayStart, 1); - addDays(dayEnd, 1); - } - } - - - - /* Coordinate Utilities - -----------------------------------------------------------------------------*/ - - - coordinateGrid = new CoordinateGrid(function(rows, cols) { - var e, n, p; - dayHeadCells.each(function(i, _e) { - e = $(_e); - n = e.offset().left; - if (i) { - p[1] = n; - } - p = [n]; - cols[i] = p; - }); - p[1] = n + e.outerWidth(); - if (opt('allDaySlot')) { - e = allDayRow; - n = e.offset().top; - rows[0] = [n, n+e.outerHeight()]; - } - var slotTableTop = slotContent.offset().top; - var slotScrollerTop = slotScroller.offset().top; - var slotScrollerBottom = slotScrollerTop + slotScroller.outerHeight(); - function constrain(n) { - return Math.max(slotScrollerTop, Math.min(slotScrollerBottom, n)); - } - for (var i=0; i<slotCnt*snapRatio; i++) { // adapt slot count to increased/decreased selection slot count - rows.push([ - constrain(slotTableTop + snapHeight*i), - constrain(slotTableTop + snapHeight*(i+1)) - ]); - } - }); - - - hoverListener = new HoverListener(coordinateGrid); - - - colContentPositions = new HorizontalPositionCache(function(col) { - return dayBodyCellInners.eq(col); - }); - - - function colContentLeft(col) { - return colContentPositions.left(col); - } - - - function colContentRight(col) { - return colContentPositions.right(col); - } - - - - - function dateCell(date) { // "cell" terminology is now confusing - return { - row: Math.floor(dayDiff(date, t.visStart) / 7), - col: dayOfWeekCol(date.getDay()) - }; - } - - - function cellDate(cell) { - var d = colDate(cell.col); - var slotIndex = cell.row; - if (opt('allDaySlot')) { - slotIndex--; - } - if (slotIndex >= 0) { - addMinutes(d, minMinute + slotIndex * snapMinutes); - } - return d; - } - - - function colDate(col) { // returns dates with 00:00:00 - return addDays(cloneDate(t.visStart), col*dis+dit); - } - - - function cellIsAllDay(cell) { - return opt('allDaySlot') && !cell.row; - } - - - function dayOfWeekCol(dayOfWeek) { - return ((dayOfWeek - Math.max(firstDay, nwe) + colCnt) % colCnt)*dis+dit; - } - - - - - // get the Y coordinate of the given time on the given day (both Date objects) - function timePosition(day, time) { // both date objects. day holds 00:00 of current day - day = cloneDate(day, true); - if (time < addMinutes(cloneDate(day), minMinute)) { - return 0; - } - if (time >= addMinutes(cloneDate(day), maxMinute)) { - return slotTable.height(); - } - var slotMinutes = opt('slotMinutes'), - minutes = time.getHours()*60 + time.getMinutes() - minMinute, - slotI = Math.floor(minutes / slotMinutes), - slotTop = slotTopCache[slotI]; - if (slotTop === undefined) { - slotTop = slotTopCache[slotI] = slotTable.find('tr:eq(' + slotI + ') td div')[0].offsetTop; //.position().top; // need this optimization??? - } - return Math.max(0, Math.round( - slotTop - 1 + slotHeight * ((minutes % slotMinutes) / slotMinutes) - )); - } - - - function allDayBounds() { - return { - left: axisWidth, - right: viewWidth - gutterWidth - } - } - - - function getAllDayRow(index) { - return allDayRow; - } - - - function defaultEventEnd(event) { - var start = cloneDate(event.start); - if (event.allDay) { - return start; - } - return addMinutes(start, opt('defaultEventMinutes')); - } - - - - /* Selection - ---------------------------------------------------------------------------------*/ - - - function defaultSelectionEnd(startDate, allDay) { - if (allDay) { - return cloneDate(startDate); - } - return addMinutes(cloneDate(startDate), opt('slotMinutes')); - } - - - function renderSelection(startDate, endDate, allDay) { // only for all-day - if (allDay) { - if (opt('allDaySlot')) { - renderDayOverlay(startDate, addDays(cloneDate(endDate), 1), true); - } - }else{ - renderSlotSelection(startDate, endDate); - } - } - - - function renderSlotSelection(startDate, endDate) { - var helperOption = opt('selectHelper'); - coordinateGrid.build(); - if (helperOption) { - var col = dayDiff(startDate, t.visStart) * dis + dit; - if (col >= 0 && col < colCnt) { // only works when times are on same day - var rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only for horizontal coords - var top = timePosition(startDate, startDate); - var bottom = timePosition(startDate, endDate); - if (bottom > top) { // protect against selections that are entirely before or after visible range - rect.top = top; - rect.height = bottom - top; - rect.left += 2; - rect.width -= 5; - if ($.isFunction(helperOption)) { - var helperRes = helperOption(startDate, endDate); - if (helperRes) { - rect.position = 'absolute'; - rect.zIndex = 8; - selectionHelper = $(helperRes) - .css(rect) - .appendTo(slotContent); - } - }else{ - rect.isStart = true; // conside rect a "seg" now - rect.isEnd = true; // - selectionHelper = $(slotSegHtml( - { - title: '', - start: startDate, - end: endDate, - className: ['fc-select-helper'], - editable: false - }, - rect - )); - selectionHelper.css('opacity', opt('dragOpacity')); - } - if (selectionHelper) { - slotBind(selectionHelper); - slotContent.append(selectionHelper); - setOuterWidth(selectionHelper, rect.width, true); // needs to be after appended - setOuterHeight(selectionHelper, rect.height, true); - } - } - } - }else{ - renderSlotOverlay(startDate, endDate); - } - } - - - function clearSelection() { - clearOverlays(); - if (selectionHelper) { - selectionHelper.remove(); - selectionHelper = null; + + // 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(); } - } - - - function slotSelectionMousedown(ev) { - if (ev.which == 1 && opt('selectable')) { // ev.which==1 means left mouse button - unselect(ev); - var dates; - hoverListener.start(function(cell, origCell) { - clearSelection(); - if (cell && cell.col == origCell.col && !cellIsAllDay(cell)) { - var d1 = cellDate(origCell); - var d2 = cellDate(cell); - dates = [ - d1, - addMinutes(cloneDate(d1), snapMinutes), // calculate minutes depending on selection slot minutes - d2, - addMinutes(cloneDate(d2), snapMinutes) - ].sort(cmp); - renderSlotSelection(dates[0], dates[3]); - }else{ - dates = null; - } - }, ev); - $(document).one('mouseup', function(ev) { - hoverListener.stop(); - if (dates) { - if (+dates[0] == +dates[1]) { - reportDayClick(dates[0], false, ev); - } - reportSelection(dates[0], dates[3], false, ev); - } - }); + }, + + + renderBusinessHours: function() { + this.timeGrid.renderBusinessHours(); + + if (this.dayGrid) { + this.dayGrid.renderBusinessHours(); } - } - - - function reportDayClick(date, allDay, ev) { - trigger('dayClick', dayBodyCells[dayOfWeekCol(date.getDay())], date, allDay, ev); - } - - - - /* External Dragging - --------------------------------------------------------------------------------*/ - - - function dragStart(_dragElement, ev, ui) { - hoverListener.start(function(cell) { - clearOverlays(); - if (cell) { - if (cellIsAllDay(cell)) { - renderCellOverlay(cell.row, cell.col, cell.row, cell.col); - }else{ - var d1 = cellDate(cell); - var d2 = addMinutes(cloneDate(d1), opt('defaultEventMinutes')); - renderSlotOverlay(d1, d2); - } - } - }, ev); - } - - - function dragStop(_dragElement, ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - if (cell) { - trigger('drop', _dragElement, cellDate(cell), cellIsAllDay(cell), ev, ui); + }, + + + // 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 '' + + '<table>' + + '<thead class="fc-head">' + + '<tr>' + + '<td class="fc-head-container ' + this.widgetHeaderClass + '"></td>' + + '</tr>' + + '</thead>' + + '<tbody class="fc-body">' + + '<tr>' + + '<td class="' + this.widgetContentClass + '">' + + (this.dayGrid ? + '<div class="fc-day-grid"/>' + + '<hr class="fc-divider ' + this.widgetHeaderClass + '"/>' : + '' + ) + + '<div class="fc-time-grid-container">' + + '<div class="fc-time-grid"/>' + + '</div>' + + '</td>' + + '</tr>' + + '</tbody>' + + '</table>'; + }, + + + // 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 + ------------------------------------------------------------------------------------------------------------------*/ -;; -function AgendaEventRenderer() { - var t = this; - - - // exports - t.renderEvents = renderEvents; - t.compileDaySegs = compileDaySegs; // for DayEventRenderer - t.clearEvents = clearEvents; - t.slotSegHtml = slotSegHtml; - t.bindDaySeg = bindDaySeg; - - - // imports - DayEventRenderer.call(t); - var opt = t.opt; - var trigger = t.trigger; - //var setOverflowHidden = t.setOverflowHidden; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventEnd = t.eventEnd; - var reportEvents = t.reportEvents; - var reportEventClear = t.reportEventClear; - var eventElementHandlers = t.eventElementHandlers; - var setHeight = t.setHeight; - var getDaySegmentContainer = t.getDaySegmentContainer; - var getSlotSegmentContainer = t.getSlotSegmentContainer; - var getHoverListener = t.getHoverListener; - var getMaxMinute = t.getMaxMinute; - var getMinMinute = t.getMinMinute; - var timePosition = t.timePosition; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var renderDaySegs = t.renderDaySegs; - var resizableDayEvent = t.resizableDayEvent; // TODO: streamline binding architecture - var getColCnt = t.getColCnt; - var getColWidth = t.getColWidth; - var getSnapHeight = t.getSnapHeight; - var getSnapMinutes = t.getSnapMinutes; - var getBodyContent = t.getBodyContent; - var reportEventElement = t.reportEventElement; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventDrop = t.eventDrop; - var eventResize = t.eventResize; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var calendar = t.calendar; - var formatDate = calendar.formatDate; - var formatDates = calendar.formatDates; - - - - /* Rendering - ----------------------------------------------------------------------------*/ - + updateSize: function(isResize) { + this.timeGrid.updateSize(isResize); - function renderEvents(events, modifiedEventId) { - reportEvents(events); - var i, len=events.length, - dayEvents=[], - slotEvents=[]; - for (i=0; i<len; i++) { - if (events[i].allDay) { - dayEvents.push(events[i]); - }else{ - slotEvents.push(events[i]); - } - } - if (opt('allDaySlot')) { - renderDaySegs(compileDaySegs(dayEvents), modifiedEventId); - setHeight(); // no params means set to viewHeight - } - renderSlotSegs(compileSlotSegs(slotEvents), modifiedEventId); - trigger('eventAfterAllRender'); - } - - - function clearEvents() { - reportEventClear(); - getDaySegmentContainer().empty(); - getSlotSegmentContainer().empty(); - } - - - function compileDaySegs(events) { - var levels = stackSegs(sliceSegs(events, $.map(events, exclEndDay), t.visStart, t.visEnd)), - i, levelCnt=levels.length, level, - j, seg, - segs=[]; - for (i=0; i<levelCnt; i++) { - level = levels[i]; - for (j=0; j<level.length; j++) { - seg = level[j]; - seg.row = 0; - seg.level = i; // not needed anymore - segs.push(seg); - } - } - return segs; - } - - - function compileSlotSegs(events) { - var colCnt = getColCnt(), - minMinute = getMinMinute(), - maxMinute = getMaxMinute(), - d = addMinutes(cloneDate(t.visStart), minMinute), - visEventEnds = $.map(events, slotEventEnd), - i, col, - j, level, - k, seg, - segs=[]; - for (i=0; i<colCnt; i++) { - col = stackSegs(sliceSegs(events, visEventEnds, d, addMinutes(cloneDate(d), maxMinute-minMinute))); - countForwardSegs(col); - for (j=0; j<col.length; j++) { - level = col[j]; - for (k=0; k<level.length; k++) { - seg = level[k]; - seg.col = i; - seg.level = j; - segs.push(seg); - } - } - addDays(d, 1, true); - } - return segs; - } - - - function slotEventEnd(event) { - if (event.end) { - return cloneDate(event.end); - }else{ - return addMinutes(cloneDate(event.start), opt('defaultEventMinutes')); - } - } - - - // renders events in the 'time slots' at the bottom - - function renderSlotSegs(segs, modifiedEventId) { - - var i, segCnt=segs.length, seg, - event, - classes, - top, bottom, - colI, levelI, forward, - leftmost, - availWidth, - outerWidth, - left, - html='', - eventElements, - eventElement, - triggerRes, - vsideCache={}, - hsideCache={}, - key, val, - titleElement, - height, - slotSegmentContainer = getSlotSegmentContainer(), - rtl, dis, dit, - colCnt = getColCnt(); - - if (rtl = opt('isRTL')) { - dis = -1; - dit = colCnt - 1; - }else{ - dis = 1; - dit = 0; - } - - // calculate position/dimensions, create html - for (i=0; i<segCnt; i++) { - seg = segs[i]; - event = seg.event; - top = timePosition(seg.start, seg.start); - bottom = timePosition(seg.start, seg.end); - colI = seg.col; - levelI = seg.level; - forward = seg.forward || 0; - leftmost = colContentLeft(colI*dis + dit); - availWidth = colContentRight(colI*dis + dit) - leftmost; - availWidth = Math.min(availWidth-6, availWidth*.95); // TODO: move this to CSS - if (levelI) { - // indented and thin - outerWidth = availWidth / (levelI + forward + 1); - }else{ - if (forward) { - // moderately wide, aligned left still - outerWidth = ((availWidth / (forward + 1)) - (12/2)) * 2; // 12 is the predicted width of resizer = - }else{ - // can be entire width, aligned left - outerWidth = availWidth; - } - } - left = leftmost + // leftmost possible - (availWidth / (levelI + forward + 1) * levelI) // indentation - * dis + (rtl ? availWidth - outerWidth : 0); // rtl - seg.top = top; - seg.left = left; - seg.outerWidth = outerWidth; - seg.outerHeight = bottom - top; - html += slotSegHtml(event, seg); - } - slotSegmentContainer[0].innerHTML = html; // faster than html() - eventElements = slotSegmentContainer.children(); - - // retrieve elements, run through eventRender callback, bind event handlers - for (i=0; i<segCnt; i++) { - seg = segs[i]; - event = seg.event; - eventElement = $(eventElements[i]); // faster than eq() - triggerRes = trigger('eventRender', event, event, eventElement); - if (triggerRes === false) { - eventElement.remove(); - }else{ - if (triggerRes && triggerRes !== true) { - eventElement.remove(); - eventElement = $(triggerRes) - .css({ - position: 'absolute', - top: seg.top, - left: seg.left - }) - .appendTo(slotSegmentContainer); - } - seg.element = eventElement; - if (event._id === modifiedEventId) { - bindSlotSeg(event, eventElement, seg); - }else{ - eventElement[0]._fci = i; // for lazySegBind - } - reportEventElement(event, eventElement); - } - } - - lazySegBind(slotSegmentContainer, segs, bindSlotSeg); - - // record event sides and title positions - for (i=0; i<segCnt; i++) { - seg = segs[i]; - if (eventElement = seg.element) { - val = vsideCache[key = seg.key = cssKey(eventElement[0])]; - seg.vsides = val === undefined ? (vsideCache[key] = vsides(eventElement, true)) : val; - val = hsideCache[key]; - seg.hsides = val === undefined ? (hsideCache[key] = hsides(eventElement, true)) : val; - titleElement = eventElement.find('.fc-event-title'); - if (titleElement.length) { - seg.contentTop = titleElement[0].offsetTop; - } - } - } - - // set all positions/dimensions at once - for (i=0; i<segCnt; i++) { - seg = segs[i]; - if (eventElement = seg.element) { - eventElement[0].style.width = Math.max(0, seg.outerWidth - seg.hsides) + 'px'; - height = Math.max(0, seg.outerHeight - seg.vsides); - eventElement[0].style.height = height + 'px'; - event = seg.event; - if (seg.contentTop !== undefined && height - seg.contentTop < 10) { - // not enough room for title, put it in the time (TODO: maybe make both display:inline instead) - eventElement.find('div.fc-event-time') - .text(formatDate(event.start, opt('timeFormat')) + ' - ' + event.title); - eventElement.find('div.fc-event-title') - .remove(); - } - trigger('eventAfterRender', event, event, eventElement); - } - } - - } - - - function slotSegHtml(event, seg) { - var html = "<"; - var url = event.url; - var skinCss = getSkinCss(event, opt); - var classes = ['fc-event', 'fc-event-vert']; - if (isEventDraggable(event)) { - classes.push('fc-event-draggable'); - } - if (seg.isStart) { - classes.push('fc-event-start'); - } - if (seg.isEnd) { - classes.push('fc-event-end'); - } - classes = classes.concat(event.className); - if (event.source) { - classes = classes.concat(event.source.className || []); - } - if (url) { - html += "a href='" + htmlEscape(event.url) + "'"; - }else{ - html += "div"; - } - html += - " class='" + classes.join(' ') + "'" + - " style='position:absolute;z-index:8;top:" + seg.top + "px;left:" + seg.left + "px;" + skinCss + "'" + - ">" + - "<div class='fc-event-inner'>" + - "<div class='fc-event-time'>" + - htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) + - "</div>" + - "<div class='fc-event-title'>" + - htmlEscape(event.title) + - "</div>" + - "</div>" + - "<div class='fc-event-bg'></div>"; - if (seg.isEnd && isEventResizable(event)) { - html += - "<div class='ui-resizable-handle ui-resizable-s'>=</div>"; - } - html += - "</" + (url ? "a" : "div") + ">"; - return html; - } - - - function bindDaySeg(event, eventElement, seg) { - if (isEventDraggable(event)) { - draggableDayEvent(event, eventElement, seg.isStart); - } - if (seg.isEnd && isEventResizable(event)) { - resizableDayEvent(event, eventElement, seg); - } - eventElementHandlers(event, eventElement); - // needs to be after, because resizableDayEvent might stopImmediatePropagation on click - } - - - function bindSlotSeg(event, eventElement, seg) { - var timeElement = eventElement.find('div.fc-event-time'); - if (isEventDraggable(event)) { - draggableSlotEvent(event, eventElement, timeElement); - } - if (seg.isEnd && isEventResizable(event)) { - resizableSlotEvent(event, eventElement, timeElement); + 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(); } - eventElementHandlers(event, eventElement); - } - - - - /* Dragging - -----------------------------------------------------------------------------------*/ - - - // when event starts out FULL-DAY - - function draggableDayEvent(event, eventElement, isStart) { - var origWidth; - var revert; - var allDay=true; - var dayDelta; - var dis = opt('isRTL') ? -1 : 1; - var hoverListener = getHoverListener(); - var colWidth = getColWidth(); - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - var minMinute = getMinMinute(); - eventElement.draggable({ - zIndex: 9, - opacity: opt('dragOpacity', 'month'), // use whatever the month view was using - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - origWidth = eventElement.width(); - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - clearOverlays(); - if (cell) { - //setOverflowHidden(true); - revert = false; - dayDelta = colDelta * dis; - if (!cell.row) { - // on full-days - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - resetElement(); - }else{ - // mouse is over bottom slots - if (isStart) { - if (allDay) { - // convert event to temporary slot-event - eventElement.width(colWidth - 10); // don't use entire width - setOuterHeight( - eventElement, - snapHeight * Math.round( - (event.end ? ((event.end - event.start) / MINUTE_MS) : opt('defaultEventMinutes')) / - snapMinutes - ) - ); - eventElement.draggable('option', 'grid', [colWidth, 1]); - allDay = false; - } - }else{ - revert = true; - } - } - revert = revert || (allDay && !dayDelta); - }else{ - resetElement(); - //setOverflowHidden(false); - revert = true; - } - eventElement.draggable('option', 'revert', revert); - }, ev, 'drag'); - }, - stop: function(ev, ui) { - hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (revert) { - // hasn't moved or is out of bounds (draggable has already reverted) - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - showEvents(event, eventElement); - }else{ - // changed! - var minuteDelta = 0; - if (!allDay) { - minuteDelta = Math.round((eventElement.offset().top - getBodyContent().offset().top) / snapHeight) - * snapMinutes - + minMinute - - (event.start.getHours() * 60 + event.start.getMinutes()); - } - eventDrop(this, event, dayDelta, minuteDelta, allDay, ev, ui); - } - //setOverflowHidden(false); + this.bottomRuleEl.hide(); // .show() will be called later if this <hr> 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 } - }); - function resetElement() { - if (!allDay) { - eventElement - .width(origWidth) - .height('') - .draggable('option', 'grid', null); - allDay = true; + if (eventLimit) { + this.dayGrid.limitRows(eventLimit); } } - } - - - // when event starts out IN TIMESLOTS - - function draggableSlotEvent(event, eventElement, timeElement) { - var origPosition; - var allDay=false; - var dayDelta; - var minuteDelta; - var prevMinuteDelta; - var dis = opt('isRTL') ? -1 : 1; - var hoverListener = getHoverListener(); - var colCnt = getColCnt(); - var colWidth = getColWidth(); - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - eventElement.draggable({ - zIndex: 9, - scroll: false, - grid: [colWidth, snapHeight], - axis: colCnt==1 ? 'y' : false, - opacity: opt('dragOpacity'), - revertDuration: opt('dragRevertDuration'), - start: function(ev, ui) { - trigger('eventDragStart', eventElement, event, ev, ui); - hideEvents(event, eventElement); - origPosition = eventElement.position(); - minuteDelta = prevMinuteDelta = 0; - hoverListener.start(function(cell, origCell, rowDelta, colDelta) { - eventElement.draggable('option', 'revert', !cell); - clearOverlays(); - if (cell) { - dayDelta = colDelta * dis; - if (opt('allDaySlot') && !cell.row) { - // over full days - if (!allDay) { - // convert to temporary all-day event - allDay = true; - timeElement.hide(); - eventElement.draggable('option', 'grid', null); - } - renderDayOverlay( - addDays(cloneDate(event.start), dayDelta), - addDays(exclEndDay(event), dayDelta) - ); - }else{ - // on slots - resetElement(); - } - } - }, ev, 'drag'); - }, - drag: function(ev, ui) { - minuteDelta = Math.round((ui.position.top - origPosition.top) / snapHeight) * snapMinutes; - if (minuteDelta != prevMinuteDelta) { - if (!allDay) { - updateTimeText(minuteDelta); - } - prevMinuteDelta = minuteDelta; - } - }, - stop: function(ev, ui) { - var cell = hoverListener.stop(); - clearOverlays(); - trigger('eventDragStop', eventElement, event, ev, ui); - if (cell && (dayDelta || minuteDelta || allDay)) { - // changed! - eventDrop(this, event, dayDelta, allDay ? 0 : minuteDelta, allDay, ev, ui); - }else{ - // either no change or out-of-bounds (draggable has already reverted) - resetElement(); - eventElement.css('filter', ''); // clear IE opacity side-effects - eventElement.css(origPosition); // sometimes fast drags make event revert to wrong position - updateTimeText(0); - showEvents(event, eventElement); - } - } - }); - function updateTimeText(minuteDelta) { - var newStart = addMinutes(cloneDate(event.start), minuteDelta); - var newEnd; - if (event.end) { - newEnd = addMinutes(cloneDate(event.end), minuteDelta); + + 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); } - timeElement.text(formatDates(newStart, newEnd, opt('timeFormat'))); - } - function resetElement() { - // convert back to original slot-event - if (allDay) { - timeElement.css('display', ''); // show() was causing display=inline - eventElement.draggable('option', 'grid', [colWidth, snapHeight]); - allDay = false; + 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 <hr> goes outside + this.bottomRuleEl.show(); } } - } - - - - /* Resizing - --------------------------------------------------------------------------------------*/ - - - function resizableSlotEvent(event, eventElement, timeElement) { - var snapDelta, prevSnapDelta; - var snapHeight = getSnapHeight(); - var snapMinutes = getSnapMinutes(); - eventElement.resizable({ - handles: { - s: '.ui-resizable-handle' - }, - grid: snapHeight, - start: function(ev, ui) { - snapDelta = prevSnapDelta = 0; - hideEvents(event, eventElement); - eventElement.css('z-index', 9); - trigger('eventResizeStart', this, event, ev, ui); - }, - resize: function(ev, ui) { - // don't rely on ui.size.height, doesn't take grid into account - snapDelta = Math.round((Math.max(snapHeight, eventElement.height()) - ui.originalSize.height) / snapHeight); - if (snapDelta != prevSnapDelta) { - timeElement.text( - formatDates( - event.start, - (!snapDelta && !event.end) ? null : // no change, so don't display time range - addMinutes(eventEnd(event), snapMinutes*snapDelta), - opt('timeFormat') - ) - ); - prevSnapDelta = snapDelta; - } - }, - stop: function(ev, ui) { - trigger('eventResizeStop', this, event, ev, ui); - if (snapDelta) { - eventResize(this, event, 0, snapMinutes*snapDelta, ev, ui); - }else{ - eventElement.css('z-index', 8); - showEvents(event, eventElement); - // BUG: if event was really short, need to put title back in span - } - } - }); - } - + }, -} + // 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); -function countForwardSegs(levels) { - var i, j, k, level, segForward, segBack; - for (i=levels.length-1; i>0; i--) { - level = levels[i]; - for (j=0; j<level.length; j++) { - segForward = level[j]; - for (k=0; k<levels[i-1].length; k++) { - segBack = levels[i-1][k]; - if (segsCollide(segForward, segBack)) { - segBack.forward = Math.max(segBack.forward||0, (segForward.forward||0)+1); - } - } + // 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) -function View(element, calendar, viewName) { - var t = this; - - - // exports - t.element = element; - t.calendar = calendar; - t.name = viewName; - t.opt = opt; - t.trigger = trigger; - //t.setOverflowHidden = setOverflowHidden; - t.isEventDraggable = isEventDraggable; - t.isEventResizable = isEventResizable; - t.reportEvents = reportEvents; - t.eventEnd = eventEnd; - t.reportEventElement = reportEventElement; - t.reportEventClear = reportEventClear; - t.eventElementHandlers = eventElementHandlers; - t.showEvents = showEvents; - t.hideEvents = hideEvents; - t.eventDrop = eventDrop; - t.eventResize = eventResize; - // t.title - // t.start, t.end - // t.visStart, t.visEnd - - - // imports - var defaultEventEnd = t.defaultEventEnd; - var normalizeEvent = calendar.normalizeEvent; // in EventManager - var reportEventChange = calendar.reportEventChange; - - - // locals - var eventsByID = {}; - var eventElements = []; - var eventElementsByID = {}; - var options = calendar.options; - - - - function opt(name, viewNameOverride) { - var v = options[name]; - if (typeof v == 'object') { - return smartProperty(v, viewNameOverride || viewName); + prepareHits: function() { + this.timeGrid.prepareHits(); + if (this.dayGrid) { + this.dayGrid.prepareHits(); } - return v; - } + }, - - function trigger(name, thisObj) { - return calendar.trigger.apply( - calendar, - [name, thisObj || t].concat(Array.prototype.slice.call(arguments, 2), [t]) - ); - } - - - /* - function setOverflowHidden(bool) { - element.css('overflow', bool ? 'hidden' : ''); - } - */ - - - function isEventDraggable(event) { - return isEventEditable(event) && !opt('disableDragging'); - } - - - function isEventResizable(event) { // but also need to make sure the seg.isEnd == true - return isEventEditable(event) && !opt('disableResizing'); - } - - - function isEventEditable(event) { - return firstDefined(event.editable, (event.source || {}).editable, opt('editable')); - } - - - - /* Event Data - ------------------------------------------------------------------------------*/ - - - // report when view receives new events - function reportEvents(events) { // events are already normalized at this point - eventsByID = {}; - var i, len=events.length, event; - for (i=0; i<len; i++) { - event = events[i]; - if (eventsByID[event._id]) { - eventsByID[event._id].push(event); - }else{ - eventsByID[event._id] = [event]; - } - } - } - - - // returns a Date object for an event's end - function eventEnd(event) { - return event.end ? cloneDate(event.end) : defaultEventEnd(event); - } - - - - /* Event Elements - ------------------------------------------------------------------------------*/ - - - // report when view creates an element for an event - function reportEventElement(event, element) { - eventElements.push(element); - if (eventElementsByID[event._id]) { - eventElementsByID[event._id].push(element); - }else{ - eventElementsByID[event._id] = [element]; - } - } - - - function reportEventClear() { - eventElements = []; - eventElementsByID = {}; - } - - - // attaches eventClick, eventMouseover, eventMouseout - function eventElementHandlers(event, eventElement) { - eventElement - .click(function(ev) { - if (!eventElement.hasClass('ui-draggable-dragging') && - !eventElement.hasClass('ui-resizable-resizing')) { - return trigger('eventClick', this, event, ev); - } - }) - .hover( - function(ev) { - trigger('eventMouseover', this, event, ev); - }, - function(ev) { - trigger('eventMouseout', this, event, ev); - } - ); - // TODO: don't fire eventMouseover/eventMouseout *while* dragging is occuring (on subject element) - // TODO: same for resizing - } - - - function showEvents(event, exceptElement) { - eachEventElement(event, exceptElement, 'show'); - } - - - function hideEvents(event, exceptElement) { - eachEventElement(event, exceptElement, 'hide'); - } - - - function eachEventElement(event, exceptElement, funcName) { - var elements = eventElementsByID[event._id], - i, len = elements.length; - for (i=0; i<len; i++) { - if (!exceptElement || elements[i][0] != exceptElement[0]) { - elements[i][funcName](); - } - } - } - - - - /* Event Modification Reporting - ---------------------------------------------------------------------------------*/ - - - function eventDrop(e, event, dayDelta, minuteDelta, allDay, ev, ui) { - var oldAllDay = event.allDay; - var eventId = event._id; - moveEvents(eventsByID[eventId], dayDelta, minuteDelta, allDay); - trigger( - 'eventDrop', - e, - event, - dayDelta, - minuteDelta, - allDay, - function() { - // TODO: investigate cases where this inverse technique might not work - moveEvents(eventsByID[eventId], -dayDelta, -minuteDelta, oldAllDay); - reportEventChange(eventId); - }, - ev, - ui - ); - reportEventChange(eventId); - } - - - function eventResize(e, event, dayDelta, minuteDelta, ev, ui) { - var eventId = event._id; - elongateEvents(eventsByID[eventId], dayDelta, minuteDelta); - trigger( - 'eventResize', - e, - event, - dayDelta, - minuteDelta, - function() { - // TODO: investigate cases where this inverse technique might not work - elongateEvents(eventsByID[eventId], -dayDelta, -minuteDelta); - reportEventChange(eventId); - }, - ev, - ui - ); - reportEventChange(eventId); - } - - - - /* Event Modification Math - ---------------------------------------------------------------------------------*/ - - - function moveEvents(events, dayDelta, minuteDelta, allDay) { - minuteDelta = minuteDelta || 0; - for (var e, len=events.length, i=0; i<len; i++) { - e = events[i]; - if (allDay !== undefined) { - e.allDay = allDay; - } - addMinutes(addDays(e.start, dayDelta, true), minuteDelta); - if (e.end) { - e.end = addMinutes(addDays(e.end, dayDelta, true), minuteDelta); - } - normalizeEvent(e, options); + + releaseHits: function() { + this.timeGrid.releaseHits(); + if (this.dayGrid) { + this.dayGrid.releaseHits(); } - } - - - function elongateEvents(events, dayDelta, minuteDelta) { - minuteDelta = minuteDelta || 0; - for (var e, len=events.length, i=0; i<len; i++) { - e = events[i]; - e.end = addMinutes(addDays(eventEnd(e), dayDelta, true), minuteDelta); - normalizeEvent(e, options); + }, + + + queryHit: function(left, top) { + var hit = this.timeGrid.queryHit(left, top); + + if (!hit && this.dayGrid) { + hit = this.dayGrid.queryHit(left, top); } - } - -} + return hit; + }, -;; -function DayEventRenderer() { - var t = this; + getHitSpan: function(hit) { + // TODO: hit.component is set as a hack to identify where the hit came from + return hit.component.getHitSpan(hit); + }, - - // exports - t.renderDaySegs = renderDaySegs; - t.resizableDayEvent = resizableDayEvent; - - - // imports - var opt = t.opt; - var trigger = t.trigger; - var isEventDraggable = t.isEventDraggable; - var isEventResizable = t.isEventResizable; - var eventEnd = t.eventEnd; - var reportEventElement = t.reportEventElement; - var showEvents = t.showEvents; - var hideEvents = t.hideEvents; - var eventResize = t.eventResize; - var getRowCnt = t.getRowCnt; - var getColCnt = t.getColCnt; - var getColWidth = t.getColWidth; - var allDayRow = t.allDayRow; - var allDayBounds = t.allDayBounds; - var colContentLeft = t.colContentLeft; - var colContentRight = t.colContentRight; - var dayOfWeekCol = t.dayOfWeekCol; - var dateCell = t.dateCell; - var compileDaySegs = t.compileDaySegs; - var getDaySegmentContainer = t.getDaySegmentContainer; - var bindDaySeg = t.bindDaySeg; //TODO: streamline this - var formatDates = t.calendar.formatDates; - var renderDayOverlay = t.renderDayOverlay; - var clearOverlays = t.clearOverlays; - var clearSelection = t.clearSelection; - - - - /* Rendering - -----------------------------------------------------------------------------*/ - - - function renderDaySegs(segs, modifiedEventId) { - var segmentContainer = getDaySegmentContainer(); - var rowDivs; - var rowCnt = getRowCnt(); - var colCnt = getColCnt(); - var i = 0; - var rowI; - var levelI; - var colHeights; - var j; - var segCnt = segs.length; - var seg; - var top; - var k; - segmentContainer[0].innerHTML = daySegHTML(segs); // faster than .html() - daySegElementResolve(segs, segmentContainer.children()); - daySegElementReport(segs); - daySegHandlers(segs, segmentContainer, modifiedEventId); - daySegCalcHSides(segs); - daySegSetWidths(segs); - daySegCalcHeights(segs); - rowDivs = getRowDivs(); - // set row heights, calculate event tops (in relation to row top) - for (rowI=0; rowI<rowCnt; rowI++) { - levelI = 0; - colHeights = []; - for (j=0; j<colCnt; j++) { - colHeights[j] = 0; - } - while (i<segCnt && (seg = segs[i]).row == rowI) { - // loop through segs in a row - top = arrayMax(colHeights.slice(seg.startCol, seg.endCol)); - seg.top = top; - top += seg.outerHeight; - for (k=seg.startCol; k<seg.endCol; k++) { - colHeights[k] = top; - } - i++; - } - rowDivs[rowI].height(arrayMax(colHeights)); - } - daySegSetTops(segs, getRowTops(rowDivs)); - } - - - function renderTempDaySegs(segs, adjustRow, adjustTop) { - var tempContainer = $("<div/>"); - var elements; - var segmentContainer = getDaySegmentContainer(); - var i; - var segCnt = segs.length; - var element; - tempContainer[0].innerHTML = daySegHTML(segs); // faster than .html() - elements = tempContainer.children(); - segmentContainer.append(elements); - daySegElementResolve(segs, elements); - daySegCalcHSides(segs); - daySegSetWidths(segs); - daySegCalcHeights(segs); - daySegSetTops(segs, getRowTops(getRowDivs())); - elements = []; - for (i=0; i<segCnt; i++) { - element = segs[i].element; - if (element) { - if (segs[i].row === adjustRow) { - element.css('top', adjustTop); - } - elements.push(element[0]); - } - } - return $(elements); - } - - - function daySegHTML(segs) { // also sets seg.left and seg.outerWidth - var rtl = opt('isRTL'); - var i; - var segCnt=segs.length; - var seg; - var event; - var url; - var classes; - var bounds = allDayBounds(); - var minLeft = bounds.left; - var maxLeft = bounds.right; - var leftCol; - var rightCol; - var left; - var right; - var skinCss; - var html = ''; - // calculate desired position/dimensions, create html - for (i=0; i<segCnt; i++) { - seg = segs[i]; - event = seg.event; - classes = ['fc-event', 'fc-event-hori']; - if (isEventDraggable(event)) { - classes.push('fc-event-draggable'); - } - if (seg.isStart) { - classes.push('fc-event-start'); - } - if (seg.isEnd) { - classes.push('fc-event-end'); - } - if (rtl) { - leftCol = dayOfWeekCol(seg.end.getDay()-1); - rightCol = dayOfWeekCol(seg.start.getDay()); - left = seg.isEnd ? colContentLeft(leftCol) : minLeft; - right = seg.isStart ? colContentRight(rightCol) : maxLeft; - }else{ - leftCol = dayOfWeekCol(seg.start.getDay()); - rightCol = dayOfWeekCol(seg.end.getDay()-1); - left = seg.isStart ? colContentLeft(leftCol) : minLeft; - right = seg.isEnd ? colContentRight(rightCol) : maxLeft; - } - classes = classes.concat(event.className); - if (event.source) { - classes = classes.concat(event.source.className || []); - } - url = event.url; - skinCss = getSkinCss(event, opt); - if (url) { - html += "<a href='" + htmlEscape(url) + "'"; - }else{ - html += "<div"; - } - html += - " class='" + classes.join(' ') + "'" + - " style='position:absolute;z-index:8;left:"+left+"px;" + skinCss + "'" + - ">" + - "<div class='fc-event-inner'>"; - if (!event.allDay && seg.isStart) { - html += - "<span class='fc-event-time'>" + - htmlEscape(formatDates(event.start, event.end, opt('timeFormat'))) + - "</span>"; - } - html += - "<span class='fc-event-title'>" + htmlEscape(event.title) + "</span>" + - "</div>"; - if (seg.isEnd && isEventResizable(event)) { - html += - "<div class='ui-resizable-handle ui-resizable-" + (rtl ? 'w' : 'e') + "'>" + - " " + // makes hit area a lot better for IE6/7 - "</div>"; - } - html += - "</" + (url ? "a" : "div" ) + ">"; - seg.left = left; - seg.outerWidth = right - left; - seg.startCol = leftCol; - seg.endCol = rightCol + 1; // needs to be exclusive - } - return html; - } - - - function daySegElementResolve(segs, elements) { // sets seg.element - var i; - var segCnt = segs.length; - var seg; - var event; - var element; - var triggerRes; - for (i=0; i<segCnt; i++) { - seg = segs[i]; - event = seg.event; - element = $(elements[i]); // faster than .eq() - triggerRes = trigger('eventRender', event, event, element); - if (triggerRes === false) { - element.remove(); - }else{ - if (triggerRes && triggerRes !== true) { - triggerRes = $(triggerRes) - .css({ - position: 'absolute', - left: seg.left - }); - element.replaceWith(triggerRes); - element = triggerRes; - } - seg.element = element; - } - } - } - - - function daySegElementReport(segs) { - var i; - var segCnt = segs.length; - var seg; - var element; - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - reportEventElement(seg.event, element); - } - } - } - - - function daySegHandlers(segs, segmentContainer, modifiedEventId) { - var i; - var segCnt = segs.length; - var seg; - var element; - var event; - // retrieve elements, run through eventRender callback, bind handlers - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - event = seg.event; - if (event._id === modifiedEventId) { - bindDaySeg(event, element, seg); - }else{ - element[0]._fci = i; // for lazySegBind - } - } - } - lazySegBind(segmentContainer, segs, bindDaySeg); - } - - - function daySegCalcHSides(segs) { // also sets seg.key - var i; - var segCnt = segs.length; - var seg; - var element; - var key, val; - var hsideCache = {}; - // record event horizontal sides - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - key = seg.key = cssKey(element[0]); - val = hsideCache[key]; - if (val === undefined) { - val = hsideCache[key] = hsides(element, true); - } - seg.hsides = val; - } - } - } - - - function daySegSetWidths(segs) { + + 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; - var segCnt = segs.length; - var seg; - var element; - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - element[0].style.width = Math.max(0, seg.outerWidth - seg.hsides) + 'px'; + + // separate the events into all-day and timed + for (i = 0; i < events.length; i++) { + if (events[i].allDay) { + dayEvents.push(events[i]); } - } - } - - - function daySegCalcHeights(segs) { - var i; - var segCnt = segs.length; - var seg; - var element; - var key, val; - var vmarginCache = {}; - // record event heights - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - key = seg.key; // created in daySegCalcHSides - val = vmarginCache[key]; - if (val === undefined) { - val = vmarginCache[key] = vmargins(element); - } - seg.outerHeight = element[0].offsetHeight + val; + else { + timedEvents.push(events[i]); } } - } - - - function getRowDivs() { - var i; - var rowCnt = getRowCnt(); - var rowDivs = []; - for (i=0; i<rowCnt; i++) { - rowDivs[i] = allDayRow(i) - .find('div.fc-day-content > div'); // optimal selector? - } - return rowDivs; - } - - - function getRowTops(rowDivs) { - var i; - var rowCnt = rowDivs.length; - var tops = []; - for (i=0; i<rowCnt; i++) { - tops[i] = rowDivs[i][0].offsetTop; // !!?? but this means the element needs position:relative if in a table cell!!!! - } - return tops; - } - - - function daySegSetTops(segs, rowTops) { // also triggers eventAfterRender - var i; - var segCnt = segs.length; - var seg; - var element; - var event; - for (i=0; i<segCnt; i++) { - seg = segs[i]; - element = seg.element; - if (element) { - element[0].style.top = rowTops[seg.row] + (seg.top||0) + 'px'; - event = seg.event; - trigger('eventAfterRender', event, event, element); - } + + // render the events in the subcomponents + timedSegs = this.timeGrid.renderEvents(timedEvents); + if (this.dayGrid) { + daySegs = this.dayGrid.renderEvents(dayEvents); } - } - - - - /* Resizing - -----------------------------------------------------------------------------------*/ - - - function resizableDayEvent(event, element, seg) { - var rtl = opt('isRTL'); - var direction = rtl ? 'w' : 'e'; - var handle = element.find('.ui-resizable-' + direction); // TODO: stop using this class because we aren't using jqui for this - var isResizing = false; - - // TODO: look into using jquery-ui mouse widget for this stuff - disableTextSelection(element); // prevent native <a> selection for IE - element - .mousedown(function(ev) { // prevent native <a> selection for others - ev.preventDefault(); - }) - .click(function(ev) { - if (isResizing) { - ev.preventDefault(); // prevent link from being visited (only method that worked in IE6) - ev.stopImmediatePropagation(); // prevent fullcalendar eventClick handler from being called - // (eventElementHandlers needs to be bound after resizableDayEvent) - } - }); - - handle.mousedown(function(ev) { - if (ev.which != 1) { - return; // needs to be left mouse button - } - isResizing = true; - var hoverListener = t.getHoverListener(); - var rowCnt = getRowCnt(); - var colCnt = getColCnt(); - var dis = rtl ? -1 : 1; - var dit = rtl ? colCnt-1 : 0; - var elementTop = element.css('top'); - var dayDelta; - var helpers; - var eventCopy = $.extend({}, event); - var minCell = dateCell(event.start); - clearSelection(); - $('body') - .css('cursor', direction + '-resize') - .one('mouseup', mouseup); - trigger('eventResizeStart', this, event, ev); - hoverListener.start(function(cell, origCell) { - if (cell) { - var r = Math.max(minCell.row, cell.row); - var c = cell.col; - if (rowCnt == 1) { - r = 0; // hack for all-day area in agenda views - } - if (r == minCell.row) { - if (rtl) { - c = Math.min(minCell.col, c); - }else{ - c = Math.max(minCell.col, c); - } - } - dayDelta = (r*7 + c*dis+dit) - (origCell.row*7 + origCell.col*dis+dit); - var newEnd = addDays(eventEnd(event), dayDelta, true); - if (dayDelta) { - eventCopy.end = newEnd; - var oldHelpers = helpers; - helpers = renderTempDaySegs(compileDaySegs([eventCopy]), seg.row, elementTop); - helpers.find('*').css('cursor', direction + '-resize'); - if (oldHelpers) { - oldHelpers.remove(); - } - hideEvents(event); - }else{ - if (helpers) { - showEvents(event); - helpers.remove(); - helpers = null; - } - } - clearOverlays(); - renderDayOverlay(event.start, addDays(cloneDate(newEnd), 1)); // coordinate grid already rebuild at hoverListener.start - } - }, ev); - - function mouseup(ev) { - trigger('eventResizeStop', this, event, ev); - $('body').css('cursor', ''); - hoverListener.stop(); - clearOverlays(); - if (dayDelta) { - eventResize(this, event, dayDelta, 0, ev); - // event redraw will clear helpers - } - // otherwise, the drag handler already restored the old events - - setTimeout(function() { // make this happen after the element's click event - isResizing = false; - },0); - } - - }); - } - -} + // the all-day area is flexible and might have a lot of events, so shift the height + this.updateHeight(); + }, -;; -//BUG: unselect needs to be triggered when events are dragged+dropped + // Retrieves all segment objects that are rendered in the view + getEventSegs: function() { + return this.timeGrid.getEventSegs().concat( + this.dayGrid ? this.dayGrid.getEventSegs() : [] + ); + }, -function SelectionManager() { - var t = this; - - - // exports - t.select = select; - t.unselect = unselect; - t.reportSelection = reportSelection; - t.daySelectionMousedown = daySelectionMousedown; - - - // imports - var opt = t.opt; - var trigger = t.trigger; - var defaultSelectionEnd = t.defaultSelectionEnd; - var renderSelection = t.renderSelection; - var clearSelection = t.clearSelection; - - - // locals - var selected = false; + // 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(); + } - // unselectAuto - if (opt('selectable') && opt('unselectAuto')) { - $(document).mousedown(function(ev) { - var ignore = opt('unselectCancel'); - if (ignore) { - if ($(ev.target).parents(ignore).length) { // could be optimized to stop after first match - return; - } - } - unselect(ev); - }); - } - + // 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) + ------------------------------------------------------------------------------------------------------------------*/ - function select(startDate, endDate, allDay) { - unselect(); - if (!endDate) { - endDate = defaultSelectionEnd(startDate, allDay); + + // 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); } - renderSelection(startDate, endDate, allDay); - reportSelection(startDate, endDate, allDay); - } - - - function unselect(ev) { - if (selected) { - selected = false; - clearSelection(); - trigger('unselect', null, ev); + else if (this.dayGrid) { + return this.dayGrid.renderDrag(dropLocation, seg); } - } - - - function reportSelection(startDate, endDate, allDay, ev) { - selected = true; - trigger('select', null, startDate, endDate, allDay, ev); - } - - - function daySelectionMousedown(ev) { // not really a generic manager method, oh well - var cellDate = t.cellDate; - var cellIsAllDay = t.cellIsAllDay; - var hoverListener = t.getHoverListener(); - var reportDayClick = t.reportDayClick; // this is hacky and sort of weird - if (ev.which == 1 && opt('selectable')) { // which==1 means left mouse button - unselect(ev); - var _mousedownElement = this; - var dates; - hoverListener.start(function(cell, origCell) { // TODO: maybe put cellDate/cellIsAllDay info in cell - clearSelection(); - if (cell && cellIsAllDay(cell)) { - dates = [ cellDate(origCell), cellDate(cell) ].sort(cmp); - renderSelection(dates[0], dates[1], true); - }else{ - dates = null; - } - }, ev); - $(document).one('mouseup', function(ev) { - hoverListener.stop(); - if (dates) { - if (+dates[0] == +dates[1]) { - reportDayClick(dates[0], true, ev); - } - reportSelection(dates[0], dates[1], true, ev); - } - }); + }, + + + unrenderDrag: function() { + this.timeGrid.unrenderDrag(); + if (this.dayGrid) { + this.dayGrid.unrenderDrag(); } - } + }, -} + /* Selection + ------------------------------------------------------------------------------------------------------------------*/ -;; - -function OverlayManager() { - var t = this; - - - // exports - t.renderOverlay = renderOverlay; - t.clearOverlays = clearOverlays; - - - // locals - var usedOverlays = []; - var unusedOverlays = []; - - - function renderOverlay(rect, parent) { - var e = unusedOverlays.shift(); - if (!e) { - e = $("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>"); + + // Renders a visual indication of a selection + renderSelection: function(range) { + if (range.start.hasTime() || range.end.hasTime()) { + this.timeGrid.renderSelection(range); } - if (e[0].parentNode != parent[0]) { - e.appendTo(parent); + else if (this.dayGrid) { + this.dayGrid.renderSelection(range); } - usedOverlays.push(e.css(rect).show()); - return e; - } - + }, + - function clearOverlays() { - var e; - while (e = usedOverlays.shift()) { - unusedOverlays.push(e.hide().unbind()); + // 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 = { -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<rowCnt; i++) { - if (y >= rows[i][0] && y < rows[i][1]) { - r = i; - break; - } + // 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 '' + + '<th class="fc-axis fc-week-number ' + view.widgetHeaderClass + '" ' + view.axisStyleAttr() + '>' + + '<span>' + // needed for matchCellWidths + htmlEscape(weekText) + + '</span>' + + '</th>'; } - for (i=0; i<colCnt; i++) { - if (x >= cols[i][0] && x < cols[i][1]) { - c = i; - break; - } + else { + return '<th class="fc-axis ' + view.widgetHeaderClass + '" ' + view.axisStyleAttr() + '></th>'; } - 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] - }; - }; + }, -} -;; + // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column. + renderBgIntroHtml: function() { + var view = this.view; -function HoverListener(coordinateGrid) { + return '<td class="fc-axis ' + view.widgetContentClass + '" ' + view.axisStyleAttr() + '></td>'; + }, - 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; - } - change(newCell, firstCell, newCell.row-firstCell.row, newCell.col-firstCell.col); - }else{ - change(newCell, firstCell); - } - cell = newCell; - } + // 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 '<td class="fc-axis" ' + view.axisStyleAttr() + '></td>'; } - - - t.stop = function() { - $(document).unbind(bindType, mouse); - return cell; - }; - - -} +}; + + +// Methods that will customize the rendering behavior of the AgendaView's dayGrid +var agendaDayGridMethods = { -// 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 + // Generates the HTML that goes before the all-day cells + renderBgIntroHtml: function() { + var view = this.view; + + return '' + + '<td class="fc-axis ' + view.widgetContentClass + '" ' + view.axisStyleAttr() + '>' + + '<span>' + // needed for matchCellWidths + (view.opt('allDayHtml') || htmlEscape(view.opt('allDayText'))) + + '</span>' + + '</td>'; + }, -function _fixUIEvent(event) { // for issue 1168 - if (event.pageX === undefined) { - event.pageX = event.originalEvent.pageX; - event.pageY = event.originalEvent.pageY; + + // 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 '<td class="fc-axis" ' + view.axisStyleAttr() + '></td>'; } -} -;; -function HorizontalPositionCache(getElement) { +}; + +;; - var t = this, - elements = {}, - lefts = {}, - rights = {}; - - function e(i) { - return elements[i] = elements[i] || getElement(i); +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 } - - 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 = {}; - }; - -} +}; +fcViews.agendaDay = { + type: 'agenda', + duration: { days: 1 } +}; + +fcViews.agendaWeek = { + type: 'agenda', + duration: { weeks: 1 } +}; ;; -})(jQuery);
\ No newline at end of file +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("<div class='fc-content' style='position:relative'/>").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("<div class='fc-view fc-view-"+e+"' style='position:absolute'/>").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("<table class='fc-header' style='width:100%'/>").append(t("<tr/>").append(i("left")).append(i("center")).append(i("right"))):e}function o(){h.remove()}function i(e){var a=t("<td class='fc-header-"+e+"'/>"),o=r.header[e];return o&&t.each(o.split(" "),function(e){e>0&&a.append("<span class='fc-header-space'/>");var o;t.each(this.split(","),function(e,i){if("title"==i)a.append("<span class='fc-header-title'><h2> </h2></span>"),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("<span class='fc-button fc-button-"+i+" "+v+"-state-default'>"+(c?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+c+"'/>"+"</span>":l)+"</span>").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.start<e.end}function T(t,e,n,r){var a,o,i,s,c,l,u,f,v=[],h=t.length;for(a=0;h>a;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(/"/g,""").replace(/\n/g,"<br />")}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("<div style='position:absolute;z-index:8;top:0;left:0'/>").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+="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>",De&&(s+="<th class='fc-week-number "+c+"'/>"),r=0;re>r;r++)s+="<th class='fc-day-header fc-"+Se[r]+" "+c+"'/>";for(s+="</tr></thead><tbody>",r=0;ne>r;r++){for(s+="<tr class='fc-week'>",De&&(s+="<td class='fc-week-number "+l+"'>"+"<div/>"+"</td>"),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+="<td class='"+i.join(" ")+"'"+" data-date='"+Fe(o,"yyyy-MM-dd")+"'"+">"+"<div>",n&&(s+="<div class='fc-day-number'>"+o.getDate()+"</div>"),s+="<div class='fc-day-content'><div style='position:relative'> </div></div></div></td>";s+="</tr>"}s+="</tbody></table>",_(),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="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr>",e+=Qe?"<th class='fc-agenda-axis fc-week-number "+s+"'/>":"<th class='fc-agenda-axis "+s+"'> </th>",r=0;Le>r;r++)e+="<th class='fc- fc-col"+r+" "+s+"'/>";for(e+="<th class='fc-agenda-gutter "+s+"'> </th>"+"</tr>"+"</thead>"+"<tbody>"+"<tr>"+"<th class='fc-agenda-axis "+s+"'> </th>",r=0;Le>r;r++)e+="<td class='fc- fc-col"+r+" "+c+"'>"+"<div>"+"<div class='fc-day-content'>"+"<div style='position:relative'> </div>"+"</div>"+"</div>"+"</td>";for(e+="<td class='fc-agenda-gutter "+c+"'> </td>"+"</tr>"+"</tbody>"+"</table>",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("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(n),tn("allDaySlot")?(fe=t("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(le),e="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+s+" fc-agenda-axis'>"+tn("allDayText")+"</th>"+"<td>"+"<div class='fc-day-content'><div style='position:relative'/></div>"+"</td>"+"<th class='"+s+" fc-agenda-gutter'> </th>"+"</tr>"+"</table>",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("<div class='fc-agenda-divider "+s+"'>"+"<div class='fc-agenda-divider-inner'/>"+"</div>")):fe=t([]),be=t("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(le),we=t("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(be),De=t("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(we),e="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>",a=v(),o=u(d(a),Ze),u(a,Ue),_e=0,r=0;o>a;r++)i=a.getMinutes(),e+="<tr class='fc-slot"+r+" "+(i?"fc-minor":"")+"'>"+"<th class='fc-agenda-axis "+s+"'>"+(l&&i?" ":un(a,tn("axisFormat")))+"</th>"+"<td class='"+c+"'>"+"<div style='position:relative'> </div>"+"</td>"+"</tr>",u(a,tn("slotMinutes")),_e++;e+="</tbody></table>",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+"'"+">"+"<div class='fc-event-inner'>"+"<div class='fc-event-time'>"+V(se(t.start,t.end,y("timeFormat")))+"</div>"+"<div class='fc-event-title'>"+V(t.title)+"</div>"+"</div>"+"<div class='fc-event-bg'></div>",e.isEnd&&D(t)&&(n+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"),n+="</"+(r?"a":"div")+">"}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("<div/>"),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?"<a href='"+V(a)+"'":"<div",p+=" class='"+o.join(" ")+"'"+" style='position:absolute;z-index:8;left:"+c+"px;"+u+"'"+">"+"<div class='fc-event-inner'>",!r.allDay&&n.isStart&&(p+="<span class='fc-event-time'>"+V(I(r.start,r.end,y("timeFormat")))+"</span>"),p+="<span class='fc-event-title'>"+V(r.title)+"</span>"+"</div>",n.isEnd&&D(r)&&(p+="<div class='ui-resizable-handle ui-resizable-"+(f?"w":"e")+"'>"+" "+"</div>"),p+="</"+(a?"a":"div")+">",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("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>")),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:"<span class='fc-text-arrow'>‹</span>",next:"<span class='fc-text-arrow'>›</span>",prevYear:"<span class='fc-text-arrow'>«</span>",nextYear:"<span class='fc-text-arrow'>»</span>",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:"<span class='fc-text-arrow'>›</span>",next:"<span class='fc-text-arrow'>‹</span>",prevYear:"<span class='fc-text-arrow'>»</span>",nextYear:"<span class='fc-text-arrow'>«</span>"},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("<div><div/></div>").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.left<c.right&&c.top<c.bottom?c:!1}function x(a,b){return{left:Math.min(Math.max(a.left,b.left),b.right),top:Math.min(Math.max(a.top,b.top),b.bottom)}}function y(a){return{left:(a.left+a.right)/2,top:(a.top+a.bottom)/2}}function z(a,b){return{left:a.left-b.left,top:a.top-b.top}}function A(b){var c,d,e=[],f=[];for("string"==typeof b?f=b.split(/\s*,\s*/):"function"==typeof b?f=[b]:a.isArray(b)&&(f=b),c=0;c<f.length;c++)d=f[c],"string"==typeof d?e.push("-"==d.charAt(0)?{field:d.substring(1),order:-1}:{field:d,order:1}):"function"==typeof d&&e.push({func:d});return e}function B(a,b,c){var d,e;for(d=0;d<c.length;d++)if(e=C(a,b,c[d]))return e;return 0}function C(a,b,c){return c.func?c.func(a,b):D(a[c.field],b[c.field])*(c.order||1)}function D(b,c){return b||c?null==c?-1:null==b?1:"string"===a.type(b)||"string"===a.type(c)?String(b).localeCompare(String(c)):b-c:0}function E(a,b){var c,d,e,f,g=a.start,h=a.end,i=b.start,j=b.end;return h>i&&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<Ua.length&&(d=Ua[c],e=J(d,a,b),!(e>=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<b.length;c++){for(d=b[c],e=[],f=a.length-1;f>=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<e.length;c++)d=e[c],a[d]!==Object.prototype[d]&&(b[d]=a[d])}function U(a,b){return Ya.call(a,b)}function V(b){return/undefined|null|boolean|number|string/.test(a.type(b))}function W(b,c,d){if(a.isFunction(b)&&(b=[b]),b){var e,f;for(e=0;e<b.length;e++)f=b[e].apply(c,d)||f;return f}}function X(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]}function Y(a){return(a+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"<br />")}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;c<b.length;c++)d+=la(a,b[c]);return d}function la(a,b){var c,d;return"string"==typeof b?b:(c=b.token)?bb[c]?bb[c](a):ia(a,c):b.maybe&&(d=ka(a,b.maybe),d.match(/[1-9]/))?d:""}function ma(a,b,c,d,e){var f;return a=Pa.moment.parseZone(a),b=Pa.moment.parseZone(b),f=(a.localeData||a.lang).call(a),c=f.longDateFormat(c)||c,d=d||" - ",na(a,b,pa(c),d,e)}function na(a,b,c,d,e){var f,g,h,i,j="",k="",l="",m="",n="";for(g=0;g<c.length&&(f=oa(a,b,c[g]),f!==!1);g++)j+=f;for(h=c.length-1;h>g&&(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.length;b++)c=a[b],(d[c._id]||(d[c._id]=[])).push(c);return d}function Aa(a,b){return a.eventStartMS-b.eventStartMS}function Ba(c){var d,e,f,g,h=Pa.dataAttrPrefix;return h&&(h+="-"),d=c.data(h+"event")||null,d&&(d="object"==typeof d?a.extend({},d):{},e=d.start,null==e&&(e=d.time),f=d.duration,g=d.stick,delete d.start,delete d.time,delete d.duration,delete d.stick),null==e&&(e=c.data(h+"start")),null==e&&(e=c.data(h+"time")),null==f&&(f=c.data(h+"duration")),null==g&&(g=c.data(h+"stick")),e=null!=e?b.duration(e):null,f=null!=f?b.duration(f):null,g=Boolean(g),{eventProps:d,startTime:e,duration:f,stick:g}}function Ca(a,b){var c,d;for(c=0;c<b.length;c++)if(d=b[c],d.leftCol<=a.rightCol&&d.rightCol>=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;b<a.length;b++){for(c=a[b],d=0;d<e.length&&Ha(c,e[d]).length;d++);c.level=d,(e[d]||(e[d]=[])).push(c)}return e}function Fa(a){var b,c,d,e,f;for(b=0;b<a.length;b++)for(c=a[b],d=0;d<c.length;d++)for(e=c[d],e.forwardSegs=[],f=b+1;f<a.length;f++)Ha(e,a[f],e.forwardSegs)}function Ga(a){var b,c,d=a.forwardSegs,e=0;if(void 0===a.forwardPressure){for(b=0;b<d.length;b++)c=d[b],Ga(c),e=Math.max(e,1+c.forwardPressure);a.forwardPressure=e}}function Ha(a,b,c){c=c||[];for(var d=0;d<b.length;d++)Ia(a,b[d])&&c.push(b[d]);return c}function Ia(a,b){return a.bottom>b.top&&a.top<b.bottom}function Ja(c,d){function e(){U?h()&&(k(),i()):f()}function f(){V=O.theme?"ui":"fc",c.addClass("fc"),O.isRTL?c.addClass("fc-rtl"):c.addClass("fc-ltr"),O.theme?c.addClass("ui-widget"):c.addClass("fc-unthemed"),U=a("<div class='fc-view-container'/>").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("<div class='fc-view fc-"+b+"-view' />").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("<div class='fc-toolbar'/>").append(f("left")).append(f("right")).append(f("center")).append('<div class="fc-clear"/>'):void 0}function e(){o.remove(),o=a()}function f(d){var e=a('<div class="fc-'+d+'"/>'),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("<h2> </h2>")),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?"<span class='ui-icon ui-icon-"+m+"'></span>":o&&!c.theme?"<span class='fc-icon fc-icon-"+o+"'></span>":Y(l),r=["fc-"+e+"-button",n+"-button",n+"-state-default"],s=a('<button type="button" class="'+r.join(" ")+'">'+q+"</button>").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("<div/>"),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()<M.clone().stripZone()||b.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<d.length;e++)f=d[e],g=h?f:s(f,b),g&&U.push.apply(U,x(g));T--,T||O(U)}})}function g(b,d){var e,f,h=Pa.sourceFetchers;for(e=0;e<h.length;e++){if(f=h[e].call(L,b,M.clone(),N.clone(),c.timezone,d),f===!0)return;if("object"==typeof f)return void g(f,d)}var i=b.events;if(i)a.isFunction(i)?(L.pushLoading(),i.call(L,M.clone(),N.clone(),c.timezone,function(a){d(a),L.popLoading()})):a.isArray(i)?d(i):d();else{var j=b.url;if(j){var k,l=b.success,m=b.error,n=b.complete;k=a.isFunction(b.data)?b.data():b.data;var o=a.extend({},k||{}),p=X(b.startParam,c.startParam),q=X(b.endParam,c.endParam),r=X(b.timezoneParam,c.timezoneParam);p&&(o[p]=M.format()),q&&(o[q]=N.format()),c.timezone&&"local"!=c.timezone&&(o[r]=c.timezone),L.pushLoading(),a.ajax(a.extend({},ub,b,{data:o,success:function(b){b=b||[];var c=W(l,this,arguments);a.isArray(c)&&(b=c),d(b)},error:function(){W(m,this,arguments),d()},complete:function(){W(n,this,arguments),L.popLoading()}}))}else d()}}function h(a){var b=i(a);b&&(R.push(b),T++,f(b,S))}function i(b){var c,d,e=Pa.sourceNormalizers;if(a.isFunction(b)||a.isArray(b)?c={events:b}:"string"==typeof b?c={url:b}:"object"==typeof b&&(c=a.extend({},b)),c){for(c.className?"string"==typeof c.className&&(c.className=c.className.split(/\s+/)):c.className=[],a.isArray(c.events)&&(c.origArray=c.events,c.events=a.map(c.events,function(a){return s(a,c)})),d=0;d<e.length;d++)e[d].call(L,c);return c}}function j(b){R=a.grep(R,function(a){return!k(a,b)}),U=a.grep(U,function(a){return!k(a.source,b)}),O(U)}function k(a,b){return a&&b&&l(a)==l(b)}function l(a){return("object"==typeof a?a.origArray||a.googleCalendarId||a.url||a.events:null)||a}function m(a){a.start=L.moment(a.start),a.end?a.end=L.moment(a.end):a.end=null,y(a,n(a)),O(U)}function n(b){var c={};return a.each(b,function(a,b){o(a)&&void 0!==b&&V(b)&&(c[a]=b)}),c}function o(a){return!/^_|^(id|allDay|start|end)$/.test(a)}function p(a,b){var c,d,e,f=s(a);if(f){for(c=x(f),d=0;d<c.length;d++)e=c[d],e.source||(b&&(Q.events.push(e),e.source=Q),U.push(e));return O(U),c}return[]}function q(b){var c,d;for(null==b?b=function(){return!0}:a.isFunction(b)||(c=b+"",b=function(a){return a._id==c}),U=a.grep(U,b,!0),d=0;d<R.length;d++)a.isArray(R[d].events)&&(R[d].events=a.grep(R[d].events,b,!0));O(U)}function r(b){return a.isFunction(b)?a.grep(U,b):null!=b?(b+="",a.grep(U,function(a){return a._id==b})):U}function s(d,e){var f,g,h,i={};if(c.eventDataTransform&&(d=c.eventDataTransform(d)),e&&e.eventDataTransform&&(d=e.eventDataTransform(d)),a.extend(i,d),e&&(i.source=e),i._id=d._id||(void 0===d.id?"_fc"+vb++:d.id+""),d.className?"string"==typeof d.className?i.className=d.className.split(/\s+/):i.className=d.className:i.className=[],f=d.start||d.date,g=d.end,P(f)&&(f=b.duration(f)),P(g)&&(g=b.duration(g)),d.dow||b.isDuration(f)||b.isDuration(g))i.start=f?b.duration(f):null,i.end=g?b.duration(g):null,i._recurring=!0;else{if(f&&(f=L.moment(f),!f.isValid()))return!1;g&&(g=L.moment(g),g.isValid()||(g=null)),h=d.allDay,void 0===h&&(h=X(e?e.allDayDefault:void 0,c.allDayDefault)),t(f,g,h,i)}return i}function t(a,b,c,d){d.start=a,d.end=b,d.allDay=c,u(d),Oa(d)}function u(a){v(a),a.end&&!a.end.isAfter(a.start)&&(a.end=null),a.end||(c.forceEventDuration?a.end=L.getDefaultEventEnd(a.allDay,a.start):a.end=null)}function v(a){null==a.allDay&&(a.allDay=!(a.start.hasTime()||a.end&&a.end.hasTime())),a.allDay?(a.start.stripTime(),a.end&&a.end.stripTime()):(a.start.hasTime()||(a.start=L.rezoneDate(a.start)),a.end&&!a.end.hasTime()&&(a.end=L.rezoneDate(a.end)))}function w(b){var c;return b.end||(c=b.allDay,null==c&&(c=!b.start.hasTime()),b=a.extend({},b),b.end=L.getDefaultEventEnd(c,b.start)),b}function x(b,c,d){var e,f,g,h,i,j,k,l,m,n=[];if(c=c||M,d=d||N,b)if(b._recurring){if(f=b.dow)for(e={},g=0;g<f.length;g++)e[f[g]]=!0;for(h=c.clone().stripTime();h.isBefore(d);)(!e||e[h.day()])&&(i=b.start,j=b.end,k=h.clone(),l=null,i&&(k=k.time(i)),j&&(l=h.clone().time(j)),m=a.extend({},b),t(k,l,!i&&!j,m),n.push(m)),h.add(1,"days")}else n.push(b);return n}function y(b,c,d){function e(a,b){return d?H(a,b,d):c.allDay?G(a,b):F(a,b)}var f,g,h,i,j,k,l={};return c=c||{},c.start||(c.start=b.start.clone()),void 0===c.end&&(c.end=b.end?b.end.clone():null),null==c.allDay&&(c.allDay=b.allDay),u(c),f={start:b._start.clone(),end:b._end?b._end.clone():L.getDefaultEventEnd(b._allDay,b._start),allDay:c.allDay},u(f),g=null!==b._end&&null===c.end,h=e(c.start,f.start),c.end?(i=e(c.end,f.end),j=i.subtract(h)):j=null,a.each(c,function(a,b){o(a)&&void 0!==b&&(l[a]=b)}),k=z(r(b._id),g,c.allDay,h,j,l),{dateDelta:h,durationDelta:j,undo:k}}function z(b,c,d,e,f,g){var h=L.getIsAmbigTimezone(),i=[];return e&&!e.valueOf()&&(e=null),f&&!f.valueOf()&&(f=null),a.each(b,function(b,j){var k,l;k={start:j.start.clone(),end:j.end?j.end.clone():null,allDay:j.allDay},a.each(g,function(a){k[a]=j[a]}),l={start:j._start,end:j._end,allDay:d},u(l),c?l.end=null:f&&!l.end&&(l.end=L.getDefaultEventEnd(l.allDay,l.start)),e&&(l.start.add(e),l.end&&l.end.add(e)),f&&l.end.add(f),h&&!l.allDay&&(e||f)&&(l.start.stripZone(),l.end&&l.end.stripZone()),a.extend(j,g,l),Oa(j),i.push(function(){a.extend(j,k),Oa(j)})}),function(){for(var a=0;a<i.length;a++)i[a]()}}function A(b){var d,e=c.businessHours,f={className:"fc-nonbusiness",start:"09:00",end:"17:00",dow:[1,2,3,4,5],rendering:"inverse-background"},g=L.getView();return e&&(d=a.extend({},f,"object"==typeof e?e:{})),d?(b&&(d.start=null,d.end=null),x(s(d),g.start,g.end)):[]}function B(a,b){var d=b.source||{},e=X(b.constraint,d.constraint,c.eventConstraint),f=X(b.overlap,d.overlap,c.eventOverlap);return a=w(a),E(a,e,f,b)}function C(a){return E(a,c.selectConstraint,c.selectOverlap)}function D(b,c){var d,e;return c&&(d=a.extend({},c,b),e=x(s(d))[0]),e?B(b,e):(b=w(b),C(b))}function E(b,c,d,e){var f,g,h,i,j,k;if(b=a.extend({},b),b.start=b.start.clone().stripZone(),b.end=b.end.clone().stripZone(),null!=c){for(f=I(c),g=!1,i=0;i<f.length;i++)if(J(f[i],b)){g=!0;break}if(!g)return!1}for(h=L.getPeerEvents(e,b),i=0;i<h.length;i++)if(j=h[i],K(j,b)){if(d===!1)return!1;if("function"==typeof d&&!d(j,e))return!1;if(e){if(k=X(j.overlap,(j.source||{}).overlap),k===!1)return!1;if("function"==typeof k&&!k(e,j))return!1}}return!0}function I(a){return"businessHours"===a?A():"object"==typeof a?x(s(a)):r(a)}function J(a,b){var c=a.start.clone().stripZone(),d=L.getEventEnd(a).stripZone();return b.start>=c&&b.end<=d}function K(a,b){var c=a.start.clone().stripZone(),d=L.getEventEnd(a).stripZone();return b.start<d&&b.end>c}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]<c[2]},_a.isSame=function(a,b){var c;return this._fullCalendar?b?(c=fa([this,a],!0),ab.isSame.call(c[0],c[1],b)):(a=Pa.moment.parseZone(a),ab.isSame.call(this,a)&&Boolean(this._ambigTime)===Boolean(a._ambigTime)&&Boolean(this._ambigZone)===Boolean(a._ambigZone)):ab.isSame.apply(this,arguments)},a.each(["isBefore","isAfter"],function(a,b){_a[b]=function(a,c){var d;return this._fullCalendar?(d=fa([this,a]),ab[b].call(d[0],d[1],c)):ab[b].apply(this,arguments)}}),Va="_d"in b()&&"updateOffset"in b,Wa=Va?function(a,c){a._d.setTime(Date.UTC.apply(Date,c)),b.updateOffset(a,!1)}:ha,Xa=Va?function(a,c){a._d.setTime(+new Date(c[0]||0,c[1]||0,c[2]||0,c[3]||0,c[4]||0,c[5]||0,c[6]||0)),b.updateOffset(a,!1)}:ha;var bb={t:function(a){return ia(a,"a").charAt(0)},T:function(a){return ia(a,"A").charAt(0)}};Pa.formatRange=ma;var cb={Y:"year",M:"month",D:"day",d:"day",A:"second",a:"second",T:"second",t:"second",H:"second",h:"second",m:"second",s:"second"},db={};Pa.Class=ra,ra.extend=function(){var a,b,c=arguments.length;for(a=0;c>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('<div class="fc-popover"/>').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&&a<c.right)for(b=0;f>b;b++)if(a>=d[b]&&a<e[b])return b},getVerticalIndex:function(a){var b,c=this.boundingRect,d=this.tops,e=this.bottoms,f=d.length;if(!c||a>=c.top&&a<c.bottom)for(b=0;f>b;b++)if(a>=d[b]&&a<e[b])return b},getLeftOffset:function(a){return this.lefts[a]},getLeftPosition:function(a){return this.lefts[a]-this.origin.left},getRightOffset:function(a){return this.rights[a]},getRightPosition:function(a){return this.rights[a]-this.origin.left},getWidth:function(a){return this.rights[a]-this.lefts[a]},getTopOffset:function(a){return this.tops[a]},getTopPosition:function(a){return this.tops[a]-this.origin.top},getBottomOffset:function(a){return this.bottoms[a]},getBottomPosition:function(a){return this.bottoms[a]-this.origin.top},getHeight:function(a){return this.bottoms[a]-this.tops[a]}}),hb=Pa.DragListener=ra.extend({options:null,isListening:!1,isDragging:!1,originX:null,originY:null,mousemoveProxy:null,mouseupProxy:null,subjectEl:null,subjectHref:null,scrollEl:null,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollHandlerProxy:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,constructor:function(a){a=a||{},this.options=a,this.subjectEl=a.subjectEl},mousedown:function(a){v(a)&&(a.preventDefault(),this.startListening(a),this.options.distance||this.startDrag(a))},startListening:function(b){var c;this.isListening||(b&&this.options.scroll&&(c=n(a(b.target)),c.is(window)||c.is(document)||(this.scrollEl=c,this.scrollHandlerProxy=da(ca(this,"scrollHandler"),100),this.scrollEl.on("scroll",this.scrollHandlerProxy))),a(document).on("mousemove",this.mousemoveProxy=ca(this,"mousemove")).on("mouseup",this.mouseupProxy=ca(this,"mouseup")).on("selectstart",this.preventDefault),b?(this.originX=b.pageX,this.originY=b.pageY):(this.originX=0,this.originY=0),this.isListening=!0,this.listenStart(b))},listenStart:function(a){this.trigger("listenStart",a)},mousemove:function(a){var b,c,d=a.pageX-this.originX,e=a.pageY-this.originY;this.isDragging||(b=this.options.distance||1,c=d*d+e*e,c>=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<c.length;d++)g+=this.fillSegHtml(b,c[d]);a(g).each(function(b,d){var g=c[b],i=a(d);f&&(i=f.call(e,g,i)),i&&(i=a(i),i.is(e.fillSegTag)&&(g.el=i,h.push(g)))})}return h},fillSegTag:"div",fillSegHtml:function(a,b){var c=this[a+"SegClasses"],d=this[a+"SegCss"],e=c?c.call(this,b):[],f=$(d?d.call(this,b):{});return"<"+this.fillSegTag+(e.length?' class="'+e.join(" ")+'"':"")+(f?' style="'+f+'"':"")+" />"},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<d.length;b++)c=d[b],wa(c.event)?e.push(c):f.push(c);e=this.renderBgSegs(e)||e,f=this.renderFgSegs(f)||f,this.segs=e.concat(f)},unrenderEvents:function(){this.triggerSegMouseout(),this.unrenderFgSegs(),this.unrenderBgSegs(),this.segs=null},getEventSegs:function(){return this.segs||[]},renderFgSegs:function(a){},unrenderFgSegs:function(){},renderFgSegEls:function(b,c){var d,e=this.view,f="",g=[];if(b.length){for(d=0;d<b.length;d++)f+=this.fgSegHtml(b[d],c);a(f).each(function(c,d){var f=b[c],h=e.resolveEventEl(f.event,a(d));h&&(h.data("fc-seg",f),f.el=h,g.push(f))})}return g},fgSegHtml:function(a,b){},renderBgSegs:function(a){return this.renderFill("bgEvent",a)},unrenderBgSegs:function(){this.unrenderFill("bgEvent")},bgEventSegEl:function(a,b){return this.view.resolveEventEl(a.event,b)},bgEventSegClasses:function(a){var b=a.event,c=b.source||{};return["fc-bgevent"].concat(b.className,c.className||[])},bgEventSegCss:function(a){var b=this.view,c=a.event,d=c.source||{};return{"background-color":c.backgroundColor||c.color||d.backgroundColor||d.color||b.opt("eventBackgroundColor")||b.opt("eventColor")}},businessHoursSegClasses:function(a){return["fc-nonbusiness","fc-bgevent"]},bindSegHandlers:function(){var b=this,c=this.view;a.each({mouseenter:function(a,c){b.triggerSegMouseover(a,c)},mouseleave:function(a,c){b.triggerSegMouseout(a,c)},click:function(a,b){return c.trigger("eventClick",this,a.event,b)},mousedown:function(d,e){a(e.target).is(".fc-resizer")&&c.isEventResizable(d.event)?b.segResizeMousedown(d,e,a(e.target).is(".fc-start-resizer")):c.isEventDraggable(d.event)&&b.segDragMousedown(d,e)}},function(c,d){b.el.on(c,".fc-event-container > *",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;c<d.length;c++)e.push.apply(e,this.eventRangeToSegs(d[c],b));return e},eventsToRanges:function(b){var c=this,d=za(b),e=[];return a.each(d,function(a,b){b.length&&e.push.apply(e,xa(b[0])?c.eventsToInverseRanges(b):c.eventsToNormalRanges(b))}),e},eventsToNormalRanges:function(a){var b,c,d,e,f=this.view.calendar,g=[];for(b=0;b<a.length;b++)c=a[b],d=c.start.clone().stripZone(),e=f.getEventEnd(c).stripZone(),g.push({event:c,start:d,end:e,eventStartMS:+d,eventDurationMS:e-d});return g},eventsToInverseRanges:function(a){var b,c,d=this.view,e=d.start.clone().stripZone(),f=d.end.clone().stripZone(),g=this.eventsToNormalRanges(a),h=[],i=a[0],j=e;for(g.sort(Aa),b=0;b<g.length;b++)c=g[b],c.start>j&&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;d<c.length;d++)e=c[d],e.event=a.event,e.eventStartMS=a.eventStartMS,e.eventDurationMS=a.eventDurationMS;return c},sortSegs:function(a){a.sort(ca(this,"compareSegs"))},compareSegs:function(a,b){return a.eventStartMS-b.eventStartMS||b.eventDurationMS-a.eventDurationMS||b.event.allDay-a.event.allDay||B(a.event,b.event,this.view.eventOrderSpecs)}}),Pa.dataAttrPrefix="";var lb=Pa.DayTableMixin={breakOnWeeks:!1,dayDates:null,dayIndices:null,daysPerRow:null,rowCnt:null,colCnt:null,colHeadFormat:null,updateDayTable:function(){for(var a,b,c,d=this.view,e=this.start.clone(),f=-1,g=[],h=[];e.isBefore(this.end);)d.isHiddenDay(e)?g.push(f+.5):(f++,g.push(f),h.push(e.clone())),e.add(1,"days");if(this.breakOnWeeks){for(b=h[0].day(),a=1;a<h.length&&h[a].day()!=b;a++);c=Math.ceil(h.length/a)}else c=1,a=h.length;this.dayDates=h,this.dayIndices=g,this.daysPerRow=a,this.rowCnt=c,this.updateDayTableCols()},updateDayTableCols:function(){this.colCnt=this.computeColCnt(),this.colHeadFormat=this.view.opt("columnFormat")||this.computeColHeadFormat()},computeColCnt:function(){return this.daysPerRow},getCellDate:function(a,b){return this.dayDates[this.getCellDayIndex(a,b)].clone()},getCellRange:function(a,b){var c=this.getCellDate(a,b),d=c.clone().add(1,"days");return{start:c,end:d}},getCellDayIndex:function(a,b){return a*this.daysPerRow+this.getColDayIndex(b)},getColDayIndex:function(a){return this.isRTL?this.colCnt-1-a:a},getDateDayIndex:function(a){var b=this.dayIndices,c=a.diff(this.start,"days");return 0>c?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<this.rowCnt;b++)c=b*g,d=c+g-1,e=Math.max(i,c),f=Math.min(j,d),e=Math.ceil(e),f=Math.floor(f),f>=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<this.rowCnt;b++)for(c=b*h,d=c+h-1,e=c;d>=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'<div class="fc-row '+a.widgetHeaderClass+'"><table><thead>'+this.renderHeadTrHtml()+"</thead></table></div>"},renderHeadIntroHtml:function(){return this.renderIntroHtml()},renderHeadTrHtml:function(){return"<tr>"+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+"</tr>"},renderHeadDateCellsHtml:function(){var a,b,c=[];for(a=0;a<this.colCnt;a++)b=this.getCellDate(0,a),c.push(this.renderHeadDateCellHtml(b));return c.join("")},renderHeadDateCellHtml:function(a,b){var c=this.view;return'<th class="fc-day-header '+c.widgetHeaderClass+" fc-"+Ta[a.day()]+'"'+(b>1?' colspan="'+b+'"':"")+">"+Y(a.format(this.colHeadFormat))+"</th>"},renderBgTrHtml:function(a){return"<tr>"+(this.isRTL?"":this.renderBgIntroHtml(a))+this.renderBgCellsHtml(a)+(this.isRTL?this.renderBgIntroHtml(a):"")+"</tr>"},renderBgIntroHtml:function(a){return this.renderIntroHtml()},renderBgCellsHtml:function(a){var b,c,d=[];for(b=0;b<this.colCnt;b++)c=this.getCellDate(a,b),d.push(this.renderBgCellHtml(c));return d.join("")},renderBgCellHtml:function(a){var b=this.view,c=this.getDayClasses(a);return c.unshift("fc-day",b.widgetContentClass),'<td class="'+c.join(" ")+'" data-date="'+a.format("YYYY-MM-DD")+'"></td>'},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"),'<div class="'+d.join(" ")+'"><div class="fc-bg"><table>'+this.renderBgTrHtml(a)+'</table></div><div class="fc-content-skeleton"><table>'+(this.numbersVisible?"<thead>"+this.renderNumberTrHtml(a)+"</thead>":"")+"</table></div></div>"},renderNumberTrHtml:function(a){return"<tr>"+(this.isRTL?"":this.renderNumberIntroHtml(a))+this.renderNumberCellsHtml(a)+(this.isRTL?this.renderNumberIntroHtml(a):"")+"</tr>"},renderNumberIntroHtml:function(a){return this.renderIntroHtml()},renderNumberCellsHtml:function(a){var b,c,d=[];for(b=0;b<this.colCnt;b++)c=this.getCellDate(a,b),d.push(this.renderNumberCellHtml(c));return d.join("")},renderNumberCellHtml:function(a){var b;return this.view.dayNumbersVisible?(b=this.getDayClasses(a),b.unshift("fc-day-number"),'<td class="'+b.join(" ")+'" data-date="'+a.format()+'">'+a.date()+"</td>"):"<td/>"},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<d.length;b++)c=d[b],this.isRTL?(c.leftCol=this.daysPerRow-1-c.lastRowDayIndex,c.rightCol=this.daysPerRow-1-c.firstRowDayIndex):(c.leftCol=c.firstRowDayIndex,c.rightCol=c.lastRowDayIndex);return d},prepareHits:function(){this.colCoordCache.build(),this.rowCoordCache.build(),this.rowCoordCache.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},releaseHits:function(){this.colCoordCache.clear(),this.rowCoordCache.clear()},queryHit:function(a,b){var c=this.colCoordCache.getHorizontalIndex(a),d=this.rowCoordCache.getVerticalIndex(b);return null!=d&&null!=c?this.getCellHit(d,c):void 0},getHitSpan:function(a){return this.getCellRange(a.row,a.col)},getHitEl:function(a){return this.getCellEl(a.row,a.col)},getCellHit:function(a,b){return{row:a,col:b,component:this,left:this.colCoordCache.getLeftOffset(b),right:this.colCoordCache.getRightOffset(b),top:this.rowCoordCache.getTopOffset(a),bottom:this.rowCoordCache.getBottomOffset(a)}},getCellEl:function(a,b){return this.cellEls.eq(a*this.colCnt+b)},renderDrag:function(a,b){return this.renderHighlight(this.eventRangeToSegs(a)),b&&!b.el.closest(this.el).length?(this.renderRangeHelper(a,b),this.applyDragOpacity(this.helperEls),!0):void 0},unrenderDrag:function(){this.unrenderHighlight(),this.unrenderHelper()},renderEventResize:function(a,b){this.renderHighlight(this.eventRangeToSegs(a)),this.renderRangeHelper(a,b)},unrenderEventResize:function(){this.unrenderHighlight(),this.unrenderHelper()},renderHelper:function(b,c){var d,e=[],f=this.eventsToSegs([b]);f=this.renderFgSegEls(f),d=this.renderSegRows(f),this.rowEls.each(function(b,f){var g,h=a(f),i=a('<div class="fc-helper-skeleton"><table/></div>');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<c.length;e++)f=c[e],g=this.renderFillRow(b,f,d),this.rowEls.eq(f.row).append(g),h.push(g[0]);return this.elsByFill[b]=a(h),c},renderFillRow:function(b,c,d){var e,f,g=this.colCnt,h=c.leftCol,i=c.rightCol+1;return d=d||b.toLowerCase(),e=a('<div class="fc-'+d+'-skeleton"><table><tr/></table></div>'),f=e.find("tr"),h>0&&f.append('<td colspan="'+h+'"/>'),f.append(c.el.attr("colspan",i-h)),g>i&&f.append('<td colspan="'+(g-i)+'"/>'),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<b.length;c++)d.push(this.renderSegRow(c,b[c]));return d},fgSegHtml:function(a,b){var c,d,e=this.view,f=a.event,g=e.isEventDraggable(f),h=!b&&f.allDay&&a.isStart&&e.isEventResizableFromStart(f),i=!b&&f.allDay&&a.isEnd&&e.isEventResizableFromEnd(f),j=this.getSegClasses(a,g,h||i),k=$(this.getEventSkinCss(f)),l="";return j.unshift("fc-day-grid-event","fc-h-event"),a.isStart&&(c=this.getEventTimeText(f),c&&(l='<span class="fc-time">'+Y(c)+"</span>")),d='<span class="fc-title">'+(Y(f.title||"")||" ")+"</span>",'<a class="'+j.join(" ")+'"'+(f.url?' href="'+Y(f.url)+'"':"")+(k?' style="'+k+'"':"")+'><div class="fc-content">'+(this.isRTL?d+" "+l:l+" "+d)+"</div>"+(h?'<div class="fc-resizer fc-start-resizer" />':"")+(i?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},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("<td/>"),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("<tbody/>"),p=[],q=[],r=[];for(e=0;n>e;e++){if(f=m[e],g=0,h=a("<tr/>"),p.push([]),q.push([]),r.push([]),f)for(i=0;i<f.length;i++){for(j=f[i],d(j.leftCol),k=a('<td class="fc-event-container"/>').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<a.length;b++){for(c=a[b],d=0;d<e.length&&Ca(c,e[d]);d++);c.level=d,(e[d]||(e[d]=[])).push(c)}for(d=0;d<e.length;d++)e[d].sort(Da);return e},groupSegRows:function(a){var b,c=[];for(b=0;b<this.rowCnt;b++)c.push([]);for(b=0;b<a.length;b++)c[a[b].row].push(a[b]);return c}}),mb.mixin({segPopover:null,popoverSegs:null,removeSegPopover:function(){this.segPopover&&this.segPopover.hide()},limitRows:function(a){var b,c,d=this.rowStructs||[];for(b=0;b<d.length;b++)this.unlimitRow(b),c=a?"number"==typeof a?a:this.computeRowLevelLimit(b):!1,c!==!1&&this.limitRow(b,c)},computeRowLevelLimit:function(b){function c(b,c){f=Math.max(f,a(c).outerHeight())}var d,e,f,g=this.rowEls.eq(b),h=g.height(),i=this.rowStructs[b].tbodyEl.children();for(d=0;d<i.length;d++)if(e=i.eq(d).removeClass("fc-limited"),f=0,e.find("> 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("<div/>").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<u.segLevels.length){for(e=u.segLevels[c-1],f=u.cellMatrix,g=u.tbodyEl.children().slice(c).addClass("fc-limited").get(),h=0;h<e.length;h++){for(i=e[h],d(i.leftCol),l=[],k=0;w<=i.rightCol;)j=this.getCellSegs(b,w,c),l.push(j),k+=j.length,w++;if(k){for(m=f[c-1][i.leftCol],n=m.attr("rowspan")||1,o=[],p=0;p<l.length;p++)q=a('<td class="fc-more-cell"/>').attr("rowspan",n),j=l[p],s=this.renderMoreLink(b,i.leftCol+p,[i].concat(j)),r=a("<div/>").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('<a class="fc-more"/>').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('<div class="fc-header '+f.widgetHeaderClass+'"><span class="fc-close '+(g?"ui-icon ui-icon-closethick":"fc-icon fc-icon-x")+'"></span><span class="fc-title">'+Y(h)+'</span><div class="fc-clear"/></div><div class="fc-body '+f.widgetContentClass+'"><div class="fc-event-container"></div></div>'),j=i.find(".fc-event-container");for(d=this.renderFgSegEls(d,!0),this.popoverSegs=d,e=0;e<d.length;e++)this.prepareHits(),d[e].hit=this.getCellHit(b,c),this.releaseHits(),j.append(d[e].el);return i},resliceDaySegs:function(b,c){var d=a.map(b,function(a){return a.event}),e=c.clone().stripTime(),f=e.clone().add(1,"days"),g={start:e,end:f};return b=this.eventsToSegs(d,function(a){var b=E(a,g);return b?[b]:[]}),this.sortSegs(b),b},getMoreLinkText:function(a){var b=this.view.opt("eventLimitText");return"function"==typeof b?b(a):"+"+a+" "+b},getCellSegs:function(a,b,c){for(var d,e=this.rowStructs[a].segMatrix,f=c||0,g=[];f<e.length;)d=e[f][b],d&&g.push(d),f++;return g}});var nb=Pa.TimeGrid=kb.extend(lb,{slotDuration:null,snapDuration:null,snapsPerSlot:null,minTime:null,maxTime:null,labelFormat:null,labelInterval:null,colEls:null,slatEls:null,helperEl:null,colCoordCache:null,slatCoordCache:null,businessHourSegs:null,constructor:function(){kb.apply(this,arguments),this.processOptions()},renderDates:function(){this.el.html(this.renderHtml()),this.colEls=this.el.find(".fc-day"),this.slatEls=this.el.find(".fc-slats tr"),this.colCoordCache=new gb({els:this.colEls,isHorizontal:!0}),this.slatCoordCache=new gb({els:this.slatEls,isVertical:!0})},renderBusinessHours:function(){var a=this.view.calendar.getBusinessHoursEvents();this.businessHourSegs=this.renderFill("businessHours",this.eventsToSegs(a),"bgevent")},renderHtml:function(){return'<div class="fc-bg"><table>'+this.renderBgTrHtml(0)+'</table></div><div class="fc-slats"><table>'+this.renderSlatRowHtml()+"</table></div>"},renderSlatRowHtml:function(){for(var a,c,d,e=this.view,f=this.isRTL,g="",h=b.duration(+this.minTime);h<this.maxTime;)a=this.start.clone().time(h),c=ba(L(h,this.labelInterval)),d='<td class="fc-axis fc-time '+e.widgetContentClass+'" '+e.axisStyleAttr()+">"+(c?"<span>"+Y(a.format(this.labelFormat))+"</span>":"")+"</td>",g+="<tr "+(c?"":'class="fc-minor"')+">"+(f?"":d)+'<td class="'+e.widgetContentClass+'"/>'+(f?d:"")+"</tr>",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<c.length;b++)this.isRTL?c[b].col=this.daysPerRow-1-c[b].dayIndex:c[b].col=c[b].dayIndex;return c},sliceRangeByTimes:function(a){var b,c,d,e,f=[];for(a={start:a.start.clone().stripZone(),end:a.end.clone().stripZone()},c=0;c<this.daysPerRow;c++)d=this.dayDates[c].clone(),e={start:d.clone().time(this.minTime),end:d.clone().time(this.maxTime)},b=E(a,e),b&&(b.dayIndex=c,f.push(b));return f},updateSize:function(a){this.slatCoordCache.build(),a&&this.updateSegVerticals()},computeDateTop:function(a,c){return this.computeTimeTop(b.duration(a.clone().stripZone()-c.clone().stripTime()))},computeTimeTop:function(a){var b,c,d=this.slatEls.length,e=(a-this.minTime)/this.slotDuration;return e=Math.max(0,e),e=Math.min(d,e),b=Math.floor(e),b=Math.min(b,d-1),c=e-b,this.slatCoordCache.getTopPosition(b)+this.slatCoordCache.getHeight(b)*c},renderDrag:function(a,b){return b?(this.renderRangeHelper(a,b),this.applyDragOpacity(this.helperEl),!0):void this.renderHighlight(this.eventRangeToSegs(a))},unrenderDrag:function(){this.unrenderHelper(),this.unrenderHighlight()},renderEventResize:function(a,b){this.renderRangeHelper(a,b)},unrenderEventResize:function(){this.unrenderHelper()},renderHelper:function(b,c){var d,e,f,g,h=this.eventsToSegs([b]);for(h=this.renderFgSegEls(h),d=this.renderSegTable(h),e=0;e<h.length;e++)f=h[e],c&&c.col===f.col&&(g=c.el,f.el.css({left:g.css("left"),right:g.css("right"),"margin-left":g.css("margin-left"),"margin-right":g.css("margin-right")}));this.helperEl=a('<div class="fc-helper-skeleton"/>').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('<div class="fc-'+d+'-skeleton"><table><tr/></table></div>'),g=f.find("tr"),h=0;h<e.length;h++)if(i=e[h],j=a("<td/>").appendTo(g),i.length)for(k=a('<div class="fc-'+d+'-container"/>').appendTo(j),l=this.getCellDate(0,h),m=0;m<i.length;m++)n=i[m],k.append(n.el.css({top:this.computeDateTop(n.start,l),bottom:-this.computeDateTop(n.end,l)}));this.bookendCells(g),this.el.append(f),this.elsByFill[b]=f}return c}});nb.mixin({eventSkeletonEl:null,renderFgSegs:function(b){return b=this.renderFgSegEls(b),this.el.append(this.eventSkeletonEl=a('<div class="fc-content-skeleton"/>').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("<table><tr/></table>"),j=i.find("tr");for(c=this.groupSegCols(b),this.computeSegVerticals(b),f=0;f<c.length;f++){for(g=c[f],this.placeSlotSegs(g),h=a('<div class="fc-event-container"/>'),d=0;d<g.length;d++)e=g[d],e.el.css(this.generateSegPositionCss(e)),e.bottom-e.top<30&&e.el.addClass("fc-short"),h.append(e.el);j.append(a("<td/>").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.length;d++)Ga(c[d]);for(d=0;d<c.length;d++)this.computeSlotSegCoords(c[d],0,0)}},computeSlotSegCoords:function(a,b,c){var d,e=a.forwardSegs;if(void 0===a.forwardCoord)for(e.length?(this.sortForwardSlotSegs(e),this.computeSlotSegCoords(e[0],b+1,c),a.forwardCoord=e[0].backwardCoord):a.forwardCoord=1,a.backwardCoord=a.forwardCoord-(a.forwardCoord-c)/(b+1),d=0;d<e.length;d++)this.computeSlotSegCoords(e[d],0,a.forwardCoord)},updateSegVerticals:function(){var a,b=(this.segs||[]).concat(this.businessHourSegs||[]);for(this.computeSegVerticals(b),a=0;a<b.length;a++)b[a].el.css(this.generateSegVerticalCss(b[a]))},computeSegVerticals:function(a){var b,c;for(b=0;b<a.length;b++)c=a[b],c.top=this.computeDateTop(c.start,c.start),c.bottom=this.computeDateTop(c.end,c.start)},fgSegHtml:function(a,b){var c,d,e,f=this.view,g=a.event,h=f.isEventDraggable(g),i=!b&&a.isStart&&f.isEventResizableFromStart(g),j=!b&&a.isEnd&&f.isEventResizableFromEnd(g),k=this.getSegClasses(a,h,i||j),l=$(this.getEventSkinCss(g));return k.unshift("fc-time-grid-event","fc-v-event"),f.isMultiDayEvent(g)?(a.isStart||a.isEnd)&&(c=this.getEventTimeText(a),d=this.getEventTimeText(a,"LT"),e=this.getEventTimeText(a,null,!1)):(c=this.getEventTimeText(g),d=this.getEventTimeText(g,"LT"),e=this.getEventTimeText(g,null,!1)),'<a class="'+k.join(" ")+'"'+(g.url?' href="'+Y(g.url)+'"':"")+(l?' style="'+l+'"':"")+'><div class="fc-content">'+(c?'<div class="fc-time" data-start="'+Y(e)+'" data-full="'+Y(d)+'"><span>'+Y(c)+"</span></div>":"")+(g.title?'<div class="fc-title">'+Y(g.title)+"</div>":"")+'</div><div class="fc-bg"/>'+(j?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},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;b<this.colCnt;b++)c.push([]);for(b=0;b<a.length;b++)c[a[b].col].push(a[b]);return c},sortForwardSlotSegs:function(a){a.sort(ca(this,"compareForwardSlotSegs"))},compareForwardSlotSegs:function(a,b){return b.forwardPressure-a.forwardPressure||(a.backwardCoord||0)-(b.backwardCoord||0)||this.compareSegs(a,b)}});var ob=Pa.View=ra.extend({type:null,name:null,title:null,calendar:null,options:null,el:null,displaying:null,isSkeletonRendered:!1,isEventsRendered:!1,start:null,end:null,intervalStart:null,intervalEnd:null,intervalDuration:null,intervalUnit:null,isRTL:!1,isSelected:!1,eventOrderSpecs:null,scrollerEl:null,scrollTop:null,widgetHeaderClass:null,widgetContentClass:null,highlightStateClass:null,nextDayThreshold:null,isHiddenDayHash:null,documentMousedownProxy:null,constructor:function(a,c,d,e){this.calendar=a,this.type=this.name=c,this.options=d,this.intervalDuration=e||b.duration(1,"day"),this.nextDayThreshold=b.duration(this.opt("nextDayThreshold")),this.initThemingProps(),this.initHiddenDays(),this.isRTL=this.opt("isRTL"),this.eventOrderSpecs=A(this.opt("eventOrder")),this.documentMousedownProxy=ca(this,"documentMousedown"),this.initialize()},initialize:function(){},opt:function(a){return this.options[a]},trigger:function(a,b){var c=this.calendar;return c.trigger.apply(c,[a,b||this].concat(Array.prototype.slice.call(arguments,2),[this]))},setDate:function(a){this.setRange(this.computeRange(a))},setRange:function(b){a.extend(this,b),this.updateTitle()},computeRange:function(a){var b,c,d=I(this.intervalDuration),e=a.clone().startOf(d),f=e.clone().add(this.intervalDuration);return/year|month|week|day/.test(d)?(e.stripTime(),f.stripTime()):(e.hasTime()||(e=this.calendar.rezoneDate(e)),f.hasTime()||(f=this.calendar.rezoneDate(f))),b=e.clone(),b=this.skipHiddenDays(b),c=f.clone(),c=this.skipHiddenDays(c,-1,!0),{intervalUnit:d,intervalStart:e,intervalEnd:f,start:b,end:c}},computePrevDate:function(a){return this.massageCurrentDate(a.clone().startOf(this.intervalUnit).subtract(this.intervalDuration),-1)},computeNextDate:function(a){return this.massageCurrentDate(a.clone().startOf(this.intervalUnit).add(this.intervalDuration))},massageCurrentDate:function(a,b){return this.intervalDuration.as("days")<=1&&this.isHiddenDay(a)&&(a=this.skipHiddenDays(a,b),a.startOf("day")),a},updateTitle:function(){this.title=this.computeTitle()},computeTitle:function(){return this.formatRange({start:this.intervalStart,end:this.intervalEnd},this.opt("titleFormat")||this.computeTitleFormat(),this.opt("titleRangeSeparator"))},computeTitleFormat:function(){return"year"==this.intervalUnit?"YYYY":"month"==this.intervalUnit?this.opt("monthYearFormat"):this.intervalDuration.as("days")>1?"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;c<d.length;c++)b&&d[c].event._id!==b._id||d[c].el&&a.call(this,d[c])},getEventSegs:function(){return[]},isEventDraggable:function(a){var b=a.source||{};return X(a.startEditable,b.startEditable,this.opt("eventStartEditable"),a.editable,b.editable,this.opt("editable"))},reportEventDrop:function(a,b,c,d,e){var f=this.calendar,g=f.mutateEvent(a,b,c),h=function(){g.undo(),f.reportEventChange()};this.triggerEventDrop(a,g.dateDelta,h,d,e),f.reportEventChange()},triggerEventDrop:function(a,b,c,d,e){this.trigger("eventDrop",d[0],a,b,c,e,{})},reportExternalDrop:function(b,c,d,e,f){var g,h,i=b.eventProps;i&&(g=a.extend({},i,c),h=this.calendar.renderEvent(g,b.stick)[0]),this.triggerExternalDrop(h,c,d,e,f)},triggerExternalDrop:function(a,b,c,d,e){this.trigger("drop",c[0],b.start,d,e),a&&this.trigger("eventReceive",null,a)},renderDrag:function(a,b){},unrenderDrag:function(){},isEventResizableFromStart:function(a){return this.opt("eventResizableFromStart")&&this.isEventResizable(a)},isEventResizableFromEnd:function(a){return this.isEventResizable(a)},isEventResizable:function(a){var b=a.source||{};return X(a.durationEditable,b.durationEditable,this.opt("eventDurationEditable"),a.editable,b.editable,this.opt("editable"))},reportEventResize:function(a,b,c,d,e){var f=this.calendar,g=f.mutateEvent(a,b,c),h=function(){g.undo(),f.reportEventChange()};this.triggerEventResize(a,g.durationDelta,h,d,e),f.reportEventChange()},triggerEventResize:function(a,b,c,d,e){this.trigger("eventResize",d[0],a,b,c,e,{})},select:function(a,b){this.unselect(b),this.renderSelection(a),this.reportSelection(a,b)},renderSelection:function(a){},reportSelection:function(a,b){this.isSelected=!0,this.triggerSelect(a,b)},triggerSelect:function(a,b){this.trigger("select",null,a.start,a.end,b)},unselect:function(a){this.isSelected&&(this.isSelected=!1,this.destroySelection&&this.destroySelection(),this.unrenderSelection(),this.trigger("unselect",null,a))},unrenderSelection:function(){},documentMousedown:function(b){var c;this.isSelected&&this.opt("unselectAuto")&&v(b)&&(c=this.opt("unselectCancel"),c&&a(b.target).closest(c).length||this.unselect(b))},triggerDayClick:function(a,b,c){this.trigger("dayClick",b,a,c)},initHiddenDays:function(){var b,c=this.opt("hiddenDays")||[],d=[],e=0;for(this.opt("weekends")===!1&&c.push(0,6),b=0;7>b;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;d<c.length;d++)if(e=this.getViewSpec(c[d]),e&&e.singleUnit==b)return e},buildViewSpec:function(a){for(var d,e,f,g,h=this.overrides.views||{},i=[],j=[],k=[],l=a;l;)d=Qa[l],e=h[l],l=null,"function"==typeof d&&(d={"class":d}),d&&(i.unshift(d),j.unshift(d.defaults||{}),f=f||d.duration,l=l||d.type),e&&(k.unshift(e),f=f||e.duration,l=l||e.type);return d=Q(i),d.type=a,d["class"]?(f&&(f=b.duration(f),f.valueOf()&&(d.duration=f,g=I(f),1===f.as(g)&&(d.singleUnit=g,k.unshift(h[g]||{})))),d.defaults=c(j),d.overrides=c(k),this.buildViewSpecOptions(d),this.buildViewSpecButtonText(d,a),d):!1},buildViewSpecOptions:function(a){a.options=c([pb.defaults,a.defaults,this.dirDefaults,this.langDefaults,this.overrides,a.overrides]),Ka(a.options)},buildViewSpecButtonText:function(a,b){function c(c){var d=c.buttonText||{};return d[b]||(a.singleUnit?d[a.singleUnit]:null)}a.buttonTextOverride=c(this.overrides)||a.overrides.buttonText,a.buttonTextDefault=c(this.langDefaults)||c(this.dirDefaults)||a.defaults.buttonText||c(pb.defaults)||(a.duration?this.humanizeDuration(a.duration):null)||b},instantiateView:function(a){var b=this.getViewSpec(a);return new b["class"](this,a,b.options,b.duration)},isValidViewType:function(a){return Boolean(this.getViewSpec(a))},pushLoading:function(){this.loadingLevel++||this.trigger("loading",null,!0,this.view)},popLoading:function(){--this.loadingLevel||this.trigger("loading",null,!1,this.view)},buildSelectRange:function(a,b){return a=this.moment(a),b=b?this.moment(b):a.hasTime()?a.clone().add(this.defaultTimedEventDuration):a.clone().add(this.defaultAllDayEventDuration),{start:a,end:b}}});pb.mixin(eb),pb.defaults={titleRangeSeparator:" — ",monthYearFormat:"MMMM YYYY",defaultTimedEventDuration:"02:00:00",defaultAllDayEventDuration:{days:1},forceEventDuration:!1,nextDayThreshold:"09:00:00",defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberTitle:"W",weekNumberCalculation:"local",scrollTime:"06:00:00",lazyFetching:!0,startParam:"start",endParam:"end",timezoneParam:"timezone",timezone:!1,isRTL:!1,buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day"},buttonIcons:{prev:"left-single-arrow",next:"right-single-arrow",prevYear:"left-double-arrow",nextYear:"right-double-arrow"},theme:!1,themeButtonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e",prevYear:"seek-prev",nextYear:"seek-next"},dragOpacity:.75,dragRevertDuration:500,dragScroll:!0,unselectAuto:!0,dropAccept:"*",eventOrder:"title",eventLimit:!1,eventLimitText:"more",eventLimitClick:"popover",dayPopoverFormat:"LL",handleWindowResize:!0,windowResizeDelay:200},pb.englishDefaults={dayPopoverFormat:"dddd, MMMM D"},pb.rtlDefaults={header:{left:"next,prev today",center:"",right:"title"},buttonIcons:{prev:"right-single-arrow",next:"left-single-arrow",prevYear:"right-double-arrow",nextYear:"left-double-arrow"},themeButtonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w",nextYear:"seek-prev",prevYear:"seek-next"}};var qb=Pa.langs={};Pa.datepickerLang=function(b,c,d){var e=qb[b]||(qb[b]={});e.isRTL=d.isRTL,e.weekNumberTitle=d.weekHeader,a.each(rb,function(a,b){e[a]=b(d)}),a.datepicker&&(a.datepicker.regional[c]=a.datepicker.regional[b]=d,a.datepicker.regional.en=a.datepicker.regional[""],a.datepicker.setDefaults(d))},Pa.lang=function(b,d){var e,f;e=qb[b]||(qb[b]={}),d&&(e=qb[b]=c([e,d])),f=La(b),a.each(sb,function(a,b){null==e[a]&&(e[a]=b(f,e))}),pb.defaults.lang=b};var rb={buttonText:function(a){return{prev:Z(a.prevText),next:Z(a.nextText),today:Z(a.currentText)}},monthYearFormat:function(a){return a.showMonthAfterYear?"YYYY["+a.yearSuffix+"] MMMM":"MMMM YYYY["+a.yearSuffix+"]"}},sb={dayOfMonthFormat:function(a,b){var c=a.longDateFormat("l");return c=c.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g,""),b.isRTL?c+=" ddd":c="ddd "+c,c},mediumTimeFormat:function(a){return a.longDateFormat("LT").replace(/\s*a$/i,"a")},smallTimeFormat:function(a){return a.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"a")},extraSmallTimeFormat:function(a){return a.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"t")},hourFormat:function(a){return a.longDateFormat("LT").replace(":mm","").replace(/(\Wmm)$/,"").replace(/\s*a$/i,"a")},noMeridiemTimeFormat:function(a){return a.longDateFormat("LT").replace(/\s*a$/i,"")}},tb={smallDayDateFormat:function(a){return a.isRTL?"D dd":"dd D"},weekFormat:function(a){return a.isRTL?"w[ "+a.weekNumberTitle+"]":"["+a.weekNumberTitle+" ]w"},smallWeekFormat:function(a){return a.isRTL?"w["+a.weekNumberTitle+"]":"["+a.weekNumberTitle+"]w"}};Pa.lang("en",pb.englishDefaults),Pa.sourceNormalizers=[],Pa.sourceFetchers=[];var ub={dataType:"json",cache:!1},vb=1;pb.prototype.getPeerEvents=function(a,b){var c,d,e=this.getEventCache(),f=[];for(c=0;c<e.length;c++)d=e[c],a&&a._id===d._id||f.push(d);return f};var wb=Pa.BasicView=ob.extend({dayGridClass:mb,dayGrid:null,dayNumbersVisible:!1,weekNumbersVisible:!1,weekNumberWidth:null,headContainerEl:null,headRowEl:null,initialize:function(){this.dayGrid=this.instantiateDayGrid()},instantiateDayGrid:function(){var a=this.dayGridClass.extend(xb);return new a(this)},setRange:function(a){ob.prototype.setRange.call(this,a),this.dayGrid.breakOnWeeks=/year|month|week/.test(this.intervalUnit),this.dayGrid.setRange(a)},computeRange:function(a){var b=ob.prototype.computeRange.call(this,a);return/year|month/.test(b.intervalUnit)&&(b.start.startOf("week"),b.start=this.skipHiddenDays(b.start),b.end.weekday()&&(b.end.add(1,"week").startOf("week"),b.end=this.skipHiddenDays(b.end,-1,!0))),b},renderDates:function(){this.dayNumbersVisible=this.dayGrid.rowCnt>1,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'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'"><div class="fc-day-grid-container"><div class="fc-day-grid"/></div></td></tr></tbody></table>'},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?'<th class="fc-week-number '+a.widgetHeaderClass+'" '+a.weekNumberStyleAttr()+"><span>"+Y(a.opt("weekNumberTitle"))+"</span></th>":""},renderNumberIntroHtml:function(a){var b=this.view;return b.weekNumbersVisible?'<td class="fc-week-number" '+b.weekNumberStyleAttr()+"><span>"+this.getCellDate(a,0).format("w")+"</span></td>":""},renderBgIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'<td class="fc-week-number '+a.widgetContentClass+'" '+a.weekNumberStyleAttr()+"></td>":""},renderIntroHtml:function(){var a=this.view;return a.weekNumbersVisible?'<td class="fc-week-number" '+a.weekNumberStyleAttr()+"></td>":""; +}},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('<hr class="fc-divider '+this.widgetHeaderClass+'"/>').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'<table><thead class="fc-head"><tr><td class="fc-head-container '+this.widgetHeaderClass+'"></td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'">'+(this.dayGrid?'<div class="fc-day-grid"/><hr class="fc-divider '+this.widgetHeaderClass+'"/>':"")+'<div class="fc-time-grid-container"><div class="fc-time-grid"/></div></td></tr></tbody></table>'},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<a.length;c++)a[c].allDay?d.push(a[c]):e.push(a[c]);b=this.timeGrid.renderEvents(e),this.dayGrid&&(f=this.dayGrid.renderEvents(d)),this.updateHeight()},getEventSegs:function(){return this.timeGrid.getEventSegs().concat(this.dayGrid?this.dayGrid.getEventSegs():[])},unrenderEvents:function(){this.timeGrid.unrenderEvents(),this.dayGrid&&this.dayGrid.unrenderEvents()},renderDrag:function(a,b){return a.start.hasTime()?this.timeGrid.renderDrag(a,b):this.dayGrid?this.dayGrid.renderDrag(a,b):void 0},unrenderDrag:function(){this.timeGrid.unrenderDrag(),this.dayGrid&&this.dayGrid.unrenderDrag()},renderSelection:function(a){a.start.hasTime()||a.end.hasTime()?this.timeGrid.renderSelection(a):this.dayGrid&&this.dayGrid.renderSelection(a)},unrenderSelection:function(){this.timeGrid.unrenderSelection(),this.dayGrid&&this.dayGrid.unrenderSelection()}}),Ab={renderHeadIntroHtml:function(){var a,b=this.view;return b.opt("weekNumbers")?(a=this.start.format(b.opt("smallWeekFormat")),'<th class="fc-axis fc-week-number '+b.widgetHeaderClass+'" '+b.axisStyleAttr()+"><span>"+Y(a)+"</span></th>"):'<th class="fc-axis '+b.widgetHeaderClass+'" '+b.axisStyleAttr()+"></th>"},renderBgIntroHtml:function(){var a=this.view;return'<td class="fc-axis '+a.widgetContentClass+'" '+a.axisStyleAttr()+"></td>"},renderIntroHtml:function(){var a=this.view;return'<td class="fc-axis" '+a.axisStyleAttr()+"></td>"}},Bb={renderBgIntroHtml:function(){var a=this.view;return'<td class="fc-axis '+a.widgetContentClass+'" '+a.axisStyleAttr()+"><span>"+(a.opt("allDayHtml")||Y(a.opt("allDayText")))+"</span></td>"},renderIntroHtml:function(){var a=this.view;return'<td class="fc-axis" '+a.axisStyleAttr()+"></td>"}},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 <link> 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 { - display: none !important; - } - -.fc-event .ui-resizable-handle { + 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 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<br/>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<br/>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<br/>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<br/>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<br/>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<br/>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()<a.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},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:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("zh-cn","zh-CN",{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-cn",{buttonText:{month:"月",week:"周",day:"日",list:"日程"},allDayText:"全天",eventLimitText:function(a){return"另外 "+a+" 个"}})}(),function(){(b.defineLocale||b.lang).call(b,"zh-tw",{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年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"早上"===b||"上午"===b?a:"中午"===b?a>=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 @@ +[](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] +[](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;c<a.length;++c)d.push(b(a[c],c));return d}function f(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function g(a,b){for(var c in b)f(b,c)&&(a[c]=b[c]);return f(b,"toString")&&(a.toString=b.toString),f(b,"valueOf")&&(a.valueOf=b.valueOf),a}function h(a,b,c,d){return Ca(a,b,c,d,!0).utc()}function i(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function j(a){return null==a._pf&&(a._pf=i()),a._pf}function k(a){if(null==a._isValid){var b=j(a);a._isValid=!(isNaN(a._d.getTime())||!(b.overflow<0)||b.empty||b.invalidMonth||b.invalidWeekday||b.nullInput||b.invalidFormat||b.userInvalidated),a._strict&&(a._isValid=a._isValid&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour)}return a._isValid}function l(a){var b=h(NaN);return null!=a?g(j(b),a):j(b).userInvalidated=!0,b}function m(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=j(b)),"undefined"!=typeof b._locale&&(a._locale=b._locale),Jc.length>0)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;f<a.length;){for(e=t(a[f]).split("-"),b=e.length,c=t(a[f+1]),c=c?c.split("-"):null;b>0;){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;c<a.length;c++)ed[a[c]]=d}function R(a,b){Q(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function S(a,b,c){null!=b&&f(ed,a)&&ed[a](b,c._a,c,a)}function T(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function U(a){return this._months[a.month()]}function V(a){return this._monthsShort[a.month()]}function W(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;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;c<e.length;c++)f=e[c],d=(h.match(O(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&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;e<a._f.length;e++)f=0,b=m({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],va(b),k(b)&&(f+=j(b).charsLeftOver,f+=10*j(b).unusedTokens.length,j(b).score=f,(null==d||d>f)&&(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;e<b.length;++e)(!b[e].isValid()||b[e][a](d))&&(d=b[e]);return d}function Fa(){var a=[].slice.call(arguments,0);return Ea("isBefore",a)}function Ga(){var a=[].slice.call(arguments,0);return Ea("isAfter",a)}function Ha(a){var b=B(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=y(),this._bubble()}function Ia(a){return a instanceof Ha}function Ja(a,b){H(a,0,0,function(){var a=this.utcOffset(),c="+";return 0>a&&(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)<c)}function gb(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)}function hb(a,b){var c;return b=A(b||"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this===+a):(c=+Da(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))}function ib(a,b,c){var d,e,f=La(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=A(b),"year"===b||"month"===b||"quarter"===b?(e=jb(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:p(e)}function jb(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>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 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():K(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):K(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mb(b){var c=K(this,b||a.defaultFormat);return this.localeData().postformat(c)}function nb(a,b){return this.isValid()?Ya({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function ob(a){return this.from(Da(),a)}function pb(a,b){return this.isValid()?Ya({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function qb(a){return this.to(Da(),a)}function rb(a){var b;return void 0===a?this._locale._abbr:(b=y(a),null!=b&&(this._locale=b),this)}function sb(){return this._locale}function tb(a){switch(a=A(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function ub(a){return a=A(a),void 0===a||"millisecond"===a?this:this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")}function vb(){return+this._d-6e4*(this._offset||0)}function wb(){return Math.floor(+this/1e3)}function xb(){return this._offset?new Date(+this):this._d}function yb(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function zb(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function Ab(){return k(this)}function Bb(){return g({},j(this))}function Cb(){return j(this).overflow}function Db(a,b){H(0,[a,a.length],0,b)}function Eb(a,b,c){return ja(Da([a,11,31+b-c]),b,c).week}function Fb(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")}function Gb(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")}function Hb(){return Eb(this.year(),1,4)}function Ib(){var a=this.localeData()._week;return Eb(this.year(),a.dow,a.doy)}function Jb(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Kb(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Lb(a){return this._weekdays[a.day()]}function Mb(a){return this._weekdaysShort[a.day()]}function Nb(a){return this._weekdaysMin[a.day()]}function Ob(a){var b,c,d;for(this._weekdaysParse=this._weekdaysParse||[],b=0;7>b;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=e<le.s&&["s",e]||1===f&&["m"]||f<le.m&&["mm",f]||1===g&&["h"]||g<le.h&&["hh",g]||1===h&&["d"]||h<le.d&&["dd",h]||1===i&&["M"]||i<le.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,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/acl.php b/mod/acl.php index dc29e3eff..aaf056b60 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -1,6 +1,6 @@ <?php -/* ACL selector json backend */ +/* ACL selector json backend */ require_once("include/acl_selectors.php"); function acl_init(&$a){ diff --git a/mod/admin.php b/mod/admin.php index a884b7658..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); @@ -1042,7 +1043,12 @@ function admin_page_plugins(&$a){ } $admin_form = ''; - if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){ + + $r = q("select * from addon where plugin_admin = 1 and name = '%s' limit 1", + dbesc($plugin) + ); + + if($r) { @require_once("addon/$plugin/$plugin.php"); if(function_exists($plugin.'_plugin_admin')) { $func = $plugin.'_plugin_admin'; 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/directory.php b/mod/directory.php index 3c230e173..4ab118b17 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -121,6 +121,8 @@ function directory_content(&$a) { } if(! $url) { $directory = find_upstream_directory($dirmode); + if((! $directory) || (! array_key_exists('url',$directory)) || (! $directory['url'])) + logger('CRITICAL: No directory server URL'); $url = $directory['url'] . '/dirsearch'; } diff --git a/mod/dirsearch.php b/mod/dirsearch.php index 937564a79..388e5f3ac 100644 --- a/mod/dirsearch.php +++ b/mod/dirsearch.php @@ -26,8 +26,8 @@ function dirsearch_content(&$a) { $token = get_config('system','realm_token'); if($token && $access_token != $token) { - $result['message'] = t('This directory server requires an access token'); - return; + $ret['message'] = t('This directory server requires an access token'); + json_return_and_die($ret); } @@ -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/dreport.php b/mod/dreport.php index c320bf0e6..1ad1eca7c 100644 --- a/mod/dreport.php +++ b/mod/dreport.php @@ -56,7 +56,7 @@ function dreport_content(&$a) { return; } - + $o .= '<div class="generic-content-wrapper-styled">'; $o .= '<h2>' . sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...' . '</h2>'; $o .= '<table>'; @@ -121,6 +121,7 @@ function dreport_content(&$a) { $o .= '<tr><td width="40%">' . $rr['name'] . '</td><td width="20%">' . escape_tags($rr['dreport_result']) . '</td><td width="20%">' . escape_tags($rr['dreport_time']) . '</td></tr>'; } $o .= '</table>'; + $o .= '</div>'; return $o; @@ -135,4 +136,4 @@ function dreport_gravity_sort($a,$b) { return strcmp($a['name'],$b['name']); } return (($a['gravity'] > $b['gravity']) ? 1 : (-1)); -}
\ No newline at end of file +} diff --git a/mod/editpost.php b/mod/editpost.php index 2f999858f..030d8d671 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -21,9 +21,9 @@ function editpost_content(&$a) { return; } - $itm = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d and author_xchan = '%s' LIMIT 1", + $itm = q("SELECT * FROM `item` WHERE `id` = %d AND ( owner_xchan = '%s' OR author_xchan = '%s' ) LIMIT 1", intval($post_id), - intval(local_channel()), + dbesc(get_observer_hash()), dbesc(get_observer_hash()) ); @@ -33,10 +33,12 @@ function editpost_content(&$a) { } if($itm[0]['resource_type'] === 'event' && $itm[0]['resource_id']) { - goaway(z_root() . '/events/event/' . $itm[0]['resource_id']); + goaway(z_root() . '/events/' . $itm[0]['resource_id'] . '?expandform=1'); } + $owner_uid = $itm[0]['uid']; + $plaintext = true; // if(feature_enabled(local_channel(),'richtext')) @@ -71,14 +73,12 @@ function editpost_content(&$a) { call_hooks('jot_tool', $jotplugins); call_hooks('jot_networks', $jotnets); - $channel = $a->get_channel(); - //$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); - $voting = feature_enabled(local_channel(),'consensus_tools'); + $voting = feature_enabled($owner_uid,'consensus_tools'); $category = ''; - $catsenabled = ((feature_enabled(local_channel(),'categories')) ? 'categories' : ''); + $catsenabled = ((feature_enabled($owner_uid,'categories')) ? 'categories' : ''); if ($catsenabled){ $itm = fetch_post_tags($itm); @@ -145,7 +145,7 @@ function editpost_content(&$a) { '$lockstate' => $lockstate, '$acl' => '', '$bang' => '', - '$profile_uid' => local_channel(), + '$profile_uid' => $owner_uid, '$preview' => t('Preview'), '$jotplugins' => $jotplugins, '$sourceapp' => t($a->sourcename), diff --git a/mod/events.php b/mod/events.php index d76602a33..74b44906c 100755 --- a/mod/events.php +++ b/mod/events.php @@ -90,8 +90,12 @@ function events_post(&$a) { linkify_tags($a, $desc, local_channel()); linkify_tags($a, $location, local_channel()); - $action = ($event_hash == '') ? 'new' : "event/" . $event_hash; - $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type"; + //$action = ($event_hash == '') ? 'new' : "event/" . $event_hash; + + //fixme: this url gives a wsod if there is a linebreak detected in one of the variables ($desc or $location) + //$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type"; + $onerror_url = $a->get_baseurl() . "/events"; + if(strcmp($finish,$start) < 0 && !$nofinish) { notice( t('Event can not end before it has started.') . EOL); if(intval($_REQUEST['preview'])) { @@ -166,7 +170,7 @@ function events_post(&$a) { 'otype' => TERM_OBJ_POST, 'term' => trim($cat), 'url' => $channel['xchan_url'] . '?f=&cat=' . urlencode(trim($cat)) - ); + ); } } @@ -273,39 +277,26 @@ function events_content(&$a) { ); } - - $plaintext = true; - -// if(feature_enabled(local_channel(),'richtext')) -// $plaintext = false; - - + $first_day = get_pconfig(local_channel(),'system','cal_first_day'); + $first_day = (($first_day) ? $first_day : 0); $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl,array( '$baseurl' => $a->get_baseurl(), - '$editselect' => (($plaintext) ? 'none' : 'textareas') + '$lang' => $a->language, + '$first_day' => $first_day )); - $o =""; - // tabs + $o = ''; $channel = $a->get_channel(); - $tabs = profile_tabs($a, True, $channel['channel_address']); - - - $mode = 'view'; $y = 0; $m = 0; $ignored = ((x($_REQUEST,'ignored')) ? " and ignored = " . intval($_REQUEST['ignored']) . " " : ''); if(argc() > 1) { - if(argc() > 2 && argv(1) == 'event') { - $mode = 'edit'; - $event_id = argv(2); - } if(argc() > 2 && argv(1) === 'add') { $mode = 'add'; $item_id = intval(argv(2)); @@ -314,15 +305,15 @@ function events_content(&$a) { $mode = 'drop'; $event_id = argv(2); } - if(argv(1) === 'new') { - $mode = 'new'; - $event_id = ''; - } if(argc() > 2 && intval(argv(1)) && intval(argv(2))) { $mode = 'view'; $y = intval(argv(1)); $m = intval(argv(2)); } + if(argc() <= 2) { + $mode = 'view'; + $event_id = argv(1); + } } if($mode === 'add') { @@ -330,13 +321,149 @@ function events_content(&$a) { killme(); } + if($mode == 'view') { + /* edit/create form */ + if($event_id) { + $r = q("SELECT * FROM `event` WHERE event_hash = '%s' AND `uid` = %d LIMIT 1", + dbesc($event_id), + intval(local_channel()) + ); + if(count($r)) + $orig_event = $r[0]; + } + $channel = $a->get_channel(); + // Passed parameters overrides anything found in the DB + if(!x($orig_event)) + $orig_event = array(); + + // In case of an error the browser is redirected back here, with these parameters filled in with the previous values + /* + if(x($_REQUEST,'nofinish')) $orig_event['nofinish'] = $_REQUEST['nofinish']; + if(x($_REQUEST,'adjust')) $orig_event['adjust'] = $_REQUEST['adjust']; + if(x($_REQUEST,'summary')) $orig_event['summary'] = $_REQUEST['summary']; + if(x($_REQUEST,'description')) $orig_event['description'] = $_REQUEST['description']; + if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location']; + if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start']; + if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish']; + if(x($_REQUEST,'type')) $orig_event['type'] = $_REQUEST['type']; + */ + + $n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : ''); + $a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : ''); + $t_orig = ((x($orig_event)) ? $orig_event['summary'] : ''); + $d_orig = ((x($orig_event)) ? $orig_event['description'] : ''); + $l_orig = ((x($orig_event)) ? $orig_event['location'] : ''); + $eid = ((x($orig_event)) ? $orig_event['id'] : 0); + $event_xchan = ((x($orig_event)) ? $orig_event['event_xchan'] : $channel['channel_hash']); + $mid = ((x($orig_event)) ? $orig_event['mid'] : ''); + + if(! x($orig_event)) + $sh_checked = ''; + else + $sh_checked = ((($orig_event['allow_cid'] === '<' . $channel['channel_hash'] . '>' || (! $orig_event['allow_cid'])) && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ' ); + + if($orig_event['event_xchan']) + $sh_checked .= ' disabled="disabled" '; + + $sdt = ((x($orig_event)) ? $orig_event['start'] : 'now'); + + $fdt = ((x($orig_event)) ? $orig_event['finish'] : '+1 hour'); + + $tz = date_default_timezone_get(); + if(x($orig_event)) + $tz = (($orig_event['adjust']) ? date_default_timezone_get() : 'UTC'); + + $syear = datetime_convert('UTC', $tz, $sdt, 'Y'); + $smonth = datetime_convert('UTC', $tz, $sdt, 'm'); + $sday = datetime_convert('UTC', $tz, $sdt, 'd'); + $shour = datetime_convert('UTC', $tz, $sdt, 'H'); + $sminute = datetime_convert('UTC', $tz, $sdt, 'i'); + + $stext = datetime_convert('UTC',$tz,$sdt); + $stext = substr($stext,0,14) . "00:00"; + + $fyear = datetime_convert('UTC', $tz, $fdt, 'Y'); + $fmonth = datetime_convert('UTC', $tz, $fdt, 'm'); + $fday = datetime_convert('UTC', $tz, $fdt, 'd'); + $fhour = datetime_convert('UTC', $tz, $fdt, 'H'); + $fminute = datetime_convert('UTC', $tz, $fdt, 'i'); + + $ftext = datetime_convert('UTC',$tz,$fdt); + $ftext = substr($ftext,0,14) . "00:00"; + + $type = ((x($orig_event)) ? $orig_event['type'] : 'event'); + + $f = get_config('system','event_input_format'); + if(! $f) + $f = 'ymd'; + + $catsenabled = feature_enabled(local_channel(),'categories'); + + $category = ''; + + if($catsenabled && x($orig_event)){ + $itm = q("select * from item where resource_type = 'event' and resource_id = '%s' and uid = %d limit 1", + dbesc($orig_event['event_hash']), + intval(local_channel()) + ); + $itm = fetch_post_tags($itm); + if($itm) { + $cats = get_terms_oftype($itm[0]['term'], TERM_CATEGORY); + foreach ($cats as $cat) { + if(strlen($category)) + $category .= ', '; + $category .= $cat['term']; + } + } + } + + require_once('include/acl_selectors.php'); + + $acl = new AccessList($channel); + $perm_defaults = $acl->get(); + + $tpl = get_markup_template('event_form.tpl'); + + $form = replace_macros($tpl,array( + '$post' => $a->get_baseurl() . '/events', + '$eid' => $eid, + '$type' => $type, + '$xchan' => $event_xchan, + '$mid' => $mid, + '$event_hash' => $event_id, + '$summary' => array('summary', (($event_id) ? t('Edit event titel') : t('Event titel')), $t_orig, t('Required'), '*'), + '$catsenabled' => $catsenabled, + '$placeholdercategory' => t('Categories (comma-separated list)'), + '$c_text' => (($event_id) ? t('Edit Category') : t('Category')), + '$category' => $category, + '$required' => '<span class="required" title="' . t('Required') . '">*</span>', + '$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"), (($event_id) ? t('Edit start date and time') : t('Start date and time')), 'start_text',true,true,'','',true,$first_day), + '$n_text' => t('Finish date and time are not known or not relevant'), + '$n_checked' => $n_checked, + '$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"), (($event_id) ? t('Edit finish date and time') : t('Finish date and time')),'finish_text',true,true,'start_text','',false,$first_day), + '$nofinish' => array('nofinish', t('Finish date and time are not known or not relevant'), $n_checked, '', array(t('No'),t('Yes')), 'onclick="enableDisableFinishDate();"'), + '$adjust' => array('adjust', t('Adjust for viewer timezone'), $a_checked, t('Important for events that happen in a particular place. Not practical for global holidays.'), array(t('No'),t('Yes'))), + '$a_text' => t('Adjust for viewer timezone'), + '$d_text' => (($event_id) ? t('Edit Description') : t('Description')), + '$d_orig' => $d_orig, + '$l_text' => (($event_id) ? t('Edit Location') : t('Location')), + '$l_orig' => $l_orig, + '$t_orig' => $t_orig, + '$sh_text' => t('Share this event'), + '$sh_checked' => $sh_checked, + '$share' => array('share', t('Share this event'), $sh_checked, '', array(t('No'),t('Yes'))), + '$preview' => t('Preview'), + '$permissions' => t('Permission settings'), + '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults),false)), + '$submit' => t('Submit'), + '$advanced' => t('Advanced Options') + + )); + /* end edit/create form */ - if($mode == 'view') { - - $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y'); $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m'); if(! $y) @@ -348,7 +475,6 @@ function events_content(&$a) { if(argc() === 4 && argv(3) === 'export') $export = true; - // Put some limits on dates. The PHP date functions don't seem to do so well before 1900. // An upper limit was chosen to keep search engines from exploring links millions of years in the future. @@ -378,10 +504,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,17 +539,17 @@ 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(); @@ -467,7 +593,7 @@ function events_content(&$a) { $last_date = $d; - $edit = (intval($rr['item_wall']) ? array($a->get_baseurl().'/events/event/'.$rr['event_hash'],t('Edit event'),'','') : null); + $edit = ((local_channel() && $rr['author_xchan'] == get_observer_hash()) ? array($a->get_baseurl().'/events/'.$rr['event_hash'].'?expandform=1',t('Edit event'),'','') : false); $drop = array($a->get_baseurl().'/events/drop/'.$rr['event_hash'],t('Delete event'),'',''); @@ -500,7 +626,7 @@ function events_content(&$a) { } } - + if($export) { header('Content-type: text/calendar'); header('content-disposition: attachment; filename="' . t('calendar') . '-' . $channel['channel_address'] . '.ics"' ); @@ -522,22 +648,24 @@ 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',(($event_id) ? t('Edit Event') : t('Create 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'), + '$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') + '$upload' => t('Import'), + '$submit' => t('Submit'), + '$prev' => t('Previous'), + '$next' => t('Next'), + '$today' => t('Today'), + '$form' => $form, + '$expandform' => ((x($_GET,'expandform')) ? true : false), )); if (x($_GET,'id')){ echo $o; killme(); } return $o; - } if($mode === 'drop' && $event_id) { @@ -570,147 +698,4 @@ function events_content(&$a) { } } - if($mode === 'edit' && $event_id) { - $r = q("SELECT * FROM `event` WHERE event_hash = '%s' AND `uid` = %d LIMIT 1", - dbesc($event_id), - intval(local_channel()) - ); - if(count($r)) - $orig_event = $r[0]; - } - - $channel = $a->get_channel(); - - // Passed parameters overrides anything found in the DB - if($mode === 'edit' || $mode === 'new') { - if(!x($orig_event)) $orig_event = array(); - // In case of an error the browser is redirected back here, with these parameters filled in with the previous values - if(x($_REQUEST,'nofinish')) $orig_event['nofinish'] = $_REQUEST['nofinish']; - if(x($_REQUEST,'adjust')) $orig_event['adjust'] = $_REQUEST['adjust']; - if(x($_REQUEST,'summary')) $orig_event['summary'] = $_REQUEST['summary']; - if(x($_REQUEST,'description')) $orig_event['description'] = $_REQUEST['description']; - if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location']; - if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start']; - if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish']; - if(x($_REQUEST,'type')) $orig_event['type'] = $_REQUEST['type']; - - $n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : ''); - $a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : ''); - $t_orig = ((x($orig_event)) ? $orig_event['summary'] : ''); - $d_orig = ((x($orig_event)) ? $orig_event['description'] : ''); - $l_orig = ((x($orig_event)) ? $orig_event['location'] : ''); - $eid = ((x($orig_event)) ? $orig_event['id'] : 0); - $event_xchan = ((x($orig_event)) ? $orig_event['event_xchan'] : $channel['channel_hash']); - $mid = ((x($orig_event)) ? $orig_event['mid'] : ''); - - if(! x($orig_event)) - $sh_checked = ''; - else - $sh_checked = ((($orig_event['allow_cid'] === '<' . $channel['channel_hash'] . '>' || (! $orig_event['allow_cid'])) && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ' ); - - if($orig_event['event_xchan']) - $sh_checked .= ' disabled="disabled" '; - - $sdt = ((x($orig_event)) ? $orig_event['start'] : 'now'); - $fdt = ((x($orig_event)) ? $orig_event['finish'] : 'now'); - - $tz = date_default_timezone_get(); - if(x($orig_event)) - $tz = (($orig_event['adjust']) ? date_default_timezone_get() : 'UTC'); - - $syear = datetime_convert('UTC', $tz, $sdt, 'Y'); - $smonth = datetime_convert('UTC', $tz, $sdt, 'm'); - $sday = datetime_convert('UTC', $tz, $sdt, 'd'); - - - $shour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'H') : 0); - $sminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'i') : 0); - $stext = datetime_convert('UTC',$tz,$sdt); - $stext = substr($stext,0,14) . "00:00"; - - $fyear = datetime_convert('UTC', $tz, $fdt, 'Y'); - $fmonth = datetime_convert('UTC', $tz, $fdt, 'm'); - $fday = datetime_convert('UTC', $tz, $fdt, 'd'); - - $fhour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'H') : 0); - $fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0); - $ftext = datetime_convert('UTC',$tz,$fdt); - $ftext = substr($ftext,0,14) . "00:00"; - $type = ((x($orig_event)) ? $orig_event['type'] : 'event'); - - $f = get_config('system','event_input_format'); - if(! $f) - $f = 'ymd'; - - $catsenabled = feature_enabled(local_channel(),'categories'); - - $category = ''; - - if($catsenabled && x($orig_event)){ - $itm = q("select * from item where resource_type = 'event' and resource_id = '%s' and uid = %d limit 1", - dbesc($orig_event['event_hash']), - intval(local_channel()) - ); - $itm = fetch_post_tags($itm); - if($itm) { - $cats = get_terms_oftype($itm[0]['term'], TERM_CATEGORY); - foreach ($cats as $cat) { - if(strlen($category)) - $category .= ', '; - $category .= $cat['term']; - } - } - } - - require_once('include/acl_selectors.php'); - - $acl = new AccessList($channel); - $perm_defaults = $acl->get(); - - - $tpl = get_markup_template('event_form.tpl'); - - $o .= replace_macros($tpl,array( - '$post' => $a->get_baseurl() . '/events', - '$eid' => $eid, - '$type' => $type, - '$xchan' => $event_xchan, - '$mid' => $mid, - '$event_hash' => $event_id, - - '$title' => t('Event details'), - '$desc' => t('Starting date and Title are required.'), - '$catsenabled' => $catsenabled, - '$placeholdercategory' => t('Categories (comma-separated list)'), - '$category' => $category, - '$s_text' => t('Event Starts:'), - '$stext' => $stext, - '$ftext' => $ftext, - '$required' => '<span class="required" title="' . t('Required') . '">*</span>', - '$ModalCANCEL' => t('Cancel'), - '$ModalOK' => t('OK'), - '$s_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$syear+5),DateTime::createFromFormat('Y-m-d H:i',"$syear-$smonth-$sday $shour:$sminute"),'start_text',true,true,'','',true), - '$n_text' => t('Finish date/time is not known or not relevant'), - '$n_checked' => $n_checked, - '$f_text' => t('Event Finishes:'), - '$f_dsel' => datetimesel($f,new DateTime(),DateTime::createFromFormat('Y',$fyear+5),DateTime::createFromFormat('Y-m-d H:i',"$fyear-$fmonth-$fday $fhour:$fminute"),'finish_text',true,true,'start_text'), - '$adjust' => array('adjust', t('Adjust for viewer timezone'), $a_checked, t('Important for events that happen in a particular place. Not practical for global holidays.'),), - '$a_text' => t('Adjust for viewer timezone'), - '$d_text' => t('Description:'), - '$d_orig' => $d_orig, - '$l_text' => t('Location:'), - '$l_orig' => $l_orig, - '$t_text' => t('Title:'), - '$t_orig' => $t_orig, - '$sh_text' => t('Share this event'), - '$sh_checked' => $sh_checked, - '$preview' => t('Preview'), - '$permissions' => t('Permissions'), - '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults),false)), - '$submit' => t('Submit') - - )); - - return $o; - } } diff --git a/mod/feed.php b/mod/feed.php index 3b622fc17..eb72af9cf 100644 --- a/mod/feed.php +++ b/mod/feed.php @@ -15,6 +15,7 @@ function feed_init(&$a) { $params['start'] = ((x($params,'start')) ? intval($params['start']) : 0); $params['records'] = ((x($params,'records')) ? intval($params['records']) : 40); $params['direction'] = ((x($params,'direction')) ? dbesc($params['direction']) : 'desc'); + $params['cat'] = ((x($_REQUEST,'cat')) ? escape_tags($_REQUEST['cat']) : ''); $channel = ''; if(argc() > 1) { diff --git a/mod/import.php b/mod/import.php index a33cf339b..02e71233a 100644 --- a/mod/import.php +++ b/mod/import.php @@ -123,12 +123,12 @@ function import_account(&$a, $account_id) { if(array_key_exists('channel',$data)) { if($completed < 1) { - $channel = import_channel($data['channel']); + $channel = import_channel($data['channel'], $account_id); } else { $r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1", - intval(get_account_id()), + intval($account_id), dbesc($channel['channel_guid']) ); if($r) @@ -166,7 +166,7 @@ function import_account(&$a, $account_id) { if($data['photo']) { require_once('include/photo/photo_driver.php'); - import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],get_account_id(),$channel['channel_id']); + import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],$account_id,$channel['channel_id']); } if(is_array($data['profile'])) @@ -335,7 +335,7 @@ function import_account(&$a, $account_id) { unset($abook['abook_id']); unset($abook['abook_rating']); unset($abook['abook_rating_text']); - $abook['abook_account'] = get_account_id(); + $abook['abook_account'] = $account_id; $abook['abook_channel'] = $channel['channel_id']; if(! array_key_exists('abook_blocked',$abook)) { $abook['abook_blocked'] = (($abook['abook_flags'] & 0x0001 ) ? 1 : 0); diff --git a/mod/invite.php b/mod/invite.php index 46fa7b413..1af5fc1f8 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -51,7 +51,7 @@ function invite_post(&$a) { } if($invonly && ($x || is_site_admin())) { - $code = autoname(8) . srand(1000,9999); + $code = autoname(8) . rand(1000,9999); $nmessage = str_replace('$invite_code',$code,$message); $r = q("INSERT INTO `register` (`hash`,`created`) VALUES ('%s', '%s') ", @@ -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 5f45a248b..f32ff8844 100644 --- a/mod/item.php +++ b/mod/item.php @@ -473,8 +473,9 @@ function item_post(&$a) { require_once('include/text.php'); if($uid && $uid == $profile_uid && feature_enabled($uid,'markdown')) { require_once('include/bb2diaspora.php'); - $body = escape_tags($body); + $body = escape_tags(trim($body)); $body = str_replace("\n",'<br />', $body); + $body = preg_replace_callback('/\[share(.*?)\]/ism','share_shield',$body); $body = diaspora2bb($body,true); $body = preg_replace_callback('/\[share(.*?)\]/ism','share_unshield',$body); @@ -650,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); @@ -702,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; @@ -780,6 +808,22 @@ function item_post(&$a) { if($orig_post) $datarray['edit'] = true; + + + if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) { + + $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/mail.php b/mod/mail.php index 536149a28..44c4b479d 100644 --- a/mod/mail.php +++ b/mod/mail.php @@ -329,7 +329,8 @@ function mail_content(&$a) { 'to_url' => chanlink_hash($message['to_xchan']), 'to_photo' => $message['to']['xchan_photo_s'], 'subject' => $message['title'], - 'body' => smilies(bbcode($message['body']) . $s), + 'body' => smilies(bbcode($message['body'])), + 'attachments' => $s, 'delete' => t('Delete message'), 'dreport' => t('Delivery report'), 'recall' => t('Recall message'), 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/page.php b/mod/page.php index b635a60f2..ae572ca1e 100644 --- a/mod/page.php +++ b/mod/page.php @@ -131,6 +131,10 @@ function page_content(&$a) { xchan_query($r); $r = fetch_post_tags($r,true); + + if($r[0]['mimetype'] === 'application/x-pdl') + $a->page['pdl_content'] = true; + $o .= prepare_page($r[0]); return $o; 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 @@ <?php +require_once('include/identity.php'); function profiles_init(&$a) { @@ -37,6 +38,12 @@ function profiles_init(&$a) { if($r) info( t('Profile deleted.') . EOL); + // @fixme this is a much more complicated sync - add any changed abook entries and + // also add deleted flag to profile structure + // profiles_build_sync is just here as a placeholder - it doesn't work at all here + + // profiles_build_sync(local_channel()); + goaway($a->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/settings.php b/mod/settings.php index 9a18d8e48..339f83cfe 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -405,7 +405,6 @@ function settings_post(&$a) { $allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0); - $blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted! $unkmail = (((x($_POST,'unkmail')) && (intval($_POST['unkmail']) == 1)) ? 1: 0); $cntunkmail = ((x($_POST,'cntunkmail')) ? intval($_POST['cntunkmail']) : 0); @@ -416,6 +415,8 @@ function settings_post(&$a) { $post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0); $adult = (($_POST['adult'] == 1) ? 1 : 0); + $cal_first_day = (((x($_POST,'first_day')) && (intval($_POST['first_day']) == 1)) ? 1: 0); + $channel = $a->get_channel(); $pageflags = $channel['channel_pageflags']; $existing_adult = (($pageflags & PAGE_ADULT) ? 1 : 0); @@ -503,6 +504,7 @@ function settings_post(&$a) { set_pconfig(local_channel(),'system','evdays',$evdays); set_pconfig(local_channel(),'system','photo_path',$photo_path); set_pconfig(local_channel(),'system','attach_path',$attach_path); + set_pconfig(local_channel(),'system','cal_first_day',$cal_first_day); $r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d $set_perms where channel_id = %d", dbesc($username), @@ -1110,6 +1112,7 @@ function settings_content(&$a) { '$removeme' => t('Remove Channel'), '$removechannel' => t('Remove this channel.'), '$firefoxshare' => t('Firefox Share $Projectname provider'), + '$cal_first_day' => array('first_day', t('Start calendar week on monday'), ((get_pconfig(local_channel(),'system','cal_first_day')) ? 1 : ''), '', $yes_no), )); call_hooks('settings_form',$o); diff --git a/mod/setup.php b/mod/setup.php index e5ac25965..5c9e988d9 100755 --- a/mod/setup.php +++ b/mod/setup.php @@ -14,7 +14,7 @@ $install_wizard_pass = 1; * * @param[in,out] App &$a */ -function setup_init(&$a){ +function setup_init(&$a) { // Ensure that if somebody hasn't read the install documentation and doesn't have all // the required modules or has a totally borked shared hosting provider and they can't diff --git a/mod/siteinfo.php b/mod/siteinfo.php index 2fffccc73..52d014de1 100644 --- a/mod/siteinfo.php +++ b/mod/siteinfo.php @@ -1,104 +1,8 @@ <?php function siteinfo_init(&$a) { - global $db; - - if ($a->argv[1]=="json"){ - $register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN'); - $directory_mode = Array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_SECONDARY','DIRECTORY_MODE_PRIMARY', 'DIRECTORY_MODE_STANDALONE'); - - $sql_extra = ''; - - $r = q("select * from channel left join account on account_id = channel_account_id where ( account_roles & 4096 )>0 and account_default_channel = channel_id"); - - - if($r) { - $admin = array(); - foreach($r as $rr) { - if($rr['channel_pageflags'] & PAGE_HUBADMIN) - $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']); - } - if(! $admin) { - foreach($r as $rr) { - $admin[] = array( 'name' => $rr['channel_name'], 'address' => $rr['channel_address'] . '@' . get_app()->get_hostname(), 'channel' => z_root() . '/channel/' . $rr['channel_address']); - } - } - } - else { - $admin = false; - } - - $def_service_class = get_config('system','default_service_class'); - if($def_service_class) - $service_class = get_config('service_class',$def_service_class); - else - $service_class = false; - - $visible_plugins = array(); - if(is_array($a->plugins) && count($a->plugins)) { - $r = q("select * from addon where hidden = 0"); - if(count($r)) - foreach($r as $rr) - $visible_plugins[] = $rr['name']; - } - sort($visible_plugins); - - if(@is_dir('.git') && function_exists('shell_exec')) - $commit = trim(@shell_exec('git log -1 --format="%h"')); - if(! isset($commit) || strlen($commit) > 16) - $commit = ''; - - $site_info = get_config('system','info'); - $site_name = get_config('system','sitename'); - if(! get_config('system','hidden_version_siteinfo')) { - $version = RED_VERSION; - if(@is_dir('.git') && function_exists('shell_exec')) { - $commit = trim( @shell_exec('git log -1 --format="%h"')); - if(! get_config('system','hidden_tag_siteinfo')) - $tag = trim( @shell_exec('git describe --tags --abbrev=0')); - else - $tag = ''; - } - if(! isset($commit) || strlen($commit) > 16) - $commit = ''; - } - else { - $version = $commit = ''; - } - - //Statistics - $channels_total_stat = intval(get_config('system','channels_total_stat')); - $channels_active_halfyear_stat = intval(get_config('system','channels_active_halfyear_stat')); - $channels_active_monthly_stat = intval(get_config('system','channels_active_monthly_stat')); - $local_posts_stat = intval(get_config('system','local_posts_stat')); - $hide_in_statistics = intval(get_config('system','hide_in_statistics')); - $site_expire = intval(get_config('system', 'default_expire_days')); - - - $data = Array( - 'version' => $version, - 'version_tag' => $tag, - 'commit' => $commit, - 'url' => z_root(), - 'plugins' => $visible_plugins, - 'register_policy' => $register_policy[$a->config['system']['register_policy']], - 'directory_mode' => $directory_mode[$a->config['system']['directory_mode']], - 'language' => get_config('system','language'), - 'rss_connections' => get_config('system','feed_contacts'), - 'expiration' => $site_expire, - 'default_service_restrictions' => $service_class, - 'admin' => $admin, - 'site_name' => (($site_name) ? $site_name : ''), - 'platform' => PLATFORM_NAME, - 'dbdriver' => $db->getdriver(), - 'lastpoll' => get_config('system','lastpoll'), - 'info' => (($site_info) ? $site_info : ''), - 'channels_total' => $channels_total_stat, - 'channels_active_halfyear' => $channels_active_halfyear_stat, - 'channels_active_monthly' => $channels_active_monthly_stat, - 'local_posts' => $local_posts_stat, - 'hide_in_statistics' => $hide_in_statistics - ); + if (argv(1) === 'json') { + $data = get_site_info(); json_return_and_die($data); } } @@ -111,7 +15,7 @@ function siteinfo_content(&$a) { $version = sprintf( t('Version %s'), RED_VERSION ); if(@is_dir('.git') && function_exists('shell_exec')) { $commit = @shell_exec('git log -1 --format="%h"'); - $tag = @shell_exec('git describe --tags --abbrev=0'); + $tag = get_std_version(); // @shell_exec('git describe --tags --abbrev=0'); } if(! isset($commit) || strlen($commit) > 16) $commit = ''; diff --git a/mod/siteinfo_json.php b/mod/siteinfo_json.php new file mode 100644 index 000000000..35697917c --- /dev/null +++ b/mod/siteinfo_json.php @@ -0,0 +1,8 @@ +<?php + +function siteinfo_json_init(&$a) { + + $data = get_site_info(); + json_return_and_die($data); + +} 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/mod/update_channel.php b/mod/update_channel.php index 5f4436d59..63a3735ea 100644 --- a/mod/update_channel.php +++ b/mod/update_channel.php @@ -39,6 +39,7 @@ function update_channel_content(&$a) { $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -50,6 +51,7 @@ function update_channel_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } +*/ /** * reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well diff --git a/mod/update_display.php b/mod/update_display.php index d41e2e5cb..b448c76ee 100644 --- a/mod/update_display.php +++ b/mod/update_display.php @@ -20,7 +20,7 @@ function update_display_content(&$a) { $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); - +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -32,7 +32,7 @@ function update_display_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } - +*/ echo str_replace("\t",' ',$text); echo (($_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; diff --git a/mod/update_home.php b/mod/update_home.php index 80ae2438f..4a8000bdb 100644 --- a/mod/update_home.php +++ b/mod/update_home.php @@ -16,7 +16,7 @@ function update_home_content(&$a) { $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); - +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -28,7 +28,7 @@ function update_home_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } - +*/ echo str_replace("\t",' ',$text); echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; diff --git a/mod/update_network.php b/mod/update_network.php index acd5ccdc8..03c12312c 100644 --- a/mod/update_network.php +++ b/mod/update_network.php @@ -18,7 +18,7 @@ function update_network_content(&$a) { $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); - +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -30,7 +30,7 @@ function update_network_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } - +*/ echo str_replace("\t",' ',$text); echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; diff --git a/mod/update_public.php b/mod/update_public.php index bac1ccf15..fcec792f6 100644 --- a/mod/update_public.php +++ b/mod/update_public.php @@ -16,7 +16,7 @@ function update_public_content(&$a) { $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); - +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -28,7 +28,7 @@ function update_public_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } - +*/ echo str_replace("\t",' ',$text); echo ((array_key_exists('msie',$_GET) && $_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; diff --git a/mod/update_search.php b/mod/update_search.php index de29e89bd..25bcffcb6 100644 --- a/mod/update_search.php +++ b/mod/update_search.php @@ -41,7 +41,7 @@ function update_search_content(&$a) { $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; // $text = preg_replace($pattern, $replace, $text); - +/* if(! $load) { $replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />'; $pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i"; @@ -53,7 +53,7 @@ function update_search_content(&$a) { $pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i"; $text = preg_replace($pattern, $replace, $text); } - +*/ /** * reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well */ diff --git a/util/hmessages.po b/util/hmessages.po index fc2f8c014..e62920817 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2015-11-05.1207\n" +"Project-Id-Version: 2015-11-27.1229\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-06 00:02-0800\n" +"POT-Creation-Date: 2015-11-27 00:03-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,2008 +17,1807 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../include/conversation.php:120 ../../include/text.php:1863 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 -msgid "photo" -msgstr "" - -#: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1866 ../../mod/like.php:363 ../../mod/tagger.php:47 -#: ../../mod/events.php:245 -msgid "event" -msgstr "" - -#: ../../include/conversation.php:126 ../../mod/like.php:113 -msgid "channel" -msgstr "" - -#: ../../include/conversation.php:148 ../../include/text.php:1869 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 -msgid "status" -msgstr "" - -#: ../../include/conversation.php:150 ../../include/text.php:1871 -#: ../../mod/tagger.php:53 -msgid "comment" +#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/conversation.php:953 ../../mod/match.php:64 +#: ../../mod/directory.php:318 ../../mod/suggest.php:52 +msgid "Connect" msgstr "" -#: ../../include/conversation.php:164 ../../mod/like.php:410 -#, php-format -msgid "%1$s likes %2$s's %3$s" +#: ../../include/Contact.php:118 +msgid "New window" msgstr "" -#: ../../include/conversation.php:167 ../../mod/like.php:412 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" +#: ../../include/Contact.php:119 +msgid "Open the selected location in a different window or browser tab" msgstr "" -#: ../../include/conversation.php:204 +#: ../../include/Contact.php:237 #, php-format -msgid "%1$s is now connected with %2$s" +msgid "User '%s' deleted" msgstr "" -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" +#: ../../include/chat.php:23 +msgid "Missing room name" msgstr "" -#: ../../include/conversation.php:243 ../../include/text.php:942 -msgid "poked" +#: ../../include/chat.php:32 +msgid "Duplicate room name" msgstr "" -#: ../../include/conversation.php:260 ../../mod/mood.php:63 -#, php-format -msgctxt "mood" -msgid "%1$s is %2$s" +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." msgstr "" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Likes" +#: ../../include/chat.php:122 +msgid "Room not found." msgstr "" -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Dislikes" +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../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 +#: ../../include/photos.php:29 ../../mod/filestorage.php:18 +#: ../../mod/filestorage.php:73 ../../mod/filestorage.php:88 +#: ../../mod/filestorage.php:115 ../../mod/group.php:9 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/common.php:35 +#: ../../mod/achievements.php:30 ../../mod/rate.php:111 +#: ../../mod/blocks.php:69 ../../mod/blocks.php:76 ../../mod/id.php:71 +#: ../../mod/like.php:177 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/mood.php:112 ../../mod/new_channel.php:68 +#: ../../mod/new_channel.php:99 ../../mod/setup.php:227 +#: ../../mod/bookmarks.php:48 ../../mod/poke.php:133 +#: ../../mod/profiles.php:198 ../../mod/profiles.php:584 +#: ../../mod/connedit.php:352 ../../mod/editwebpage.php:64 +#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:101 +#: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 +#: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 +#: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 +#: ../../mod/notifications.php:66 ../../mod/photos.php:70 +#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 +#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 +#: ../../mod/editblock.php:65 ../../mod/network.php:12 +#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/settings.php:568 ../../mod/webpages.php:69 +#: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/mail.php:118 +#: ../../mod/regmod.php:17 ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/invite.php:13 ../../mod/invite.php:104 +#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 +#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 +#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 +msgid "Permission denied." msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Agree" +#: ../../include/chat.php:143 +msgid "Room is full" msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Disagree" +#: ../../include/import.php:23 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." msgstr "" -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Abstain" +#: ../../include/import.php:44 ../../include/Import/import_diaspora.php:42 +msgid "Unable to create a unique channel address. Import failed." msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Attending" +#: ../../include/import.php:70 +msgid "Channel clone failed. Import failed." msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Not attending" +#: ../../include/import.php:80 ../../mod/import.php:139 +msgid "Cloned channel not found. Import failed." msgstr "" -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Might attend" +#: ../../include/RedDAV/RedBrowser.php:107 +#: ../../include/RedDAV/RedBrowser.php:239 +msgid "parent" msgstr "" -#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 -msgid "Select" +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2582 +msgid "Collection" msgstr "" -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:546 ../../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" +#: ../../include/RedDAV/RedBrowser.php:134 +msgid "Principal" msgstr "" -#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 -msgid "Private Message" +#: ../../include/RedDAV/RedBrowser.php:137 +msgid "Addressbook" msgstr "" -#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 -msgid "Message signature validated" +#: ../../include/RedDAV/RedBrowser.php:140 +msgid "Calendar" msgstr "" -#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 -msgid "Message signature incorrect" +#: ../../include/RedDAV/RedBrowser.php:143 +msgid "Schedule Inbox" msgstr "" -#: ../../include/conversation.php:691 -#, php-format -msgid "View %s's profile @ %s" +#: ../../include/RedDAV/RedBrowser.php:146 +msgid "Schedule Outbox" msgstr "" -#: ../../include/conversation.php:709 -msgid "Categories:" +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1317 +#: ../../include/conversation.php:1027 ../../include/apps.php:360 +#: ../../include/apps.php:415 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" msgstr "" -#: ../../include/conversation.php:710 -msgid "Filed under:" +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 +#: ../../include/nav.php:93 ../../include/apps.php:135 +#: ../../mod/fbrowser.php:114 +msgid "Files" msgstr "" -#: ../../include/conversation.php:718 ../../include/ItemObject.php:321 -#, php-format -msgid "from %s" +#: ../../include/RedDAV/RedBrowser.php:227 +msgid "Total" msgstr "" -#: ../../include/conversation.php:721 ../../include/ItemObject.php:324 -#, php-format -msgid "last edited: %s" +#: ../../include/RedDAV/RedBrowser.php:229 +msgid "Shared" msgstr "" -#: ../../include/conversation.php:722 ../../include/ItemObject.php:325 -#, php-format -msgid "Expires: %s" +#: ../../include/RedDAV/RedBrowser.php:230 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/blocks.php:152 +#: ../../mod/new_channel.php:121 ../../mod/webpages.php:180 +#: ../../mod/layouts.php:175 ../../mod/menu.php:114 +msgid "Create" msgstr "" -#: ../../include/conversation.php:737 -msgid "View in context" +#: ../../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:453 +msgid "Upload" msgstr "" -#: ../../include/conversation.php:739 ../../include/conversation.php:1221 -#: ../../include/ItemObject.php:375 ../../mod/photos.php:1029 -#: ../../mod/editblock.php:150 ../../mod/editpost.php:129 -#: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:190 -msgid "Please wait" +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:588 ../../mod/settings.php:614 +#: ../../mod/sharedwithme.php:95 +msgid "Name" msgstr "" -#: ../../include/conversation.php:849 -msgid "remove" +#: ../../include/RedDAV/RedBrowser.php:236 +msgid "Type" msgstr "" -#: ../../include/conversation.php:853 ../../include/nav.php:241 -msgid "Loading..." +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1248 +#: ../../mod/sharedwithme.php:97 +msgid "Size" msgstr "" -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" +#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 +msgid "Last Modified" msgstr "" -#: ../../include/conversation.php:945 -msgid "View Source" +#: ../../include/RedDAV/RedBrowser.php:240 ../../include/menu.php:108 +#: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 +#: ../../include/ItemObject.php:100 ../../include/apps.php:259 +#: ../../mod/blocks.php:153 ../../mod/editwebpage.php:176 +#: ../../mod/thing.php:257 ../../mod/editblock.php:135 +#: ../../mod/editlayout.php:134 ../../mod/settings.php:648 +#: ../../mod/webpages.php:181 ../../mod/layouts.php:183 +#: ../../mod/editpost.php:112 ../../mod/connections.php:235 +#: ../../mod/connections.php:248 ../../mod/connections.php:267 +#: ../../mod/menu.php:108 +msgid "Edit" msgstr "" -#: ../../include/conversation.php:946 -msgid "Follow Thread" +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/ItemObject.php:120 ../../include/apps.php:260 +#: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 +#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 +#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 +#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 +#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +msgid "Delete" msgstr "" -#: ../../include/conversation.php:947 -msgid "Stop Following" +#: ../../include/RedDAV/RedBrowser.php:282 +#, php-format +msgid "You are using %1$s of your available file storage." msgstr "" -#: ../../include/conversation.php:948 -msgid "View Status" +#: ../../include/RedDAV/RedBrowser.php:287 +#, php-format +msgid "You are using %1$s of %2$s available file storage. (%3$s%)" msgstr "" -#: ../../include/conversation.php:949 ../../include/nav.php:86 -#: ../../mod/connedit.php:493 -msgid "View Profile" +#: ../../include/RedDAV/RedBrowser.php:299 +msgid "WARNING:" msgstr "" -#: ../../include/conversation.php:950 -msgid "View Photos" +#: ../../include/RedDAV/RedBrowser.php:302 +msgid "Create new folder" msgstr "" -#: ../../include/conversation.php:951 -msgid "Activity/Posts" +#: ../../include/RedDAV/RedBrowser.php:304 +msgid "Upload file" msgstr "" -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:965 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:316 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 -msgid "Connect" +#: ../../include/js_strings.php:5 +msgid "Delete this item?" msgstr "" -#: ../../include/conversation.php:953 -msgid "Edit Connection" +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 +#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 +msgid "Comment" msgstr "" -#: ../../include/conversation.php:954 -msgid "Send PM" +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:413 +msgid "[+] show all" msgstr "" -#: ../../include/conversation.php:955 ../../include/apps.php:145 -msgid "Poke" +#: ../../include/js_strings.php:8 +msgid "[-] show less" msgstr "" -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../mod/photos.php:759 ../../mod/photos.php:1198 -msgid "Unknown" +#: ../../include/js_strings.php:9 +msgid "[+] expand" msgstr "" -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s likes this." +#: ../../include/js_strings.php:10 +msgid "[-] collapse" msgstr "" -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s doesn't like this." +#: ../../include/js_strings.php:11 +msgid "Password too short" msgstr "" -#: ../../include/conversation.php:1073 -#, php-format -msgid "<span %1$s>%2$d people</span> like this." -msgid_plural "<span %1$s>%2$d people</span> like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1075 -#, php-format -msgid "<span %1$s>%2$d people</span> don't like this." -msgid_plural "<span %1$s>%2$d people</span> don't like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1081 -msgid "and" +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" msgstr "" -#: ../../include/conversation.php:1084 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1085 -#, php-format -msgid "%s like this." +#: ../../include/js_strings.php:13 ../../mod/photos.php:41 +msgid "everybody" msgstr "" -#: ../../include/conversation.php:1085 -#, php-format -msgid "%s don't like this." +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" msgstr "" -#: ../../include/conversation.php:1148 -msgid "Visible to <strong>everybody</strong>" +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" msgstr "" -#: ../../include/conversation.php:1149 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 -msgid "Please enter a link URL:" +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." msgstr "" -#: ../../include/conversation.php:1150 -msgid "Please enter a video link/URL:" +#: ../../include/js_strings.php:17 +msgid "close all" msgstr "" -#: ../../include/conversation.php:1151 -msgid "Please enter an audio link/URL:" +#: ../../include/js_strings.php:18 +msgid "Nothing new here" msgstr "" -#: ../../include/conversation.php:1152 -msgid "Tag term:" +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" msgstr "" -#: ../../include/conversation.php:1153 ../../mod/filer.php:48 -msgid "Save to Folder:" +#: ../../include/js_strings.php:20 ../../mod/rate.php:157 +#: ../../mod/connedit.php:694 +msgid "Rating" msgstr "" -#: ../../include/conversation.php:1154 -msgid "Where are you right now?" +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" msgstr "" -#: ../../include/conversation.php:1155 ../../mod/editpost.php:54 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 -msgid "Expires YYYY-MM-DD HH:MM" +#: ../../include/js_strings.php:22 ../../include/widgets.php:676 +#: ../../include/ItemObject.php:697 ../../mod/filestorage.php:156 +#: ../../mod/group.php:81 ../../mod/connect.php:93 ../../mod/rate.php:168 +#: ../../mod/mood.php:135 ../../mod/setup.php:331 ../../mod/setup.php:371 +#: ../../mod/pconfig.php:108 ../../mod/poke.php:171 ../../mod/profiles.php:675 +#: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/thing.php:359 ../../mod/import_items.php:122 +#: ../../mod/pdledit.php:58 ../../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/settings.php:586 +#: ../../mod/settings.php:698 ../../mod/settings.php:726 +#: ../../mod/settings.php:749 ../../mod/settings.php:834 +#: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 +#: ../../mod/mail.php:371 ../../mod/xchan.php:11 ../../mod/invite.php:142 +#: ../../mod/chat.php:184 ../../mod/chat.php:213 ../../mod/events.php:476 +#: ../../mod/events.php:673 ../../mod/mitem.php:231 +#: ../../view/theme/redbasic/php/config.php:99 +msgid "Submit" msgstr "" -#: ../../include/conversation.php:1163 ../../include/page_widgets.php:40 -#: ../../include/ItemObject.php:692 ../../mod/photos.php:1049 -#: ../../mod/editblock.php:171 ../../mod/editpost.php:149 -#: ../../mod/events.php:707 ../../mod/webpages.php:188 -#: ../../mod/editwebpage.php:212 -msgid "Preview" +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" msgstr "" -#: ../../include/conversation.php:1186 ../../mod/layouts.php:184 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/blocks.php:154 -msgid "Share" +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" msgstr "" -#: ../../include/conversation.php:1188 -msgid "Page link name" +#: ../../include/js_strings.php:25 ../../mod/pubsites.php:28 +#: ../../mod/profiles.php:464 ../../mod/events.php:467 +msgid "Location" msgstr "" -#: ../../include/conversation.php:1191 -msgid "Post as" +#: ../../include/js_strings.php:27 +msgid "timeago.prefixAgo" msgstr "" -#: ../../include/conversation.php:1193 ../../include/ItemObject.php:684 -#: ../../mod/editblock.php:136 ../../mod/editpost.php:113 -#: ../../mod/editlayout.php:135 ../../mod/editwebpage.php:177 -msgid "Bold" +#: ../../include/js_strings.php:28 +msgid "timeago.prefixFromNow" msgstr "" -#: ../../include/conversation.php:1194 ../../include/ItemObject.php:685 -#: ../../mod/editblock.php:137 ../../mod/editpost.php:114 -#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:178 -msgid "Italic" +#: ../../include/js_strings.php:29 +msgid "ago" msgstr "" -#: ../../include/conversation.php:1195 ../../include/ItemObject.php:686 -#: ../../mod/editblock.php:138 ../../mod/editpost.php:115 -#: ../../mod/editlayout.php:137 ../../mod/editwebpage.php:179 -msgid "Underline" +#: ../../include/js_strings.php:30 +msgid "from now" msgstr "" -#: ../../include/conversation.php:1196 ../../include/ItemObject.php:687 -#: ../../mod/editblock.php:139 ../../mod/editpost.php:116 -#: ../../mod/editlayout.php:138 ../../mod/editwebpage.php:180 -msgid "Quote" +#: ../../include/js_strings.php:31 +msgid "less than a minute" msgstr "" -#: ../../include/conversation.php:1197 ../../include/ItemObject.php:688 -#: ../../mod/editblock.php:140 ../../mod/editpost.php:117 -#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:181 -msgid "Code" +#: ../../include/js_strings.php:32 +msgid "about a minute" msgstr "" -#: ../../include/conversation.php:1198 ../../mod/editblock.php:142 -#: ../../mod/editpost.php:118 ../../mod/editlayout.php:140 -#: ../../mod/editwebpage.php:182 -msgid "Upload photo" +#: ../../include/js_strings.php:33 +#, php-format +msgid "%d minutes" msgstr "" -#: ../../include/conversation.php:1199 -msgid "upload photo" +#: ../../include/js_strings.php:34 +msgid "about an hour" msgstr "" -#: ../../include/conversation.php:1200 ../../mod/editblock.php:143 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:369 -#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:183 -msgid "Attach file" +#: ../../include/js_strings.php:35 +#, php-format +msgid "about %d hours" msgstr "" -#: ../../include/conversation.php:1201 -msgid "attach file" +#: ../../include/js_strings.php:36 +msgid "a day" msgstr "" -#: ../../include/conversation.php:1202 ../../mod/editblock.php:144 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:370 -#: ../../mod/editlayout.php:142 ../../mod/editwebpage.php:184 -msgid "Insert web link" +#: ../../include/js_strings.php:37 +#, php-format +msgid "%d days" msgstr "" -#: ../../include/conversation.php:1203 -msgid "web link" +#: ../../include/js_strings.php:38 +msgid "about a month" msgstr "" -#: ../../include/conversation.php:1204 -msgid "Insert video link" +#: ../../include/js_strings.php:39 +#, php-format +msgid "%d months" msgstr "" -#: ../../include/conversation.php:1205 -msgid "video link" +#: ../../include/js_strings.php:40 +msgid "about a year" msgstr "" -#: ../../include/conversation.php:1206 -msgid "Insert audio link" +#: ../../include/js_strings.php:41 +#, php-format +msgid "%d years" msgstr "" -#: ../../include/conversation.php:1207 -msgid "audio link" +#: ../../include/js_strings.php:42 +msgid " " msgstr "" -#: ../../include/conversation.php:1208 ../../mod/editblock.php:148 -#: ../../mod/editpost.php:124 ../../mod/editlayout.php:146 -#: ../../mod/editwebpage.php:188 -msgid "Set your location" +#: ../../include/js_strings.php:43 +msgid "timeago.numbers" msgstr "" -#: ../../include/conversation.php:1209 -msgid "set location" +#: ../../include/js_strings.php:45 ../../include/text.php:1165 +msgid "January" msgstr "" -#: ../../include/conversation.php:1210 ../../mod/editpost.php:126 -msgid "Toggle voting" +#: ../../include/js_strings.php:46 ../../include/text.php:1165 +msgid "February" msgstr "" -#: ../../include/conversation.php:1213 ../../mod/editblock.php:149 -#: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 -#: ../../mod/editwebpage.php:189 -msgid "Clear browser location" +#: ../../include/js_strings.php:47 ../../include/text.php:1165 +msgid "March" msgstr "" -#: ../../include/conversation.php:1214 -msgid "clear location" +#: ../../include/js_strings.php:48 ../../include/text.php:1165 +msgid "April" msgstr "" -#: ../../include/conversation.php:1216 ../../mod/editblock.php:162 -#: ../../mod/editpost.php:141 ../../mod/editwebpage.php:205 -msgid "Title (optional)" +#: ../../include/js_strings.php:49 +msgctxt "long" +msgid "May" msgstr "" -#: ../../include/conversation.php:1220 ../../mod/editblock.php:165 -#: ../../mod/editpost.php:143 ../../mod/editlayout.php:163 -#: ../../mod/editwebpage.php:207 -msgid "Categories (optional, comma-separated list)" +#: ../../include/js_strings.php:50 ../../include/text.php:1165 +msgid "June" msgstr "" -#: ../../include/conversation.php:1222 ../../mod/editblock.php:151 -#: ../../mod/editpost.php:130 ../../mod/editlayout.php:149 -#: ../../mod/editwebpage.php:191 -msgid "Permission settings" +#: ../../include/js_strings.php:51 ../../include/text.php:1165 +msgid "July" msgstr "" -#: ../../include/conversation.php:1223 -msgid "permissions" +#: ../../include/js_strings.php:52 ../../include/text.php:1165 +msgid "August" msgstr "" -#: ../../include/conversation.php:1231 ../../mod/editblock.php:159 -#: ../../mod/editpost.php:138 ../../mod/editlayout.php:156 -#: ../../mod/editwebpage.php:200 -msgid "Public post" +#: ../../include/js_strings.php:53 ../../include/text.php:1165 +msgid "September" msgstr "" -#: ../../include/conversation.php:1233 ../../mod/editblock.php:166 -#: ../../mod/editpost.php:144 ../../mod/editlayout.php:164 -#: ../../mod/editwebpage.php:208 -msgid "Example: bob@example.com, mary@example.com" +#: ../../include/js_strings.php:54 ../../include/text.php:1165 +msgid "October" msgstr "" -#: ../../include/conversation.php:1246 ../../mod/editblock.php:176 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:374 -#: ../../mod/editlayout.php:173 ../../mod/editwebpage.php:217 -msgid "Set expiration date" +#: ../../include/js_strings.php:55 ../../include/text.php:1165 +msgid "November" msgstr "" -#: ../../include/conversation.php:1249 -msgid "Set publish date" +#: ../../include/js_strings.php:56 ../../include/text.php:1165 +msgid "December" msgstr "" -#: ../../include/conversation.php:1251 ../../include/ItemObject.php:695 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:376 -msgid "Encrypt text" +#: ../../include/js_strings.php:57 +msgid "Jan" msgstr "" -#: ../../include/conversation.php:1253 ../../mod/editpost.php:159 -#: ../../mod/events.php:691 -msgid "OK" +#: ../../include/js_strings.php:58 +msgid "Feb" msgstr "" -#: ../../include/conversation.php:1254 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:160 -#: ../../mod/events.php:690 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 -#: ../../mod/settings.php:585 ../../mod/settings.php:611 -msgid "Cancel" +#: ../../include/js_strings.php:59 +msgid "Mar" msgstr "" -#: ../../include/conversation.php:1497 -msgid "Discover" +#: ../../include/js_strings.php:60 +msgid "Apr" msgstr "" -#: ../../include/conversation.php:1500 -msgid "Imported public streams" +#: ../../include/js_strings.php:61 +msgctxt "short" +msgid "May" msgstr "" -#: ../../include/conversation.php:1505 -msgid "Commented Order" +#: ../../include/js_strings.php:62 +msgid "Jun" msgstr "" -#: ../../include/conversation.php:1508 -msgid "Sort by Comment Date" +#: ../../include/js_strings.php:63 +msgid "Jul" msgstr "" -#: ../../include/conversation.php:1512 -msgid "Posted Order" +#: ../../include/js_strings.php:64 +msgid "Aug" msgstr "" -#: ../../include/conversation.php:1515 -msgid "Sort by Post Date" +#: ../../include/js_strings.php:65 +msgid "Sep" msgstr "" -#: ../../include/conversation.php:1520 ../../include/widgets.php:94 -msgid "Personal" +#: ../../include/js_strings.php:66 +msgid "Oct" msgstr "" -#: ../../include/conversation.php:1523 -msgid "Posts that mention or involve you" +#: ../../include/js_strings.php:67 +msgid "Nov" msgstr "" -#: ../../include/conversation.php:1529 ../../mod/menu.php:112 -#: ../../mod/connections.php:72 ../../mod/connections.php:82 -msgid "New" +#: ../../include/js_strings.php:68 +msgid "Dec" msgstr "" -#: ../../include/conversation.php:1532 -msgid "Activity Stream - by date" +#: ../../include/js_strings.php:69 ../../include/text.php:1161 +msgid "Sunday" msgstr "" -#: ../../include/conversation.php:1538 -msgid "Starred" +#: ../../include/js_strings.php:70 ../../include/text.php:1161 +msgid "Monday" msgstr "" -#: ../../include/conversation.php:1541 -msgid "Favourite Posts" +#: ../../include/js_strings.php:71 ../../include/text.php:1161 +msgid "Tuesday" msgstr "" -#: ../../include/conversation.php:1548 -msgid "Spam" +#: ../../include/js_strings.php:72 ../../include/text.php:1161 +msgid "Wednesday" msgstr "" -#: ../../include/conversation.php:1551 -msgid "Posts flagged as SPAM" +#: ../../include/js_strings.php:73 ../../include/text.php:1161 +msgid "Thursday" msgstr "" -#: ../../include/conversation.php:1595 ../../mod/admin.php:972 -msgid "Channel" +#: ../../include/js_strings.php:74 ../../include/text.php:1161 +msgid "Friday" msgstr "" -#: ../../include/conversation.php:1598 -msgid "Status Messages and Posts" +#: ../../include/js_strings.php:75 ../../include/text.php:1161 +msgid "Saturday" msgstr "" -#: ../../include/conversation.php:1607 -msgid "About" +#: ../../include/js_strings.php:76 +msgid "Sun" msgstr "" -#: ../../include/conversation.php:1610 -msgid "Profile Details" +#: ../../include/js_strings.php:77 +msgid "Mon" msgstr "" -#: ../../include/conversation.php:1616 ../../include/apps.php:139 -#: ../../include/nav.php:92 ../../mod/fbrowser.php:25 -msgid "Photos" +#: ../../include/js_strings.php:78 +msgid "Tue" msgstr "" -#: ../../include/conversation.php:1619 ../../include/photos.php:483 -msgid "Photo Albums" +#: ../../include/js_strings.php:79 +msgid "Wed" msgstr "" -#: ../../include/conversation.php:1623 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" +#: ../../include/js_strings.php:80 +msgid "Thu" msgstr "" -#: ../../include/conversation.php:1626 -msgid "Files and Storage" +#: ../../include/js_strings.php:81 +msgid "Fri" msgstr "" -#: ../../include/conversation.php:1636 ../../include/conversation.php:1639 -msgid "Chatrooms" +#: ../../include/js_strings.php:82 +msgid "Sat" msgstr "" -#: ../../include/conversation.php:1649 ../../include/apps.php:129 -#: ../../include/nav.php:103 -msgid "Bookmarks" +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "today" msgstr "" -#: ../../include/conversation.php:1652 -msgid "Saved Bookmarks" +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "month" msgstr "" -#: ../../include/conversation.php:1659 ../../include/apps.php:136 -#: ../../include/nav.php:107 ../../mod/webpages.php:178 -msgid "Webpages" +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "week" msgstr "" -#: ../../include/conversation.php:1662 -msgid "Manage Webpages" +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "day" msgstr "" -#: ../../include/conversation.php:1691 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 -msgid "View all" +#: ../../include/js_strings.php:87 +msgctxt "calendar" +msgid "All day" msgstr "" -#: ../../include/conversation.php:1715 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1276 ../../include/taxonomy.php:403 -#: ../../mod/photos.php:1086 -msgctxt "noun" -msgid "Like" -msgid_plural "Likes" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1718 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 -msgctxt "noun" -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1721 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1724 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1727 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1730 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1733 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1736 -msgctxt "noun" -msgid "Abstain" -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:486 +#: ../../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:2529 -msgid "Collection" -msgstr "" - -#: ../../include/RedDAV/RedBrowser.php:134 -msgid "Principal" +#: ../../include/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:137 -msgid "Addressbook" +#: ../../include/items.php:423 ../../mod/group.php:68 ../../mod/like.php:280 +#: ../../mod/dreport.php:6 ../../mod/dreport.php:45 ../../mod/subthread.php:58 +#: ../../mod/import_items.php:114 ../../mod/profperm.php:23 +#: ../../index.php:364 +msgid "Permission denied" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:140 -msgid "Calendar" +#: ../../include/items.php:1128 ../../include/items.php:1174 +msgid "(Unknown)" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:143 -msgid "Schedule Inbox" +#: ../../include/items.php:1371 +msgid "Visible to anybody on the internet." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:146 -msgid "Schedule Outbox" +#: ../../include/items.php:1373 +msgid "Visible to you only." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:227 -msgid "Total" +#: ../../include/items.php:1375 +msgid "Visible to anybody in this network." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:229 -msgid "Shared" +#: ../../include/items.php:1377 +msgid "Visible to anybody authenticated." 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" +#: ../../include/items.php:1379 +#, php-format +msgid "Visible to anybody on %s." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:784 -#: ../../mod/photos.php:1317 ../../mod/profile_photo.php:450 -msgid "Upload" +#: ../../include/items.php:1381 +msgid "Visible to all connections." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 -#: ../../mod/sharedwithme.php:95 -msgid "Name" +#: ../../include/items.php:1383 +msgid "Visible to approved connections." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:236 -msgid "Type" +#: ../../include/items.php:1385 +msgid "Visible to specific connections." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1236 -#: ../../mod/sharedwithme.php:97 -msgid "Size" +#: ../../include/items.php:4317 ../../mod/filestorage.php:27 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 +#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 +msgid "Item not found." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:238 ../../mod/sharedwithme.php:98 -msgid "Last Modified" +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 +msgid "Collection not found." 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" +#: ../../include/items.php:4842 +msgid "Collection is empty." msgstr "" -#: ../../include/RedDAV/RedBrowser.php:282 +#: ../../include/items.php:4849 #, php-format -msgid "You are using %1$s of your available file storage." +msgid "Collection: %s" msgstr "" -#: ../../include/RedDAV/RedBrowser.php:287 +#: ../../include/items.php:4859 ../../mod/connedit.php:683 #, 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" +msgid "Connection: %s" msgstr "" -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" +#: ../../include/items.php:4861 +msgid "Connection not found." msgstr "" -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" +#: ../../include/message.php:18 +msgid "No recipient provided." msgstr "" -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" +#: ../../include/message.php:23 +msgid "[no subject]" msgstr "" -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" +#: ../../include/message.php:43 +msgid "Unable to determine sender." msgstr "" -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" +#: ../../include/message.php:218 +msgid "Stored post could not be verified." msgstr "" -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" +#: ../../include/network.php:630 +msgid "view full size" msgstr "" -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" +#: ../../include/network.php:1608 ../../include/enotify.php:57 +msgid "$Projectname Notification" msgstr "" -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" +#: ../../include/network.php:1609 ../../include/enotify.php:58 +msgid "$projectname" msgstr "" -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" +#: ../../include/network.php:1611 ../../include/enotify.php:60 +msgid "Thank You," msgstr "" -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" +#: ../../include/network.php:1613 ../../include/enotify.php:62 +#, php-format +msgid "%s Administrator" msgstr "" -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" +#: ../../include/network.php:1655 ../../include/account.php:316 +#: ../../include/account.php:343 ../../include/account.php:403 +msgid "Administrator" msgstr "" -#: ../../include/permissions.php:46 -msgid "Extremely advanced. Leave this alone unless you know what you are doing" +#: ../../include/network.php:1669 +msgid "No Subject" msgstr "" -#: ../../include/permissions.php:867 -msgid "Social Networking" +#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 +#: ../../include/text.php:1392 +msgid "l F d, Y \\@ g:i A" msgstr "" -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Mostly Public" +#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 +#: ../../include/text.php:1396 +msgid "Starts:" msgstr "" -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Restricted" +#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 +#: ../../include/text.php:1400 +msgid "Finishes:" msgstr "" -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -msgid "Private" +#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 +#: ../../mod/directory.php:304 +msgid "Location:" msgstr "" -#: ../../include/permissions.php:868 -msgid "Community Forum" +#: ../../include/event.php:768 +msgid "This event has been added to your calendar." msgstr "" -#: ../../include/permissions.php:869 -msgid "Feed Republish" +#: ../../include/event.php:904 ../../include/conversation.php:123 +#: ../../include/text.php:1919 ../../mod/tagger.php:47 ../../mod/like.php:363 +#: ../../mod/events.php:249 +msgid "event" msgstr "" -#: ../../include/permissions.php:870 -msgid "Special Purpose" +#: ../../include/event.php:967 +msgid "Not specified" msgstr "" -#: ../../include/permissions.php:870 -msgid "Celebrity/Soapbox" +#: ../../include/event.php:968 +msgid "Needs Action" msgstr "" -#: ../../include/permissions.php:870 -msgid "Group Repository" +#: ../../include/event.php:969 +msgid "Completed" 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" +#: ../../include/event.php:970 +msgid "In Process" msgstr "" -#: ../../include/permissions.php:871 -msgid "Custom/Expert Mode" +#: ../../include/event.php:971 +msgid "Cancelled" msgstr "" -#: ../../include/chat.php:23 -msgid "Missing room name" +#: ../../include/identity.php:32 +msgid "Unable to obtain identity information from database" msgstr "" -#: ../../include/chat.php:32 -msgid "Duplicate room name" +#: ../../include/identity.php:66 +msgid "Empty name" msgstr "" -#: ../../include/chat.php:82 ../../include/chat.php:90 -msgid "Invalid room specifier." +#: ../../include/identity.php:69 +msgid "Name too long" msgstr "" -#: ../../include/chat.php:122 -msgid "Room not found." +#: ../../include/identity.php:181 +msgid "No account identifier" 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:347 ../../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:1004 ../../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." +#: ../../include/identity.php:193 +msgid "Nickname is required." msgstr "" -#: ../../include/chat.php:143 -msgid "Room is full" +#: ../../include/identity.php:207 +msgid "Reserved nickname. Please choose another." msgstr "" -#: ../../include/datetime.php:48 -msgid "Miscellaneous" +#: ../../include/identity.php:212 +msgid "" +"Nickname has unsupported characters or is already being used on this site." msgstr "" -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" +#: ../../include/identity.php:288 +msgid "Unable to retrieve created identity" msgstr "" -#: ../../include/datetime.php:235 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:689 -msgid "Required" +#: ../../include/identity.php:346 +msgid "Default Profile" msgstr "" -#: ../../include/datetime.php:262 ../../boot.php:2312 -msgid "never" +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../include/widgets.php:430 +#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:573 +#: ../../mod/settings.php:338 ../../mod/settings.php:342 +#: ../../mod/settings.php:343 ../../mod/settings.php:346 +#: ../../mod/settings.php:357 +msgid "Friends" msgstr "" -#: ../../include/datetime.php:268 -msgid "less than a second ago" +#: ../../include/identity.php:770 +msgid "Requested channel is not available." msgstr "" -#: ../../include/datetime.php:271 -msgid "year" +#: ../../include/identity.php:816 ../../mod/filestorage.php:54 +#: ../../mod/connect.php:13 ../../mod/achievements.php:11 +#: ../../mod/blocks.php:29 ../../mod/hcard.php:8 ../../mod/editwebpage.php:28 +#: ../../mod/profile.php:16 ../../mod/editblock.php:29 +#: ../../mod/editlayout.php:27 ../../mod/webpages.php:29 +#: ../../mod/layouts.php:29 +msgid "Requested profile is not available." msgstr "" -#: ../../include/datetime.php:271 -msgid "years" +#: ../../include/identity.php:966 ../../mod/profiles.php:782 +msgid "Change profile photo" msgstr "" -#: ../../include/datetime.php:272 -msgid "month" +#: ../../include/identity.php:972 +msgid "Profiles" msgstr "" -#: ../../include/datetime.php:272 -msgid "months" +#: ../../include/identity.php:972 +msgid "Manage/edit profiles" msgstr "" -#: ../../include/datetime.php:273 -msgid "week" +#: ../../include/identity.php:973 ../../mod/profiles.php:783 +msgid "Create New Profile" msgstr "" -#: ../../include/datetime.php:273 -msgid "weeks" +#: ../../include/identity.php:976 ../../include/nav.php:90 +msgid "Edit Profile" msgstr "" -#: ../../include/datetime.php:274 -msgid "day" +#: ../../include/identity.php:988 ../../mod/profiles.php:794 +msgid "Profile Image" msgstr "" -#: ../../include/datetime.php:274 -msgid "days" +#: ../../include/identity.php:991 +msgid "visible to everybody" msgstr "" -#: ../../include/datetime.php:275 -msgid "hour" +#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../mod/profiles.php:798 +msgid "Edit visibility" msgstr "" -#: ../../include/datetime.php:275 -msgid "hours" +#: ../../include/identity.php:1008 ../../include/identity.php:1248 +msgid "Gender:" msgstr "" -#: ../../include/datetime.php:276 -msgid "minute" +#: ../../include/identity.php:1009 ../../include/identity.php:1292 +msgid "Status:" msgstr "" -#: ../../include/datetime.php:276 -msgid "minutes" +#: ../../include/identity.php:1010 ../../include/identity.php:1303 +msgid "Homepage:" msgstr "" -#: ../../include/datetime.php:277 -msgid "second" +#: ../../include/identity.php:1011 +msgid "Online Now" msgstr "" -#: ../../include/datetime.php:277 -msgid "seconds" +#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../mod/ping.php:318 +msgid "g A l F d" msgstr "" -#: ../../include/datetime.php:285 -#, php-format -msgctxt "e.g. 22 hours ago, 1 minute ago" -msgid "%1$d %2$s ago" +#: ../../include/identity.php:1096 ../../include/identity.php:1174 +msgid "F d" msgstr "" -#: ../../include/datetime.php:519 -#, php-format -msgid "%1$s's birthday" +#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../mod/ping.php:341 +msgid "[today]" msgstr "" -#: ../../include/datetime.php:520 -#, php-format -msgid "Happy Birthday %1$s" +#: ../../include/identity.php:1152 +msgid "Birthday Reminders" msgstr "" -#: ../../include/features.php:38 -msgid "General Features" +#: ../../include/identity.php:1153 +msgid "Birthdays this week:" msgstr "" -#: ../../include/features.php:40 -msgid "Content Expiration" +#: ../../include/identity.php:1206 +msgid "[No description]" msgstr "" -#: ../../include/features.php:40 -msgid "Remove posts/comments and/or private messages at a future time" +#: ../../include/identity.php:1224 +msgid "Event Reminders" msgstr "" -#: ../../include/features.php:41 -msgid "Multiple Profiles" +#: ../../include/identity.php:1225 +msgid "Events this week:" msgstr "" -#: ../../include/features.php:41 -msgid "Ability to create multiple profiles" +#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/apps.php:138 ../../mod/profperm.php:112 +msgid "Profile" msgstr "" -#: ../../include/features.php:42 -msgid "Advanced Profiles" +#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +msgid "Full Name:" msgstr "" -#: ../../include/features.php:42 -msgid "Additional profile sections and selections" +#: ../../include/identity.php:1253 +msgid "Like this channel" msgstr "" -#: ../../include/features.php:43 -msgid "Profile Import/Export" -msgstr "" +#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 +#: ../../mod/photos.php:1086 +msgctxt "noun" +msgid "Like" +msgid_plural "Likes" +msgstr[0] "" +msgstr[1] "" -#: ../../include/features.php:43 -msgid "Save and load profile details across sites/channels" +#: ../../include/identity.php:1277 +msgid "j F, Y" msgstr "" -#: ../../include/features.php:44 -msgid "Web Pages" +#: ../../include/identity.php:1278 +msgid "j F" msgstr "" -#: ../../include/features.php:44 -msgid "Provide managed web pages on your channel" +#: ../../include/identity.php:1285 +msgid "Birthday:" msgstr "" -#: ../../include/features.php:45 -msgid "Private Notes" +#: ../../include/identity.php:1289 ../../mod/directory.php:299 +msgid "Age:" msgstr "" -#: ../../include/features.php:45 -msgid "Enables a tool to store notes and reminders" +#: ../../include/identity.php:1298 +#, php-format +msgid "for %1$d %2$s" msgstr "" -#: ../../include/features.php:46 -msgid "Navigation Channel Select" +#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +msgid "Sexual Preference:" msgstr "" -#: ../../include/features.php:46 -msgid "Change channels directly from within the navigation dropdown menu" +#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../mod/directory.php:315 +msgid "Hometown:" msgstr "" -#: ../../include/features.php:47 -msgid "Photo Location" +#: ../../include/identity.php:1307 +msgid "Tags:" msgstr "" -#: ../../include/features.php:47 -msgid "If location data is available on uploaded photos, link this to a map." +#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +msgid "Political Views:" msgstr "" -#: ../../include/features.php:49 -msgid "Expert Mode" +#: ../../include/identity.php:1311 +msgid "Religion:" msgstr "" -#: ../../include/features.php:49 -msgid "Enable Expert Mode to provide advanced configuration options" +#: ../../include/identity.php:1313 ../../mod/directory.php:317 +msgid "About:" msgstr "" -#: ../../include/features.php:50 -msgid "Premium Channel" +#: ../../include/identity.php:1315 +msgid "Hobbies/Interests:" msgstr "" -#: ../../include/features.php:50 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" +#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +msgid "Likes:" msgstr "" -#: ../../include/features.php:55 -msgid "Post Composition Features" +#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +msgid "Dislikes:" msgstr "" -#: ../../include/features.php:57 -msgid "Use Markdown" +#: ../../include/identity.php:1321 +msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/features.php:57 -msgid "Allow use of \"Markdown\" to format posts" +#: ../../include/identity.php:1323 +msgid "My other channels:" msgstr "" -#: ../../include/features.php:58 -msgid "Large Photos" +#: ../../include/identity.php:1325 +msgid "Musical interests:" msgstr "" -#: ../../include/features.php:58 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" +#: ../../include/identity.php:1327 +msgid "Books, literature:" msgstr "" -#: ../../include/features.php:59 ../../include/widgets.php:545 -#: ../../mod/sources.php:88 -msgid "Channel Sources" +#: ../../include/identity.php:1329 +msgid "Television:" msgstr "" -#: ../../include/features.php:59 -msgid "Automatically import channel content from other channels or feeds" +#: ../../include/identity.php:1331 +msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/features.php:60 -msgid "Even More Encryption" +#: ../../include/identity.php:1333 +msgid "Love/Romance:" msgstr "" -#: ../../include/features.php:60 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" +#: ../../include/identity.php:1335 +msgid "Work/employment:" msgstr "" -#: ../../include/features.php:61 -msgid "Enable Voting Tools" +#: ../../include/identity.php:1337 +msgid "School/education:" msgstr "" -#: ../../include/features.php:61 -msgid "Provide a class of post which others can vote on" +#: ../../include/identity.php:1357 +msgid "Like this thing" msgstr "" -#: ../../include/features.php:62 -msgid "Delayed Posting" +#: ../../include/taxonomy.php:240 ../../include/taxonomy.php:261 +msgid "Tags" msgstr "" -#: ../../include/features.php:62 -msgid "Allow posts to be published at a later date" +#: ../../include/taxonomy.php:282 ../../include/widgets.php:36 +#: ../../include/contact_widgets.php:95 +msgid "Categories" msgstr "" -#: ../../include/features.php:68 -msgid "Network and Stream Filtering" +#: ../../include/taxonomy.php:305 +msgid "Keywords" msgstr "" -#: ../../include/features.php:69 -msgid "Search by Date" +#: ../../include/taxonomy.php:326 +msgid "have" msgstr "" -#: ../../include/features.php:69 -msgid "Ability to select posts by date ranges" +#: ../../include/taxonomy.php:326 +msgid "has" msgstr "" -#: ../../include/features.php:70 -msgid "Collections Filter" +#: ../../include/taxonomy.php:327 +msgid "want" msgstr "" -#: ../../include/features.php:70 -msgid "Enable widget to display Network posts only from selected collections" +#: ../../include/taxonomy.php:327 +msgid "wants" msgstr "" -#: ../../include/features.php:71 ../../include/widgets.php:273 -msgid "Saved Searches" +#: ../../include/taxonomy.php:328 ../../include/ItemObject.php:254 +msgid "like" msgstr "" -#: ../../include/features.php:71 -msgid "Save search terms for re-use" +#: ../../include/taxonomy.php:328 +msgid "likes" msgstr "" -#: ../../include/features.php:72 -msgid "Network Personal Tab" +#: ../../include/taxonomy.php:329 ../../include/ItemObject.php:255 +msgid "dislike" msgstr "" -#: ../../include/features.php:72 -msgid "Enable tab to display only Network posts that you've interacted on" +#: ../../include/taxonomy.php:329 +msgid "dislikes" msgstr "" -#: ../../include/features.php:73 -msgid "Network New Tab" +#: ../../include/acl_selectors.php:240 +msgid "Visible to your default audience" msgstr "" -#: ../../include/features.php:73 -msgid "Enable tab to display all new Network activity" +#: ../../include/acl_selectors.php:241 +msgid "Show" msgstr "" -#: ../../include/features.php:74 -msgid "Affinity Tool" +#: ../../include/acl_selectors.php:242 +msgid "Don't show" msgstr "" -#: ../../include/features.php:74 -msgid "Filter stream activity by depth of relationships" +#: ../../include/acl_selectors.php:247 +msgid "Other networks and post services" msgstr "" -#: ../../include/features.php:75 -msgid "Connection Filtering" +#: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 +#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 +#: ../../mod/thing.php:356 ../../mod/chat.php:211 +msgid "Permissions" msgstr "" -#: ../../include/features.php:75 -msgid "Filter incoming posts from connections based on keywords/content" +#: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 +#: ../../mod/photos.php:1218 +msgid "Close" msgstr "" -#: ../../include/features.php:76 -msgid "Suggest Channels" +#: ../../include/activities.php:42 +msgid " and " msgstr "" -#: ../../include/features.php:76 -msgid "Show channel suggestions" +#: ../../include/activities.php:50 +msgid "public profile" msgstr "" -#: ../../include/features.php:81 -msgid "Post/Comment Tools" +#: ../../include/activities.php:59 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../include/features.php:82 -msgid "Tagging" +#: ../../include/activities.php:60 +#, php-format +msgid "Visit %1$s's %2$s" msgstr "" -#: ../../include/features.php:82 -msgid "Ability to tag existing posts" +#: ../../include/activities.php:63 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../include/features.php:83 -msgid "Post Categories" +#: ../../include/attach.php:246 ../../include/attach.php:332 +msgid "Item was not found." msgstr "" -#: ../../include/features.php:83 -msgid "Add categories to your posts" +#: ../../include/attach.php:496 +msgid "No source file." msgstr "" -#: ../../include/features.php:84 ../../include/contact_widgets.php:57 -#: ../../include/widgets.php:303 -msgid "Saved Folders" +#: ../../include/attach.php:514 +msgid "Cannot locate file to replace" msgstr "" -#: ../../include/features.php:84 -msgid "Ability to file posts under folders" +#: ../../include/attach.php:532 +msgid "Cannot locate file to revise/update" msgstr "" -#: ../../include/features.php:85 -msgid "Dislike Posts" +#: ../../include/attach.php:667 +#, php-format +msgid "File exceeds size limit of %d" msgstr "" -#: ../../include/features.php:85 -msgid "Ability to dislike posts/comments" +#: ../../include/attach.php:681 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "" -#: ../../include/features.php:86 -msgid "Star Posts" +#: ../../include/attach.php:837 +msgid "File upload failed. Possible system limit or action terminated." msgstr "" -#: ../../include/features.php:86 -msgid "Ability to mark special posts with a star indicator" +#: ../../include/attach.php:850 +msgid "Stored file could not be verified. Upload failed." msgstr "" -#: ../../include/features.php:87 -msgid "Tag Cloud" +#: ../../include/attach.php:898 ../../include/attach.php:914 +msgid "Path not available." msgstr "" -#: ../../include/features.php:87 -msgid "Provide a personal tag cloud on your channel page" +#: ../../include/attach.php:960 ../../include/attach.php:1112 +msgid "Empty pathname" msgstr "" -#: ../../include/comanche.php:34 ../../mod/admin.php:351 -msgid "Default" +#: ../../include/attach.php:986 +msgid "duplicate filename or path" msgstr "" -#: ../../include/js_strings.php:5 -msgid "Delete this item?" +#: ../../include/attach.php:1008 +msgid "Path not found." msgstr "" -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 -#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 -msgid "Comment" +#: ../../include/attach.php:1066 +msgid "mkdir failed." msgstr "" -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 -msgid "[+] show all" +#: ../../include/attach.php:1070 +msgid "database storage failed." msgstr "" -#: ../../include/js_strings.php:8 -msgid "[-] show less" +#: ../../include/attach.php:1118 +msgid "Empty path" msgstr "" -#: ../../include/js_strings.php:9 -msgid "[+] expand" +#: ../../include/bb2diaspora.php:382 +msgid "Attachments:" msgstr "" -#: ../../include/js_strings.php:10 -msgid "[-] collapse" +#: ../../include/bb2diaspora.php:473 +msgid "$Projectname event notification:" msgstr "" -#: ../../include/js_strings.php:11 -msgid "Password too short" +#: ../../include/notify.php:20 +msgid "created a new post" msgstr "" -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" +#: ../../include/notify.php:21 +#, php-format +msgid "commented on %s's post" msgstr "" -#: ../../include/js_strings.php:13 ../../mod/photos.php:41 -msgid "everybody" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" msgstr "" -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" +#: ../../include/widgets.php:93 +msgid "System" msgstr "" -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" +#: ../../include/widgets.php:95 ../../include/conversation.php:1526 +msgid "Personal" msgstr "" -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." +#: ../../include/widgets.php:96 +msgid "Create Personal App" msgstr "" -#: ../../include/js_strings.php:17 -msgid "close all" +#: ../../include/widgets.php:97 +msgid "Edit Personal App" msgstr "" -#: ../../include/js_strings.php:18 -msgid "Nothing new here" +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" msgstr "" -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" msgstr "" -#: ../../include/js_strings.php:20 ../../mod/connedit.php:685 -#: ../../mod/rate.php:157 -msgid "Rating" +#: ../../include/widgets.php:145 +msgid "See more..." msgstr "" -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" +#: ../../include/widgets.php:166 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." msgstr "" -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 -#: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:706 ../../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:517 ../../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" +#: ../../include/widgets.php:172 +msgid "Add New Connection" msgstr "" -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" +#: ../../include/widgets.php:173 +msgid "Enter the channel address" msgstr "" -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" +#: ../../include/widgets.php:174 +msgid "Example: bob@example.com, http://example.com/barbara" msgstr "" -#: ../../include/js_strings.php:26 -msgid "timeago.prefixAgo" +#: ../../include/widgets.php:190 +msgid "Notes" msgstr "" -#: ../../include/js_strings.php:27 -msgid "timeago.prefixFromNow" +#: ../../include/widgets.php:192 ../../include/text.php:868 +#: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +msgid "Save" msgstr "" -#: ../../include/js_strings.php:28 -msgid "ago" +#: ../../include/widgets.php:266 +msgid "Remove term" msgstr "" -#: ../../include/js_strings.php:29 -msgid "from now" +#: ../../include/widgets.php:274 ../../include/features.php:72 +msgid "Saved Searches" msgstr "" -#: ../../include/js_strings.php:30 -msgid "less than a minute" +#: ../../include/widgets.php:275 ../../include/group.php:300 +msgid "add" msgstr "" -#: ../../include/js_strings.php:31 -msgid "about a minute" +#: ../../include/widgets.php:304 ../../include/features.php:85 +#: ../../include/contact_widgets.php:57 +msgid "Saved Folders" msgstr "" -#: ../../include/js_strings.php:32 -#, php-format -msgid "%d minutes" +#: ../../include/widgets.php:307 ../../include/contact_widgets.php:60 +#: ../../include/contact_widgets.php:98 +msgid "Everything" msgstr "" -#: ../../include/js_strings.php:33 -msgid "about an hour" +#: ../../include/widgets.php:349 +msgid "Archives" msgstr "" -#: ../../include/js_strings.php:34 -#, php-format -msgid "about %d hours" +#: ../../include/widgets.php:428 ../../mod/connedit.php:571 +msgid "Me" msgstr "" -#: ../../include/js_strings.php:35 -msgid "a day" +#: ../../include/widgets.php:429 ../../mod/connedit.php:572 +msgid "Family" msgstr "" -#: ../../include/js_strings.php:36 -#, php-format -msgid "%d days" +#: ../../include/widgets.php:431 ../../mod/connedit.php:574 +msgid "Acquaintances" msgstr "" -#: ../../include/js_strings.php:37 -msgid "about a month" +#: ../../include/widgets.php:432 ../../mod/connedit.php:575 +#: ../../mod/connections.php:88 ../../mod/connections.php:103 +msgid "All" msgstr "" -#: ../../include/js_strings.php:38 -#, php-format -msgid "%d months" +#: ../../include/widgets.php:451 +msgid "Refresh" msgstr "" -#: ../../include/js_strings.php:39 -msgid "about a year" +#: ../../include/widgets.php:485 +msgid "Account settings" msgstr "" -#: ../../include/js_strings.php:40 -#, php-format -msgid "%d years" +#: ../../include/widgets.php:491 +msgid "Channel settings" msgstr "" -#: ../../include/js_strings.php:41 -msgid " " +#: ../../include/widgets.php:497 +msgid "Additional features" msgstr "" -#: ../../include/js_strings.php:42 -msgid "timeago.numbers" +#: ../../include/widgets.php:503 +msgid "Feature/Addon settings" msgstr "" -#: ../../include/js_strings.php:44 ../../include/text.php:1153 -msgid "January" +#: ../../include/widgets.php:509 +msgid "Display settings" msgstr "" -#: ../../include/js_strings.php:45 ../../include/text.php:1153 -msgid "February" +#: ../../include/widgets.php:515 +msgid "Connected apps" msgstr "" -#: ../../include/js_strings.php:46 ../../include/text.php:1153 -msgid "March" +#: ../../include/widgets.php:521 +msgid "Export channel" msgstr "" -#: ../../include/js_strings.php:47 ../../include/text.php:1153 -msgid "April" +#: ../../include/widgets.php:530 ../../mod/connedit.php:683 +msgid "Connection Default Permissions" msgstr "" -#: ../../include/js_strings.php:48 -msgctxt "long" -msgid "May" +#: ../../include/widgets.php:538 +msgid "Premium Channel Settings" msgstr "" -#: ../../include/js_strings.php:49 ../../include/text.php:1153 -msgid "June" +#: ../../include/widgets.php:546 ../../include/features.php:59 +#: ../../mod/sources.php:88 +msgid "Channel Sources" msgstr "" -#: ../../include/js_strings.php:50 ../../include/text.php:1153 -msgid "July" +#: ../../include/widgets.php:554 ../../include/nav.php:202 +#: ../../include/apps.php:134 ../../mod/admin.php:1064 +#: ../../mod/admin.php:1264 +msgid "Settings" msgstr "" -#: ../../include/js_strings.php:51 ../../include/text.php:1153 -msgid "August" +#: ../../include/widgets.php:568 +msgid "Private Mail Menu" msgstr "" -#: ../../include/js_strings.php:52 ../../include/text.php:1153 -msgid "September" +#: ../../include/widgets.php:570 +msgid "Combined View" msgstr "" -#: ../../include/js_strings.php:53 ../../include/text.php:1153 -msgid "October" +#: ../../include/widgets.php:575 ../../include/nav.php:191 +msgid "Inbox" msgstr "" -#: ../../include/js_strings.php:54 ../../include/text.php:1153 -msgid "November" +#: ../../include/widgets.php:580 ../../include/nav.php:192 +msgid "Outbox" msgstr "" -#: ../../include/js_strings.php:55 ../../include/text.php:1153 -msgid "December" +#: ../../include/widgets.php:585 ../../include/nav.php:193 +msgid "New Message" msgstr "" -#: ../../include/js_strings.php:56 -msgid "Jan" +#: ../../include/widgets.php:604 ../../include/widgets.php:616 +msgid "Conversations" msgstr "" -#: ../../include/js_strings.php:57 -msgid "Feb" +#: ../../include/widgets.php:608 +msgid "Received Messages" msgstr "" -#: ../../include/js_strings.php:58 -msgid "Mar" +#: ../../include/widgets.php:612 +msgid "Sent Messages" msgstr "" -#: ../../include/js_strings.php:59 -msgid "Apr" +#: ../../include/widgets.php:626 +msgid "No messages." msgstr "" -#: ../../include/js_strings.php:60 -msgctxt "short" -msgid "May" +#: ../../include/widgets.php:644 +msgid "Delete conversation" msgstr "" -#: ../../include/js_strings.php:61 -msgid "Jun" +#: ../../include/widgets.php:670 +msgid "Events Menu" msgstr "" -#: ../../include/js_strings.php:62 -msgid "Jul" +#: ../../include/widgets.php:671 +msgid "Day View" msgstr "" -#: ../../include/js_strings.php:63 -msgid "Aug" +#: ../../include/widgets.php:672 +msgid "Week View" msgstr "" -#: ../../include/js_strings.php:64 -msgid "Sep" +#: ../../include/widgets.php:673 +msgid "Month View" msgstr "" -#: ../../include/js_strings.php:65 -msgid "Oct" +#: ../../include/widgets.php:674 ../../mod/events.php:669 +msgid "Export" msgstr "" -#: ../../include/js_strings.php:66 -msgid "Nov" +#: ../../include/widgets.php:675 ../../mod/events.php:672 +msgid "Import" msgstr "" -#: ../../include/js_strings.php:67 -msgid "Dec" +#: ../../include/widgets.php:749 +msgid "Chat Rooms" msgstr "" -#: ../../include/js_strings.php:68 ../../include/text.php:1149 -msgid "Sunday" +#: ../../include/widgets.php:769 +msgid "Bookmarked Chatrooms" msgstr "" -#: ../../include/js_strings.php:69 ../../include/text.php:1149 -msgid "Monday" +#: ../../include/widgets.php:789 +msgid "Suggested Chatrooms" msgstr "" -#: ../../include/js_strings.php:70 ../../include/text.php:1149 -msgid "Tuesday" +#: ../../include/widgets.php:916 ../../include/widgets.php:974 +msgid "photo/image" msgstr "" -#: ../../include/js_strings.php:71 ../../include/text.php:1149 -msgid "Wednesday" +#: ../../include/widgets.php:1069 ../../include/widgets.php:1071 +msgid "Rate Me" msgstr "" -#: ../../include/js_strings.php:72 ../../include/text.php:1149 -msgid "Thursday" +#: ../../include/widgets.php:1075 +msgid "View Ratings" msgstr "" -#: ../../include/js_strings.php:73 ../../include/text.php:1149 -msgid "Friday" +#: ../../include/widgets.php:1086 +msgid "Public Hubs" msgstr "" -#: ../../include/js_strings.php:74 ../../include/text.php:1149 -msgid "Saturday" +#: ../../include/widgets.php:1134 +msgid "Forums" msgstr "" -#: ../../include/js_strings.php:75 -msgid "Sun" +#: ../../include/widgets.php:1161 +msgid "Tasks" msgstr "" -#: ../../include/js_strings.php:76 -msgid "Mon" +#: ../../include/widgets.php:1170 +msgid "Documentation" msgstr "" -#: ../../include/js_strings.php:77 -msgid "Tue" +#: ../../include/widgets.php:1172 +msgid "Project/Site Information" msgstr "" -#: ../../include/js_strings.php:78 -msgid "Wed" +#: ../../include/widgets.php:1173 +msgid "For Members" msgstr "" -#: ../../include/js_strings.php:79 -msgid "Thu" +#: ../../include/widgets.php:1174 +msgid "For Administrators" msgstr "" -#: ../../include/js_strings.php:80 -msgid "Fri" +#: ../../include/widgets.php:1175 +msgid "For Developers" msgstr "" -#: ../../include/js_strings.php:81 -msgid "Sat" +#: ../../include/widgets.php:1200 ../../mod/admin.php:434 +msgid "Site" msgstr "" -#: ../../include/js_strings.php:82 -msgctxt "calendar" -msgid "today" +#: ../../include/widgets.php:1201 +msgid "Accounts" msgstr "" -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "month" +#: ../../include/widgets.php:1202 ../../mod/admin.php:965 +msgid "Channels" msgstr "" -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "week" +#: ../../include/widgets.php:1203 ../../mod/admin.php:1062 +#: ../../mod/admin.php:1102 +msgid "Plugins" msgstr "" -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "day" +#: ../../include/widgets.php:1204 ../../mod/admin.php:1262 +#: ../../mod/admin.php:1296 +msgid "Themes" msgstr "" -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "All day" +#: ../../include/widgets.php:1205 +msgid "Inspect queue" msgstr "" -#: ../../include/contact_selectors.php:56 -msgid "Frequently" +#: ../../include/widgets.php:1206 +msgid "Profile Config" msgstr "" -#: ../../include/contact_selectors.php:57 -msgid "Hourly" +#: ../../include/widgets.php:1207 +msgid "DB updates" msgstr "" -#: ../../include/contact_selectors.php:58 -msgid "Twice daily" +#: ../../include/widgets.php:1225 ../../include/widgets.php:1231 +#: ../../mod/admin.php:1381 +msgid "Logs" msgstr "" -#: ../../include/contact_selectors.php:59 -msgid "Daily" +#: ../../include/widgets.php:1229 ../../include/nav.php:210 +msgid "Admin" msgstr "" -#: ../../include/contact_selectors.php:60 -msgid "Weekly" +#: ../../include/widgets.php:1230 +msgid "Plugin Features" msgstr "" -#: ../../include/contact_selectors.php:61 -msgid "Monthly" +#: ../../include/widgets.php:1232 +msgid "User registrations waiting for confirmation" msgstr "" -#: ../../include/contact_selectors.php:76 -msgid "Friendica" +#: ../../include/widgets.php:1311 ../../mod/photos.php:753 +#: ../../mod/photos.php:1286 +msgid "View Photo" msgstr "" -#: ../../include/contact_selectors.php:77 -msgid "OStatus" +#: ../../include/widgets.php:1327 ../../mod/photos.php:782 +msgid "Edit Album" msgstr "" -#: ../../include/contact_selectors.php:78 -msgid "RSS/Atom" +#: ../../include/bookmarks.php:35 +#, php-format +msgid "%1$s's bookmarks" msgstr "" -#: ../../include/contact_selectors.php:79 ../../mod/id.php:15 -#: ../../mod/id.php:16 ../../mod/admin.php:804 ../../mod/admin.php:813 -#: ../../boot.php:1505 -msgid "Email" +#: ../../include/features.php:38 +msgid "General Features" msgstr "" -#: ../../include/contact_selectors.php:80 -msgid "Diaspora" +#: ../../include/features.php:40 +msgid "Content Expiration" msgstr "" -#: ../../include/contact_selectors.php:81 -msgid "Facebook" +#: ../../include/features.php:40 +msgid "Remove posts/comments and/or private messages at a future time" msgstr "" -#: ../../include/contact_selectors.php:82 -msgid "Zot!" +#: ../../include/features.php:41 +msgid "Multiple Profiles" msgstr "" -#: ../../include/contact_selectors.php:83 -msgid "LinkedIn" +#: ../../include/features.php:41 +msgid "Ability to create multiple profiles" msgstr "" -#: ../../include/contact_selectors.php:84 -msgid "XMPP/IM" +#: ../../include/features.php:42 +msgid "Advanced Profiles" msgstr "" -#: ../../include/contact_selectors.php:85 -msgid "MySpace" +#: ../../include/features.php:42 +msgid "Additional profile sections and selections" msgstr "" -#: ../../include/activities.php:42 -msgid " and " +#: ../../include/features.php:43 +msgid "Profile Import/Export" msgstr "" -#: ../../include/activities.php:50 -msgid "public profile" +#: ../../include/features.php:43 +msgid "Save and load profile details across sites/channels" msgstr "" -#: ../../include/activities.php:59 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" +#: ../../include/features.php:44 +msgid "Web Pages" msgstr "" -#: ../../include/activities.php:60 -#, php-format -msgid "Visit %1$s's %2$s" +#: ../../include/features.php:44 +msgid "Provide managed web pages on your channel" msgstr "" -#: ../../include/activities.php:63 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." +#: ../../include/features.php:45 +msgid "Private Notes" msgstr "" -#: ../../include/Contact.php:118 -msgid "New window" +#: ../../include/features.php:45 +msgid "Enables a tool to store notes and reminders" msgstr "" -#: ../../include/Contact.php:119 -msgid "Open the selected location in a different window or browser tab" +#: ../../include/features.php:46 +msgid "Navigation Channel Select" msgstr "" -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" +#: ../../include/features.php:46 +msgid "Change channels directly from within the navigation dropdown menu" msgstr "" -#: ../../include/dba/dba_driver.php:141 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" +#: ../../include/features.php:47 +msgid "Photo Location" msgstr "" -#: ../../include/items.php:423 ../../mod/like.php:280 ../../mod/dreport.php:6 -#: ../../mod/dreport.php:45 ../../mod/subthread.php:52 ../../mod/group.php:68 -#: ../../mod/profperm.php:23 ../../mod/import_items.php:114 -#: ../../index.php:360 -msgid "Permission denied" +#: ../../include/features.php:47 +msgid "If location data is available on uploaded photos, link this to a map." msgstr "" -#: ../../include/items.php:1128 ../../include/items.php:1174 -msgid "(Unknown)" +#: ../../include/features.php:49 +msgid "Expert Mode" msgstr "" -#: ../../include/items.php:1371 -msgid "Visible to anybody on the internet." +#: ../../include/features.php:49 +msgid "Enable Expert Mode to provide advanced configuration options" msgstr "" -#: ../../include/items.php:1373 -msgid "Visible to you only." +#: ../../include/features.php:50 +msgid "Premium Channel" msgstr "" -#: ../../include/items.php:1375 -msgid "Visible to anybody in this network." +#: ../../include/features.php:50 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" msgstr "" -#: ../../include/items.php:1377 -msgid "Visible to anybody authenticated." +#: ../../include/features.php:55 +msgid "Post Composition Features" msgstr "" -#: ../../include/items.php:1379 -#, php-format -msgid "Visible to anybody on %s." +#: ../../include/features.php:57 +msgid "Use Markdown" msgstr "" -#: ../../include/items.php:1381 -msgid "Visible to all connections." +#: ../../include/features.php:57 +msgid "Allow use of \"Markdown\" to format posts" msgstr "" -#: ../../include/items.php:1383 -msgid "Visible to approved connections." +#: ../../include/features.php:58 +msgid "Large Photos" msgstr "" -#: ../../include/items.php:1385 -msgid "Visible to specific connections." +#: ../../include/features.php:58 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" 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." +#: ../../include/features.php:59 +msgid "Automatically import channel content from other channels or feeds" msgstr "" -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 -msgid "Collection not found." +#: ../../include/features.php:60 +msgid "Even More Encryption" msgstr "" -#: ../../include/items.php:4836 -msgid "Collection is empty." +#: ../../include/features.php:60 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" msgstr "" -#: ../../include/items.php:4843 -#, php-format -msgid "Collection: %s" +#: ../../include/features.php:61 +msgid "Enable Voting Tools" msgstr "" -#: ../../include/items.php:4853 ../../mod/connedit.php:674 -#, php-format -msgid "Connection: %s" +#: ../../include/features.php:61 +msgid "Provide a class of post which others can vote on" msgstr "" -#: ../../include/items.php:4855 -msgid "Connection not found." +#: ../../include/features.php:62 +msgid "Delayed Posting" msgstr "" -#: ../../include/network.php:635 -msgid "view full size" +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" msgstr "" -#: ../../include/network.php:1613 ../../include/enotify.php:57 -msgid "$Projectname Notification" +#: ../../include/features.php:63 +msgid "Suppress Duplicate Posts/Comments" msgstr "" -#: ../../include/network.php:1614 ../../include/enotify.php:58 -msgid "$projectname" +#: ../../include/features.php:63 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." msgstr "" -#: ../../include/network.php:1616 ../../include/enotify.php:60 -msgid "Thank You," +#: ../../include/features.php:69 +msgid "Network and Stream Filtering" msgstr "" -#: ../../include/network.php:1618 ../../include/enotify.php:62 -#, php-format -msgid "%s Administrator" +#: ../../include/features.php:70 +msgid "Search by Date" msgstr "" -#: ../../include/network.php:1660 ../../include/account.php:316 -#: ../../include/account.php:343 ../../include/account.php:403 -msgid "Administrator" +#: ../../include/features.php:70 +msgid "Ability to select posts by date ranges" msgstr "" -#: ../../include/network.php:1674 -msgid "No Subject" +#: ../../include/features.php:71 +msgid "Collections Filter" msgstr "" -#: ../../include/bookmarks.php:35 -#, php-format -msgid "%1$s's bookmarks" +#: ../../include/features.php:71 +msgid "Enable widget to display Network posts only from selected collections" msgstr "" -#: ../../include/acl_selectors.php:239 -msgid "Visible to your default audience" +#: ../../include/features.php:72 +msgid "Save search terms for re-use" msgstr "" -#: ../../include/acl_selectors.php:240 -msgid "Show" +#: ../../include/features.php:73 +msgid "Network Personal Tab" msgstr "" -#: ../../include/acl_selectors.php:241 -msgid "Don't show" +#: ../../include/features.php:73 +msgid "Enable tab to display only Network posts that you've interacted on" msgstr "" -#: ../../include/acl_selectors.php:247 ../../mod/filestorage.php:147 -#: ../../mod/chat.php:211 ../../mod/photos.php:631 ../../mod/photos.php:1001 -#: ../../mod/events.php:708 ../../mod/thing.php:310 ../../mod/thing.php:356 -msgid "Permissions" +#: ../../include/features.php:74 +msgid "Network New Tab" msgstr "" -#: ../../include/acl_selectors.php:248 ../../include/ItemObject.php:370 -#: ../../mod/photos.php:1218 -msgid "Close" +#: ../../include/features.php:74 +msgid "Enable tab to display all new Network activity" msgstr "" -#: ../../include/import.php:23 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." +#: ../../include/features.php:75 +msgid "Affinity Tool" msgstr "" -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." +#: ../../include/features.php:75 +msgid "Filter stream activity by depth of relationships" msgstr "" -#: ../../include/import.php:80 ../../mod/import.php:138 -msgid "Cloned channel not found. Import failed." +#: ../../include/features.php:76 +msgid "Connection Filtering" msgstr "" -#: ../../include/photos.php:112 -#, php-format -msgid "Image exceeds website size limit of %lu bytes" +#: ../../include/features.php:76 +msgid "Filter incoming posts from connections based on keywords/content" msgstr "" -#: ../../include/photos.php:119 -msgid "Image file is empty." +#: ../../include/features.php:77 +msgid "Suggest Channels" msgstr "" -#: ../../include/photos.php:146 ../../mod/profile_photo.php:222 -msgid "Unable to process image" +#: ../../include/features.php:77 +msgid "Show channel suggestions" msgstr "" -#: ../../include/photos.php:257 -msgid "Photo storage failed." +#: ../../include/features.php:82 +msgid "Post/Comment Tools" msgstr "" -#: ../../include/photos.php:487 -msgid "Upload New Photos" +#: ../../include/features.php:83 +msgid "Tagging" msgstr "" -#: ../../include/notify.php:20 -msgid "created a new post" +#: ../../include/features.php:83 +msgid "Ability to tag existing posts" msgstr "" -#: ../../include/notify.php:21 -#, php-format -msgid "commented on %s's post" +#: ../../include/features.php:84 +msgid "Post Categories" msgstr "" -#: ../../include/page_widgets.php:6 -msgid "New Page" +#: ../../include/features.php:84 +msgid "Add categories to your posts" msgstr "" -#: ../../include/page_widgets.php:39 ../../mod/layouts.php:188 -#: ../../mod/webpages.php:187 ../../mod/blocks.php:159 -msgid "View" +#: ../../include/features.php:85 +msgid "Ability to file posts under folders" msgstr "" -#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 -msgid "Actions" +#: ../../include/features.php:86 +msgid "Dislike Posts" msgstr "" -#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 -msgid "Page Link" +#: ../../include/features.php:86 +msgid "Ability to dislike posts/comments" msgstr "" -#: ../../include/page_widgets.php:43 -msgid "Title" +#: ../../include/features.php:87 +msgid "Star Posts" msgstr "" -#: ../../include/page_widgets.php:44 ../../mod/layouts.php:181 -#: ../../mod/menu.php:110 ../../mod/webpages.php:192 ../../mod/blocks.php:150 -msgid "Created" +#: ../../include/features.php:87 +msgid "Ability to mark special posts with a star indicator" msgstr "" -#: ../../include/page_widgets.php:45 ../../mod/layouts.php:182 -#: ../../mod/menu.php:111 ../../mod/webpages.php:193 ../../mod/blocks.php:151 -msgid "Edited" +#: ../../include/features.php:88 +msgid "Tag Cloud" msgstr "" -#: ../../include/photo/photo_driver.php:708 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:146 -#: ../../mod/profile_photo.php:236 ../../mod/profile_photo.php:376 -msgid "Profile Photos" +#: ../../include/features.php:88 +msgid "Provide a personal tag cloud on your channel page" msgstr "" #: ../../include/profile_selectors.php:6 @@ -2072,6 +1871,13 @@ msgid "Non-specific" msgstr "" #: ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 ../../include/permissions.php:871 +msgid "Other" +msgstr "" + +#: ../../include/profile_selectors.php:6 msgid "Undecided" msgstr "" @@ -2167,15 +1973,6 @@ 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:568 -#: ../../mod/settings.php:338 ../../mod/settings.php:342 -#: ../../mod/settings.php:343 ../../mod/settings.php:346 -#: ../../mod/settings.php:357 -msgid "Friends" -msgstr "" - #: ../../include/profile_selectors.php:80 msgid "Friends/Benefits" msgstr "" @@ -2266,500 +2063,796 @@ msgstr "" msgid "Ask me" msgstr "" -#: ../../include/oembed.php:213 -msgid "Embedded content" +#: ../../include/datetime.php:48 +msgid "Miscellaneous" msgstr "" -#: ../../include/oembed.php:222 -msgid "Embedding disabled" +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" msgstr "" -#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 -msgid "l F d, Y \\@ g:i A" +#: ../../include/datetime.php:236 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:452 ../../mod/events.php:457 +msgid "Required" msgstr "" -#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 -msgid "Starts:" +#: ../../include/datetime.php:263 ../../boot.php:2289 +msgid "never" msgstr "" -#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 -msgid "Finishes:" +#: ../../include/datetime.php:269 +msgid "less than a second ago" msgstr "" -#: ../../include/event.php:50 ../../include/identity.php:1016 -#: ../../include/bb2diaspora.php:493 ../../mod/directory.php:302 -#: ../../mod/events.php:701 -msgid "Location:" +#: ../../include/datetime.php:272 +msgid "year" msgstr "" -#: ../../include/event.php:766 -msgid "This event has been added to your calendar." +#: ../../include/datetime.php:272 +msgid "years" msgstr "" -#: ../../include/event.php:953 -msgid "Not specified" +#: ../../include/datetime.php:273 +msgid "month" msgstr "" -#: ../../include/event.php:954 -msgid "Needs Action" +#: ../../include/datetime.php:273 +msgid "months" msgstr "" -#: ../../include/event.php:955 -msgid "Completed" +#: ../../include/datetime.php:274 +msgid "week" msgstr "" -#: ../../include/event.php:956 -msgid "In Process" +#: ../../include/datetime.php:274 +msgid "weeks" msgstr "" -#: ../../include/event.php:957 -msgid "Cancelled" +#: ../../include/datetime.php:275 +msgid "day" msgstr "" -#: ../../include/apps.php:128 -msgid "Site Admin" +#: ../../include/datetime.php:275 +msgid "days" msgstr "" -#: ../../include/apps.php:130 -msgid "Address Book" +#: ../../include/datetime.php:276 +msgid "hour" msgstr "" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1503 -msgid "Login" +#: ../../include/datetime.php:276 +msgid "hours" msgstr "" -#: ../../include/apps.php:132 ../../include/nav.php:200 -#: ../../mod/manage.php:160 -msgid "Channel Manager" +#: ../../include/datetime.php:277 +msgid "minute" msgstr "" -#: ../../include/apps.php:133 ../../include/nav.php:174 -msgid "Grid" +#: ../../include/datetime.php:277 +msgid "minutes" msgstr "" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 -msgid "Settings" +#: ../../include/datetime.php:278 +msgid "second" msgstr "" -#: ../../include/apps.php:137 ../../include/nav.php:177 -msgid "Channel Home" +#: ../../include/datetime.php:278 +msgid "seconds" msgstr "" -#: ../../include/apps.php:138 ../../include/identity.php:1250 -#: ../../include/identity.php:1367 ../../mod/profperm.php:112 -msgid "Profile" +#: ../../include/datetime.php:286 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" msgstr "" -#: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 -msgid "Events" +#: ../../include/datetime.php:520 +#, php-format +msgid "%1$s's birthday" msgstr "" -#: ../../include/apps.php:141 ../../include/nav.php:162 -msgid "Directory" +#: ../../include/datetime.php:521 +#, php-format +msgid "Happy Birthday %1$s" msgstr "" -#: ../../include/apps.php:142 ../../include/nav.php:154 ../../mod/help.php:202 -#: ../../mod/help.php:207 ../../mod/layouts.php:176 -msgid "Help" +#: ../../include/api.php:1302 +msgid "Public Timeline" msgstr "" -#: ../../include/apps.php:143 ../../include/nav.php:188 -msgid "Mail" +#: ../../include/conversation.php:120 ../../include/text.php:1916 +#: ../../mod/tagger.php:43 ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "photo" msgstr "" -#: ../../include/apps.php:144 ../../mod/mood.php:131 -msgid "Mood" +#: ../../include/conversation.php:126 ../../mod/like.php:113 +msgid "channel" msgstr "" -#: ../../include/apps.php:146 ../../include/nav.php:97 -msgid "Chat" +#: ../../include/conversation.php:148 ../../include/text.php:1922 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "status" msgstr "" -#: ../../include/apps.php:147 ../../include/text.php:857 -#: ../../include/text.php:869 ../../include/nav.php:159 -#: ../../mod/search.php:40 -msgid "Search" +#: ../../include/conversation.php:150 ../../include/text.php:1924 +#: ../../mod/tagger.php:53 +msgid "comment" msgstr "" -#: ../../include/apps.php:148 -msgid "Probe" +#: ../../include/conversation.php:164 ../../mod/like.php:410 +#, php-format +msgid "%1$s likes %2$s's %3$s" msgstr "" -#: ../../include/apps.php:149 -msgid "Suggest" +#: ../../include/conversation.php:167 ../../mod/like.php:412 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" msgstr "" -#: ../../include/apps.php:150 -msgid "Random Channel" +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" msgstr "" -#: ../../include/apps.php:151 -msgid "Invite" +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" msgstr "" -#: ../../include/apps.php:152 -msgid "Features" +#: ../../include/conversation.php:243 ../../include/text.php:954 +msgid "poked" msgstr "" -#: ../../include/apps.php:153 ../../mod/id.php:28 -msgid "Language" +#: ../../include/conversation.php:260 ../../mod/mood.php:63 +#, php-format +msgctxt "mood" +msgid "%1$s is %2$s" msgstr "" -#: ../../include/apps.php:154 -msgid "Post" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Likes" msgstr "" -#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 -#: ../../mod/id.php:19 -msgid "Profile Photo" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Dislikes" msgstr "" -#: ../../include/apps.php:252 ../../mod/settings.php:84 -#: ../../mod/settings.php:610 -msgid "Update" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Agree" msgstr "" -#: ../../include/apps.php:252 -msgid "Install" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Disagree" msgstr "" -#: ../../include/apps.php:257 -msgid "Purchase" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Abstain" msgstr "" -#: ../../include/auth.php:131 -msgid "Logged out." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Attending" msgstr "" -#: ../../include/auth.php:272 -msgid "Failed authentication" +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Not attending" msgstr "" -#: ../../include/auth.php:286 ../../mod/openid.php:189 -msgid "Login failed." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Might attend" msgstr "" -#: ../../include/enotify.php:96 -#, php-format -msgid "%s <!item_type!>" +#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 +msgid "Select" msgstr "" -#: ../../include/enotify.php:100 -#, php-format -msgid "[Hubzilla:Notify] New mail received at %s" +#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 +msgid "Private Message" msgstr "" -#: ../../include/enotify.php:102 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." +#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 +msgid "Message signature validated" msgstr "" -#: ../../include/enotify.php:103 +#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 +msgid "Message signature incorrect" +msgstr "" + +#: ../../include/conversation.php:691 #, php-format -msgid "%1$s sent you %2$s." +msgid "View %s's profile @ %s" msgstr "" -#: ../../include/enotify.php:103 -msgid "a private message" +#: ../../include/conversation.php:710 +msgid "Categories:" msgstr "" -#: ../../include/enotify.php:104 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." +#: ../../include/conversation.php:711 +msgid "Filed under:" msgstr "" -#: ../../include/enotify.php:158 +#: ../../include/conversation.php:719 ../../include/ItemObject.php:334 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" +msgid "from %s" msgstr "" -#: ../../include/enotify.php:166 +#: ../../include/conversation.php:722 ../../include/ItemObject.php:337 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" +msgid "last edited: %s" msgstr "" -#: ../../include/enotify.php:175 +#: ../../include/conversation.php:723 ../../include/ItemObject.php:338 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" +msgid "Expires: %s" msgstr "" -#: ../../include/enotify.php:186 -#, php-format -msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" +#: ../../include/conversation.php:738 +msgid "View in context" msgstr "" -#: ../../include/enotify.php:187 -#, php-format -msgid "%1$s, %2$s commented on an item/conversation you have been following." +#: ../../include/conversation.php:740 ../../include/conversation.php:1227 +#: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 +#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 +#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +msgid "Please wait" msgstr "" -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." +#: ../../include/conversation.php:850 +msgid "remove" msgstr "" -#: ../../include/enotify.php:196 -#, php-format -msgid "[Hubzilla:Notify] %s posted to your profile wall" +#: ../../include/conversation.php:854 ../../include/nav.php:241 +msgid "Loading..." msgstr "" -#: ../../include/enotify.php:198 -#, php-format -msgid "%1$s, %2$s posted to your profile wall at %3$s" +#: ../../include/conversation.php:855 +msgid "Delete Selected Items" msgstr "" -#: ../../include/enotify.php:200 -#, php-format -msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" +#: ../../include/conversation.php:946 +msgid "View Source" msgstr "" -#: ../../include/enotify.php:224 -#, php-format -msgid "[Hubzilla:Notify] %s tagged you" +#: ../../include/conversation.php:947 +msgid "Follow Thread" msgstr "" -#: ../../include/enotify.php:225 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" +#: ../../include/conversation.php:948 +msgid "Unfollow Thread" msgstr "" -#: ../../include/enotify.php:226 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." +#: ../../include/conversation.php:949 +msgid "View Status" msgstr "" -#: ../../include/enotify.php:238 -#, php-format -msgid "[Hubzilla:Notify] %1$s poked you" +#: ../../include/conversation.php:950 ../../include/nav.php:86 +#: ../../mod/connedit.php:498 +msgid "View Profile" +msgstr "" + +#: ../../include/conversation.php:951 +msgid "View Photos" +msgstr "" + +#: ../../include/conversation.php:952 +msgid "Activity/Posts" +msgstr "" + +#: ../../include/conversation.php:954 +msgid "Edit Connection" +msgstr "" + +#: ../../include/conversation.php:955 +msgid "Send PM" msgstr "" -#: ../../include/enotify.php:239 +#: ../../include/conversation.php:956 ../../include/apps.php:145 +msgid "Poke" +msgstr "" + +#: ../../include/conversation.php:1070 #, php-format -msgid "%1$s, %2$s poked you at %3$s" +msgid "%s likes this." msgstr "" -#: ../../include/enotify.php:240 +#: ../../include/conversation.php:1070 #, php-format -msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." +msgid "%s doesn't like this." msgstr "" -#: ../../include/enotify.php:256 +#: ../../include/conversation.php:1074 #, php-format -msgid "[Hubzilla:Notify] %s tagged your post" +msgid "<span %1$s>%2$d people</span> like this." +msgid_plural "<span %1$s>%2$d people</span> like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1076 +#, php-format +msgid "<span %1$s>%2$d people</span> don't like this." +msgid_plural "<span %1$s>%2$d people</span> don't like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1082 +msgid "and" msgstr "" -#: ../../include/enotify.php:257 +#: ../../include/conversation.php:1085 #, php-format -msgid "%1$s, %2$s tagged your post at %3$s" +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1086 +#, php-format +msgid "%s like this." msgstr "" -#: ../../include/enotify.php:258 +#: ../../include/conversation.php:1086 #, php-format -msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" +msgid "%s don't like this." msgstr "" -#: ../../include/enotify.php:270 -msgid "[Hubzilla:Notify] Introduction received" +#: ../../include/conversation.php:1154 +msgid "Visible to <strong>everybody</strong>" msgstr "" -#: ../../include/enotify.php:271 -#, php-format -msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" +#: ../../include/conversation.php:1155 ../../mod/mail.php:194 +#: ../../mod/mail.php:308 +msgid "Please enter a link URL:" msgstr "" -#: ../../include/enotify.php:272 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." +#: ../../include/conversation.php:1156 +msgid "Please enter a video link/URL:" msgstr "" -#: ../../include/enotify.php:276 ../../include/enotify.php:295 -#, php-format -msgid "You may visit their profile at %s" +#: ../../include/conversation.php:1157 +msgid "Please enter an audio link/URL:" msgstr "" -#: ../../include/enotify.php:278 -#, php-format -msgid "Please visit %s to approve or reject the connection request." +#: ../../include/conversation.php:1158 +msgid "Tag term:" msgstr "" -#: ../../include/enotify.php:285 -msgid "[Hubzilla:Notify] Friend suggestion received" +#: ../../include/conversation.php:1159 ../../mod/filer.php:48 +msgid "Save to Folder:" msgstr "" -#: ../../include/enotify.php:286 -#, php-format -msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" +#: ../../include/conversation.php:1160 +msgid "Where are you right now?" msgstr "" -#: ../../include/enotify.php:287 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s." +#: ../../include/conversation.php:1161 ../../mod/mail.php:195 +#: ../../mod/mail.php:309 ../../mod/editpost.php:56 +msgid "Expires YYYY-MM-DD HH:MM" msgstr "" -#: ../../include/enotify.php:293 -msgid "Name:" +#: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 +#: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 +#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 +#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/events.php:473 +msgid "Preview" msgstr "" -#: ../../include/enotify.php:294 -msgid "Photo:" +#: ../../include/conversation.php:1192 ../../mod/blocks.php:154 +#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 +#: ../../mod/layouts.php:184 +msgid "Share" msgstr "" -#: ../../include/enotify.php:297 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." +#: ../../include/conversation.php:1194 +msgid "Page link name" msgstr "" -#: ../../include/enotify.php:511 -msgid "[Hubzilla:Notify]" +#: ../../include/conversation.php:1197 +msgid "Post as" msgstr "" -#: ../../include/ItemObject.php:130 -msgid "Save to Folder" +#: ../../include/conversation.php:1199 ../../include/ItemObject.php:698 +#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:136 +#: ../../mod/editlayout.php:135 ../../mod/editpost.php:113 +msgid "Bold" msgstr "" -#: ../../include/ItemObject.php:151 -msgid "I will attend" +#: ../../include/conversation.php:1200 ../../include/ItemObject.php:699 +#: ../../mod/editwebpage.php:178 ../../mod/editblock.php:137 +#: ../../mod/editlayout.php:136 ../../mod/editpost.php:114 +msgid "Italic" msgstr "" -#: ../../include/ItemObject.php:151 -msgid "I will not attend" +#: ../../include/conversation.php:1201 ../../include/ItemObject.php:700 +#: ../../mod/editwebpage.php:179 ../../mod/editblock.php:138 +#: ../../mod/editlayout.php:137 ../../mod/editpost.php:115 +msgid "Underline" msgstr "" -#: ../../include/ItemObject.php:151 -msgid "I might attend" +#: ../../include/conversation.php:1202 ../../include/ItemObject.php:701 +#: ../../mod/editwebpage.php:180 ../../mod/editblock.php:139 +#: ../../mod/editlayout.php:138 ../../mod/editpost.php:116 +msgid "Quote" msgstr "" -#: ../../include/ItemObject.php:161 -msgid "I agree" +#: ../../include/conversation.php:1203 ../../include/ItemObject.php:702 +#: ../../mod/editwebpage.php:181 ../../mod/editblock.php:140 +#: ../../mod/editlayout.php:139 ../../mod/editpost.php:117 +msgid "Code" msgstr "" -#: ../../include/ItemObject.php:161 -msgid "I disagree" +#: ../../include/conversation.php:1204 ../../mod/editwebpage.php:182 +#: ../../mod/editblock.php:142 ../../mod/editlayout.php:140 +#: ../../mod/editpost.php:118 +msgid "Upload photo" msgstr "" -#: ../../include/ItemObject.php:161 -msgid "I abstain" +#: ../../include/conversation.php:1205 +msgid "upload photo" msgstr "" -#: ../../include/ItemObject.php:212 -msgid "Add Star" +#: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 +#: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 +#: ../../mod/mail.php:240 ../../mod/mail.php:369 ../../mod/editpost.php:119 +msgid "Attach file" msgstr "" -#: ../../include/ItemObject.php:213 -msgid "Remove Star" +#: ../../include/conversation.php:1207 +msgid "attach file" msgstr "" -#: ../../include/ItemObject.php:214 -msgid "Toggle Star Status" +#: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 +#: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 +#: ../../mod/mail.php:241 ../../mod/mail.php:370 ../../mod/editpost.php:120 +msgid "Insert web link" msgstr "" -#: ../../include/ItemObject.php:218 -msgid "starred" +#: ../../include/conversation.php:1209 +msgid "web link" msgstr "" -#: ../../include/ItemObject.php:236 -msgid "Add Tag" +#: ../../include/conversation.php:1210 +msgid "Insert video link" msgstr "" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 -msgid "I like this (toggle)" +#: ../../include/conversation.php:1211 +msgid "video link" msgstr "" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 -msgid "like" +#: ../../include/conversation.php:1212 +msgid "Insert audio link" msgstr "" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 -msgid "I don't like this (toggle)" +#: ../../include/conversation.php:1213 +msgid "audio link" msgstr "" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 -msgid "dislike" +#: ../../include/conversation.php:1214 ../../mod/editwebpage.php:188 +#: ../../mod/editblock.php:148 ../../mod/editlayout.php:146 +#: ../../mod/editpost.php:124 +msgid "Set your location" msgstr "" -#: ../../include/ItemObject.php:259 -msgid "Share This" +#: ../../include/conversation.php:1215 +msgid "set location" msgstr "" -#: ../../include/ItemObject.php:259 -msgid "share" +#: ../../include/conversation.php:1216 ../../mod/editpost.php:126 +msgid "Toggle voting" msgstr "" -#: ../../include/ItemObject.php:277 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" +#: ../../include/conversation.php:1219 ../../mod/editwebpage.php:189 +#: ../../mod/editblock.php:149 ../../mod/editlayout.php:147 +#: ../../mod/editpost.php:125 +msgid "Clear browser location" +msgstr "" + +#: ../../include/conversation.php:1220 +msgid "clear location" +msgstr "" + +#: ../../include/conversation.php:1222 ../../mod/editwebpage.php:205 +#: ../../mod/editblock.php:162 ../../mod/editpost.php:141 +msgid "Title (optional)" +msgstr "" + +#: ../../include/conversation.php:1226 ../../mod/editwebpage.php:207 +#: ../../mod/editblock.php:165 ../../mod/editlayout.php:163 +#: ../../mod/editpost.php:143 +msgid "Categories (optional, comma-separated list)" +msgstr "" + +#: ../../include/conversation.php:1228 ../../mod/editwebpage.php:191 +#: ../../mod/editblock.php:151 ../../mod/editlayout.php:149 +#: ../../mod/editpost.php:130 ../../mod/events.php:474 +msgid "Permission settings" +msgstr "" + +#: ../../include/conversation.php:1229 +msgid "permissions" +msgstr "" + +#: ../../include/conversation.php:1237 ../../mod/editwebpage.php:200 +#: ../../mod/editblock.php:159 ../../mod/editlayout.php:156 +#: ../../mod/editpost.php:138 +msgid "Public post" +msgstr "" + +#: ../../include/conversation.php:1239 ../../mod/editwebpage.php:208 +#: ../../mod/editblock.php:166 ../../mod/editlayout.php:164 +#: ../../mod/editpost.php:144 +msgid "Example: bob@example.com, mary@example.com" +msgstr "" + +#: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 +#: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 +#: ../../mod/mail.php:245 ../../mod/mail.php:374 ../../mod/editpost.php:155 +msgid "Set expiration date" +msgstr "" + +#: ../../include/conversation.php:1255 +msgid "Set publish date" +msgstr "" + +#: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 +#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:157 +msgid "Encrypt text" +msgstr "" + +#: ../../include/conversation.php:1259 ../../mod/editpost.php:159 +msgid "OK" +msgstr "" + +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 +#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/editpost.php:160 +msgid "Cancel" +msgstr "" + +#: ../../include/conversation.php:1503 +msgid "Discover" +msgstr "" + +#: ../../include/conversation.php:1506 +msgid "Imported public streams" +msgstr "" + +#: ../../include/conversation.php:1511 +msgid "Commented Order" +msgstr "" + +#: ../../include/conversation.php:1514 +msgid "Sort by Comment Date" +msgstr "" + +#: ../../include/conversation.php:1518 +msgid "Posted Order" +msgstr "" + +#: ../../include/conversation.php:1521 +msgid "Sort by Post Date" +msgstr "" + +#: ../../include/conversation.php:1529 +msgid "Posts that mention or involve you" +msgstr "" + +#: ../../include/conversation.php:1535 ../../mod/connections.php:72 +#: ../../mod/connections.php:82 ../../mod/menu.php:112 +msgid "New" +msgstr "" + +#: ../../include/conversation.php:1538 +msgid "Activity Stream - by date" +msgstr "" + +#: ../../include/conversation.php:1544 +msgid "Starred" +msgstr "" + +#: ../../include/conversation.php:1547 +msgid "Favourite Posts" +msgstr "" + +#: ../../include/conversation.php:1554 +msgid "Spam" +msgstr "" + +#: ../../include/conversation.php:1557 +msgid "Posts flagged as SPAM" +msgstr "" + +#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +msgid "Channel" +msgstr "" + +#: ../../include/conversation.php:1604 +msgid "Status Messages and Posts" +msgstr "" + +#: ../../include/conversation.php:1613 +msgid "About" +msgstr "" + +#: ../../include/conversation.php:1616 +msgid "Profile Details" +msgstr "" + +#: ../../include/conversation.php:1622 ../../include/nav.php:92 +#: ../../include/apps.php:139 ../../mod/fbrowser.php:25 +msgid "Photos" +msgstr "" + +#: ../../include/conversation.php:1625 ../../include/photos.php:483 +msgid "Photo Albums" +msgstr "" + +#: ../../include/conversation.php:1632 +msgid "Files and Storage" +msgstr "" + +#: ../../include/conversation.php:1642 ../../include/conversation.php:1645 +msgid "Chatrooms" +msgstr "" + +#: ../../include/conversation.php:1655 ../../include/nav.php:103 +#: ../../include/apps.php:129 +msgid "Bookmarks" +msgstr "" + +#: ../../include/conversation.php:1658 +msgid "Saved Bookmarks" +msgstr "" + +#: ../../include/conversation.php:1665 ../../include/nav.php:107 +#: ../../include/apps.php:136 ../../mod/webpages.php:178 +msgid "Webpages" +msgstr "" + +#: ../../include/conversation.php:1668 +msgid "Manage Webpages" +msgstr "" + +#: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 +#: ../../mod/photos.php:1094 +msgid "View all" +msgstr "" + +#: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 +#: ../../mod/photos.php:1091 +msgctxt "noun" +msgid "Dislike" +msgid_plural "Dislikes" msgstr[0] "" msgstr[1] "" -#: ../../include/ItemObject.php:302 ../../include/ItemObject.php:303 -#, php-format -msgid "View %s's profile - %s" +#: ../../include/conversation.php:1727 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1730 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1733 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1736 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1739 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1742 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/auth.php:132 +msgid "Logged out." msgstr "" -#: ../../include/ItemObject.php:306 -msgid "to" +#: ../../include/auth.php:273 +msgid "Failed authentication" msgstr "" -#: ../../include/ItemObject.php:307 -msgid "via" +#: ../../include/auth.php:287 ../../mod/openid.php:189 +msgid "Login failed." msgstr "" -#: ../../include/ItemObject.php:308 -msgid "Wall-to-Wall" +#: ../../include/contact_selectors.php:56 +msgid "Frequently" msgstr "" -#: ../../include/ItemObject.php:309 -msgid "via Wall-To-Wall:" +#: ../../include/contact_selectors.php:57 +msgid "Hourly" msgstr "" -#: ../../include/ItemObject.php:312 -msgid "Delivery Report" +#: ../../include/contact_selectors.php:58 +msgid "Twice daily" msgstr "" -#: ../../include/ItemObject.php:348 -msgid "Save Bookmarks" +#: ../../include/contact_selectors.php:59 +msgid "Daily" msgstr "" -#: ../../include/ItemObject.php:349 -msgid "Add to Calendar" +#: ../../include/contact_selectors.php:60 +msgid "Weekly" msgstr "" -#: ../../include/ItemObject.php:358 -msgid "Mark all seen" +#: ../../include/contact_selectors.php:61 +msgid "Monthly" msgstr "" -#: ../../include/ItemObject.php:364 ../../mod/photos.php:1212 -msgctxt "noun" -msgid "Likes" +#: ../../include/contact_selectors.php:76 +msgid "Friendica" msgstr "" -#: ../../include/ItemObject.php:365 ../../mod/photos.php:1213 -msgctxt "noun" -msgid "Dislikes" +#: ../../include/contact_selectors.php:77 +msgid "OStatus" msgstr "" -#: ../../include/ItemObject.php:680 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 -msgid "This is you" +#: ../../include/contact_selectors.php:78 +msgid "RSS/Atom" msgstr "" -#: ../../include/ItemObject.php:689 -msgid "Image" +#: ../../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/ItemObject.php:690 -msgid "Insert Link" +#: ../../include/contact_selectors.php:80 +msgid "Diaspora" msgstr "" -#: ../../include/ItemObject.php:691 -msgid "Video" +#: ../../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/zot.php:685 @@ -2770,19 +2863,15 @@ 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 "" -#: ../../include/api.php:1389 -msgid "Public Timeline" -msgstr "" - #: ../../include/bbcode.php:123 ../../include/bbcode.php:794 #: ../../include/bbcode.php:797 ../../include/bbcode.php:802 #: ../../include/bbcode.php:805 ../../include/bbcode.php:808 @@ -2846,1449 +2935,1567 @@ msgstr "" msgid "$1 wrote:" msgstr "" -#: ../../include/account.php:27 -msgid "Not a valid email address" +#: ../../include/contact_widgets.php:14 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 +msgid "Advanced" msgstr "" -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" +#: ../../include/contact_widgets.php:22 +msgid "Find Channels" msgstr "" -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." +#: ../../include/contact_widgets.php:23 +msgid "Enter name or interest" msgstr "" -#: ../../include/account.php:67 -msgid "An invitation is required." +#: ../../include/contact_widgets.php:24 +msgid "Connect/Follow" msgstr "" -#: ../../include/account.php:71 -msgid "Invitation could not be verified." +#: ../../include/contact_widgets.php:25 +msgid "Examples: Robert Morgenstein, Fishing" msgstr "" -#: ../../include/account.php:121 -msgid "Please enter the required information." +#: ../../include/contact_widgets.php:26 ../../mod/directory.php:381 +#: ../../mod/directory.php:386 ../../mod/connections.php:266 +msgid "Find" msgstr "" -#: ../../include/account.php:188 -msgid "Failed to store account information." +#: ../../include/contact_widgets.php:27 ../../mod/directory.php:385 +#: ../../mod/suggest.php:60 +msgid "Channel Suggestions" msgstr "" -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" +#: ../../include/contact_widgets.php:29 +msgid "Random Profile" msgstr "" -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" +#: ../../include/contact_widgets.php:30 +msgid "Invite Friends" msgstr "" -#: ../../include/account.php:338 -msgid "your registration password" +#: ../../include/contact_widgets.php:32 +msgid "Advanced example: name=fred and country=iceland" msgstr "" -#: ../../include/account.php:341 ../../include/account.php:401 +#: ../../include/contact_widgets.php:128 #, php-format -msgid "Registration details for %s" +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/contact_widgets.php:133 +msgid "show more" msgstr "" -#: ../../include/account.php:410 -msgid "Account approved." +#: ../../include/dir_fns.php:139 +msgid "Directory Options" msgstr "" -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" +#: ../../include/dir_fns.php:141 +msgid "Safe Mode" msgstr "" -#: ../../include/account.php:494 -msgid "Account verified. Please login." +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 +#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:462 +#: ../../mod/events.php:463 ../../mod/events.php:472 ../../mod/mitem.php:154 +#: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 +#: ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "No" msgstr "" -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 +#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/events.php:462 ../../mod/events.php:463 ../../mod/events.php:472 +#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 +#: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "Yes" msgstr "" -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." +#: ../../include/dir_fns.php:142 +msgid "Public Forums Only" msgstr "" -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." +#: ../../include/dir_fns.php:143 +msgid "This Website Only" msgstr "" -#: ../../include/follow.php:28 -msgid "Channel is blocked on this site." +#: ../../include/enotify.php:96 +#, php-format +msgid "%s <!item_type!>" msgstr "" -#: ../../include/follow.php:33 -msgid "Channel location missing." +#: ../../include/enotify.php:100 +#, php-format +msgid "[Hubzilla:Notify] New mail received at %s" msgstr "" -#: ../../include/follow.php:82 -msgid "Response from remote channel was incomplete." +#: ../../include/enotify.php:102 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." msgstr "" -#: ../../include/follow.php:99 -msgid "Channel was deleted and no longer exists." +#: ../../include/enotify.php:103 +#, php-format +msgid "%1$s sent you %2$s." msgstr "" -#: ../../include/follow.php:152 ../../include/follow.php:180 -msgid "Protocol disabled." +#: ../../include/enotify.php:103 +msgid "a private message" msgstr "" -#: ../../include/follow.php:170 -msgid "Channel discovery failed." +#: ../../include/enotify.php:104 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." msgstr "" -#: ../../include/follow.php:196 -msgid "local account not found." +#: ../../include/enotify.php:160 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" msgstr "" -#: ../../include/follow.php:220 -msgid "Cannot connect to yourself." +#: ../../include/enotify.php:168 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" msgstr "" -#: ../../include/security.php:381 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." +#: ../../include/enotify.php:177 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" msgstr "" -#: ../../include/contact_widgets.php:14 +#: ../../include/enotify.php:188 #, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "" -msgstr[1] "" +msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" +msgstr "" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:438 -msgid "Advanced" +#: ../../include/enotify.php:189 +#, php-format +msgid "%1$s, %2$s commented on an item/conversation you have been following." msgstr "" -#: ../../include/contact_widgets.php:22 -msgid "Find Channels" +#: ../../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/contact_widgets.php:23 -msgid "Enter name or interest" +#: ../../include/enotify.php:198 +#, php-format +msgid "[Hubzilla:Notify] %s posted to your profile wall" msgstr "" -#: ../../include/contact_widgets.php:24 -msgid "Connect/Follow" +#: ../../include/enotify.php:200 +#, php-format +msgid "%1$s, %2$s posted to your profile wall at %3$s" msgstr "" -#: ../../include/contact_widgets.php:25 -msgid "Examples: Robert Morgenstein, Fishing" +#: ../../include/enotify.php:202 +#, php-format +msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" msgstr "" -#: ../../include/contact_widgets.php:26 ../../mod/directory.php:379 -#: ../../mod/directory.php:384 ../../mod/connections.php:266 -msgid "Find" +#: ../../include/enotify.php:226 +#, php-format +msgid "[Hubzilla:Notify] %s tagged you" msgstr "" -#: ../../include/contact_widgets.php:27 ../../mod/directory.php:383 -#: ../../mod/suggest.php:60 -msgid "Channel Suggestions" +#: ../../include/enotify.php:227 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" msgstr "" -#: ../../include/contact_widgets.php:29 -msgid "Random Profile" +#: ../../include/enotify.php:228 +#, php-format +msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." msgstr "" -#: ../../include/contact_widgets.php:30 -msgid "Invite Friends" +#: ../../include/enotify.php:240 +#, php-format +msgid "[Hubzilla:Notify] %1$s poked you" msgstr "" -#: ../../include/contact_widgets.php:32 -msgid "Advanced example: name=fred and country=iceland" +#: ../../include/enotify.php:241 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" msgstr "" -#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:98 -#: ../../include/widgets.php:306 -msgid "Everything" +#: ../../include/enotify.php:242 +#, php-format +msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." msgstr "" -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 -msgid "Categories" +#: ../../include/enotify.php:258 +#, php-format +msgid "[Hubzilla:Notify] %s tagged your post" msgstr "" -#: ../../include/contact_widgets.php:128 +#: ../../include/enotify.php:259 #, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "" -msgstr[1] "" +msgid "%1$s, %2$s tagged your post at %3$s" +msgstr "" -#: ../../include/contact_widgets.php:133 -msgid "show more" +#: ../../include/enotify.php:260 +#, php-format +msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" msgstr "" -#: ../../include/group.php:26 +#: ../../include/enotify.php:272 +msgid "[Hubzilla:Notify] Introduction received" +msgstr "" + +#: ../../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:274 +#, php-format msgid "" -"A deleted group with this name was revived. Existing item permissions " -"<strong>may</strong> apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." +"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." msgstr "" -#: ../../include/group.php:232 -msgid "Add new connections to this collection (privacy group)" +#: ../../include/enotify.php:278 ../../include/enotify.php:297 +#, php-format +msgid "You may visit their profile at %s" msgstr "" -#: ../../include/group.php:251 ../../mod/admin.php:813 -msgid "All Channels" +#: ../../include/enotify.php:280 +#, php-format +msgid "Please visit %s to approve or reject the connection request." msgstr "" -#: ../../include/group.php:273 -msgid "edit" +#: ../../include/enotify.php:287 +msgid "[Hubzilla:Notify] Friend suggestion received" msgstr "" -#: ../../include/group.php:295 -msgid "Collections" +#: ../../include/enotify.php:288 +#, php-format +msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" msgstr "" -#: ../../include/group.php:296 -msgid "Edit collection" +#: ../../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/group.php:297 -msgid "Add new collection" +#: ../../include/enotify.php:295 +msgid "Name:" msgstr "" -#: ../../include/group.php:298 -msgid "Channels not in any collection" +#: ../../include/enotify.php:296 +msgid "Photo:" msgstr "" -#: ../../include/group.php:300 ../../include/widgets.php:274 -msgid "add" +#: ../../include/enotify.php:299 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." msgstr "" -#: ../../include/message.php:18 -msgid "No recipient provided." +#: ../../include/enotify.php:514 +msgid "[Hubzilla:Notify]" msgstr "" -#: ../../include/message.php:23 -msgid "[no subject]" +#: ../../include/follow.php:28 +msgid "Channel is blocked on this site." msgstr "" -#: ../../include/message.php:43 -msgid "Unable to determine sender." +#: ../../include/follow.php:33 +msgid "Channel location missing." msgstr "" -#: ../../include/message.php:218 -msgid "Stored post could not be verified." +#: ../../include/follow.php:82 +msgid "Response from remote channel was incomplete." msgstr "" -#: ../../include/identity.php:32 -msgid "Unable to obtain identity information from database" +#: ../../include/follow.php:99 +msgid "Channel was deleted and no longer exists." msgstr "" -#: ../../include/identity.php:66 -msgid "Empty name" +#: ../../include/follow.php:152 ../../include/follow.php:180 +msgid "Protocol disabled." msgstr "" -#: ../../include/identity.php:69 -msgid "Name too long" +#: ../../include/follow.php:170 +msgid "Channel discovery failed." msgstr "" -#: ../../include/identity.php:181 -msgid "No account identifier" +#: ../../include/follow.php:196 +msgid "local account not found." msgstr "" -#: ../../include/identity.php:193 -msgid "Nickname is required." +#: ../../include/follow.php:220 +msgid "Cannot connect to yourself." msgstr "" -#: ../../include/identity.php:207 -msgid "Reserved nickname. Please choose another." +#: ../../include/oembed.php:213 +msgid "Embedded content" msgstr "" -#: ../../include/identity.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." +#: ../../include/oembed.php:222 +msgid "Embedding disabled" msgstr "" -#: ../../include/identity.php:288 -msgid "Unable to retrieve created identity" +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 +msgid "Logout" msgstr "" -#: ../../include/identity.php:346 -msgid "Default Profile" +#: ../../include/nav.php:82 ../../include/nav.php:114 +msgid "End this session" msgstr "" -#: ../../include/identity.php:769 -msgid "Requested channel is not available." +#: ../../include/nav.php:85 ../../include/nav.php:145 +msgid "Home" msgstr "" -#: ../../include/identity.php:815 ../../mod/achievements.php:11 -#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 -#: ../../mod/editblock.php:29 ../../mod/profile.php:16 -#: ../../mod/webpages.php:29 ../../mod/blocks.php:29 -#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 -#: ../../mod/connect.php:13 -msgid "Requested profile is not available." +#: ../../include/nav.php:85 +msgid "Your posts and conversations" msgstr "" -#: ../../include/identity.php:978 ../../mod/profiles.php:774 -msgid "Change profile photo" +#: ../../include/nav.php:86 +msgid "Your profile page" msgstr "" -#: ../../include/identity.php:984 -msgid "Profiles" +#: ../../include/nav.php:88 +msgid "Edit Profiles" msgstr "" -#: ../../include/identity.php:984 -msgid "Manage/edit profiles" +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" msgstr "" -#: ../../include/identity.php:985 ../../mod/profiles.php:775 -msgid "Create New Profile" +#: ../../include/nav.php:90 +msgid "Edit your profile" msgstr "" -#: ../../include/identity.php:988 ../../include/nav.php:90 -msgid "Edit Profile" +#: ../../include/nav.php:92 +msgid "Your photos" msgstr "" -#: ../../include/identity.php:1000 ../../mod/profiles.php:786 -msgid "Profile Image" +#: ../../include/nav.php:93 +msgid "Your files" msgstr "" -#: ../../include/identity.php:1003 -msgid "visible to everybody" +#: ../../include/nav.php:97 ../../include/apps.php:146 +msgid "Chat" msgstr "" -#: ../../include/identity.php:1004 ../../mod/profiles.php:669 -#: ../../mod/profiles.php:790 -msgid "Edit visibility" +#: ../../include/nav.php:97 +msgid "Your chatrooms" msgstr "" -#: ../../include/identity.php:1020 ../../include/identity.php:1260 -msgid "Gender:" +#: ../../include/nav.php:103 +msgid "Your bookmarks" msgstr "" -#: ../../include/identity.php:1021 ../../include/identity.php:1304 -msgid "Status:" +#: ../../include/nav.php:107 +msgid "Your webpages" msgstr "" -#: ../../include/identity.php:1022 ../../include/identity.php:1315 -msgid "Homepage:" +#: ../../include/nav.php:111 ../../include/apps.php:131 ../../boot.php:1486 +msgid "Login" msgstr "" -#: ../../include/identity.php:1023 -msgid "Online Now" +#: ../../include/nav.php:111 +msgid "Sign in" msgstr "" -#: ../../include/identity.php:1107 ../../include/identity.php:1185 -#: ../../mod/ping.php:318 -msgid "g A l F d" +#: ../../include/nav.php:128 +#, php-format +msgid "%s - click to logout" msgstr "" -#: ../../include/identity.php:1108 ../../include/identity.php:1186 -msgid "F d" +#: ../../include/nav.php:131 +msgid "Remote authentication" msgstr "" -#: ../../include/identity.php:1153 ../../include/identity.php:1225 -#: ../../mod/ping.php:341 -msgid "[today]" +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" msgstr "" -#: ../../include/identity.php:1164 -msgid "Birthday Reminders" +#: ../../include/nav.php:145 +msgid "Home Page" msgstr "" -#: ../../include/identity.php:1165 -msgid "Birthdays this week:" +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 +msgid "Register" msgstr "" -#: ../../include/identity.php:1218 -msgid "[No description]" +#: ../../include/nav.php:149 +msgid "Create an account" msgstr "" -#: ../../include/identity.php:1236 -msgid "Event Reminders" +#: ../../include/nav.php:154 ../../include/apps.php:142 +#: ../../mod/layouts.php:176 ../../mod/help.php:202 ../../mod/help.php:207 +msgid "Help" msgstr "" -#: ../../include/identity.php:1237 -msgid "Events this week:" +#: ../../include/nav.php:154 +msgid "Help and documentation" msgstr "" -#: ../../include/identity.php:1258 ../../mod/settings.php:1027 -msgid "Full Name:" +#: ../../include/nav.php:157 +msgid "Applications, utilities, links, games" msgstr "" -#: ../../include/identity.php:1265 -msgid "Like this channel" +#: ../../include/nav.php:159 ../../include/text.php:867 +#: ../../include/text.php:879 ../../include/apps.php:147 +#: ../../mod/search.php:40 +msgid "Search" msgstr "" -#: ../../include/identity.php:1289 -msgid "j F, Y" +#: ../../include/nav.php:159 +msgid "Search site @name, #tag, ?docs, content" msgstr "" -#: ../../include/identity.php:1290 -msgid "j F" +#: ../../include/nav.php:162 ../../include/apps.php:141 +msgid "Directory" msgstr "" -#: ../../include/identity.php:1297 -msgid "Birthday:" +#: ../../include/nav.php:162 +msgid "Channel Directory" msgstr "" -#: ../../include/identity.php:1301 ../../mod/directory.php:297 -msgid "Age:" +#: ../../include/nav.php:174 ../../include/apps.php:133 +msgid "Grid" msgstr "" -#: ../../include/identity.php:1310 -#, php-format -msgid "for %1$d %2$s" +#: ../../include/nav.php:174 +msgid "Your grid" msgstr "" -#: ../../include/identity.php:1313 ../../mod/profiles.php:691 -msgid "Sexual Preference:" +#: ../../include/nav.php:175 +msgid "Mark all grid notifications seen" msgstr "" -#: ../../include/identity.php:1317 ../../mod/directory.php:313 -#: ../../mod/profiles.php:693 -msgid "Hometown:" +#: ../../include/nav.php:177 ../../include/apps.php:137 +msgid "Channel Home" msgstr "" -#: ../../include/identity.php:1319 -msgid "Tags:" +#: ../../include/nav.php:177 +msgid "Channel home" msgstr "" -#: ../../include/identity.php:1321 ../../mod/profiles.php:694 -msgid "Political Views:" +#: ../../include/nav.php:178 +msgid "Mark all channel notifications seen" msgstr "" -#: ../../include/identity.php:1323 -msgid "Religion:" +#: ../../include/nav.php:181 ../../mod/connections.php:260 +msgid "Connections" msgstr "" -#: ../../include/identity.php:1325 ../../mod/directory.php:315 -msgid "About:" +#: ../../include/nav.php:184 +msgid "Notices" msgstr "" -#: ../../include/identity.php:1327 -msgid "Hobbies/Interests:" +#: ../../include/nav.php:184 +msgid "Notifications" msgstr "" -#: ../../include/identity.php:1329 ../../mod/profiles.php:697 -msgid "Likes:" +#: ../../include/nav.php:185 +msgid "See all notifications" msgstr "" -#: ../../include/identity.php:1331 ../../mod/profiles.php:698 -msgid "Dislikes:" +#: ../../include/nav.php:186 ../../mod/notifications.php:99 +msgid "Mark all system notifications seen" msgstr "" -#: ../../include/identity.php:1333 -msgid "Contact information and Social Networks:" +#: ../../include/nav.php:188 ../../include/apps.php:143 +msgid "Mail" msgstr "" -#: ../../include/identity.php:1335 -msgid "My other channels:" +#: ../../include/nav.php:188 +msgid "Private mail" msgstr "" -#: ../../include/identity.php:1337 -msgid "Musical interests:" +#: ../../include/nav.php:189 +msgid "See all private messages" msgstr "" -#: ../../include/identity.php:1339 -msgid "Books, literature:" +#: ../../include/nav.php:190 +msgid "Mark all private messages seen" msgstr "" -#: ../../include/identity.php:1341 -msgid "Television:" +#: ../../include/nav.php:196 ../../include/apps.php:140 +msgid "Events" msgstr "" -#: ../../include/identity.php:1343 -msgid "Film/dance/culture/entertainment:" +#: ../../include/nav.php:196 +msgid "Event Calendar" msgstr "" -#: ../../include/identity.php:1345 -msgid "Love/Romance:" +#: ../../include/nav.php:197 +msgid "See all events" msgstr "" -#: ../../include/identity.php:1347 -msgid "Work/employment:" +#: ../../include/nav.php:198 +msgid "Mark all events seen" msgstr "" -#: ../../include/identity.php:1349 -msgid "School/education:" +#: ../../include/nav.php:200 ../../include/apps.php:132 +#: ../../mod/manage.php:160 +msgid "Channel Manager" msgstr "" -#: ../../include/identity.php:1369 -msgid "Like this thing" +#: ../../include/nav.php:200 +msgid "Manage Your Channels" msgstr "" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 -msgid "Tags" +#: ../../include/nav.php:202 +msgid "Account/Channel Settings" msgstr "" -#: ../../include/taxonomy.php:294 -msgid "Keywords" +#: ../../include/nav.php:210 +msgid "Site Setup and Configuration" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "have" +#: ../../include/nav.php:246 +msgid "@name, #tag, ?doc, content" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "has" +#: ../../include/nav.php:247 +msgid "Please wait..." msgstr "" -#: ../../include/taxonomy.php:316 -msgid "want" +#: ../../include/security.php:381 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." msgstr "" -#: ../../include/taxonomy.php:316 -msgid "wants" +#: ../../include/text.php:394 +msgid "prev" msgstr "" -#: ../../include/taxonomy.php:317 -msgid "likes" +#: ../../include/text.php:396 +msgid "first" msgstr "" -#: ../../include/taxonomy.php:318 -msgid "dislikes" +#: ../../include/text.php:425 +msgid "last" msgstr "" -#: ../../include/attach.php:246 ../../include/attach.php:332 -msgid "Item was not found." +#: ../../include/text.php:428 +msgid "next" msgstr "" -#: ../../include/attach.php:496 -msgid "No source file." +#: ../../include/text.php:438 +msgid "older" msgstr "" -#: ../../include/attach.php:514 -msgid "Cannot locate file to replace" +#: ../../include/text.php:440 +msgid "newer" msgstr "" -#: ../../include/attach.php:532 -msgid "Cannot locate file to revise/update" +#: ../../include/text.php:785 +msgid "No connections" msgstr "" -#: ../../include/attach.php:667 +#: ../../include/text.php:797 #, php-format -msgid "File exceeds size limit of %d" +msgid "%d Connection" +msgid_plural "%d Connections" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/text.php:810 ../../mod/viewconnections.php:101 +msgid "View Connections" msgstr "" -#: ../../include/attach.php:681 -#, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +#: ../../include/text.php:954 +msgid "poke" msgstr "" -#: ../../include/attach.php:837 -msgid "File upload failed. Possible system limit or action terminated." +#: ../../include/text.php:955 +msgid "ping" msgstr "" -#: ../../include/attach.php:850 -msgid "Stored file could not be verified. Upload failed." +#: ../../include/text.php:955 +msgid "pinged" msgstr "" -#: ../../include/attach.php:898 ../../include/attach.php:914 -msgid "Path not available." +#: ../../include/text.php:956 +msgid "prod" msgstr "" -#: ../../include/attach.php:960 ../../include/attach.php:1112 -msgid "Empty pathname" +#: ../../include/text.php:956 +msgid "prodded" msgstr "" -#: ../../include/attach.php:986 -msgid "duplicate filename or path" +#: ../../include/text.php:957 +msgid "slap" msgstr "" -#: ../../include/attach.php:1008 -msgid "Path not found." +#: ../../include/text.php:957 +msgid "slapped" msgstr "" -#: ../../include/attach.php:1066 -msgid "mkdir failed." +#: ../../include/text.php:958 +msgid "finger" msgstr "" -#: ../../include/attach.php:1070 -msgid "database storage failed." +#: ../../include/text.php:958 +msgid "fingered" msgstr "" -#: ../../include/attach.php:1118 -msgid "Empty path" +#: ../../include/text.php:959 +msgid "rebuff" msgstr "" -#: ../../include/bb2diaspora.php:382 -msgid "Attachments:" +#: ../../include/text.php:959 +msgid "rebuffed" msgstr "" -#: ../../include/bb2diaspora.php:473 -msgid "$Projectname event notification:" +#: ../../include/text.php:969 +msgid "happy" msgstr "" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" +#: ../../include/text.php:970 +msgid "sad" msgstr "" -#: ../../include/widgets.php:92 -msgid "System" +#: ../../include/text.php:971 +msgid "mellow" msgstr "" -#: ../../include/widgets.php:95 -msgid "Create Personal App" +#: ../../include/text.php:972 +msgid "tired" msgstr "" -#: ../../include/widgets.php:96 -msgid "Edit Personal App" +#: ../../include/text.php:973 +msgid "perky" msgstr "" -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" +#: ../../include/text.php:974 +msgid "angry" msgstr "" -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" +#: ../../include/text.php:975 +msgid "stupified" msgstr "" -#: ../../include/widgets.php:144 -msgid "See more..." +#: ../../include/text.php:976 +msgid "puzzled" msgstr "" -#: ../../include/widgets.php:165 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." +#: ../../include/text.php:977 +msgid "interested" msgstr "" -#: ../../include/widgets.php:171 -msgid "Add New Connection" +#: ../../include/text.php:978 +msgid "bitter" msgstr "" -#: ../../include/widgets.php:172 -msgid "Enter the channel address" +#: ../../include/text.php:979 +msgid "cheerful" msgstr "" -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" +#: ../../include/text.php:980 +msgid "alive" msgstr "" -#: ../../include/widgets.php:189 -msgid "Notes" +#: ../../include/text.php:981 +msgid "annoyed" msgstr "" -#: ../../include/widgets.php:191 ../../include/text.php:858 -#: ../../include/text.php:870 ../../mod/filer.php:49 ../../mod/admin.php:1436 -#: ../../mod/admin.php:1456 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -msgid "Save" +#: ../../include/text.php:982 +msgid "anxious" msgstr "" -#: ../../include/widgets.php:265 -msgid "Remove term" +#: ../../include/text.php:983 +msgid "cranky" msgstr "" -#: ../../include/widgets.php:348 -msgid "Archives" +#: ../../include/text.php:984 +msgid "disturbed" msgstr "" -#: ../../include/widgets.php:427 ../../mod/connedit.php:566 -msgid "Me" +#: ../../include/text.php:985 +msgid "frustrated" msgstr "" -#: ../../include/widgets.php:428 ../../mod/connedit.php:567 -msgid "Family" +#: ../../include/text.php:986 +msgid "depressed" msgstr "" -#: ../../include/widgets.php:430 ../../mod/connedit.php:569 -msgid "Acquaintances" +#: ../../include/text.php:987 +msgid "motivated" msgstr "" -#: ../../include/widgets.php:431 ../../mod/connedit.php:570 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" +#: ../../include/text.php:988 +msgid "relaxed" msgstr "" -#: ../../include/widgets.php:450 -msgid "Refresh" +#: ../../include/text.php:989 +msgid "surprised" msgstr "" -#: ../../include/widgets.php:484 -msgid "Account settings" +#: ../../include/text.php:1165 +msgid "May" msgstr "" -#: ../../include/widgets.php:490 -msgid "Channel settings" +#: ../../include/text.php:1242 ../../include/text.php:1246 +msgid "Unknown Attachment" msgstr "" -#: ../../include/widgets.php:496 -msgid "Additional features" +#: ../../include/text.php:1248 +msgid "unknown" msgstr "" -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" +#: ../../include/text.php:1284 +msgid "remove category" msgstr "" -#: ../../include/widgets.php:508 -msgid "Display settings" +#: ../../include/text.php:1361 +msgid "remove from file" msgstr "" -#: ../../include/widgets.php:514 -msgid "Connected apps" +#: ../../include/text.php:1507 ../../include/text.php:1518 +msgid "Click to open/close" msgstr "" -#: ../../include/widgets.php:520 -msgid "Export channel" +#: ../../include/text.php:1692 ../../mod/events.php:638 +msgid "Link to Source" msgstr "" -#: ../../include/widgets.php:529 ../../mod/connedit.php:674 -msgid "Connection Default Permissions" +#: ../../include/text.php:1713 ../../include/text.php:1785 +msgid "default" msgstr "" -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" +#: ../../include/text.php:1721 +msgid "Page layout" msgstr "" -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" +#: ../../include/text.php:1721 +msgid "You can create your own with the layouts tool" msgstr "" -#: ../../include/widgets.php:569 -msgid "Combined View" +#: ../../include/text.php:1763 +msgid "Page content type" msgstr "" -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" +#: ../../include/text.php:1797 +msgid "Select an alternate language" msgstr "" -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" +#: ../../include/text.php:1929 +msgid "activity" msgstr "" -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" +#: ../../include/text.php:2224 +msgid "Design Tools" msgstr "" -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" +#: ../../include/text.php:2227 ../../mod/blocks.php:147 +msgid "Blocks" msgstr "" -#: ../../include/widgets.php:607 -msgid "Received Messages" +#: ../../include/text.php:2228 ../../mod/menu.php:103 +msgid "Menus" msgstr "" -#: ../../include/widgets.php:611 -msgid "Sent Messages" +#: ../../include/text.php:2229 ../../mod/layouts.php:174 +msgid "Layouts" msgstr "" -#: ../../include/widgets.php:625 -msgid "No messages." +#: ../../include/text.php:2230 +msgid "Pages" msgstr "" -#: ../../include/widgets.php:643 -msgid "Delete conversation" +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"<strong>may</strong> apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." msgstr "" -#: ../../include/widgets.php:734 -msgid "Chat Rooms" +#: ../../include/group.php:232 +msgid "Add new connections to this collection (privacy group)" msgstr "" -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" +#: ../../include/group.php:251 ../../mod/admin.php:814 +msgid "All Channels" msgstr "" -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" +#: ../../include/group.php:273 +msgid "edit" msgstr "" -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" +#: ../../include/group.php:295 +msgid "Collections" msgstr "" -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" +#: ../../include/group.php:296 +msgid "Edit collection" msgstr "" -#: ../../include/widgets.php:1060 -msgid "View Ratings" +#: ../../include/group.php:297 +msgid "Add new collection" msgstr "" -#: ../../include/widgets.php:1071 -msgid "Public Hubs" +#: ../../include/group.php:298 +msgid "Channels not in any collection" msgstr "" -#: ../../include/widgets.php:1119 -msgid "Forums" +#: ../../include/page_widgets.php:6 +msgid "New Page" msgstr "" -#: ../../include/widgets.php:1146 -msgid "Tasks" +#: ../../include/page_widgets.php:39 ../../mod/blocks.php:159 +#: ../../mod/webpages.php:187 ../../mod/layouts.php:188 +msgid "View" msgstr "" -#: ../../include/widgets.php:1155 -msgid "Documentation" +#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 +msgid "Actions" msgstr "" -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" +#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 +msgid "Page Link" msgstr "" -#: ../../include/widgets.php:1158 -msgid "For Members" +#: ../../include/page_widgets.php:43 +msgid "Title" msgstr "" -#: ../../include/widgets.php:1159 -msgid "For Administrators" +#: ../../include/page_widgets.php:44 ../../mod/blocks.php:150 +#: ../../mod/webpages.php:192 ../../mod/layouts.php:181 ../../mod/menu.php:110 +msgid "Created" msgstr "" -#: ../../include/widgets.php:1160 -msgid "For Developers" +#: ../../include/page_widgets.php:45 ../../mod/blocks.php:151 +#: ../../mod/webpages.php:193 ../../mod/layouts.php:182 ../../mod/menu.php:111 +msgid "Edited" msgstr "" -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" +#: ../../include/dba/dba_driver.php:141 +#, php-format +msgid "Cannot locate DNS info for database server '%s'" msgstr "" -#: ../../include/widgets.php:1186 -msgid "Accounts" +#: ../../include/photos.php:112 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" msgstr "" -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" +#: ../../include/photos.php:119 +msgid "Image file is empty." msgstr "" -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" +#: ../../include/photos.php:146 ../../mod/profile_photo.php:225 +msgid "Unable to process image" msgstr "" -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" +#: ../../include/photos.php:257 +msgid "Photo storage failed." msgstr "" -#: ../../include/widgets.php:1190 -msgid "Inspect queue" +#: ../../include/photos.php:487 +msgid "Upload New Photos" msgstr "" -#: ../../include/widgets.php:1191 -msgid "Profile Config" +#: ../../include/ItemObject.php:130 +msgid "Save to Folder" msgstr "" -#: ../../include/widgets.php:1192 -msgid "DB updates" +#: ../../include/ItemObject.php:151 +msgid "I will attend" msgstr "" -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" +#: ../../include/ItemObject.php:151 +msgid "I will not attend" msgstr "" -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" +#: ../../include/ItemObject.php:151 +msgid "I might attend" msgstr "" -#: ../../include/widgets.php:1215 -msgid "Plugin Features" +#: ../../include/ItemObject.php:161 +msgid "I agree" msgstr "" -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" +#: ../../include/ItemObject.php:161 +msgid "I disagree" msgstr "" -#: ../../include/text.php:391 -msgid "prev" +#: ../../include/ItemObject.php:161 +msgid "I abstain" msgstr "" -#: ../../include/text.php:393 -msgid "first" +#: ../../include/ItemObject.php:212 +msgid "Add Star" msgstr "" -#: ../../include/text.php:422 -msgid "last" +#: ../../include/ItemObject.php:213 +msgid "Remove Star" msgstr "" -#: ../../include/text.php:425 -msgid "next" +#: ../../include/ItemObject.php:214 +msgid "Toggle Star Status" msgstr "" -#: ../../include/text.php:435 -msgid "older" +#: ../../include/ItemObject.php:218 +msgid "starred" msgstr "" -#: ../../include/text.php:437 -msgid "newer" +#: ../../include/ItemObject.php:236 +msgid "Add Tag" msgstr "" -#: ../../include/text.php:775 -msgid "No connections" +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +msgid "I like this (toggle)" +msgstr "" + +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +msgid "I don't like this (toggle)" +msgstr "" + +#: ../../include/ItemObject.php:259 +msgid "Share This" msgstr "" -#: ../../include/text.php:787 +#: ../../include/ItemObject.php:259 +msgid "share" +msgstr "" + +#: ../../include/ItemObject.php:268 +msgid "Delivery Report" +msgstr "" + +#: ../../include/ItemObject.php:286 #, php-format -msgid "%d Connection" -msgid_plural "%d Connections" +msgid "%d comment" +msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: ../../include/text.php:800 ../../mod/viewconnections.php:101 -msgid "View Connections" +#: ../../include/ItemObject.php:315 ../../include/ItemObject.php:316 +#, php-format +msgid "View %s's profile - %s" msgstr "" -#: ../../include/text.php:942 -msgid "poke" +#: ../../include/ItemObject.php:319 +msgid "to" msgstr "" -#: ../../include/text.php:943 -msgid "ping" +#: ../../include/ItemObject.php:320 +msgid "via" msgstr "" -#: ../../include/text.php:943 -msgid "pinged" +#: ../../include/ItemObject.php:321 +msgid "Wall-to-Wall" msgstr "" -#: ../../include/text.php:944 -msgid "prod" +#: ../../include/ItemObject.php:322 +msgid "via Wall-To-Wall:" msgstr "" -#: ../../include/text.php:944 -msgid "prodded" +#: ../../include/ItemObject.php:362 +msgid "Save Bookmarks" msgstr "" -#: ../../include/text.php:945 -msgid "slap" +#: ../../include/ItemObject.php:363 +msgid "Add to Calendar" msgstr "" -#: ../../include/text.php:945 -msgid "slapped" +#: ../../include/ItemObject.php:372 +msgid "Mark all seen" msgstr "" -#: ../../include/text.php:946 -msgid "finger" +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +msgctxt "noun" +msgid "Likes" msgstr "" -#: ../../include/text.php:946 -msgid "fingered" +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +msgctxt "noun" +msgid "Dislikes" msgstr "" -#: ../../include/text.php:947 -msgid "rebuff" +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 +#: ../../mod/photos.php:1163 +msgid "This is you" msgstr "" -#: ../../include/text.php:947 -msgid "rebuffed" +#: ../../include/ItemObject.php:703 +msgid "Image" msgstr "" -#: ../../include/text.php:957 -msgid "happy" +#: ../../include/ItemObject.php:704 +msgid "Insert Link" msgstr "" -#: ../../include/text.php:958 -msgid "sad" +#: ../../include/ItemObject.php:705 +msgid "Video" msgstr "" -#: ../../include/text.php:959 -msgid "mellow" +#: ../../include/account.php:27 +msgid "Not a valid email address" msgstr "" -#: ../../include/text.php:960 -msgid "tired" +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" msgstr "" -#: ../../include/text.php:961 -msgid "perky" +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." msgstr "" -#: ../../include/text.php:962 -msgid "angry" +#: ../../include/account.php:67 +msgid "An invitation is required." msgstr "" -#: ../../include/text.php:963 -msgid "stupified" +#: ../../include/account.php:71 +msgid "Invitation could not be verified." msgstr "" -#: ../../include/text.php:964 -msgid "puzzled" +#: ../../include/account.php:121 +msgid "Please enter the required information." msgstr "" -#: ../../include/text.php:965 -msgid "interested" +#: ../../include/account.php:188 +msgid "Failed to store account information." msgstr "" -#: ../../include/text.php:966 -msgid "bitter" +#: ../../include/account.php:248 +#, php-format +msgid "Registration confirmation for %s" msgstr "" -#: ../../include/text.php:967 -msgid "cheerful" +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" msgstr "" -#: ../../include/text.php:968 -msgid "alive" +#: ../../include/account.php:338 +msgid "your registration password" msgstr "" -#: ../../include/text.php:969 -msgid "annoyed" +#: ../../include/account.php:341 ../../include/account.php:401 +#, php-format +msgid "Registration details for %s" msgstr "" -#: ../../include/text.php:970 -msgid "anxious" +#: ../../include/account.php:410 +msgid "Account approved." msgstr "" -#: ../../include/text.php:971 -msgid "cranky" +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" msgstr "" -#: ../../include/text.php:972 -msgid "disturbed" +#: ../../include/account.php:494 +msgid "Account verified. Please login." msgstr "" -#: ../../include/text.php:973 -msgid "frustrated" +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." msgstr "" -#: ../../include/text.php:974 -msgid "depressed" +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." msgstr "" -#: ../../include/text.php:975 -msgid "motivated" +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." msgstr "" -#: ../../include/text.php:976 -msgid "relaxed" +#: ../../include/apps.php:128 +msgid "Site Admin" msgstr "" -#: ../../include/text.php:977 -msgid "surprised" +#: ../../include/apps.php:130 +msgid "Address Book" msgstr "" -#: ../../include/text.php:1153 -msgid "May" +#: ../../include/apps.php:144 ../../mod/mood.php:131 +msgid "Mood" msgstr "" -#: ../../include/text.php:1230 ../../include/text.php:1234 -msgid "Unknown Attachment" +#: ../../include/apps.php:148 +msgid "Probe" msgstr "" -#: ../../include/text.php:1236 -msgid "unknown" +#: ../../include/apps.php:149 +msgid "Suggest" msgstr "" -#: ../../include/text.php:1272 -msgid "remove category" +#: ../../include/apps.php:150 +msgid "Random Channel" msgstr "" -#: ../../include/text.php:1349 -msgid "remove from file" +#: ../../include/apps.php:151 +msgid "Invite" msgstr "" -#: ../../include/text.php:1461 ../../include/text.php:1472 -msgid "Click to open/close" +#: ../../include/apps.php:152 +msgid "Features" msgstr "" -#: ../../include/text.php:1640 ../../mod/events.php:497 -msgid "Link to Source" +#: ../../include/apps.php:153 ../../mod/id.php:28 +msgid "Language" msgstr "" -#: ../../include/text.php:1661 ../../include/text.php:1732 -msgid "default" +#: ../../include/apps.php:154 +msgid "Post" msgstr "" -#: ../../include/text.php:1669 -msgid "Page layout" +#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 +#: ../../mod/id.php:19 +msgid "Profile Photo" msgstr "" -#: ../../include/text.php:1669 -msgid "You can create your own with the layouts tool" +#: ../../include/apps.php:252 ../../mod/settings.php:84 +#: ../../mod/settings.php:612 +msgid "Update" msgstr "" -#: ../../include/text.php:1710 -msgid "Page content type" +#: ../../include/apps.php:252 +msgid "Install" msgstr "" -#: ../../include/text.php:1744 -msgid "Select an alternate language" +#: ../../include/apps.php:257 +msgid "Purchase" msgstr "" -#: ../../include/text.php:1876 -msgid "activity" +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" msgstr "" -#: ../../include/text.php:2171 -msgid "Design Tools" +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" msgstr "" -#: ../../include/text.php:2174 ../../mod/blocks.php:147 -msgid "Blocks" +#: ../../include/permissions.php:28 +msgid "Can view my connections" msgstr "" -#: ../../include/text.php:2175 ../../mod/menu.php:103 -msgid "Menus" +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" msgstr "" -#: ../../include/text.php:2176 ../../mod/layouts.php:174 -msgid "Layouts" +#: ../../include/permissions.php:30 +msgid "Can view my webpages" msgstr "" -#: ../../include/text.php:2177 -msgid "Pages" +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1502 -msgid "Logout" +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:114 -msgid "End this session" +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" msgstr "" -#: ../../include/nav.php:85 ../../include/nav.php:145 -msgid "Home" +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" msgstr "" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" msgstr "" -#: ../../include/nav.php:86 -msgid "Your profile page" +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" msgstr "" -#: ../../include/nav.php:88 -msgid "Edit Profiles" +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" msgstr "" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" msgstr "" -#: ../../include/nav.php:90 -msgid "Edit your profile" +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" msgstr "" -#: ../../include/nav.php:92 -msgid "Your photos" +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" msgstr "" -#: ../../include/nav.php:93 -msgid "Your files" +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" msgstr "" -#: ../../include/nav.php:97 -msgid "Your chatrooms" +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" msgstr "" -#: ../../include/nav.php:103 -msgid "Your bookmarks" +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" msgstr "" -#: ../../include/nav.php:107 -msgid "Your webpages" +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" msgstr "" -#: ../../include/nav.php:111 -msgid "Sign in" +#: ../../include/permissions.php:46 +msgid "Extremely advanced. Leave this alone unless you know what you are doing" msgstr "" -#: ../../include/nav.php:128 -#, php-format -msgid "%s - click to logout" +#: ../../include/permissions.php:867 +msgid "Social Networking" msgstr "" -#: ../../include/nav.php:131 -msgid "Remote authentication" +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Mostly Public" msgstr "" -#: ../../include/nav.php:131 -msgid "Click to authenticate to your home hub" +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Restricted" msgstr "" -#: ../../include/nav.php:145 -msgid "Home Page" +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +msgid "Private" msgstr "" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1479 -msgid "Register" +#: ../../include/permissions.php:868 +msgid "Community Forum" msgstr "" -#: ../../include/nav.php:149 -msgid "Create an account" +#: ../../include/permissions.php:869 +msgid "Feed Republish" msgstr "" -#: ../../include/nav.php:154 -msgid "Help and documentation" +#: ../../include/permissions.php:870 +msgid "Special Purpose" msgstr "" -#: ../../include/nav.php:157 -msgid "Applications, utilities, links, games" +#: ../../include/permissions.php:870 +msgid "Celebrity/Soapbox" msgstr "" -#: ../../include/nav.php:159 -msgid "Search site @name, #tag, ?docs, content" +#: ../../include/permissions.php:870 +msgid "Group Repository" msgstr "" -#: ../../include/nav.php:162 -msgid "Channel Directory" +#: ../../include/permissions.php:871 +msgid "Custom/Expert Mode" msgstr "" -#: ../../include/nav.php:174 -msgid "Your grid" +#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 +#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +msgid "Profile Photos" msgstr "" -#: ../../include/nav.php:175 -msgid "Mark all grid notifications seen" +#: ../../mod/filestorage.php:82 +msgid "Permission Denied." msgstr "" -#: ../../include/nav.php:177 -msgid "Channel home" +#: ../../mod/filestorage.php:98 +msgid "File not found." msgstr "" -#: ../../include/nav.php:178 -msgid "Mark all channel notifications seen" +#: ../../mod/filestorage.php:141 +msgid "Edit file permissions" msgstr "" -#: ../../include/nav.php:181 ../../mod/connections.php:260 -msgid "Connections" +#: ../../mod/filestorage.php:150 +msgid "Set/edit permissions" msgstr "" -#: ../../include/nav.php:184 -msgid "Notices" +#: ../../mod/filestorage.php:151 +msgid "Include all files and sub folders" msgstr "" -#: ../../include/nav.php:184 -msgid "Notifications" +#: ../../mod/filestorage.php:152 +msgid "Return to file list" msgstr "" -#: ../../include/nav.php:185 -msgid "See all notifications" +#: ../../mod/filestorage.php:154 +msgid "Copy/paste this code to attach file to a post" msgstr "" -#: ../../include/nav.php:186 ../../mod/notifications.php:99 -msgid "Mark all system notifications seen" +#: ../../mod/filestorage.php:155 +msgid "Copy/paste this URL to link file from a web page" msgstr "" -#: ../../include/nav.php:188 -msgid "Private mail" +#: ../../mod/filestorage.php:157 +msgid "Share this file" msgstr "" -#: ../../include/nav.php:189 -msgid "See all private messages" +#: ../../mod/filestorage.php:158 +msgid "Show URL to this file" msgstr "" -#: ../../include/nav.php:190 -msgid "Mark all private messages seen" +#: ../../mod/filestorage.php:159 +msgid "Notify your contacts about this file" msgstr "" -#: ../../include/nav.php:196 -msgid "Event Calendar" +#: ../../mod/group.php:20 +msgid "Collection created." msgstr "" -#: ../../include/nav.php:197 -msgid "See all events" +#: ../../mod/group.php:26 +msgid "Could not create collection." msgstr "" -#: ../../include/nav.php:198 -msgid "Mark all events seen" +#: ../../mod/group.php:54 +msgid "Collection updated." msgstr "" -#: ../../include/nav.php:200 -msgid "Manage Your Channels" +#: ../../mod/group.php:86 +msgid "Create a collection of channels." msgstr "" -#: ../../include/nav.php:202 -msgid "Account/Channel Settings" +#: ../../mod/group.php:87 ../../mod/group.php:180 +msgid "Collection Name: " msgstr "" -#: ../../include/nav.php:210 -msgid "Site Setup and Configuration" +#: ../../mod/group.php:89 ../../mod/group.php:183 +msgid "Members are visible to other channels" msgstr "" -#: ../../include/nav.php:246 -msgid "@name, #tag, ?doc, content" +#: ../../mod/group.php:107 +msgid "Collection removed." msgstr "" -#: ../../include/nav.php:247 -msgid "Please wait..." +#: ../../mod/group.php:109 +msgid "Unable to remove collection." msgstr "" -#: ../../include/dir_fns.php:126 -msgid "Directory Options" +#: ../../mod/group.php:179 +msgid "Collection Editor" msgstr "" -#: ../../include/dir_fns.php:128 -msgid "Safe Mode" +#: ../../mod/group.php:193 +msgid "Members" msgstr "" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 -#: ../../mod/mitem.php:229 ../../mod/connedit.php:630 -#: ../../mod/connedit.php:675 ../../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/settings.php:575 ../../mod/api.php:106 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "No" +#: ../../mod/group.php:195 +msgid "All Connected Channels" msgstr "" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../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/settings.php:575 ../../mod/api.php:105 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "Yes" +#: ../../mod/group.php:227 +msgid "Click on a channel to add or remove." msgstr "" -#: ../../include/dir_fns.php:129 -msgid "Public Forums Only" +#: ../../mod/item.php:173 +msgid "Unable to locate original post." msgstr "" -#: ../../include/dir_fns.php:130 -msgid "This Website Only" +#: ../../mod/item.php:417 +msgid "Empty post discarded." msgstr "" -#: ../../mod/achievements.php:34 -msgid "Some blurb about what to do when you're new here" +#: ../../mod/item.php:457 +msgid "Executable content type not permitted to this channel." msgstr "" -#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 -msgid "Contact not found." +#: ../../mod/item.php:822 +msgid "Duplicate post suppressed." msgstr "" -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." +#: ../../mod/item.php:953 +msgid "System error. Post not saved." msgstr "" -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" +#: ../../mod/item.php:1220 +msgid "Unable to obtain post information from database." msgstr "" -#: ../../mod/fsuggest.php:99 +#: ../../mod/item.php:1227 #, php-format -msgid "Suggest a friend for %s" +msgid "You have reached your limit of %1$.0f top level posts." msgstr "" -#: ../../mod/directory.php:59 ../../mod/display.php:13 ../../mod/search.php:13 -#: ../../mod/photos.php:490 ../../mod/ratings.php:82 -#: ../../mod/viewconnections.php:17 -msgid "Public access denied." +#: ../../mod/item.php:1234 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." msgstr "" -#: ../../mod/directory.php:234 -#, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "" -msgstr[1] "" +#: ../../mod/common.php:10 +msgid "No channel." +msgstr "" -#: ../../mod/directory.php:245 -msgid "Gender: " +#: ../../mod/common.php:39 +msgid "Common connections" msgstr "" -#: ../../mod/directory.php:247 -msgid "Status: " +#: ../../mod/common.php:44 +msgid "No connections in common." msgstr "" -#: ../../mod/directory.php:249 -msgid "Homepage: " +#: ../../mod/connect.php:56 ../../mod/connect.php:104 +msgid "Continue" msgstr "" -#: ../../mod/directory.php:308 ../../mod/events.php:699 -msgid "Description:" +#: ../../mod/connect.php:85 +msgid "Premium Channel Setup" msgstr "" -#: ../../mod/directory.php:317 -msgid "Public Forum:" +#: ../../mod/connect.php:87 +msgid "Enable premium channel connection restrictions" msgstr "" -#: ../../mod/directory.php:320 -msgid "Keywords: " +#: ../../mod/connect.php:88 +msgid "" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." msgstr "" -#: ../../mod/directory.php:323 -msgid "Don't suggest" +#: ../../mod/connect.php:90 ../../mod/connect.php:110 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" msgstr "" -#: ../../mod/directory.php:325 -msgid "Common connections:" +#: ../../mod/connect.php:91 +msgid "" +"Potential connections will then see the following text before proceeding:" msgstr "" -#: ../../mod/directory.php:374 -msgid "Global Directory" +#: ../../mod/connect.php:92 ../../mod/connect.php:113 +msgid "" +"By continuing, I certify that I have complied with any instructions provided " +"on this page." msgstr "" -#: ../../mod/directory.php:374 -msgid "Local Directory" +#: ../../mod/connect.php:101 +msgid "(No specific instructions have been provided by the channel owner.)" msgstr "" -#: ../../mod/directory.php:380 -msgid "Finding:" +#: ../../mod/connect.php:109 +msgid "Restricted or Premium Channel" msgstr "" -#: ../../mod/directory.php:385 -msgid "next page" +#: ../../mod/match.php:22 +msgid "Profile Match" msgstr "" -#: ../../mod/directory.php:385 -msgid "previous page" +#: ../../mod/match.php:31 +msgid "No keywords to match. Please add keywords to your default profile." msgstr "" -#: ../../mod/directory.php:386 -msgid "Sort options" +#: ../../mod/match.php:63 +msgid "is interested in:" msgstr "" -#: ../../mod/directory.php:387 -msgid "Alphabetic" +#: ../../mod/match.php:70 +msgid "No matches" msgstr "" -#: ../../mod/directory.php:388 -msgid "Reverse Alphabetic" +#: ../../mod/openid.php:26 +msgid "OpenID protocol error. No ID returned." msgstr "" -#: ../../mod/directory.php:389 -msgid "Newest to Oldest" +#: ../../mod/openid.php:72 ../../mod/openid.php:179 ../../mod/post.php:285 +#, php-format +msgid "Welcome %s. Remote authentication successful." msgstr "" -#: ../../mod/directory.php:390 -msgid "Oldest to Newest" +#: ../../mod/achievements.php:34 +msgid "Some blurb about what to do when you're new here" msgstr "" -#: ../../mod/directory.php:407 -msgid "No entries (some entries may be hidden)." +#: ../../mod/chatsvc.php:111 +msgid "Away" msgstr "" -#: ../../mod/bookmarks.php:40 -msgid "Bookmark added" +#: ../../mod/chatsvc.php:115 +msgid "Online" msgstr "" -#: ../../mod/bookmarks.php:62 -msgid "My Bookmarks" +#: ../../mod/pubsites.php:18 +msgid "Public Sites" msgstr "" -#: ../../mod/bookmarks.php:73 -msgid "My Connections Bookmarks" +#: ../../mod/pubsites.php:21 +msgid "" +"The listed sites allow public registration for the $Projectname network. All " +"sites in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some sites may require subscription or " +"provide tiered service plans. The provider links <strong>may</strong> " +"provide additional details." msgstr "" -#: ../../mod/openid.php:26 -msgid "OpenID protocol error. No ID returned." +#: ../../mod/pubsites.php:27 +msgid "Rate this hub" msgstr "" -#: ../../mod/openid.php:72 ../../mod/openid.php:179 ../../mod/post.php:285 +#: ../../mod/pubsites.php:28 +msgid "Site URL" +msgstr "" + +#: ../../mod/pubsites.php:28 +msgid "Access Type" +msgstr "" + +#: ../../mod/pubsites.php:28 +msgid "Registration Policy" +msgstr "" + +#: ../../mod/pubsites.php:28 +msgid "Project" +msgstr "" + +#: ../../mod/pubsites.php:28 +msgid "View hub ratings" +msgstr "" + +#: ../../mod/pubsites.php:32 +msgid "Rate" +msgstr "" + +#: ../../mod/pubsites.php:33 +msgid "View ratings" +msgstr "" + +#: ../../mod/tagger.php:96 #, php-format -msgid "Welcome %s. Remote authentication successful." +msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "" -#: ../../mod/block.php:27 ../../mod/page.php:36 -msgid "Invalid item." +#: ../../mod/rate.php:158 +msgid "Website:" msgstr "" -#: ../../mod/block.php:39 ../../mod/page.php:52 ../../mod/wall_upload.php:29 -msgid "Channel not found." +#: ../../mod/rate.php:161 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" msgstr "" -#: ../../mod/block.php:75 ../../mod/display.php:110 ../../mod/help.php:214 -#: ../../mod/page.php:89 ../../index.php:237 -msgid "Page not found." +#: ../../mod/rate.php:162 +msgid "Rating (this information is public)" +msgstr "" + +#: ../../mod/rate.php:163 +msgid "Optionally explain your rating (this information is public)" +msgstr "" + +#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 +msgid "Block Name" +msgstr "" + +#: ../../mod/blocks.php:149 +msgid "Block Title" msgstr "" #: ../../mod/id.php:11 @@ -4355,7 +4562,7 @@ msgstr "" msgid "Birthdate" msgstr "" -#: ../../mod/id.php:33 ../../mod/profiles.php:431 +#: ../../mod/id.php:33 ../../mod/profiles.php:441 msgid "Gender" msgstr "" @@ -4427,115 +4634,27 @@ msgstr "" msgid "Thank you." msgstr "" -#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 -msgid "Export Channel" -msgstr "" - -#: ../../mod/uexport.php:53 -msgid "" -"Export your basic channel information to a file. This acts as a backup of " -"your connections, permissions, profile and basic data, which can be used to " -"import your data to a new server hub, but does not contain your content." -msgstr "" - -#: ../../mod/uexport.php:54 -msgid "Export Content" -msgstr "" - -#: ../../mod/uexport.php:55 -msgid "" -"Export your channel information and recent content to a JSON backup that can " -"be restored or imported to another server hub. This backs up all of your " -"connections, permissions, profile data and several months of posts. This " -"file may be VERY large. Please be patient - it may take several minutes for " -"this download to begin." -msgstr "" - -#: ../../mod/uexport.php:56 -msgid "Export your posts from a given year." -msgstr "" - -#: ../../mod/uexport.php:58 -msgid "" -"You may also export your posts and conversations for a particular year or " -"month. Adjust the date in your browser location bar to select other dates. " -"If the export fails (possibly due to memory exhaustion on your server hub), " -"please try again selecting a more limited date range." +#: ../../mod/page.php:36 ../../mod/block.php:27 +msgid "Invalid item." msgstr "" -#: ../../mod/uexport.php:59 -#, php-format -msgid "" -"To select all posts for a given year, such as this year, visit <a href=\"%1$s" -"\">%2$s</a>" +#: ../../mod/page.php:52 ../../mod/wall_upload.php:29 ../../mod/block.php:39 +msgid "Channel not found." msgstr "" -#: ../../mod/uexport.php:60 -#, php-format -msgid "" -"To select all posts for a given month, such as January of this year, visit " -"<a href=\"%1$s\">%2$s</a>" +#: ../../mod/page.php:89 ../../mod/display.php:110 ../../mod/help.php:214 +#: ../../mod/block.php:75 ../../index.php:241 +msgid "Page not found." msgstr "" -#: ../../mod/uexport.php:61 -#, php-format +#: ../../mod/page.php:126 msgid "" -"These content files may be imported or restored by visiting <a href=\"%1$s\">" -"%2$s</a> on any site containing your channel. For best results please import " -"or restore these in date order (oldest first)." -msgstr "" - -#: ../../mod/chatsvc.php:111 -msgid "Away" -msgstr "" - -#: ../../mod/chatsvc.php:115 -msgid "Online" -msgstr "" - -#: ../../mod/tagger.php:96 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "" - -#: ../../mod/common.php:10 -msgid "No channel." -msgstr "" - -#: ../../mod/common.php:39 -msgid "Common connections" -msgstr "" - -#: ../../mod/common.php:44 -msgid "No connections in common." -msgstr "" - -#: ../../mod/ping.php:260 -msgid "sent you a private message" -msgstr "" - -#: ../../mod/ping.php:308 -msgid "added your channel" -msgstr "" - -#: ../../mod/ping.php:350 -msgid "posted an event" -msgstr "" - -#: ../../mod/help.php:147 -msgid "Documentation Search" -msgstr "" - -#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 -msgid "Help:" -msgstr "" - -#: ../../mod/help.php:211 ../../index.php:234 -msgid "Not Found" -msgstr "" - -#: ../../mod/help.php:235 -msgid "$Projectname Documentation" +"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " +"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, " +"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " +"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " +"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " +"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." msgstr "" #: ../../mod/removeme.php:29 @@ -4574,497 +4693,537 @@ msgid "" "removed from the network" msgstr "" -#: ../../mod/removeme.php:61 ../../mod/settings.php:1110 +#: ../../mod/removeme.php:61 ../../mod/settings.php:1112 msgid "Remove Channel" msgstr "" -#: ../../mod/filer.php:48 -msgid "- select -" +#: ../../mod/mood.php:132 +msgid "Set your current mood and tell your friends" msgstr "" -#: ../../mod/mitem.php:24 ../../mod/menu.php:140 -msgid "Menu not found." +#: ../../mod/new_channel.php:109 +msgid "Add a Channel" msgstr "" -#: ../../mod/mitem.php:48 -msgid "Unable to create element." +#: ../../mod/new_channel.php:110 +msgid "" +"A channel is your own collection of related web pages. A channel can be used " +"to hold social network profiles, blogs, conversation groups and forums, " +"celebrity pages, and much more. You may create as many channels as your " +"service provider allows." msgstr "" -#: ../../mod/mitem.php:72 -msgid "Unable to update menu element." +#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 +#: ../../mod/sources.php:137 +msgid "Channel Name" msgstr "" -#: ../../mod/mitem.php:88 -msgid "Unable to add menu element." +#: ../../mod/new_channel.php:113 +msgid "" +"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation " +"Group\" " msgstr "" -#: ../../mod/mitem.php:116 ../../mod/menu.php:162 ../../mod/xchan.php:37 -msgid "Not found." +#: ../../mod/new_channel.php:114 +msgid "Choose a short nickname" msgstr "" -#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 -msgid "Menu Item Permissions" +#: ../../mod/new_channel.php:115 +msgid "" +"Your nickname will be used to create an easily remembered channel address " +"(like an email address) which you can share with others." msgstr "" -#: ../../mod/mitem.php:150 ../../mod/mitem.php:223 ../../mod/settings.php:1054 -msgid "(click to open/close)" +#: ../../mod/new_channel.php:116 +msgid "" +"Or <a href=\"import\">import an existing channel</a> from another location" msgstr "" -#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 -msgid "Link Name" +#: ../../mod/new_channel.php:118 +msgid "" +"Please choose a channel type (such as social networking or community forum) " +"and privacy requirements so we can select the best permissions for you" msgstr "" -#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 -msgid "Link or Submenu Target" +#: ../../mod/new_channel.php:119 +msgid "Channel Type" msgstr "" -#: ../../mod/mitem.php:153 -msgid "Enter URL of the link or select a menu name to create a submenu" +#: ../../mod/new_channel.php:119 +msgid "Read more about roles" msgstr "" -#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 -msgid "Use magic-auth if available" +#: ../../mod/ratings.php:69 +msgid "No ratings" msgstr "" -#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 -msgid "Open link in new window" +#: ../../mod/ratings.php:82 ../../mod/search.php:13 ../../mod/directory.php:59 +#: ../../mod/photos.php:490 ../../mod/display.php:13 +#: ../../mod/viewconnections.php:17 +msgid "Public access denied." msgstr "" -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Order in list" +#: ../../mod/ratings.php:99 +msgid "Ratings" msgstr "" -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Higher numbers will sink to bottom of listing" +#: ../../mod/ratings.php:100 +msgid "Rating: " msgstr "" -#: ../../mod/mitem.php:157 -msgid "Submit and finish" +#: ../../mod/ratings.php:101 +msgid "Website: " msgstr "" -#: ../../mod/mitem.php:158 -msgid "Submit and continue" +#: ../../mod/ratings.php:103 +msgid "Description: " msgstr "" -#: ../../mod/mitem.php:166 -msgid "Menu:" +#: ../../mod/setup.php:191 +msgid "$Projectname Server - Setup" msgstr "" -#: ../../mod/mitem.php:169 -msgid "Link Target" +#: ../../mod/setup.php:195 +msgid "Could not connect to database." msgstr "" -#: ../../mod/mitem.php:172 -msgid "Edit menu" +#: ../../mod/setup.php:199 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." msgstr "" -#: ../../mod/mitem.php:175 -msgid "Edit element" +#: ../../mod/setup.php:206 +msgid "Could not create table." msgstr "" -#: ../../mod/mitem.php:176 -msgid "Drop element" +#: ../../mod/setup.php:211 +msgid "Your site database has been installed." msgstr "" -#: ../../mod/mitem.php:177 -msgid "New element" +#: ../../mod/setup.php:215 +msgid "" +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." msgstr "" -#: ../../mod/mitem.php:178 -msgid "Edit this menu container" +#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 +msgid "Please see the file \"install/INSTALL.txt\"." msgstr "" -#: ../../mod/mitem.php:179 -msgid "Add menu element" +#: ../../mod/setup.php:281 +msgid "System check" msgstr "" -#: ../../mod/mitem.php:180 -msgid "Delete this menu item" +#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:668 +#: ../../mod/events.php:675 +msgid "Next" msgstr "" -#: ../../mod/mitem.php:181 -msgid "Edit this menu item" +#: ../../mod/setup.php:286 +msgid "Check again" msgstr "" -#: ../../mod/mitem.php:198 -msgid "Menu item not found." +#: ../../mod/setup.php:308 +msgid "Database connection" msgstr "" -#: ../../mod/mitem.php:211 -msgid "Menu item deleted." +#: ../../mod/setup.php:309 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." msgstr "" -#: ../../mod/mitem.php:213 -msgid "Menu item could not be deleted." +#: ../../mod/setup.php:310 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." msgstr "" -#: ../../mod/mitem.php:220 -msgid "Edit Menu Element" +#: ../../mod/setup.php:311 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." msgstr "" -#: ../../mod/mitem.php:226 -msgid "Link text" +#: ../../mod/setup.php:315 +msgid "Database Server Name" msgstr "" -#: ../../mod/connedit.php:75 -msgid "Could not access contact record." +#: ../../mod/setup.php:315 +msgid "Default is 127.0.0.1" msgstr "" -#: ../../mod/connedit.php:99 -msgid "Could not locate selected profile." +#: ../../mod/setup.php:316 +msgid "Database Port" msgstr "" -#: ../../mod/connedit.php:218 -msgid "Connection updated." +#: ../../mod/setup.php:316 +msgid "Communication port number - use 0 for default" msgstr "" -#: ../../mod/connedit.php:220 -msgid "Failed to update connection record." +#: ../../mod/setup.php:317 +msgid "Database Login Name" msgstr "" -#: ../../mod/connedit.php:267 -msgid "is now connected to" +#: ../../mod/setup.php:318 +msgid "Database Login Password" msgstr "" -#: ../../mod/connedit.php:390 -msgid "Could not access address book record." +#: ../../mod/setup.php:319 +msgid "Database Name" msgstr "" -#: ../../mod/connedit.php:404 -msgid "Refresh failed - channel is currently unavailable." +#: ../../mod/setup.php:320 +msgid "Database Type" msgstr "" -#: ../../mod/connedit.php:413 ../../mod/connedit.php:422 -#: ../../mod/connedit.php:431 ../../mod/connedit.php:440 -#: ../../mod/connedit.php:453 -msgid "Unable to set address book parameters." +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "Site administrator email address" msgstr "" -#: ../../mod/connedit.php:477 -msgid "Connection has been removed." +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." msgstr "" -#: ../../mod/connedit.php:496 -#, php-format -msgid "View %s's profile" +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Website URL" msgstr "" -#: ../../mod/connedit.php:500 -msgid "Refresh Permissions" +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Please use SSL (https) URL if available." msgstr "" -#: ../../mod/connedit.php:503 -msgid "Fetch updated permissions" +#: ../../mod/setup.php:325 ../../mod/setup.php:367 +msgid "Please select a default timezone for your website" msgstr "" -#: ../../mod/connedit.php:507 -msgid "Recent Activity" +#: ../../mod/setup.php:352 +msgid "Site settings" msgstr "" -#: ../../mod/connedit.php:510 -msgid "View recent posts and comments" +#: ../../mod/setup.php:417 +msgid "Could not find a command line version of PHP in the web server PATH." msgstr "" -#: ../../mod/connedit.php:514 ../../mod/admin.php:810 -msgid "Unblock" +#: ../../mod/setup.php:418 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron." msgstr "" -#: ../../mod/connedit.php:514 ../../mod/admin.php:809 -msgid "Block" +#: ../../mod/setup.php:422 +msgid "PHP executable path" msgstr "" -#: ../../mod/connedit.php:517 -msgid "Block (or Unblock) all communications with this connection" +#: ../../mod/setup.php:422 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." msgstr "" -#: ../../mod/connedit.php:518 -msgid "This connection is blocked!" +#: ../../mod/setup.php:427 +msgid "Command line PHP" msgstr "" -#: ../../mod/connedit.php:522 -msgid "Unignore" +#: ../../mod/setup.php:436 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." msgstr "" -#: ../../mod/connedit.php:522 ../../mod/notifications.php:51 -msgid "Ignore" +#: ../../mod/setup.php:437 +msgid "This is required for message delivery to work." msgstr "" -#: ../../mod/connedit.php:525 -msgid "Ignore (or Unignore) all inbound communications from this connection" +#: ../../mod/setup.php:440 +msgid "PHP register_argc_argv" msgstr "" -#: ../../mod/connedit.php:526 -msgid "This connection is ignored!" +#: ../../mod/setup.php:458 +#, php-format +msgid "" +"Your max allowed total upload size is set to %s. Maximum size of one file to " +"upload is set to %s. You are allowed to upload up to %d files at once." msgstr "" -#: ../../mod/connedit.php:530 -msgid "Unarchive" +#: ../../mod/setup.php:463 +msgid "You can adjust these settings in the servers php.ini." msgstr "" -#: ../../mod/connedit.php:530 -msgid "Archive" +#: ../../mod/setup.php:465 +msgid "PHP upload limits" msgstr "" -#: ../../mod/connedit.php:533 +#: ../../mod/setup.php:488 msgid "" -"Archive (or Unarchive) this connection - mark channel dead but keep content" -msgstr "" - -#: ../../mod/connedit.php:534 -msgid "This connection is archived!" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" msgstr "" -#: ../../mod/connedit.php:538 -msgid "Unhide" +#: ../../mod/setup.php:489 +msgid "" +"If running under Windows, please see \"http://www.php.net/manual/en/openssl." +"installation.php\"." msgstr "" -#: ../../mod/connedit.php:538 -msgid "Hide" +#: ../../mod/setup.php:492 +msgid "Generate encryption keys" msgstr "" -#: ../../mod/connedit.php:541 -msgid "Hide or Unhide this connection from your other connections" +#: ../../mod/setup.php:504 +msgid "libCurl PHP module" msgstr "" -#: ../../mod/connedit.php:542 -msgid "This connection is hidden!" +#: ../../mod/setup.php:505 +msgid "GD graphics PHP module" msgstr "" -#: ../../mod/connedit.php:549 -msgid "Delete this connection" +#: ../../mod/setup.php:506 +msgid "OpenSSL PHP module" msgstr "" -#: ../../mod/connedit.php:630 -msgid "Approve this connection" +#: ../../mod/setup.php:507 +msgid "mysqli or postgres PHP module" msgstr "" -#: ../../mod/connedit.php:630 -msgid "Accept connection to allow communication" +#: ../../mod/setup.php:508 +msgid "mb_string PHP module" msgstr "" -#: ../../mod/connedit.php:635 -msgid "Set Affinity" +#: ../../mod/setup.php:509 +msgid "mcrypt PHP module" msgstr "" -#: ../../mod/connedit.php:638 -msgid "Set Profile" +#: ../../mod/setup.php:510 +msgid "xml PHP module" msgstr "" -#: ../../mod/connedit.php:641 -msgid "Set Affinity & Profile" +#: ../../mod/setup.php:514 ../../mod/setup.php:516 +msgid "Apache mod_rewrite module" msgstr "" -#: ../../mod/connedit.php:670 -msgid "none" +#: ../../mod/setup.php:514 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: ../../mod/connedit.php:675 -msgid "Apply these permissions automatically" +#: ../../mod/setup.php:520 ../../mod/setup.php:523 +msgid "proc_open" msgstr "" -#: ../../mod/connedit.php:677 -msgid "This connection's primary address is" +#: ../../mod/setup.php:520 +msgid "" +"Error: proc_open is required but is either not installed or has been " +"disabled in php.ini" msgstr "" -#: ../../mod/connedit.php:678 -msgid "Available locations:" +#: ../../mod/setup.php:528 +msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: ../../mod/connedit.php:682 +#: ../../mod/setup.php:532 msgid "" -"The permissions indicated on this page will be applied to all new " -"connections." +"Error: GD graphics PHP module with JPEG support required but not installed." msgstr "" -#: ../../mod/connedit.php:684 -msgid "Slide to adjust your degree of friendship" +#: ../../mod/setup.php:536 +msgid "Error: openssl PHP module required but not installed." msgstr "" -#: ../../mod/connedit.php:686 -msgid "Slide to adjust your rating" +#: ../../mod/setup.php:540 +msgid "" +"Error: mysqli or postgres PHP module required but neither are installed." msgstr "" -#: ../../mod/connedit.php:687 ../../mod/connedit.php:692 -msgid "Optionally explain your rating" +#: ../../mod/setup.php:544 +msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: ../../mod/connedit.php:689 -msgid "Custom Filter" +#: ../../mod/setup.php:548 +msgid "Error: mcrypt PHP module required but not installed." msgstr "" -#: ../../mod/connedit.php:690 -msgid "Only import posts with this text" +#: ../../mod/setup.php:552 +msgid "Error: xml PHP module required for DAV but not installed." msgstr "" -#: ../../mod/connedit.php:690 ../../mod/connedit.php:691 +#: ../../mod/setup.php:570 msgid "" -"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " -"all posts" +"The web installer needs to be able to create a file called \".htconfig.php\" " +"in the top folder of your web server and it is unable to do so." msgstr "" -#: ../../mod/connedit.php:691 -msgid "Do not import posts with this text" +#: ../../mod/setup.php:571 +msgid "" +"This is most often a permission setting, as the web server may not be able " +"to write files in your folder - even if you can." msgstr "" -#: ../../mod/connedit.php:693 -msgid "This information is public!" +#: ../../mod/setup.php:572 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Red top folder." msgstr "" -#: ../../mod/connedit.php:698 -msgid "Connection Pending Approval" +#: ../../mod/setup.php:573 +msgid "" +"You can alternatively skip this procedure and perform a manual installation. " +"Please see the file \"install/INSTALL.txt\" for instructions." msgstr "" -#: ../../mod/connedit.php:699 -msgid "Connection Request" +#: ../../mod/setup.php:576 +msgid ".htconfig.php is writable" msgstr "" -#: ../../mod/connedit.php:700 -#, php-format +#: ../../mod/setup.php:590 msgid "" -"(%s) would like to connect with you. Please approve this connection to allow " -"communication." -msgstr "" - -#: ../../mod/connedit.php:701 ../../mod/admin.php:806 -msgid "Approve" +"Red uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." msgstr "" -#: ../../mod/connedit.php:702 -msgid "Approve Later" +#: ../../mod/setup.php:591 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the Red top level folder." msgstr "" -#: ../../mod/connedit.php:705 -msgid "inherited" +#: ../../mod/setup.php:592 ../../mod/setup.php:613 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has " +"write access to this folder." msgstr "" -#: ../../mod/connedit.php:707 +#: ../../mod/setup.php:593 #, php-format msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." +"Note: as a security measure, you should give the web server write access to " +"%s only--not the template files (.tpl) that it contains." msgstr "" -#: ../../mod/connedit.php:709 -msgid "Their Settings" +#: ../../mod/setup.php:596 +#, php-format +msgid "%s is writable" msgstr "" -#: ../../mod/connedit.php:710 -msgid "My Settings" +#: ../../mod/setup.php:612 +msgid "" +"Red uses the store directory to save uploaded files. The web server needs to " +"have write access to the store directory under the Red top level folder" msgstr "" -#: ../../mod/connedit.php:712 -msgid "Individual Permissions" +#: ../../mod/setup.php:616 +msgid "store is writable" msgstr "" -#: ../../mod/connedit.php:713 +#: ../../mod/setup.php:649 msgid "" -"Some permissions may be inherited from your channel's <a href=\"settings" -"\"><strong>privacy settings</strong></a>, which have higher priority than " -"individual settings. You can <strong>not</strong> change those settings here." +"SSL certificate cannot be validated. Fix certificate or disable https access " +"to this site." msgstr "" -#: ../../mod/connedit.php:714 +#: ../../mod/setup.php:650 msgid "" -"Some permissions may be inherited from your channel's <a href=\"settings" -"\"><strong>privacy settings</strong></a>, which have higher priority than " -"individual settings. You can change those settings here but they wont have " -"any impact unless the inherited setting changes." -msgstr "" - -#: ../../mod/connedit.php:715 -msgid "Last update:" -msgstr "" - -#: ../../mod/mood.php:132 -msgid "Set your current mood and tell your friends" -msgstr "" - -#: ../../mod/magic.php:69 -msgid "Hub not found." -msgstr "" - -#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 -msgid "This setting requires special processing and editing has been blocked." +"If you have https access to your website or allow connections to TCP port " +"443 (the https: port), you MUST use a browser-valid certificate. You MUST " +"NOT use self-signed certificates!" msgstr "" -#: ../../mod/pconfig.php:49 -msgid "Configuration Editor" +#: ../../mod/setup.php:651 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." msgstr "" -#: ../../mod/pconfig.php:50 +#: ../../mod/setup.php:652 msgid "" -"Warning: Changing some settings could render your channel inoperable. Please " -"leave this page unless you are comfortable with and knowledgeable about how " -"to correctly use this feature." +"If your certificate is not recognized, members of other sites (who may " +"themselves have valid certificates) will get a warning message on their own " +"site complaining about security issues." msgstr "" -#: ../../mod/filestorage.php:82 -msgid "Permission Denied." +#: ../../mod/setup.php:653 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." msgstr "" -#: ../../mod/filestorage.php:98 -msgid "File not found." +#: ../../mod/setup.php:654 +msgid "" +"Providers are available that issue free certificates which are browser-valid." msgstr "" -#: ../../mod/filestorage.php:141 -msgid "Edit file permissions" +#: ../../mod/setup.php:656 +msgid "SSL certificate validation" msgstr "" -#: ../../mod/filestorage.php:150 -msgid "Set/edit permissions" +#: ../../mod/setup.php:662 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +"Test: " msgstr "" -#: ../../mod/filestorage.php:151 -msgid "Include all files and sub folders" +#: ../../mod/setup.php:665 +msgid "Url rewrite is working" msgstr "" -#: ../../mod/filestorage.php:152 -msgid "Return to file list" +#: ../../mod/setup.php:674 +msgid "" +"The database configuration file \".htconfig.php\" could not be written. " +"Please use the enclosed text to create a configuration file in your web " +"server root." msgstr "" -#: ../../mod/filestorage.php:154 -msgid "Copy/paste this code to attach file to a post" +#: ../../mod/setup.php:698 +msgid "Errors encountered creating database tables." msgstr "" -#: ../../mod/filestorage.php:155 -msgid "Copy/paste this URL to link file from a web page" +#: ../../mod/setup.php:732 +msgid "<h1>What next</h1>" msgstr "" -#: ../../mod/filestorage.php:157 -msgid "Share this file" +#: ../../mod/setup.php:733 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "" -#: ../../mod/filestorage.php:158 -msgid "Show URL to this file" +#: ../../mod/bookmarks.php:40 +msgid "Bookmark added" msgstr "" -#: ../../mod/filestorage.php:159 -msgid "Notify your contacts about this file" +#: ../../mod/bookmarks.php:62 +msgid "My Bookmarks" msgstr "" -#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 -msgid "This site is not a directory server" +#: ../../mod/bookmarks.php:73 +msgid "My Connections Bookmarks" msgstr "" -#: ../../mod/layouts.php:121 ../../mod/layouts.php:179 -#: ../../mod/editlayout.php:161 -msgid "Layout Name" +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 +msgid "$Projectname" msgstr "" -#: ../../mod/layouts.php:124 ../../mod/editlayout.php:159 -msgid "Layout Description (Optional)" +#: ../../mod/home.php:75 +#, php-format +msgid "Welcome to %s" msgstr "" -#: ../../mod/layouts.php:176 -msgid "Comanche page description language help" +#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 +msgid "This setting requires special processing and editing has been blocked." msgstr "" -#: ../../mod/layouts.php:180 -msgid "Layout Description" +#: ../../mod/pconfig.php:49 +msgid "Configuration Editor" msgstr "" -#: ../../mod/layouts.php:185 -msgid "Download PDL file" +#: ../../mod/pconfig.php:50 +msgid "" +"Warning: Changing some settings could render your channel inoperable. Please " +"leave this page unless you are comfortable with and knowledgeable about how " +"to correctly use this feature." msgstr "" #: ../../mod/poke.php:164 @@ -5087,2393 +5246,2306 @@ msgstr "" msgid "Make this post private" msgstr "" -#: ../../mod/network.php:91 -msgid "No such group" -msgstr "" - -#: ../../mod/network.php:131 -msgid "No such channel" -msgstr "" - -#: ../../mod/network.php:136 -msgid "forum" -msgstr "" - -#: ../../mod/network.php:148 -msgid "Search Results For:" -msgstr "" - -#: ../../mod/network.php:207 -msgid "Collection is empty" +#: ../../mod/profiles.php:19 ../../mod/profiles.php:184 +#: ../../mod/profiles.php:241 ../../mod/profiles.php:608 +msgid "Profile not found." msgstr "" -#: ../../mod/network.php:216 -msgid "Collection: " +#: ../../mod/profiles.php:39 +msgid "Profile deleted." msgstr "" -#: ../../mod/network.php:242 -msgid "Invalid connection." +#: ../../mod/profiles.php:63 ../../mod/profiles.php:99 +msgid "Profile-" msgstr "" -#: ../../mod/chat.php:19 ../../mod/channel.php:25 -msgid "You must be logged in to see this page." +#: ../../mod/profiles.php:84 ../../mod/profiles.php:127 +msgid "New profile created." msgstr "" -#: ../../mod/chat.php:174 -msgid "Room not found" +#: ../../mod/profiles.php:105 +msgid "Profile unavailable to clone." msgstr "" -#: ../../mod/chat.php:185 -msgid "Leave Room" +#: ../../mod/profiles.php:146 +msgid "Profile unavailable to export." msgstr "" -#: ../../mod/chat.php:186 -msgid "Delete This Room" +#: ../../mod/profiles.php:251 +msgid "Profile Name is required." msgstr "" -#: ../../mod/chat.php:187 -msgid "I am away right now" +#: ../../mod/profiles.php:414 +msgid "Marital Status" msgstr "" -#: ../../mod/chat.php:188 -msgid "I am online" +#: ../../mod/profiles.php:418 +msgid "Romantic Partner" msgstr "" -#: ../../mod/chat.php:190 -msgid "Bookmark this room" +#: ../../mod/profiles.php:422 +msgid "Likes" msgstr "" -#: ../../mod/chat.php:208 ../../mod/chat.php:231 -msgid "New Chatroom" +#: ../../mod/profiles.php:426 +msgid "Dislikes" msgstr "" -#: ../../mod/chat.php:209 -msgid "Chatroom Name" +#: ../../mod/profiles.php:430 +msgid "Work/Employment" msgstr "" -#: ../../mod/chat.php:210 -msgid "Expiration of chats (minutes)" +#: ../../mod/profiles.php:433 +msgid "Religion" msgstr "" -#: ../../mod/chat.php:227 -#, php-format -msgid "%1$s's Chatrooms" +#: ../../mod/profiles.php:437 +msgid "Political Views" msgstr "" -#: ../../mod/search.php:211 -#, php-format -msgid "Items tagged with: %s" +#: ../../mod/profiles.php:445 +msgid "Sexual Preference" msgstr "" -#: ../../mod/search.php:213 -#, php-format -msgid "Search results for: %s" +#: ../../mod/profiles.php:449 +msgid "Homepage" msgstr "" -#: ../../mod/rate.php:158 -msgid "Website:" +#: ../../mod/profiles.php:453 +msgid "Interests" msgstr "" -#: ../../mod/rate.php:161 -#, php-format -msgid "Remote Channel [%s] (not yet known on this site)" +#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +msgid "Address" msgstr "" -#: ../../mod/rate.php:162 -msgid "Rating (this information is public)" +#: ../../mod/profiles.php:547 +msgid "Profile updated." msgstr "" -#: ../../mod/rate.php:163 -msgid "Optionally explain your rating (this information is public)" +#: ../../mod/profiles.php:634 +msgid "Hide your contact/friend list from viewers of this profile?" msgstr "" -#: ../../mod/photos.php:79 -msgid "Page owner information could not be retrieved." +#: ../../mod/profiles.php:674 +msgid "Edit Profile Details" msgstr "" -#: ../../mod/photos.php:100 -msgid "Album not found." +#: ../../mod/profiles.php:676 +msgid "View this profile" msgstr "" -#: ../../mod/photos.php:127 -msgid "Delete Album" +#: ../../mod/profiles.php:678 +msgid "Change Profile Photo" msgstr "" -#: ../../mod/photos.php:171 ../../mod/photos.php:1009 -msgid "Delete Photo" +#: ../../mod/profiles.php:679 +msgid "Create a new profile using these settings" msgstr "" -#: ../../mod/photos.php:501 -msgid "No photos selected" +#: ../../mod/profiles.php:680 +msgid "Clone this profile" msgstr "" -#: ../../mod/photos.php:550 -msgid "Access to this item is restricted." +#: ../../mod/profiles.php:681 +msgid "Delete this profile" msgstr "" -#: ../../mod/photos.php:589 -#, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." +#: ../../mod/profiles.php:683 +msgid "Import profile from file" msgstr "" -#: ../../mod/photos.php:592 -#, php-format -msgid "%1$.2f MB photo storage used." +#: ../../mod/profiles.php:684 +msgid "Export profile to file" msgstr "" -#: ../../mod/photos.php:620 -msgid "Upload Photos" +#: ../../mod/profiles.php:685 +msgid "Profile Name:" msgstr "" -#: ../../mod/photos.php:624 -msgid "Enter an album name" +#: ../../mod/profiles.php:686 +msgid "Your Full Name:" msgstr "" -#: ../../mod/photos.php:625 -msgid "or select an existing album (doubleclick)" +#: ../../mod/profiles.php:687 +msgid "Title/Description:" msgstr "" -#: ../../mod/photos.php:626 -msgid "Create a status post for this upload" +#: ../../mod/profiles.php:688 +msgid "Your Gender:" msgstr "" -#: ../../mod/photos.php:627 -msgid "Caption (optional):" +#: ../../mod/profiles.php:689 +msgid "Birthday :" msgstr "" -#: ../../mod/photos.php:628 -msgid "Description (optional):" +#: ../../mod/profiles.php:690 +msgid "Street Address:" msgstr "" -#: ../../mod/photos.php:655 -msgid "Album name could not be decoded" +#: ../../mod/profiles.php:691 +msgid "Locality/City:" msgstr "" -#: ../../mod/photos.php:699 ../../mod/photos.php:1236 -#: ../../mod/photos.php:1253 -msgid "Contact Photos" +#: ../../mod/profiles.php:692 +msgid "Postal/Zip Code:" msgstr "" -#: ../../mod/photos.php:727 -msgid "Show Newest First" +#: ../../mod/profiles.php:693 +msgid "Country:" msgstr "" -#: ../../mod/photos.php:729 -msgid "Show Oldest First" +#: ../../mod/profiles.php:694 +msgid "Region/State:" msgstr "" -#: ../../mod/photos.php:753 ../../mod/photos.php:1286 -msgid "View Photo" +#: ../../mod/profiles.php:695 +msgid "<span class=\"heart\">♥</span> Marital Status:" msgstr "" -#: ../../mod/photos.php:782 -msgid "Edit Album" +#: ../../mod/profiles.php:696 +msgid "Who: (if applicable)" msgstr "" -#: ../../mod/photos.php:827 -msgid "Permission denied. Access to this item may be restricted." +#: ../../mod/profiles.php:697 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "" -#: ../../mod/photos.php:829 -msgid "Photo not available" +#: ../../mod/profiles.php:698 +msgid "Since [date]:" msgstr "" -#: ../../mod/photos.php:887 -msgid "Use as profile photo" +#: ../../mod/profiles.php:700 +msgid "Homepage URL:" msgstr "" -#: ../../mod/photos.php:894 -msgid "Private Photo" +#: ../../mod/profiles.php:703 +msgid "Religious Views:" msgstr "" -#: ../../mod/photos.php:905 ../../mod/events.php:528 -msgid "Previous" +#: ../../mod/profiles.php:704 +msgid "Keywords:" msgstr "" -#: ../../mod/photos.php:909 -msgid "View Full Size" +#: ../../mod/profiles.php:707 +msgid "Example: fishing photography software" msgstr "" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 -msgid "Next" +#: ../../mod/profiles.php:708 +msgid "Used in directory listings" msgstr "" -#: ../../mod/photos.php:954 ../../mod/tagrm.php:133 -msgid "Remove" +#: ../../mod/profiles.php:709 +msgid "Tell us about yourself..." msgstr "" -#: ../../mod/photos.php:988 -msgid "Edit photo" +#: ../../mod/profiles.php:710 +msgid "Hobbies/Interests" msgstr "" -#: ../../mod/photos.php:990 -msgid "Rotate CW (right)" +#: ../../mod/profiles.php:711 +msgid "Contact information and Social Networks" msgstr "" -#: ../../mod/photos.php:991 -msgid "Rotate CCW (left)" +#: ../../mod/profiles.php:712 +msgid "My other channels" msgstr "" -#: ../../mod/photos.php:994 -msgid "Enter a new album name" +#: ../../mod/profiles.php:713 +msgid "Musical interests" msgstr "" -#: ../../mod/photos.php:995 -msgid "or select an existing one (doubleclick)" +#: ../../mod/profiles.php:714 +msgid "Books, literature" msgstr "" -#: ../../mod/photos.php:998 -msgid "Caption" +#: ../../mod/profiles.php:715 +msgid "Television" msgstr "" -#: ../../mod/photos.php:1000 -msgid "Add a Tag" +#: ../../mod/profiles.php:716 +msgid "Film/dance/culture/entertainment" msgstr "" -#: ../../mod/photos.php:1004 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +#: ../../mod/profiles.php:717 +msgid "Love/romance" msgstr "" -#: ../../mod/photos.php:1007 -msgid "Flag as adult in album view" +#: ../../mod/profiles.php:718 +msgid "Work/employment" msgstr "" -#: ../../mod/photos.php:1199 -msgid "In This Photo:" +#: ../../mod/profiles.php:719 +msgid "School/education" msgstr "" -#: ../../mod/photos.php:1204 -msgid "Map" +#: ../../mod/profiles.php:725 +msgid "This is your default profile." msgstr "" -#: ../../mod/photos.php:1292 -msgid "View Album" +#: ../../mod/profiles.php:736 +msgid "Age: " msgstr "" -#: ../../mod/photos.php:1315 -msgid "Recent Photos" +#: ../../mod/profiles.php:779 +msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/dreport.php:23 -msgid "Invalid message" +#: ../../mod/profiles.php:780 +msgid "Add profile things" msgstr "" -#: ../../mod/dreport.php:55 -msgid "no results" +#: ../../mod/profiles.php:781 +msgid "Include desirable objects in your profile" msgstr "" -#: ../../mod/dreport.php:60 +#: ../../mod/search.php:212 #, php-format -msgid "Delivery report for %1$s" -msgstr "" - -#: ../../mod/dreport.php:74 -msgid "channel sync processed" -msgstr "" - -#: ../../mod/dreport.php:78 -msgid "queued" +msgid "Items tagged with: %s" msgstr "" -#: ../../mod/dreport.php:82 -msgid "posted" +#: ../../mod/search.php:214 +#, php-format +msgid "Search results for: %s" msgstr "" -#: ../../mod/dreport.php:86 -msgid "accepted for delivery" +#: ../../mod/connedit.php:75 +msgid "Could not access contact record." msgstr "" -#: ../../mod/dreport.php:90 -msgid "updated" +#: ../../mod/connedit.php:99 +msgid "Could not locate selected profile." msgstr "" -#: ../../mod/dreport.php:93 -msgid "update ignored" +#: ../../mod/connedit.php:223 +msgid "Connection updated." msgstr "" -#: ../../mod/dreport.php:96 -msgid "permission denied" +#: ../../mod/connedit.php:225 +msgid "Failed to update connection record." msgstr "" -#: ../../mod/dreport.php:100 -msgid "recipient not found" +#: ../../mod/connedit.php:272 +msgid "is now connected to" msgstr "" -#: ../../mod/dreport.php:103 -msgid "mail recalled" +#: ../../mod/connedit.php:395 +msgid "Could not access address book record." msgstr "" -#: ../../mod/dreport.php:106 -msgid "duplicate mail received" +#: ../../mod/connedit.php:409 +msgid "Refresh failed - channel is currently unavailable." msgstr "" -#: ../../mod/dreport.php:109 -msgid "mail delivered" +#: ../../mod/connedit.php:418 ../../mod/connedit.php:427 +#: ../../mod/connedit.php:436 ../../mod/connedit.php:445 +#: ../../mod/connedit.php:458 +msgid "Unable to set address book parameters." msgstr "" -#: ../../mod/editblock.php:78 ../../mod/editblock.php:94 -#: ../../mod/editpost.php:20 ../../mod/editlayout.php:76 -#: ../../mod/editwebpage.php:77 -msgid "Item not found" +#: ../../mod/connedit.php:482 +msgid "Connection has been removed." msgstr "" -#: ../../mod/editblock.php:118 -msgid "Delete block?" +#: ../../mod/connedit.php:501 +#, php-format +msgid "View %s's profile" msgstr "" -#: ../../mod/editblock.php:145 ../../mod/editpost.php:121 -#: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:185 -msgid "Insert YouTube video" +#: ../../mod/connedit.php:505 +msgid "Refresh Permissions" msgstr "" -#: ../../mod/editblock.php:146 ../../mod/editpost.php:122 -#: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:186 -msgid "Insert Vorbis [.ogg] video" +#: ../../mod/connedit.php:508 +msgid "Fetch updated permissions" msgstr "" -#: ../../mod/editblock.php:147 ../../mod/editpost.php:123 -#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:187 -msgid "Insert Vorbis [.ogg] audio" +#: ../../mod/connedit.php:512 +msgid "Recent Activity" msgstr "" -#: ../../mod/editblock.php:180 -msgid "Edit Block" +#: ../../mod/connedit.php:515 +msgid "View recent posts and comments" msgstr "" -#: ../../mod/dirsearch.php:29 -msgid "This directory server requires an access token" +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 +msgid "Unblock" msgstr "" -#: ../../mod/editpost.php:31 -msgid "Item is not editable" +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 +msgid "Block" msgstr "" -#: ../../mod/editpost.php:55 -msgid "Delete item?" +#: ../../mod/connedit.php:522 +msgid "Block (or Unblock) all communications with this connection" msgstr "" -#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 -msgid "Edit post" +#: ../../mod/connedit.php:523 +msgid "This connection is blocked!" msgstr "" -#: ../../mod/oexchange.php:23 -msgid "Unable to find your hub." +#: ../../mod/connedit.php:527 +msgid "Unignore" msgstr "" -#: ../../mod/oexchange.php:37 -msgid "Post successful." +#: ../../mod/connedit.php:527 ../../mod/notifications.php:51 +msgid "Ignore" msgstr "" -#: ../../mod/admin.php:52 -msgid "Theme settings updated." +#: ../../mod/connedit.php:530 +msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "" -#: ../../mod/admin.php:160 -msgid "# Accounts" +#: ../../mod/connedit.php:531 +msgid "This connection is ignored!" msgstr "" -#: ../../mod/admin.php:161 -msgid "# blocked accounts" +#: ../../mod/connedit.php:535 +msgid "Unarchive" msgstr "" -#: ../../mod/admin.php:162 -msgid "# expired accounts" +#: ../../mod/connedit.php:535 +msgid "Archive" msgstr "" -#: ../../mod/admin.php:163 -msgid "# expiring accounts" +#: ../../mod/connedit.php:538 +msgid "" +"Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "" -#: ../../mod/admin.php:174 -msgid "# Channels" +#: ../../mod/connedit.php:539 +msgid "This connection is archived!" msgstr "" -#: ../../mod/admin.php:175 -msgid "# primary" +#: ../../mod/connedit.php:543 +msgid "Unhide" msgstr "" -#: ../../mod/admin.php:176 -msgid "# clones" +#: ../../mod/connedit.php:543 +msgid "Hide" msgstr "" -#: ../../mod/admin.php:182 -msgid "Message queues" +#: ../../mod/connedit.php:546 +msgid "Hide or Unhide this connection from your other connections" 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 -msgid "Administration" +#: ../../mod/connedit.php:547 +msgid "This connection is hidden!" msgstr "" -#: ../../mod/admin.php:199 -msgid "Summary" +#: ../../mod/connedit.php:554 +msgid "Delete this connection" msgstr "" -#: ../../mod/admin.php:202 -msgid "Registered accounts" +#: ../../mod/connedit.php:635 +msgid "Approve this connection" msgstr "" -#: ../../mod/admin.php:203 ../../mod/admin.php:535 -msgid "Pending registrations" +#: ../../mod/connedit.php:635 +msgid "Accept connection to allow communication" msgstr "" -#: ../../mod/admin.php:204 -msgid "Registered channels" +#: ../../mod/connedit.php:640 +msgid "Set Affinity" msgstr "" -#: ../../mod/admin.php:205 ../../mod/admin.php:536 -msgid "Active plugins" +#: ../../mod/connedit.php:643 +msgid "Set Profile" msgstr "" -#: ../../mod/admin.php:206 -msgid "Version" +#: ../../mod/connedit.php:646 +msgid "Set Affinity & Profile" msgstr "" -#: ../../mod/admin.php:324 -msgid "Site settings updated." +#: ../../mod/connedit.php:679 +msgid "none" msgstr "" -#: ../../mod/admin.php:361 ../../mod/settings.php:791 -msgid "mobile" +#: ../../mod/connedit.php:684 +msgid "Apply these permissions automatically" msgstr "" -#: ../../mod/admin.php:363 -msgid "experimental" +#: ../../mod/connedit.php:686 +msgid "This connection's primary address is" msgstr "" -#: ../../mod/admin.php:365 -msgid "unsupported" +#: ../../mod/connedit.php:687 +msgid "Available locations:" msgstr "" -#: ../../mod/admin.php:410 -msgid "Yes - with approval" +#: ../../mod/connedit.php:691 +msgid "" +"The permissions indicated on this page will be applied to all new " +"connections." msgstr "" -#: ../../mod/admin.php:416 -msgid "My site is not a public server" +#: ../../mod/connedit.php:693 +msgid "Slide to adjust your degree of friendship" msgstr "" -#: ../../mod/admin.php:417 -msgid "My site has paid access only" +#: ../../mod/connedit.php:695 +msgid "Slide to adjust your rating" msgstr "" -#: ../../mod/admin.php:418 -msgid "My site has free access only" +#: ../../mod/connedit.php:696 ../../mod/connedit.php:701 +msgid "Optionally explain your rating" msgstr "" -#: ../../mod/admin.php:419 -msgid "My site offers free accounts with optional paid upgrades" +#: ../../mod/connedit.php:698 +msgid "Custom Filter" msgstr "" -#: ../../mod/admin.php:435 ../../mod/register.php:207 -msgid "Registration" +#: ../../mod/connedit.php:699 +msgid "Only import posts with this text" msgstr "" -#: ../../mod/admin.php:436 -msgid "File upload" +#: ../../mod/connedit.php:699 ../../mod/connedit.php:700 +msgid "" +"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " +"all posts" msgstr "" -#: ../../mod/admin.php:437 -msgid "Policies" +#: ../../mod/connedit.php:700 +msgid "Do not import posts with this text" msgstr "" -#: ../../mod/admin.php:442 -msgid "Site name" +#: ../../mod/connedit.php:702 +msgid "This information is public!" msgstr "" -#: ../../mod/admin.php:443 -msgid "Banner/Logo" +#: ../../mod/connedit.php:707 +msgid "Connection Pending Approval" msgstr "" -#: ../../mod/admin.php:444 -msgid "Administrator Information" +#: ../../mod/connedit.php:708 +msgid "Connection Request" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/connedit.php:709 +#, php-format msgid "" -"Contact information for site administrators. Displayed on siteinfo page. " -"BBCode can be used here" +"(%s) would like to connect with you. Please approve this connection to allow " +"communication." msgstr "" -#: ../../mod/admin.php:445 -msgid "System language" +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 +msgid "Approve" msgstr "" -#: ../../mod/admin.php:446 -msgid "System theme" +#: ../../mod/connedit.php:711 +msgid "Approve Later" msgstr "" -#: ../../mod/admin.php:446 -msgid "" -"Default system theme - may be over-ridden by user profiles - <a href='#' " -"id='cnftheme'>change theme settings</a>" +#: ../../mod/connedit.php:714 +msgid "inherited" msgstr "" -#: ../../mod/admin.php:447 -msgid "Mobile system theme" +#: ../../mod/connedit.php:716 +#, php-format +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." msgstr "" -#: ../../mod/admin.php:447 -msgid "Theme for mobile devices" +#: ../../mod/connedit.php:718 +msgid "Their Settings" msgstr "" -#: ../../mod/admin.php:449 -msgid "Allow Feeds as Connections" +#: ../../mod/connedit.php:719 +msgid "My Settings" msgstr "" -#: ../../mod/admin.php:449 -msgid "(Heavy system resource usage)" +#: ../../mod/connedit.php:721 +msgid "Individual Permissions" msgstr "" -#: ../../mod/admin.php:450 -msgid "Maximum image size" +#: ../../mod/connedit.php:722 +msgid "" +"Some permissions may be inherited from your channel's <a href=\"settings" +"\"><strong>privacy settings</strong></a>, which have higher priority than " +"individual settings. You can <strong>not</strong> change those settings here." msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/connedit.php:723 msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." +"Some permissions may be inherited from your channel's <a href=\"settings" +"\"><strong>privacy settings</strong></a>, which have higher priority than " +"individual settings. You can change those settings here but they wont have " +"any impact unless the inherited setting changes." msgstr "" -#: ../../mod/admin.php:451 -msgid "Does this site allow new member registration?" +#: ../../mod/connedit.php:724 +msgid "Last update:" msgstr "" -#: ../../mod/admin.php:452 -msgid "Which best describes the types of account offered by this hub?" +#: ../../mod/acl.php:222 +msgid "network" msgstr "" -#: ../../mod/admin.php:453 -msgid "Register text" +#: ../../mod/acl.php:232 +msgid "RSS" msgstr "" -#: ../../mod/admin.php:453 -msgid "Will be displayed prominently on the registration page." +#: ../../mod/dav.php:121 +msgid "$Projectname channel" msgstr "" -#: ../../mod/admin.php:454 -msgid "Site homepage to show visitors (default: login box)" +#: ../../mod/dreport.php:23 +msgid "Invalid message" msgstr "" -#: ../../mod/admin.php:454 -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." +#: ../../mod/dreport.php:55 +msgid "no results" msgstr "" -#: ../../mod/admin.php:455 -msgid "Preserve site homepage URL" +#: ../../mod/dreport.php:60 +#, php-format +msgid "Delivery report for %1$s" msgstr "" -#: ../../mod/admin.php:455 -msgid "" -"Present the site homepage in a frame at the original location instead of " -"redirecting" +#: ../../mod/dreport.php:74 +msgid "channel sync processed" msgstr "" -#: ../../mod/admin.php:456 -msgid "Accounts abandoned after x days" +#: ../../mod/dreport.php:78 +msgid "queued" msgstr "" -#: ../../mod/admin.php:456 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." +#: ../../mod/dreport.php:82 +msgid "posted" msgstr "" -#: ../../mod/admin.php:457 -msgid "Allowed friend domains" +#: ../../mod/dreport.php:86 +msgid "accepted for delivery" msgstr "" -#: ../../mod/admin.php:457 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" +#: ../../mod/dreport.php:90 +msgid "updated" msgstr "" -#: ../../mod/admin.php:458 -msgid "Allowed email domains" +#: ../../mod/dreport.php:93 +msgid "update ignored" msgstr "" -#: ../../mod/admin.php:458 -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" +#: ../../mod/dreport.php:96 +msgid "permission denied" msgstr "" -#: ../../mod/admin.php:459 -msgid "Not allowed email domains" +#: ../../mod/dreport.php:100 +msgid "recipient not found" msgstr "" -#: ../../mod/admin.php:459 -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." +#: ../../mod/dreport.php:103 +msgid "mail recalled" msgstr "" -#: ../../mod/admin.php:460 -msgid "Block public" +#: ../../mod/dreport.php:106 +msgid "duplicate mail received" msgstr "" -#: ../../mod/admin.php:460 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." +#: ../../mod/dreport.php:109 +msgid "mail delivered" msgstr "" -#: ../../mod/admin.php:461 -msgid "Verify Email Addresses" +#: ../../mod/editwebpage.php:77 ../../mod/editblock.php:78 +#: ../../mod/editblock.php:94 ../../mod/editlayout.php:76 +#: ../../mod/editpost.php:20 +msgid "Item not found" msgstr "" -#: ../../mod/admin.php:461 -msgid "" -"Check to verify email addresses used in account registration (recommended)." +#: ../../mod/editwebpage.php:153 +msgid "Delete webpage?" msgstr "" -#: ../../mod/admin.php:462 -msgid "Force publish" +#: ../../mod/editwebpage.php:172 +msgid "Page link title" msgstr "" -#: ../../mod/admin.php:462 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." +#: ../../mod/editwebpage.php:185 ../../mod/editblock.php:145 +#: ../../mod/editlayout.php:143 ../../mod/editpost.php:121 +msgid "Insert YouTube video" msgstr "" -#: ../../mod/admin.php:463 -msgid "Disable discovery tab" +#: ../../mod/editwebpage.php:186 ../../mod/editblock.php:146 +#: ../../mod/editlayout.php:144 ../../mod/editpost.php:122 +msgid "Insert Vorbis [.ogg] video" msgstr "" -#: ../../mod/admin.php:463 -msgid "" -"Remove the tab in the network view with public content pulled from sources " -"chosen for this site." +#: ../../mod/editwebpage.php:187 ../../mod/editblock.php:147 +#: ../../mod/editlayout.php:145 ../../mod/editpost.php:123 +msgid "Insert Vorbis [.ogg] audio" msgstr "" -#: ../../mod/admin.php:464 -msgid "login on Homepage" +#: ../../mod/editwebpage.php:222 +msgid "Edit Webpage" msgstr "" -#: ../../mod/admin.php:464 -msgid "" -"Present a login box to visitors on the home page if no other content has " -"been configured." +#: ../../mod/oexchange.php:23 +msgid "Unable to find your hub." msgstr "" -#: ../../mod/admin.php:466 -msgid "Directory Server URL" +#: ../../mod/oexchange.php:37 +msgid "Post successful." msgstr "" -#: ../../mod/admin.php:466 -msgid "Default directory server" +#: ../../mod/ping.php:260 +msgid "sent you a private message" msgstr "" -#: ../../mod/admin.php:468 -msgid "Proxy user" +#: ../../mod/ping.php:308 +msgid "added your channel" msgstr "" -#: ../../mod/admin.php:469 -msgid "Proxy URL" +#: ../../mod/ping.php:350 +msgid "posted an event" msgstr "" -#: ../../mod/admin.php:470 -msgid "Network timeout" +#: ../../mod/api.php:76 ../../mod/api.php:102 +msgid "Authorize application connection" msgstr "" -#: ../../mod/admin.php:470 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +#: ../../mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" msgstr "" -#: ../../mod/admin.php:471 -msgid "Delivery interval" +#: ../../mod/api.php:89 +msgid "Please login to continue." msgstr "" -#: ../../mod/admin.php:471 +#: ../../mod/api.php:104 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." +"Do you want to authorize this application to access your posts and contacts, " +"and/or create new posts for you?" msgstr "" -#: ../../mod/admin.php:472 -msgid "Deliveries per process" +#: ../../mod/notify.php:53 ../../mod/notifications.php:94 +msgid "No more system notifications." msgstr "" -#: ../../mod/admin.php:472 -msgid "" -"Number of deliveries to attempt in a single operating system process. Adjust " -"if necessary to tune system performance. Recommend: 1-5." +#: ../../mod/notify.php:57 ../../mod/notifications.php:98 +msgid "System Notifications" msgstr "" -#: ../../mod/admin.php:473 -msgid "Poll interval" +#: ../../mod/rbmark.php:90 +msgid "Select a bookmark folder" msgstr "" -#: ../../mod/admin.php:473 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." +#: ../../mod/rbmark.php:95 +msgid "Save Bookmark" msgstr "" -#: ../../mod/admin.php:474 -msgid "Maximum Load Average" +#: ../../mod/rbmark.php:96 +msgid "URL of bookmark" msgstr "" -#: ../../mod/admin.php:474 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." +#: ../../mod/rbmark.php:97 ../../mod/appman.php:93 ../../mod/events.php:465 +msgid "Description" msgstr "" -#: ../../mod/admin.php:475 -msgid "Expiration period in days for imported (matrix/network) content" +#: ../../mod/rbmark.php:101 +msgid "Or enter new bookmark folder name" msgstr "" -#: ../../mod/admin.php:475 -msgid "0 for no expiration of imported content" +#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 +msgid "Contact not found." msgstr "" -#: ../../mod/admin.php:523 -msgid "No server found" +#: ../../mod/fsuggest.php:63 +msgid "Friend suggestion sent." msgstr "" -#: ../../mod/admin.php:530 ../../mod/admin.php:813 -msgid "ID" +#: ../../mod/fsuggest.php:97 +msgid "Suggest Friends" msgstr "" -#: ../../mod/admin.php:530 -msgid "for channel" +#: ../../mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" msgstr "" -#: ../../mod/admin.php:530 -msgid "on server" +#: ../../mod/sources.php:32 +msgid "Failed to create source. No channel selected." msgstr "" -#: ../../mod/admin.php:530 -msgid "Status" +#: ../../mod/sources.php:45 +msgid "Source created." msgstr "" -#: ../../mod/admin.php:532 -msgid "Server" +#: ../../mod/sources.php:57 +msgid "Source updated." msgstr "" -#: ../../mod/admin.php:549 -msgid "Update has been marked successful" +#: ../../mod/sources.php:82 +msgid "*" msgstr "" -#: ../../mod/admin.php:559 -#, php-format -msgid "Executing %s failed. Check system logs." +#: ../../mod/sources.php:89 +msgid "Manage remote sources of content for your channel." msgstr "" -#: ../../mod/admin.php:562 -#, php-format -msgid "Update %s was successfully applied." +#: ../../mod/sources.php:90 ../../mod/sources.php:100 +msgid "New Source" msgstr "" -#: ../../mod/admin.php:566 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." +#: ../../mod/sources.php:101 ../../mod/sources.php:133 +msgid "" +"Import all or selected content from the following channel into this channel " +"and distribute it according to your channel settings." msgstr "" -#: ../../mod/admin.php:569 -#, php-format -msgid "Update function %s could not be found." +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Only import content with these words (one per line)" msgstr "" -#: ../../mod/admin.php:585 -msgid "No failed updates." +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Leave blank to import all public content" msgstr "" -#: ../../mod/admin.php:589 -msgid "Failed Updates" +#: ../../mod/sources.php:123 ../../mod/sources.php:150 +msgid "Source not found." msgstr "" -#: ../../mod/admin.php:591 -msgid "Mark success (if update was manually applied)" +#: ../../mod/sources.php:130 +msgid "Edit Source" msgstr "" -#: ../../mod/admin.php:592 -msgid "Attempt to execute this update step automatically" +#: ../../mod/sources.php:131 +msgid "Delete Source" msgstr "" -#: ../../mod/admin.php:624 -msgid "Queue Statistics" +#: ../../mod/sources.php:158 +msgid "Source removed" msgstr "" -#: ../../mod/admin.php:625 -msgid "Total Entries" +#: ../../mod/sources.php:160 +msgid "Unable to remove source." msgstr "" -#: ../../mod/admin.php:626 -msgid "Priority" +#: ../../mod/notifications.php:26 +msgid "Invalid request identifier." msgstr "" -#: ../../mod/admin.php:627 -msgid "Destination URL" +#: ../../mod/notifications.php:35 +msgid "Discard" msgstr "" -#: ../../mod/admin.php:628 -msgid "Mark hub permanently offline" +#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 +msgid "Tag removed" msgstr "" -#: ../../mod/admin.php:629 -msgid "Empty queue for this hub" +#: ../../mod/tagrm.php:119 +msgid "Remove Item Tag" msgstr "" -#: ../../mod/admin.php:630 -msgid "Last known contact" +#: ../../mod/tagrm.php:121 +msgid "Select a tag to remove: " msgstr "" -#: ../../mod/admin.php:666 -#, php-format -msgid "%s account blocked/unblocked" -msgid_plural "%s account blocked/unblocked" -msgstr[0] "" -msgstr[1] "" +#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +msgid "Remove" +msgstr "" -#: ../../mod/admin.php:674 +#: ../../mod/directory.php:236 #, php-format -msgid "%s account deleted" -msgid_plural "%s accounts deleted" +msgid "%d rating" +msgid_plural "%d ratings" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:710 -msgid "Account not found" +#: ../../mod/directory.php:247 +msgid "Gender: " msgstr "" -#: ../../mod/admin.php:722 -#, php-format -msgid "Account '%s' deleted" +#: ../../mod/directory.php:249 +msgid "Status: " msgstr "" -#: ../../mod/admin.php:730 -#, php-format -msgid "Account '%s' blocked" +#: ../../mod/directory.php:251 +msgid "Homepage: " msgstr "" -#: ../../mod/admin.php:738 -#, php-format -msgid "Account '%s' unblocked" +#: ../../mod/directory.php:310 +msgid "Description:" msgstr "" -#: ../../mod/admin.php:800 ../../mod/admin.php:812 -msgid "Users" +#: ../../mod/directory.php:319 +msgid "Public Forum:" msgstr "" -#: ../../mod/admin.php:802 ../../mod/admin.php:966 -msgid "select all" +#: ../../mod/directory.php:322 +msgid "Keywords: " msgstr "" -#: ../../mod/admin.php:803 -msgid "User registrations waiting for confirm" +#: ../../mod/directory.php:325 +msgid "Don't suggest" msgstr "" -#: ../../mod/admin.php:804 -msgid "Request date" +#: ../../mod/directory.php:327 +msgid "Common connections:" msgstr "" -#: ../../mod/admin.php:805 -msgid "No registrations." +#: ../../mod/directory.php:376 +msgid "Global Directory" msgstr "" -#: ../../mod/admin.php:807 -msgid "Deny" +#: ../../mod/directory.php:376 +msgid "Local Directory" msgstr "" -#: ../../mod/admin.php:813 -msgid "Register date" +#: ../../mod/directory.php:382 +msgid "Finding:" msgstr "" -#: ../../mod/admin.php:813 -msgid "Last login" +#: ../../mod/directory.php:387 +msgid "next page" msgstr "" -#: ../../mod/admin.php:813 -msgid "Expires" +#: ../../mod/directory.php:387 +msgid "previous page" msgstr "" -#: ../../mod/admin.php:813 -msgid "Service Class" +#: ../../mod/directory.php:388 +msgid "Sort options" msgstr "" -#: ../../mod/admin.php:815 -msgid "" -"Selected accounts will be deleted!\\n\\nEverything these accounts had posted " -"on this site will be permanently deleted!\\n\\nAre you sure?" +#: ../../mod/directory.php:389 +msgid "Alphabetic" msgstr "" -#: ../../mod/admin.php:816 -msgid "" -"The account {0} will be deleted!\\n\\nEverything this account has posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" +#: ../../mod/directory.php:390 +msgid "Reverse Alphabetic" msgstr "" -#: ../../mod/admin.php:852 -#, php-format -msgid "%s channel censored/uncensored" -msgid_plural "%s channels censored/uncensored" -msgstr[0] "" -msgstr[1] "" - -#: ../../mod/admin.php:861 -#, php-format -msgid "%s channel code allowed/disallowed" -msgid_plural "%s channels code allowed/disallowed" -msgstr[0] "" -msgstr[1] "" - -#: ../../mod/admin.php:868 -#, php-format -msgid "%s channel deleted" -msgid_plural "%s channels deleted" -msgstr[0] "" -msgstr[1] "" - -#: ../../mod/admin.php:888 -msgid "Channel not found" +#: ../../mod/directory.php:391 +msgid "Newest to Oldest" msgstr "" -#: ../../mod/admin.php:899 -#, php-format -msgid "Channel '%s' deleted" +#: ../../mod/directory.php:392 +msgid "Oldest to Newest" msgstr "" -#: ../../mod/admin.php:911 -#, php-format -msgid "Channel '%s' censored" +#: ../../mod/directory.php:409 +msgid "No entries (some entries may be hidden)." msgstr "" -#: ../../mod/admin.php:911 -#, php-format -msgid "Channel '%s' uncensored" +#: ../../mod/lostpass.php:15 +msgid "No valid account found." msgstr "" -#: ../../mod/admin.php:922 -#, php-format -msgid "Channel '%s' code allowed" +#: ../../mod/lostpass.php:29 +msgid "Password reset request issued. Check your email." msgstr "" -#: ../../mod/admin.php:922 +#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 #, php-format -msgid "Channel '%s' code disallowed" +msgid "Site Member (%s)" msgstr "" -#: ../../mod/admin.php:968 -msgid "Censor" +#: ../../mod/lostpass.php:40 +#, php-format +msgid "Password reset requested at %s" msgstr "" -#: ../../mod/admin.php:969 -msgid "Uncensor" +#: ../../mod/lostpass.php:63 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." msgstr "" -#: ../../mod/admin.php:970 -msgid "Allow Code" +#: ../../mod/lostpass.php:86 ../../boot.php:1494 +msgid "Password Reset" msgstr "" -#: ../../mod/admin.php:971 -msgid "Disallow Code" +#: ../../mod/lostpass.php:87 +msgid "Your password has been reset as requested." msgstr "" -#: ../../mod/admin.php:973 -msgid "UID" +#: ../../mod/lostpass.php:88 +msgid "Your new password is" msgstr "" -#: ../../mod/admin.php:973 ../../mod/profiles.php:447 -msgid "Address" +#: ../../mod/lostpass.php:89 +msgid "Save or copy your new password - and then" msgstr "" -#: ../../mod/admin.php:975 -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?" +#: ../../mod/lostpass.php:90 +msgid "click here to login" msgstr "" -#: ../../mod/admin.php:976 +#: ../../mod/lostpass.php:91 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?" +"Your password may be changed from the <em>Settings</em> page after " +"successful login." msgstr "" -#: ../../mod/admin.php:1016 +#: ../../mod/lostpass.php:108 #, php-format -msgid "Plugin %s disabled." +msgid "Your password has changed at %s" msgstr "" -#: ../../mod/admin.php:1020 -#, php-format -msgid "Plugin %s enabled." +#: ../../mod/lostpass.php:123 +msgid "Forgot your Password?" msgstr "" -#: ../../mod/admin.php:1030 ../../mod/admin.php:1228 -msgid "Disable" +#: ../../mod/lostpass.php:124 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." msgstr "" -#: ../../mod/admin.php:1033 ../../mod/admin.php:1230 -msgid "Enable" +#: ../../mod/lostpass.php:125 +msgid "Email Address" msgstr "" -#: ../../mod/admin.php:1057 ../../mod/admin.php:1257 -msgid "Toggle" +#: ../../mod/lostpass.php:126 +msgid "Reset" msgstr "" -#: ../../mod/admin.php:1065 ../../mod/admin.php:1267 -msgid "Author: " +#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 +msgid "This site is not a directory server" msgstr "" -#: ../../mod/admin.php:1066 ../../mod/admin.php:1268 -msgid "Maintainer: " +#: ../../mod/impel.php:192 +#, php-format +msgid "%s element installed" msgstr "" -#: ../../mod/admin.php:1193 -msgid "No themes found." +#: ../../mod/impel.php:195 +#, php-format +msgid "%s element installation failed" msgstr "" -#: ../../mod/admin.php:1249 -msgid "Screenshot" +#: ../../mod/subthread.php:114 +#, php-format +msgid "%1$s is following %2$s's %3$s" msgstr "" -#: ../../mod/admin.php:1295 -msgid "[Experimental]" +#: ../../mod/subthread.php:116 +#, php-format +msgid "%1$s stopped following %2$s's %3$s" msgstr "" -#: ../../mod/admin.php:1296 -msgid "[Unsupported]" +#: ../../mod/import.php:28 +#, php-format +msgid "Your service plan only allows %d channels." msgstr "" -#: ../../mod/admin.php:1320 -msgid "Log settings updated." +#: ../../mod/import.php:66 ../../mod/import_items.php:38 +msgid "Nothing to import." msgstr "" -#: ../../mod/admin.php:1377 -msgid "Clear" +#: ../../mod/import.php:90 ../../mod/import_items.php:62 +msgid "Unable to download data from old server" msgstr "" -#: ../../mod/admin.php:1383 -msgid "Debugging" +#: ../../mod/import.php:96 ../../mod/import_items.php:68 +msgid "Imported file is empty." msgstr "" -#: ../../mod/admin.php:1384 -msgid "Log file" +#: ../../mod/import.php:116 ../../mod/import_items.php:82 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." msgstr "" -#: ../../mod/admin.php:1384 -msgid "" -"Must be writable by web server. Relative to your Red top-level directory." +#: ../../mod/import.php:149 +msgid "No channel. Import failed." msgstr "" -#: ../../mod/admin.php:1385 -msgid "Log level" +#: ../../mod/import.php:509 +msgid "You must be logged in to use this feature." msgstr "" -#: ../../mod/admin.php:1431 -msgid "New Profile Field" +#: ../../mod/import.php:514 +msgid "Import Channel" msgstr "" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 -msgid "Field nickname" +#: ../../mod/import.php:515 +msgid "" +"Use this form to import an existing channel from a different server/hub. You " +"may retrieve the channel identity from the old server/hub via the network or " +"provide an export file." msgstr "" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 -msgid "System name of field" +#: ../../mod/import.php:516 ../../mod/import_items.php:121 +msgid "File to Upload" msgstr "" -#: ../../mod/admin.php:1433 ../../mod/admin.php:1453 -msgid "Input type" +#: ../../mod/import.php:517 +msgid "Or provide the old server/hub details" msgstr "" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 -msgid "Field Name" +#: ../../mod/import.php:518 +msgid "Your old identity address (xyz@example.com)" msgstr "" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 -msgid "Label on profile pages" +#: ../../mod/import.php:519 +msgid "Your old login email address" msgstr "" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 -msgid "Help text" +#: ../../mod/import.php:520 +msgid "Your old login password" msgstr "" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 -msgid "Additional info (optional)" +#: ../../mod/import.php:521 +msgid "" +"For either option, please choose whether to make this hub your new primary " +"address, or whether your old location should continue this role. You will be " +"able to post from either location, but only one can be marked as the primary " +"location for files, photos, and media." msgstr "" -#: ../../mod/admin.php:1445 -msgid "Field definition not found" +#: ../../mod/import.php:522 +msgid "Make this hub my primary location" msgstr "" -#: ../../mod/admin.php:1451 -msgid "Edit Profile Field" +#: ../../mod/import.php:523 +msgid "" +"Import existing posts if possible (experimental - limited by available memory" msgstr "" -#: ../../mod/appman.php:28 ../../mod/appman.php:44 -msgid "App installed." +#: ../../mod/import.php:524 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." msgstr "" -#: ../../mod/appman.php:37 -msgid "Malformed app." +#: ../../mod/photos.php:79 +msgid "Page owner information could not be retrieved." msgstr "" -#: ../../mod/appman.php:80 -msgid "Embed code" +#: ../../mod/photos.php:100 +msgid "Album not found." msgstr "" -#: ../../mod/appman.php:86 -msgid "Edit App" +#: ../../mod/photos.php:127 +msgid "Delete Album" msgstr "" -#: ../../mod/appman.php:86 -msgid "Create App" +#: ../../mod/photos.php:171 ../../mod/photos.php:1009 +msgid "Delete Photo" msgstr "" -#: ../../mod/appman.php:91 -msgid "Name of app" +#: ../../mod/photos.php:501 +msgid "No photos selected" msgstr "" -#: ../../mod/appman.php:92 -msgid "Location (URL) of app" +#: ../../mod/photos.php:550 +msgid "Access to this item is restricted." msgstr "" -#: ../../mod/appman.php:93 ../../mod/rbmark.php:97 -msgid "Description" +#: ../../mod/photos.php:589 +#, php-format +msgid "%1$.2f MB of %2$.2f MB photo storage used." msgstr "" -#: ../../mod/appman.php:94 -msgid "Photo icon URL" +#: ../../mod/photos.php:592 +#, php-format +msgid "%1$.2f MB photo storage used." msgstr "" -#: ../../mod/appman.php:94 -msgid "80 x 80 pixels - optional" +#: ../../mod/photos.php:620 +msgid "Upload Photos" msgstr "" -#: ../../mod/appman.php:95 -msgid "Version ID" +#: ../../mod/photos.php:624 +msgid "Enter an album name" msgstr "" -#: ../../mod/appman.php:96 -msgid "Price of app" +#: ../../mod/photos.php:625 +msgid "or select an existing album (doubleclick)" msgstr "" -#: ../../mod/appman.php:97 -msgid "Location (URL) to purchase app" +#: ../../mod/photos.php:626 +msgid "Create a status post for this upload" msgstr "" -#: ../../mod/menu.php:45 -msgid "Unable to update menu." +#: ../../mod/photos.php:627 +msgid "Caption (optional):" msgstr "" -#: ../../mod/menu.php:56 -msgid "Unable to create menu." +#: ../../mod/photos.php:628 +msgid "Description (optional):" msgstr "" -#: ../../mod/menu.php:94 ../../mod/menu.php:106 -msgid "Menu Name" +#: ../../mod/photos.php:655 +msgid "Album name could not be decoded" msgstr "" -#: ../../mod/menu.php:94 -msgid "Unique name (not visible on webpage) - required" +#: ../../mod/photos.php:699 ../../mod/photos.php:1236 +#: ../../mod/photos.php:1253 +msgid "Contact Photos" msgstr "" -#: ../../mod/menu.php:95 ../../mod/menu.php:107 -msgid "Menu Title" +#: ../../mod/photos.php:727 +msgid "Show Newest First" msgstr "" -#: ../../mod/menu.php:95 -msgid "Visible on webpage - leave empty for no title" +#: ../../mod/photos.php:729 +msgid "Show Oldest First" msgstr "" -#: ../../mod/menu.php:96 -msgid "Allow Bookmarks" +#: ../../mod/photos.php:827 +msgid "Permission denied. Access to this item may be restricted." msgstr "" -#: ../../mod/menu.php:96 ../../mod/menu.php:153 -msgid "Menu may be used to store saved bookmarks" +#: ../../mod/photos.php:829 +msgid "Photo not available" msgstr "" -#: ../../mod/menu.php:97 ../../mod/menu.php:155 -msgid "Submit and proceed" +#: ../../mod/photos.php:887 +msgid "Use as profile photo" msgstr "" -#: ../../mod/menu.php:109 -msgid "Drop" +#: ../../mod/photos.php:894 +msgid "Private Photo" msgstr "" -#: ../../mod/menu.php:113 -msgid "Bookmarks allowed" +#: ../../mod/photos.php:905 ../../mod/events.php:667 ../../mod/events.php:674 +msgid "Previous" msgstr "" -#: ../../mod/menu.php:115 -msgid "Delete this menu" +#: ../../mod/photos.php:909 +msgid "View Full Size" msgstr "" -#: ../../mod/menu.php:116 ../../mod/menu.php:150 -msgid "Edit menu contents" +#: ../../mod/photos.php:988 +msgid "Edit photo" msgstr "" -#: ../../mod/menu.php:117 -msgid "Edit this menu" +#: ../../mod/photos.php:990 +msgid "Rotate CW (right)" msgstr "" -#: ../../mod/menu.php:132 -msgid "Menu could not be deleted." +#: ../../mod/photos.php:991 +msgid "Rotate CCW (left)" msgstr "" -#: ../../mod/menu.php:145 -msgid "Edit Menu" +#: ../../mod/photos.php:994 +msgid "Enter a new album name" msgstr "" -#: ../../mod/menu.php:149 -msgid "Add or remove entries to this menu" +#: ../../mod/photos.php:995 +msgid "or select an existing one (doubleclick)" msgstr "" -#: ../../mod/menu.php:151 -msgid "Menu name" +#: ../../mod/photos.php:998 +msgid "Caption" msgstr "" -#: ../../mod/menu.php:151 -msgid "Must be unique, only seen by you" +#: ../../mod/photos.php:1000 +msgid "Add a Tag" msgstr "" -#: ../../mod/menu.php:152 -msgid "Menu title" +#: ../../mod/photos.php:1004 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" msgstr "" -#: ../../mod/menu.php:152 -msgid "Menu title as seen by others" +#: ../../mod/photos.php:1007 +msgid "Flag as adult in album view" msgstr "" -#: ../../mod/menu.php:153 -msgid "Allow bookmarks" +#: ../../mod/photos.php:1199 +msgid "In This Photo:" msgstr "" -#: ../../mod/notify.php:53 ../../mod/notifications.php:94 -msgid "No more system notifications." +#: ../../mod/photos.php:1204 +msgid "Map" msgstr "" -#: ../../mod/notify.php:57 ../../mod/notifications.php:98 -msgid "System Notifications" +#: ../../mod/photos.php:1292 +msgid "View Album" msgstr "" -#: ../../mod/page.php:126 -msgid "" -"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " -"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, " -"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " -"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " -"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " -"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +#: ../../mod/photos.php:1315 +msgid "Recent Photos" msgstr "" -#: ../../mod/new_channel.php:109 -msgid "Add a Channel" +#: ../../mod/probe.php:24 ../../mod/probe.php:30 +#, php-format +msgid "Fetching URL returns error: %1$s" msgstr "" -#: ../../mod/new_channel.php:110 -msgid "" -"A channel is your own collection of related web pages. A channel can be used " -"to hold social network profiles, blogs, conversation groups and forums, " -"celebrity pages, and much more. You may create as many channels as your " -"service provider allows." +#: ../../mod/profile_photo.php:112 +msgid "Image uploaded but image cropping failed." msgstr "" -#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 -#: ../../mod/sources.php:137 -msgid "Channel Name" +#: ../../mod/profile_photo.php:166 +msgid "Image resize failed." msgstr "" -#: ../../mod/new_channel.php:113 +#: ../../mod/profile_photo.php:212 msgid "" -"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation " -"Group\" " +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." msgstr "" -#: ../../mod/new_channel.php:114 -msgid "Choose a short nickname" +#: ../../mod/profile_photo.php:250 +msgid "Image upload failed." msgstr "" -#: ../../mod/new_channel.php:115 -msgid "" -"Your nickname will be used to create an easily remembered channel address " -"(like an email address) which you can share with others." +#: ../../mod/profile_photo.php:269 +msgid "Unable to process image." msgstr "" -#: ../../mod/new_channel.php:116 -msgid "" -"Or <a href=\"import\">import an existing channel</a> from another location" +#: ../../mod/profile_photo.php:297 +msgid "female" msgstr "" -#: ../../mod/new_channel.php:118 -msgid "" -"Please choose a channel type (such as social networking or community forum) " -"and privacy requirements so we can select the best permissions for you" +#: ../../mod/profile_photo.php:298 +#, php-format +msgid "%1$s updated her %2$s" msgstr "" -#: ../../mod/new_channel.php:119 -msgid "Channel Type" +#: ../../mod/profile_photo.php:299 +msgid "male" msgstr "" -#: ../../mod/new_channel.php:119 -msgid "Read more about roles" +#: ../../mod/profile_photo.php:300 +#, php-format +msgid "%1$s updated his %2$s" msgstr "" -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." +#: ../../mod/profile_photo.php:302 +#, php-format +msgid "%1$s updated their %2$s" msgstr "" -#: ../../mod/notifications.php:35 -msgid "Discard" +#: ../../mod/profile_photo.php:304 +msgid "profile photo" msgstr "" -#: ../../mod/pdledit.php:13 -msgid "Layout updated." +#: ../../mod/profile_photo.php:368 ../../mod/profile_photo.php:409 +msgid "Photo not available." msgstr "" -#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 -msgid "Edit System Page Description" +#: ../../mod/profile_photo.php:450 +msgid "Upload File:" msgstr "" -#: ../../mod/pdledit.php:48 -msgid "Layout not found." +#: ../../mod/profile_photo.php:451 +msgid "Select a profile:" msgstr "" -#: ../../mod/pdledit.php:54 -msgid "Module Name:" +#: ../../mod/profile_photo.php:452 +msgid "Upload Profile Photo" msgstr "" -#: ../../mod/pdledit.php:55 -msgid "Layout Help" +#: ../../mod/profile_photo.php:457 ../../mod/settings.php:975 +msgid "or" msgstr "" -#: ../../mod/subthread.php:108 -#, php-format -msgid "%1$s is following %2$s's %3$s" +#: ../../mod/profile_photo.php:457 +msgid "skip this step" msgstr "" -#: ../../mod/subthread.php:110 -#, php-format -msgid "%1$s stopped following %2$s's %3$s" +#: ../../mod/profile_photo.php:457 +msgid "select a photo from your photo albums" msgstr "" -#: ../../mod/lostpass.php:15 -msgid "No valid account found." +#: ../../mod/profile_photo.php:473 +msgid "Crop Image" msgstr "" -#: ../../mod/lostpass.php:29 -msgid "Password reset request issued. Check your email." +#: ../../mod/profile_photo.php:474 +msgid "Please adjust the image cropping for optimum viewing." msgstr "" -#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 -#, php-format -msgid "Site Member (%s)" +#: ../../mod/profile_photo.php:476 +msgid "Done Editing" msgstr "" -#: ../../mod/lostpass.php:40 -#, php-format -msgid "Password reset requested at %s" +#: ../../mod/thing.php:111 +msgid "Thing updated" msgstr "" -#: ../../mod/lostpass.php:63 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." +#: ../../mod/thing.php:163 +msgid "Object store: failed" msgstr "" -#: ../../mod/lostpass.php:86 ../../boot.php:1511 -msgid "Password Reset" +#: ../../mod/thing.php:167 +msgid "Thing added" msgstr "" -#: ../../mod/lostpass.php:87 -msgid "Your password has been reset as requested." +#: ../../mod/thing.php:193 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" msgstr "" -#: ../../mod/lostpass.php:88 -msgid "Your new password is" +#: ../../mod/thing.php:256 +msgid "Show Thing" msgstr "" -#: ../../mod/lostpass.php:89 -msgid "Save or copy your new password - and then" +#: ../../mod/thing.php:263 +msgid "item not found." msgstr "" -#: ../../mod/lostpass.php:90 -msgid "click here to login" +#: ../../mod/thing.php:296 +msgid "Edit Thing" msgstr "" -#: ../../mod/lostpass.php:91 -msgid "" -"Your password may be changed from the <em>Settings</em> page after " -"successful login." +#: ../../mod/thing.php:298 ../../mod/thing.php:348 +msgid "Select a profile" msgstr "" -#: ../../mod/lostpass.php:108 -#, php-format -msgid "Your password has changed at %s" +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Post an activity" msgstr "" -#: ../../mod/lostpass.php:123 -msgid "Forgot your Password?" +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Only sends to viewers of the applicable profile" msgstr "" -#: ../../mod/lostpass.php:124 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." +#: ../../mod/thing.php:304 ../../mod/thing.php:353 +msgid "Name of thing e.g. something" msgstr "" -#: ../../mod/lostpass.php:125 -msgid "Email Address" +#: ../../mod/thing.php:306 ../../mod/thing.php:354 +msgid "URL of thing (optional)" msgstr "" -#: ../../mod/lostpass.php:126 -msgid "Reset" +#: ../../mod/thing.php:308 ../../mod/thing.php:355 +msgid "URL for photo of thing (optional)" msgstr "" -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 -msgid "$Projectname" +#: ../../mod/thing.php:346 +msgid "Add Thing to your Profile" msgstr "" -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" +#: ../../mod/dirsearch.php:29 +msgid "This directory server requires an access token" msgstr "" -#: ../../mod/dav.php:121 -msgid "$Projectname channel" +#: ../../mod/editblock.php:118 +msgid "Delete block?" msgstr "" -#: ../../mod/events.php:21 -msgid "Calendar entries imported." +#: ../../mod/editblock.php:180 +msgid "Edit Block" msgstr "" -#: ../../mod/events.php:23 -msgid "No calendar entries found." +#: ../../mod/removeaccount.php:30 +msgid "" +"Account removals are not allowed within 48 hours of changing the account " +"password." msgstr "" -#: ../../mod/events.php:96 -msgid "Event can not end before it has started." +#: ../../mod/removeaccount.php:57 +msgid "Remove This Account" msgstr "" -#: ../../mod/events.php:98 ../../mod/events.php:107 ../../mod/events.php:127 -msgid "Unable to generate preview." +#: ../../mod/removeaccount.php:58 +msgid "" +"This account and all its channels will be completely removed from the " +"network. " msgstr "" -#: ../../mod/events.php:105 -msgid "Event title and start time are required." +#: ../../mod/removeaccount.php:60 +msgid "" +"Remove this account, all its channels and all its channel clones from the " +"network" msgstr "" -#: ../../mod/events.php:125 ../../mod/events.php:250 -msgid "Event not found." +#: ../../mod/removeaccount.php:60 +msgid "" +"By default only the instances of the channels located on this hub will be " +"removed from the network" msgstr "" -#: ../../mod/events.php:448 -msgid "l, F j" +#: ../../mod/removeaccount.php:61 ../../mod/settings.php:700 +msgid "Remove Account" msgstr "" -#: ../../mod/events.php:470 -msgid "Edit event" +#: ../../mod/import_items.php:101 +msgid "Import completed" msgstr "" -#: ../../mod/events.php:472 -msgid "Delete event" +#: ../../mod/import_items.php:119 +msgid "Import Items" msgstr "" -#: ../../mod/events.php:506 -msgid "calendar" +#: ../../mod/import_items.php:120 +msgid "Use this form to import existing posts and content from an export file." msgstr "" -#: ../../mod/events.php:527 -msgid "Create New Event" +#: ../../mod/network.php:91 +msgid "No such group" msgstr "" -#: ../../mod/events.php:530 -msgid "Export" +#: ../../mod/network.php:131 +msgid "No such channel" msgstr "" -#: ../../mod/events.php:533 -msgid "Import" +#: ../../mod/network.php:136 +msgid "forum" msgstr "" -#: ../../mod/events.php:564 -msgid "Event removed" +#: ../../mod/network.php:148 +msgid "Search Results For:" msgstr "" -#: ../../mod/events.php:567 -msgid "Failed to remove event" +#: ../../mod/network.php:207 +msgid "Collection is empty" msgstr "" -#: ../../mod/events.php:681 -msgid "Event details" +#: ../../mod/network.php:216 +msgid "Collection: " msgstr "" -#: ../../mod/events.php:682 -msgid "Starting date and Title are required." +#: ../../mod/network.php:242 +msgid "Invalid connection." msgstr "" -#: ../../mod/events.php:684 -msgid "Categories (comma-separated list)" +#: ../../mod/pdledit.php:13 +msgid "Layout updated." msgstr "" -#: ../../mod/events.php:686 -msgid "Event Starts:" +#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 +msgid "Edit System Page Description" msgstr "" -#: ../../mod/events.php:693 -msgid "Finish date/time is not known or not relevant" +#: ../../mod/pdledit.php:48 +msgid "Layout not found." msgstr "" -#: ../../mod/events.php:695 -msgid "Event Finishes:" +#: ../../mod/pdledit.php:54 +msgid "Module Name:" msgstr "" -#: ../../mod/events.php:697 ../../mod/events.php:698 -msgid "Adjust for viewer timezone" +#: ../../mod/pdledit.php:55 +msgid "Layout Help" msgstr "" -#: ../../mod/events.php:697 -msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." +#: ../../mod/register.php:44 +msgid "Maximum daily site registrations exceeded. Please try again tomorrow." msgstr "" -#: ../../mod/events.php:703 -msgid "Title:" +#: ../../mod/register.php:50 +msgid "" +"Please indicate acceptance of the Terms of Service. Registration failed." msgstr "" -#: ../../mod/events.php:705 -msgid "Share this event" +#: ../../mod/register.php:84 +msgid "Passwords do not match." msgstr "" -#: ../../mod/impel.php:192 -#, php-format -msgid "%s element installed" +#: ../../mod/register.php:117 +msgid "" +"Registration successful. Please check your email for validation instructions." msgstr "" -#: ../../mod/impel.php:195 -#, php-format -msgid "%s element installation failed" +#: ../../mod/register.php:123 +msgid "Your registration is pending approval by the site owner." msgstr "" -#: ../../mod/probe.php:24 ../../mod/probe.php:30 -#, php-format -msgid "Fetching URL returns error: %1$s" +#: ../../mod/register.php:126 +msgid "Your registration can not be processed." msgstr "" -#: ../../mod/match.php:22 -msgid "Profile Match" +#: ../../mod/register.php:163 +msgid "Registration on this site/hub is by approval only." msgstr "" -#: ../../mod/match.php:31 -msgid "No keywords to match. Please add keywords to your default profile." +#: ../../mod/register.php:164 +msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" msgstr "" -#: ../../mod/match.php:63 -msgid "is interested in:" +#: ../../mod/register.php:174 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." msgstr "" -#: ../../mod/match.php:70 -msgid "No matches" +#: ../../mod/register.php:185 +msgid "Terms of Service" msgstr "" -#: ../../mod/profile_photo.php:111 -msgid "Image uploaded but image cropping failed." +#: ../../mod/register.php:191 +#, php-format +msgid "I accept the %s for this website" msgstr "" -#: ../../mod/profile_photo.php:165 -msgid "Image resize failed." +#: ../../mod/register.php:193 +#, php-format +msgid "I am over 13 years of age and accept the %s for this website" msgstr "" -#: ../../mod/profile_photo.php:209 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." +#: ../../mod/register.php:207 ../../mod/admin.php:436 +msgid "Registration" msgstr "" -#: ../../mod/profile_photo.php:247 -msgid "Image upload failed." +#: ../../mod/register.php:212 +msgid "Membership on this site is by invitation only." msgstr "" -#: ../../mod/profile_photo.php:266 -msgid "Unable to process image." +#: ../../mod/register.php:213 +msgid "Please enter your invitation code" msgstr "" -#: ../../mod/profile_photo.php:294 -msgid "female" +#: ../../mod/register.php:216 +msgid "Your email address" msgstr "" -#: ../../mod/profile_photo.php:295 -#, php-format -msgid "%1$s updated her %2$s" +#: ../../mod/register.php:217 +msgid "Choose a password" msgstr "" -#: ../../mod/profile_photo.php:296 -msgid "male" +#: ../../mod/register.php:218 +msgid "Please re-enter your password" msgstr "" -#: ../../mod/profile_photo.php:297 -#, php-format -msgid "%1$s updated his %2$s" +#: ../../mod/admin.php:52 +msgid "Theme settings updated." msgstr "" -#: ../../mod/profile_photo.php:299 -#, php-format -msgid "%1$s updated their %2$s" +#: ../../mod/admin.php:160 +msgid "# Accounts" msgstr "" -#: ../../mod/profile_photo.php:301 -msgid "profile photo" +#: ../../mod/admin.php:161 +msgid "# blocked accounts" msgstr "" -#: ../../mod/profile_photo.php:365 ../../mod/profile_photo.php:406 -msgid "Photo not available." +#: ../../mod/admin.php:162 +msgid "# expired accounts" msgstr "" -#: ../../mod/profile_photo.php:447 -msgid "Upload File:" +#: ../../mod/admin.php:163 +msgid "# expiring accounts" msgstr "" -#: ../../mod/profile_photo.php:448 -msgid "Select a profile:" +#: ../../mod/admin.php:174 +msgid "# Channels" msgstr "" -#: ../../mod/profile_photo.php:449 -msgid "Upload Profile Photo" +#: ../../mod/admin.php:175 +msgid "# primary" msgstr "" -#: ../../mod/profile_photo.php:454 ../../mod/settings.php:973 -msgid "or" +#: ../../mod/admin.php:176 +msgid "# clones" msgstr "" -#: ../../mod/profile_photo.php:454 -msgid "skip this step" +#: ../../mod/admin.php:182 +msgid "Message queues" msgstr "" -#: ../../mod/profile_photo.php:454 -msgid "select a photo from your photo albums" +#: ../../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 "" -#: ../../mod/profile_photo.php:470 -msgid "Crop Image" +#: ../../mod/admin.php:199 +msgid "Summary" msgstr "" -#: ../../mod/profile_photo.php:471 -msgid "Please adjust the image cropping for optimum viewing." +#: ../../mod/admin.php:202 +msgid "Registered accounts" msgstr "" -#: ../../mod/profile_photo.php:473 -msgid "Done Editing" +#: ../../mod/admin.php:203 ../../mod/admin.php:536 +msgid "Pending registrations" msgstr "" -#: ../../mod/follow.php:25 -msgid "Channel added." +#: ../../mod/admin.php:204 +msgid "Registered channels" msgstr "" -#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 -msgid "Tag removed" +#: ../../mod/admin.php:205 ../../mod/admin.php:537 +msgid "Active plugins" msgstr "" -#: ../../mod/tagrm.php:119 -msgid "Remove Item Tag" +#: ../../mod/admin.php:206 +msgid "Version" msgstr "" -#: ../../mod/tagrm.php:121 -msgid "Select a tag to remove: " +#: ../../mod/admin.php:324 +msgid "Site settings updated." msgstr "" -#: ../../mod/ratings.php:69 -msgid "No ratings" +#: ../../mod/admin.php:361 ../../mod/settings.php:793 +msgid "mobile" msgstr "" -#: ../../mod/ratings.php:99 -msgid "Ratings" +#: ../../mod/admin.php:363 +msgid "experimental" msgstr "" -#: ../../mod/ratings.php:100 -msgid "Rating: " +#: ../../mod/admin.php:365 +msgid "unsupported" msgstr "" -#: ../../mod/ratings.php:101 -msgid "Website: " +#: ../../mod/admin.php:411 +msgid "Yes - with approval" msgstr "" -#: ../../mod/ratings.php:103 -msgid "Description: " +#: ../../mod/admin.php:417 +msgid "My site is not a public server" msgstr "" -#: ../../mod/item.php:173 -msgid "Unable to locate original post." +#: ../../mod/admin.php:418 +msgid "My site has paid access only" msgstr "" -#: ../../mod/item.php:417 -msgid "Empty post discarded." +#: ../../mod/admin.php:419 +msgid "My site has free access only" msgstr "" -#: ../../mod/item.php:457 -msgid "Executable content type not permitted to this channel." +#: ../../mod/admin.php:420 +msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../mod/item.php:908 -msgid "System error. Post not saved." +#: ../../mod/admin.php:437 +msgid "File upload" msgstr "" -#: ../../mod/item.php:1175 -msgid "Unable to obtain post information from database." +#: ../../mod/admin.php:438 +msgid "Policies" msgstr "" -#: ../../mod/item.php:1182 -#, php-format -msgid "You have reached your limit of %1$.0f top level posts." +#: ../../mod/admin.php:443 +msgid "Site name" msgstr "" -#: ../../mod/item.php:1189 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." +#: ../../mod/admin.php:444 +msgid "Banner/Logo" msgstr "" -#: ../../mod/webpages.php:191 -msgid "Page Title" +#: ../../mod/admin.php:445 +msgid "Administrator Information" msgstr "" -#: ../../mod/register.php:44 -msgid "Maximum daily site registrations exceeded. Please try again tomorrow." +#: ../../mod/admin.php:445 +msgid "" +"Contact information for site administrators. Displayed on siteinfo page. " +"BBCode can be used here" msgstr "" -#: ../../mod/register.php:50 -msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." +#: ../../mod/admin.php:446 +msgid "System language" msgstr "" -#: ../../mod/register.php:84 -msgid "Passwords do not match." +#: ../../mod/admin.php:447 +msgid "System theme" msgstr "" -#: ../../mod/register.php:117 +#: ../../mod/admin.php:447 msgid "" -"Registration successful. Please check your email for validation instructions." +"Default system theme - may be over-ridden by user profiles - <a href='#' " +"id='cnftheme'>change theme settings</a>" msgstr "" -#: ../../mod/register.php:123 -msgid "Your registration is pending approval by the site owner." +#: ../../mod/admin.php:448 +msgid "Mobile system theme" msgstr "" -#: ../../mod/register.php:126 -msgid "Your registration can not be processed." +#: ../../mod/admin.php:448 +msgid "Theme for mobile devices" msgstr "" -#: ../../mod/register.php:163 -msgid "Registration on this site/hub is by approval only." +#: ../../mod/admin.php:450 +msgid "Allow Feeds as Connections" msgstr "" -#: ../../mod/register.php:164 -msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" +#: ../../mod/admin.php:450 +msgid "(Heavy system resource usage)" msgstr "" -#: ../../mod/register.php:174 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." +#: ../../mod/admin.php:451 +msgid "Maximum image size" msgstr "" -#: ../../mod/register.php:185 -msgid "Terms of Service" +#: ../../mod/admin.php:451 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." msgstr "" -#: ../../mod/register.php:191 -#, php-format -msgid "I accept the %s for this website" +#: ../../mod/admin.php:452 +msgid "Does this site allow new member registration?" msgstr "" -#: ../../mod/register.php:193 -#, php-format -msgid "I am over 13 years of age and accept the %s for this website" +#: ../../mod/admin.php:453 +msgid "Which best describes the types of account offered by this hub?" msgstr "" -#: ../../mod/register.php:212 -msgid "Membership on this site is by invitation only." +#: ../../mod/admin.php:454 +msgid "Register text" msgstr "" -#: ../../mod/register.php:213 -msgid "Please enter your invitation code" +#: ../../mod/admin.php:454 +msgid "Will be displayed prominently on the registration page." msgstr "" -#: ../../mod/register.php:216 -msgid "Your email address" +#: ../../mod/admin.php:455 +msgid "Site homepage to show visitors (default: login box)" msgstr "" -#: ../../mod/register.php:217 -msgid "Choose a password" +#: ../../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/register.php:218 -msgid "Please re-enter your password" +#: ../../mod/admin.php:456 +msgid "Preserve site homepage URL" msgstr "" -#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 -msgid "Block Name" +#: ../../mod/admin.php:456 +msgid "" +"Present the site homepage in a frame at the original location instead of " +"redirecting" msgstr "" -#: ../../mod/blocks.php:149 -msgid "Block Title" +#: ../../mod/admin.php:457 +msgid "Accounts abandoned after x days" msgstr "" -#: ../../mod/removeaccount.php:30 +#: ../../mod/admin.php:457 msgid "" -"Account removals are not allowed within 48 hours of changing the account " -"password." +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." msgstr "" -#: ../../mod/removeaccount.php:57 -msgid "Remove This Account" +#: ../../mod/admin.php:458 +msgid "Allowed friend domains" msgstr "" -#: ../../mod/removeaccount.php:58 +#: ../../mod/admin.php:458 msgid "" -"This account and all its channels will be completely removed from the " -"network. " +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: ../../mod/removeaccount.php:60 -msgid "" -"Remove this account, all its channels and all its channel clones from the " -"network" +#: ../../mod/admin.php:459 +msgid "Allowed email domains" msgstr "" -#: ../../mod/removeaccount.php:60 +#: ../../mod/admin.php:459 msgid "" -"By default only the instances of the channels located on this hub will be " -"removed from the network" -msgstr "" - -#: ../../mod/removeaccount.php:61 ../../mod/settings.php:698 -msgid "Remove Account" +"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/service_limits.php:19 -msgid "No service class restrictions found." +#: ../../mod/admin.php:460 +msgid "Not allowed email domains" msgstr "" -#: ../../mod/attach.php:9 -msgid "Item not available." +#: ../../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/pubsites.php:18 -msgid "Public Sites" +#: ../../mod/admin.php:461 +msgid "Block public" msgstr "" -#: ../../mod/pubsites.php:21 +#: ../../mod/admin.php:461 msgid "" -"The listed sites allow public registration for the $Projectname network. All " -"sites in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some sites may require subscription or " -"provide tiered service plans. The provider links <strong>may</strong> " -"provide additional details." +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." msgstr "" -#: ../../mod/pubsites.php:27 -msgid "Rate this hub" +#: ../../mod/admin.php:462 +msgid "Verify Email Addresses" msgstr "" -#: ../../mod/pubsites.php:28 -msgid "Site URL" +#: ../../mod/admin.php:462 +msgid "" +"Check to verify email addresses used in account registration (recommended)." msgstr "" -#: ../../mod/pubsites.php:28 -msgid "Access Type" +#: ../../mod/admin.php:463 +msgid "Force publish" msgstr "" -#: ../../mod/pubsites.php:28 -msgid "Registration Policy" +#: ../../mod/admin.php:463 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: ../../mod/pubsites.php:28 ../../mod/profiles.php:454 -msgid "Location" +#: ../../mod/admin.php:464 +msgid "Disable discovery tab" msgstr "" -#: ../../mod/pubsites.php:28 -msgid "Project" +#: ../../mod/admin.php:464 +msgid "" +"Remove the tab in the network view with public content pulled from sources " +"chosen for this site." msgstr "" -#: ../../mod/pubsites.php:28 -msgid "View hub ratings" +#: ../../mod/admin.php:465 +msgid "login on Homepage" msgstr "" -#: ../../mod/pubsites.php:32 -msgid "Rate" +#: ../../mod/admin.php:465 +msgid "" +"Present a login box to visitors on the home page if no other content has " +"been configured." msgstr "" -#: ../../mod/pubsites.php:33 -msgid "View ratings" +#: ../../mod/admin.php:467 +msgid "Directory Server URL" msgstr "" -#: ../../mod/sources.php:32 -msgid "Failed to create source. No channel selected." +#: ../../mod/admin.php:467 +msgid "Default directory server" msgstr "" -#: ../../mod/sources.php:45 -msgid "Source created." +#: ../../mod/admin.php:469 +msgid "Proxy user" msgstr "" -#: ../../mod/sources.php:57 -msgid "Source updated." +#: ../../mod/admin.php:470 +msgid "Proxy URL" msgstr "" -#: ../../mod/sources.php:82 -msgid "*" +#: ../../mod/admin.php:471 +msgid "Network timeout" msgstr "" -#: ../../mod/sources.php:89 -msgid "Manage remote sources of content for your channel." +#: ../../mod/admin.php:471 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: ../../mod/sources.php:90 ../../mod/sources.php:100 -msgid "New Source" +#: ../../mod/admin.php:472 +msgid "Delivery interval" msgstr "" -#: ../../mod/sources.php:101 ../../mod/sources.php:133 +#: ../../mod/admin.php:472 msgid "" -"Import all or selected content from the following channel into this channel " -"and distribute it according to your channel settings." -msgstr "" - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Only import content with these words (one per line)" -msgstr "" - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Leave blank to import all public content" +"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/sources.php:123 ../../mod/sources.php:150 -msgid "Source not found." +#: ../../mod/admin.php:473 +msgid "Deliveries per process" msgstr "" -#: ../../mod/sources.php:130 -msgid "Edit Source" +#: ../../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/sources.php:131 -msgid "Delete Source" +#: ../../mod/admin.php:474 +msgid "Poll interval" msgstr "" -#: ../../mod/sources.php:158 -msgid "Source removed" +#: ../../mod/admin.php:474 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." msgstr "" -#: ../../mod/sources.php:160 -msgid "Unable to remove source." +#: ../../mod/admin.php:475 +msgid "Maximum Load Average" msgstr "" -#: ../../mod/lockview.php:37 -msgid "Remote privacy information not available." +#: ../../mod/admin.php:475 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." msgstr "" -#: ../../mod/lockview.php:58 -msgid "Visible to:" +#: ../../mod/admin.php:476 +msgid "Expiration period in days for imported (matrix/network) content" msgstr "" -#: ../../mod/acl.php:222 -msgid "network" +#: ../../mod/admin.php:476 +msgid "0 for no expiration of imported content" msgstr "" -#: ../../mod/acl.php:232 -msgid "RSS" +#: ../../mod/admin.php:524 +msgid "No server found" msgstr "" -#: ../../mod/regmod.php:11 -msgid "Please login." +#: ../../mod/admin.php:531 ../../mod/admin.php:814 +msgid "ID" msgstr "" -#: ../../mod/rmagic.php:40 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." +#: ../../mod/admin.php:531 +msgid "for channel" msgstr "" -#: ../../mod/rmagic.php:40 -msgid "The error message was:" +#: ../../mod/admin.php:531 +msgid "on server" msgstr "" -#: ../../mod/rmagic.php:44 -msgid "Authentication failed." +#: ../../mod/admin.php:531 +msgid "Status" msgstr "" -#: ../../mod/rmagic.php:84 -msgid "Remote Authentication" +#: ../../mod/admin.php:533 +msgid "Server" msgstr "" -#: ../../mod/rmagic.php:85 -msgid "Enter your channel address (e.g. channel@example.com)" +#: ../../mod/admin.php:550 +msgid "Update has been marked successful" msgstr "" -#: ../../mod/rmagic.php:86 -msgid "Authenticate" +#: ../../mod/admin.php:560 +#, php-format +msgid "Executing %s failed. Check system logs." msgstr "" -#: ../../mod/channel.php:97 -msgid "Insufficient permissions. Request redirected to profile page." +#: ../../mod/admin.php:563 +#, php-format +msgid "Update %s was successfully applied." msgstr "" -#: ../../mod/siteinfo.php:111 +#: ../../mod/admin.php:567 #, php-format -msgid "Version %s" +msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "" -#: ../../mod/siteinfo.php:132 -msgid "Installed plugins/addons/apps:" +#: ../../mod/admin.php:570 +#, php-format +msgid "Update function %s could not be found." msgstr "" -#: ../../mod/siteinfo.php:145 -msgid "No installed plugins/addons/apps" +#: ../../mod/admin.php:586 +msgid "No failed updates." msgstr "" -#: ../../mod/siteinfo.php:158 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." +#: ../../mod/admin.php:590 +msgid "Failed Updates" msgstr "" -#: ../../mod/siteinfo.php:160 -msgid "Tag: " +#: ../../mod/admin.php:592 +msgid "Mark success (if update was manually applied)" msgstr "" -#: ../../mod/siteinfo.php:162 -msgid "Last background fetch: " +#: ../../mod/admin.php:593 +msgid "Attempt to execute this update step automatically" msgstr "" -#: ../../mod/siteinfo.php:164 -msgid "Current load average: " +#: ../../mod/admin.php:625 +msgid "Queue Statistics" msgstr "" -#: ../../mod/siteinfo.php:167 -msgid "Running at web location" +#: ../../mod/admin.php:626 +msgid "Total Entries" msgstr "" -#: ../../mod/siteinfo.php:168 -msgid "" -"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " -"about $Projectname." +#: ../../mod/admin.php:627 +msgid "Priority" msgstr "" -#: ../../mod/siteinfo.php:169 -msgid "Bug reports and issues: please visit" +#: ../../mod/admin.php:628 +msgid "Destination URL" msgstr "" -#: ../../mod/siteinfo.php:171 -msgid "$projectname issues" +#: ../../mod/admin.php:629 +msgid "Mark hub permanently offline" msgstr "" -#: ../../mod/siteinfo.php:172 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com" +#: ../../mod/admin.php:630 +msgid "Empty queue for this hub" msgstr "" -#: ../../mod/siteinfo.php:174 -msgid "Site Administrators" +#: ../../mod/admin.php:631 +msgid "Last known contact" msgstr "" -#: ../../mod/import.php:27 +#: ../../mod/admin.php:667 #, php-format -msgid "Your service plan only allows %d channels." -msgstr "" +msgid "%s account blocked/unblocked" +msgid_plural "%s account blocked/unblocked" +msgstr[0] "" +msgstr[1] "" -#: ../../mod/import.php:65 ../../mod/import_items.php:38 -msgid "Nothing to import." -msgstr "" +#: ../../mod/admin.php:675 +#, php-format +msgid "%s account deleted" +msgid_plural "%s accounts deleted" +msgstr[0] "" +msgstr[1] "" -#: ../../mod/import.php:89 ../../mod/import_items.php:62 -msgid "Unable to download data from old server" +#: ../../mod/admin.php:711 +msgid "Account not found" msgstr "" -#: ../../mod/import.php:95 ../../mod/import_items.php:68 -msgid "Imported file is empty." +#: ../../mod/admin.php:723 +#, php-format +msgid "Account '%s' deleted" msgstr "" -#: ../../mod/import.php:115 ../../mod/import_items.php:82 +#: ../../mod/admin.php:731 #, php-format -msgid "Warning: Database versions differ by %1$d updates." +msgid "Account '%s' blocked" msgstr "" -#: ../../mod/import.php:148 -msgid "No channel. Import failed." +#: ../../mod/admin.php:739 +#, php-format +msgid "Account '%s' unblocked" msgstr "" -#: ../../mod/import.php:499 -msgid "You must be logged in to use this feature." +#: ../../mod/admin.php:801 ../../mod/admin.php:813 +msgid "Users" msgstr "" -#: ../../mod/import.php:504 -msgid "Import Channel" +#: ../../mod/admin.php:803 ../../mod/admin.php:967 +msgid "select all" msgstr "" -#: ../../mod/import.php:505 -msgid "" -"Use this form to import an existing channel from a different server/hub. You " -"may retrieve the channel identity from the old server/hub via the network or " -"provide an export file." +#: ../../mod/admin.php:804 +msgid "User registrations waiting for confirm" msgstr "" -#: ../../mod/import.php:506 ../../mod/import_items.php:121 -msgid "File to Upload" +#: ../../mod/admin.php:805 +msgid "Request date" msgstr "" -#: ../../mod/import.php:507 -msgid "Or provide the old server/hub details" +#: ../../mod/admin.php:806 +msgid "No registrations." msgstr "" -#: ../../mod/import.php:508 -msgid "Your old identity address (xyz@example.com)" +#: ../../mod/admin.php:808 +msgid "Deny" msgstr "" -#: ../../mod/import.php:509 -msgid "Your old login email address" +#: ../../mod/admin.php:814 +msgid "Register date" msgstr "" -#: ../../mod/import.php:510 -msgid "Your old login password" +#: ../../mod/admin.php:814 +msgid "Last login" msgstr "" -#: ../../mod/import.php:511 -msgid "" -"For either option, please choose whether to make this hub your new primary " -"address, or whether your old location should continue this role. You will be " -"able to post from either location, but only one can be marked as the primary " -"location for files, photos, and media." +#: ../../mod/admin.php:814 +msgid "Expires" msgstr "" -#: ../../mod/import.php:512 -msgid "Make this hub my primary location" +#: ../../mod/admin.php:814 +msgid "Service Class" msgstr "" -#: ../../mod/import.php:513 +#: ../../mod/admin.php:816 msgid "" -"Import existing posts if possible (experimental - limited by available memory" +"Selected accounts will be deleted!\\n\\nEverything these accounts had posted " +"on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/import.php:514 +#: ../../mod/admin.php:817 msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "" - -#: ../../mod/thing.php:111 -msgid "Thing updated" -msgstr "" - -#: ../../mod/thing.php:163 -msgid "Object store: failed" +"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/thing.php:167 -msgid "Thing added" -msgstr "" +#: ../../mod/admin.php:853 +#, php-format +msgid "%s channel censored/uncensored" +msgid_plural "%s channels censored/uncensored" +msgstr[0] "" +msgstr[1] "" -#: ../../mod/thing.php:193 +#: ../../mod/admin.php:862 #, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "" +msgid "%s channel code allowed/disallowed" +msgid_plural "%s channels code allowed/disallowed" +msgstr[0] "" +msgstr[1] "" -#: ../../mod/thing.php:256 -msgid "Show Thing" -msgstr "" +#: ../../mod/admin.php:869 +#, php-format +msgid "%s channel deleted" +msgid_plural "%s channels deleted" +msgstr[0] "" +msgstr[1] "" -#: ../../mod/thing.php:263 -msgid "item not found." +#: ../../mod/admin.php:889 +msgid "Channel not found" msgstr "" -#: ../../mod/thing.php:296 -msgid "Edit Thing" +#: ../../mod/admin.php:900 +#, php-format +msgid "Channel '%s' deleted" msgstr "" -#: ../../mod/thing.php:298 ../../mod/thing.php:348 -msgid "Select a profile" +#: ../../mod/admin.php:912 +#, php-format +msgid "Channel '%s' censored" msgstr "" -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Post an activity" +#: ../../mod/admin.php:912 +#, php-format +msgid "Channel '%s' uncensored" msgstr "" -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Only sends to viewers of the applicable profile" +#: ../../mod/admin.php:923 +#, php-format +msgid "Channel '%s' code allowed" msgstr "" -#: ../../mod/thing.php:304 ../../mod/thing.php:353 -msgid "Name of thing e.g. something" +#: ../../mod/admin.php:923 +#, php-format +msgid "Channel '%s' code disallowed" msgstr "" -#: ../../mod/thing.php:306 ../../mod/thing.php:354 -msgid "URL of thing (optional)" +#: ../../mod/admin.php:969 +msgid "Censor" msgstr "" -#: ../../mod/thing.php:308 ../../mod/thing.php:355 -msgid "URL for photo of thing (optional)" +#: ../../mod/admin.php:970 +msgid "Uncensor" msgstr "" -#: ../../mod/thing.php:346 -msgid "Add Thing to your Profile" +#: ../../mod/admin.php:971 +msgid "Allow Code" msgstr "" -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." +#: ../../mod/admin.php:972 +msgid "Disallow Code" msgstr "" -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." +#: ../../mod/admin.php:974 +msgid "UID" msgstr "" -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" +#: ../../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/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." +#: ../../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/invite.php:92 +#: ../../mod/admin.php:1017 #, php-format -msgid "%s : Message delivery failed." +msgid "Plugin %s disabled." msgstr "" -#: ../../mod/invite.php:96 +#: ../../mod/admin.php:1021 #, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "" -msgstr[1] "" - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" +msgid "Plugin %s enabled." msgstr "" -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" +#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 +msgid "Disable" msgstr "" -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." +#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 +msgid "Enable" msgstr "" -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " +#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 +msgid "Toggle" msgstr "" -#: ../../mod/invite.php:135 -msgid "1. Register at any $Projectname location (they are all inter-connected)" +#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 +msgid "Author: " msgstr "" -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." +#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 +msgid "Maintainer: " msgstr "" -#: ../../mod/invite.php:138 -msgid "or visit " +#: ../../mod/admin.php:1199 +msgid "No themes found." msgstr "" -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" +#: ../../mod/admin.php:1255 +msgid "Screenshot" msgstr "" -#: ../../mod/mail.php:33 -msgid "Unable to lookup recipient." +#: ../../mod/admin.php:1301 +msgid "[Experimental]" msgstr "" -#: ../../mod/mail.php:41 -msgid "Unable to communicate with requested channel." +#: ../../mod/admin.php:1302 +msgid "[Unsupported]" msgstr "" -#: ../../mod/mail.php:48 -msgid "Cannot verify requested channel." +#: ../../mod/admin.php:1326 +msgid "Log settings updated." msgstr "" -#: ../../mod/mail.php:74 -msgid "Selected channel has private message restrictions. Send failed." +#: ../../mod/admin.php:1383 +msgid "Clear" msgstr "" -#: ../../mod/mail.php:132 -msgid "Messages" +#: ../../mod/admin.php:1389 +msgid "Debugging" msgstr "" -#: ../../mod/mail.php:167 -msgid "Message recalled." +#: ../../mod/admin.php:1390 +msgid "Log file" msgstr "" -#: ../../mod/mail.php:180 -msgid "Conversation removed." +#: ../../mod/admin.php:1390 +msgid "" +"Must be writable by web server. Relative to your Red top-level directory." msgstr "" -#: ../../mod/mail.php:223 -msgid "Requested channel is not in this network" +#: ../../mod/admin.php:1391 +msgid "Log level" msgstr "" -#: ../../mod/mail.php:231 -msgid "Send Private Message" +#: ../../mod/admin.php:1437 +msgid "New Profile Field" msgstr "" -#: ../../mod/mail.php:232 ../../mod/mail.php:361 -msgid "To:" +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +msgid "Field nickname" msgstr "" -#: ../../mod/mail.php:235 ../../mod/mail.php:363 -msgid "Subject:" +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 +msgid "System name of field" msgstr "" -#: ../../mod/mail.php:242 -msgid "Send" +#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 +msgid "Input type" msgstr "" -#: ../../mod/mail.php:333 -msgid "Delete message" +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +msgid "Field Name" msgstr "" -#: ../../mod/mail.php:334 -msgid "Delivery report" +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 +msgid "Label on profile pages" msgstr "" -#: ../../mod/mail.php:335 -msgid "Recall message" +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +msgid "Help text" msgstr "" -#: ../../mod/mail.php:337 -msgid "Message has been recalled." +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 +msgid "Additional info (optional)" msgstr "" -#: ../../mod/mail.php:354 -msgid "Delete Conversation" +#: ../../mod/admin.php:1451 +msgid "Field definition not found" msgstr "" -#: ../../mod/mail.php:356 -msgid "" -"No secure communications available. You <strong>may</strong> be able to " -"respond from the sender's profile page." +#: ../../mod/admin.php:1457 +msgid "Edit Profile Field" msgstr "" -#: ../../mod/mail.php:360 -msgid "Send Reply" +#: ../../mod/editlayout.php:112 +msgid "Delete layout?" msgstr "" -#: ../../mod/mail.php:365 -#, php-format -msgid "Your message for %s (%s):" +#: ../../mod/editlayout.php:159 ../../mod/layouts.php:124 +msgid "Layout Description (Optional)" msgstr "" -#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25 -#: ../../mod/update_home.php:21 ../../mod/update_network.php:23 -#: ../../mod/update_search.php:46 ../../mod/update_public.php:21 -msgid "[Embedded content - reload page to view]" +#: ../../mod/editlayout.php:161 ../../mod/layouts.php:121 +#: ../../mod/layouts.php:179 +msgid "Layout Name" msgstr "" -#: ../../mod/viewsrc.php:40 -msgid "Source of Item" +#: ../../mod/editlayout.php:178 +msgid "Edit Layout" msgstr "" #: ../../mod/settings.php:76 @@ -7512,1590 +7584,1563 @@ msgstr "" msgid "System failure storing new email. Please try again." msgstr "" -#: ../../mod/settings.php:519 +#: ../../mod/settings.php:521 msgid "Settings updated." msgstr "" -#: ../../mod/settings.php:583 ../../mod/settings.php:609 -#: ../../mod/settings.php:645 +#: ../../mod/settings.php:585 ../../mod/settings.php:611 +#: ../../mod/settings.php:647 msgid "Add application" msgstr "" -#: ../../mod/settings.php:586 +#: ../../mod/settings.php:588 msgid "Name of application" msgstr "" -#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/settings.php:589 ../../mod/settings.php:615 msgid "Consumer Key" msgstr "" -#: ../../mod/settings.php:587 ../../mod/settings.php:588 +#: ../../mod/settings.php:589 ../../mod/settings.php:590 msgid "Automatically generated - change if desired. Max length 20" msgstr "" -#: ../../mod/settings.php:588 ../../mod/settings.php:614 +#: ../../mod/settings.php:590 ../../mod/settings.php:616 msgid "Consumer Secret" msgstr "" -#: ../../mod/settings.php:589 ../../mod/settings.php:615 +#: ../../mod/settings.php:591 ../../mod/settings.php:617 msgid "Redirect" msgstr "" -#: ../../mod/settings.php:589 +#: ../../mod/settings.php:591 msgid "" "Redirect URI - leave blank unless your application specifically requires this" msgstr "" -#: ../../mod/settings.php:590 ../../mod/settings.php:616 +#: ../../mod/settings.php:592 ../../mod/settings.php:618 msgid "Icon url" msgstr "" -#: ../../mod/settings.php:590 +#: ../../mod/settings.php:592 msgid "Optional" msgstr "" -#: ../../mod/settings.php:601 +#: ../../mod/settings.php:603 msgid "You can't edit this application." msgstr "" -#: ../../mod/settings.php:644 +#: ../../mod/settings.php:646 msgid "Connected Apps" msgstr "" -#: ../../mod/settings.php:648 +#: ../../mod/settings.php:650 msgid "Client key starts with" msgstr "" -#: ../../mod/settings.php:649 +#: ../../mod/settings.php:651 msgid "No name" msgstr "" -#: ../../mod/settings.php:650 +#: ../../mod/settings.php:652 msgid "Remove authorization" msgstr "" -#: ../../mod/settings.php:663 +#: ../../mod/settings.php:665 msgid "No feature settings configured" msgstr "" -#: ../../mod/settings.php:670 +#: ../../mod/settings.php:672 msgid "Feature/Addon Settings" msgstr "" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Account Settings" msgstr "" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Enter New Password:" msgstr "" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Confirm New Password:" msgstr "" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Leave password fields blank unless changing" msgstr "" -#: ../../mod/settings.php:697 ../../mod/settings.php:1028 +#: ../../mod/settings.php:699 ../../mod/settings.php:1030 msgid "Email Address:" msgstr "" -#: ../../mod/settings.php:699 +#: ../../mod/settings.php:701 msgid "Remove this account including all its channels" msgstr "" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "Off" msgstr "" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "On" msgstr "" -#: ../../mod/settings.php:722 +#: ../../mod/settings.php:724 msgid "Additional Features" msgstr "" -#: ../../mod/settings.php:746 +#: ../../mod/settings.php:748 msgid "Connector Settings" msgstr "" -#: ../../mod/settings.php:785 +#: ../../mod/settings.php:787 msgid "No special theme for mobile devices" msgstr "" -#: ../../mod/settings.php:788 +#: ../../mod/settings.php:790 #, php-format msgid "%s - (Experimental)" msgstr "" -#: ../../mod/settings.php:827 +#: ../../mod/settings.php:829 msgid "Display Settings" msgstr "" -#: ../../mod/settings.php:828 +#: ../../mod/settings.php:830 msgid "Theme Settings" msgstr "" -#: ../../mod/settings.php:829 +#: ../../mod/settings.php:831 msgid "Custom Theme Settings" msgstr "" -#: ../../mod/settings.php:830 +#: ../../mod/settings.php:832 msgid "Content Settings" msgstr "" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:838 msgid "Display Theme:" msgstr "" -#: ../../mod/settings.php:837 +#: ../../mod/settings.php:839 msgid "Mobile Theme:" msgstr "" -#: ../../mod/settings.php:838 +#: ../../mod/settings.php:840 msgid "Enable user zoom on mobile devices" msgstr "" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Update browser every xx seconds" msgstr "" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Minimum of 10 seconds, no maximum" msgstr "" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum number of conversations to load at any time:" msgstr "" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum of 100 items" msgstr "" -#: ../../mod/settings.php:841 +#: ../../mod/settings.php:843 msgid "Show emoticons (smilies) as images" msgstr "" -#: ../../mod/settings.php:842 +#: ../../mod/settings.php:844 msgid "Link post titles to source" msgstr "" -#: ../../mod/settings.php:843 +#: ../../mod/settings.php:845 msgid "System Page Layout Editor - (advanced)" msgstr "" -#: ../../mod/settings.php:846 +#: ../../mod/settings.php:848 msgid "Use blog/list mode on channel page" msgstr "" -#: ../../mod/settings.php:846 ../../mod/settings.php:847 +#: ../../mod/settings.php:848 ../../mod/settings.php:849 msgid "(comments displayed separately)" msgstr "" -#: ../../mod/settings.php:847 +#: ../../mod/settings.php:849 msgid "Use blog/list mode on matrix page" msgstr "" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:850 msgid "Channel page max height of content (in pixels)" msgstr "" -#: ../../mod/settings.php:848 ../../mod/settings.php:849 +#: ../../mod/settings.php:850 ../../mod/settings.php:851 msgid "click to expand content exceeding this height" msgstr "" -#: ../../mod/settings.php:849 +#: ../../mod/settings.php:851 msgid "Matrix page max height of content (in pixels)" msgstr "" -#: ../../mod/settings.php:883 +#: ../../mod/settings.php:885 msgid "Nobody except yourself" msgstr "" -#: ../../mod/settings.php:884 +#: ../../mod/settings.php:886 msgid "Only those you specifically allow" msgstr "" -#: ../../mod/settings.php:885 +#: ../../mod/settings.php:887 msgid "Approved connections" msgstr "" -#: ../../mod/settings.php:886 +#: ../../mod/settings.php:888 msgid "Any connections" msgstr "" -#: ../../mod/settings.php:887 +#: ../../mod/settings.php:889 msgid "Anybody on this website" msgstr "" -#: ../../mod/settings.php:888 +#: ../../mod/settings.php:890 msgid "Anybody in this network" msgstr "" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:891 msgid "Anybody authenticated" msgstr "" -#: ../../mod/settings.php:890 +#: ../../mod/settings.php:892 msgid "Anybody on the internet" msgstr "" -#: ../../mod/settings.php:964 +#: ../../mod/settings.php:966 msgid "Publish your default profile in the network directory" msgstr "" -#: ../../mod/settings.php:969 +#: ../../mod/settings.php:971 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:980 msgid "Your channel address is" msgstr "" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1021 msgid "Channel Settings" msgstr "" -#: ../../mod/settings.php:1026 +#: ../../mod/settings.php:1028 msgid "Basic Settings" msgstr "" -#: ../../mod/settings.php:1029 +#: ../../mod/settings.php:1031 msgid "Your Timezone:" msgstr "" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Default Post Location:" msgstr "" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Geographical location to display on your posts" msgstr "" -#: ../../mod/settings.php:1031 +#: ../../mod/settings.php:1033 msgid "Use Browser Location:" msgstr "" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "Adult Content" msgstr "" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "" "This channel frequently or regularly publishes adult content. (Please tag " "any adult material and/or nudity with #NSFW)" msgstr "" -#: ../../mod/settings.php:1035 +#: ../../mod/settings.php:1037 msgid "Security and Privacy Settings" msgstr "" -#: ../../mod/settings.php:1037 +#: ../../mod/settings.php:1039 msgid "Your permissions are already configured. Click to view/adjust" msgstr "" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Hide my online presence" msgstr "" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Prevents displaying in your profile that you are online" msgstr "" -#: ../../mod/settings.php:1041 +#: ../../mod/settings.php:1043 msgid "Simple Privacy Settings:" msgstr "" -#: ../../mod/settings.php:1042 +#: ../../mod/settings.php:1044 msgid "" "Very Public - <em>extremely permissive (should be used with caution)</em>" msgstr "" -#: ../../mod/settings.php:1043 +#: ../../mod/settings.php:1045 msgid "" "Typical - <em>default public, privacy when desired (similar to social " "network permissions but with improved privacy)</em>" msgstr "" -#: ../../mod/settings.php:1044 +#: ../../mod/settings.php:1046 msgid "Private - <em>default private, never open or public</em>" msgstr "" -#: ../../mod/settings.php:1045 +#: ../../mod/settings.php:1047 msgid "Blocked - <em>default blocked to/from everybody</em>" msgstr "" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "Allow others to tag your posts" msgstr "" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "" "Often used by the community to retro-actively flag inappropriate content" msgstr "" -#: ../../mod/settings.php:1049 +#: ../../mod/settings.php:1051 msgid "Advanced Privacy Settings" msgstr "" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "Expire other channel content after this many days" msgstr "" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "0 or blank prevents expiration" msgstr "" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "Maximum Friend Requests/Day:" msgstr "" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "May reduce spam activity" msgstr "" -#: ../../mod/settings.php:1053 +#: ../../mod/settings.php:1055 msgid "Default Post Permissions" msgstr "" -#: ../../mod/settings.php:1058 +#: ../../mod/settings.php:1056 ../../mod/mitem.php:150 ../../mod/mitem.php:223 +msgid "(click to open/close)" +msgstr "" + +#: ../../mod/settings.php:1060 msgid "Channel permissions category:" msgstr "" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Useful to reduce spamming" msgstr "" -#: ../../mod/settings.php:1067 +#: ../../mod/settings.php:1069 msgid "Notification Settings" msgstr "" -#: ../../mod/settings.php:1068 +#: ../../mod/settings.php:1070 msgid "By default post a status message when:" msgstr "" -#: ../../mod/settings.php:1069 +#: ../../mod/settings.php:1071 msgid "accepting a friend request" msgstr "" -#: ../../mod/settings.php:1070 +#: ../../mod/settings.php:1072 msgid "joining a forum/community" msgstr "" -#: ../../mod/settings.php:1071 +#: ../../mod/settings.php:1073 msgid "making an <em>interesting</em> profile change" msgstr "" -#: ../../mod/settings.php:1072 +#: ../../mod/settings.php:1074 msgid "Send a notification email when:" msgstr "" -#: ../../mod/settings.php:1073 +#: ../../mod/settings.php:1075 msgid "You receive a connection request" msgstr "" -#: ../../mod/settings.php:1074 +#: ../../mod/settings.php:1076 msgid "Your connections are confirmed" msgstr "" -#: ../../mod/settings.php:1075 +#: ../../mod/settings.php:1077 msgid "Someone writes on your profile wall" msgstr "" -#: ../../mod/settings.php:1076 +#: ../../mod/settings.php:1078 msgid "Someone writes a followup comment" msgstr "" -#: ../../mod/settings.php:1077 +#: ../../mod/settings.php:1079 msgid "You receive a private message" msgstr "" -#: ../../mod/settings.php:1078 +#: ../../mod/settings.php:1080 msgid "You receive a friend suggestion" msgstr "" -#: ../../mod/settings.php:1079 +#: ../../mod/settings.php:1081 msgid "You are tagged in a post" msgstr "" -#: ../../mod/settings.php:1080 +#: ../../mod/settings.php:1082 msgid "You are poked/prodded/etc. in a post" msgstr "" -#: ../../mod/settings.php:1083 +#: ../../mod/settings.php:1085 msgid "Show visual notifications including:" msgstr "" -#: ../../mod/settings.php:1085 +#: ../../mod/settings.php:1087 msgid "Unseen matrix activity" msgstr "" -#: ../../mod/settings.php:1086 +#: ../../mod/settings.php:1088 msgid "Unseen channel activity" msgstr "" -#: ../../mod/settings.php:1087 +#: ../../mod/settings.php:1089 msgid "Unseen private messages" msgstr "" -#: ../../mod/settings.php:1087 ../../mod/settings.php:1092 -#: ../../mod/settings.php:1093 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1089 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1095 ../../mod/settings.php:1096 msgid "Recommended" msgstr "" -#: ../../mod/settings.php:1088 +#: ../../mod/settings.php:1090 msgid "Upcoming events" msgstr "" -#: ../../mod/settings.php:1089 +#: ../../mod/settings.php:1091 msgid "Events today" msgstr "" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Upcoming birthdays" msgstr "" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Not available in all themes" msgstr "" -#: ../../mod/settings.php:1091 +#: ../../mod/settings.php:1093 msgid "System (personal) notifications" msgstr "" -#: ../../mod/settings.php:1092 +#: ../../mod/settings.php:1094 msgid "System info messages" msgstr "" -#: ../../mod/settings.php:1093 +#: ../../mod/settings.php:1095 msgid "System critical alerts" msgstr "" -#: ../../mod/settings.php:1094 +#: ../../mod/settings.php:1096 msgid "New connections" msgstr "" -#: ../../mod/settings.php:1095 +#: ../../mod/settings.php:1097 msgid "System Registrations" msgstr "" -#: ../../mod/settings.php:1096 +#: ../../mod/settings.php:1098 msgid "" "Also show new wall posts, private messages and connections under Notices" msgstr "" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Notify me of events this many days in advance" msgstr "" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Must be greater than 0" msgstr "" -#: ../../mod/settings.php:1100 +#: ../../mod/settings.php:1102 msgid "Advanced Account/Page Type Settings" msgstr "" -#: ../../mod/settings.php:1101 +#: ../../mod/settings.php:1103 msgid "Change the behaviour of this account for special situations" msgstr "" -#: ../../mod/settings.php:1104 +#: ../../mod/settings.php:1106 msgid "" "Please enable expert mode (in <a href=\"settings/features\">Settings > " "Additional features</a>) to adjust!" msgstr "" -#: ../../mod/settings.php:1105 +#: ../../mod/settings.php:1107 msgid "Miscellaneous Settings" msgstr "" -#: ../../mod/settings.php:1106 +#: ../../mod/settings.php:1108 msgid "Default photo upload folder" msgstr "" -#: ../../mod/settings.php:1106 ../../mod/settings.php:1107 +#: ../../mod/settings.php:1108 ../../mod/settings.php:1109 msgid "%Y - current year, %m - current month" msgstr "" -#: ../../mod/settings.php:1107 +#: ../../mod/settings.php:1109 msgid "Default file upload folder" msgstr "" -#: ../../mod/settings.php:1109 +#: ../../mod/settings.php:1111 msgid "Personal menu to display in your channel pages" msgstr "" -#: ../../mod/settings.php:1111 +#: ../../mod/settings.php:1113 msgid "Remove this channel." msgstr "" -#: ../../mod/settings.php:1112 +#: ../../mod/settings.php:1114 msgid "Firefox Share $Projectname provider" msgstr "" -#: ../../mod/xchan.php:6 -msgid "Xchan Lookup" +#: ../../mod/settings.php:1115 +msgid "Start calendar week on monday" msgstr "" -#: ../../mod/xchan.php:9 -msgid "Lookup xchan beginning with (or webbie): " +#: ../../mod/webpages.php:191 +msgid "Page Title" msgstr "" -#: ../../mod/manage.php:130 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." +#: ../../mod/appman.php:28 ../../mod/appman.php:44 +msgid "App installed." msgstr "" -#: ../../mod/manage.php:138 -msgid "Create a new channel" +#: ../../mod/appman.php:37 +msgid "Malformed app." msgstr "" -#: ../../mod/manage.php:161 -msgid "Current Channel" +#: ../../mod/appman.php:80 +msgid "Embed code" msgstr "" -#: ../../mod/manage.php:163 -msgid "Switch to one of your channels by selecting it." +#: ../../mod/appman.php:86 +msgid "Edit App" msgstr "" -#: ../../mod/manage.php:164 -msgid "Default Channel" +#: ../../mod/appman.php:86 +msgid "Create App" msgstr "" -#: ../../mod/manage.php:165 -msgid "Make Default" +#: ../../mod/appman.php:91 +msgid "Name of app" msgstr "" -#: ../../mod/manage.php:168 -#, php-format -msgid "%d new messages" +#: ../../mod/appman.php:92 +msgid "Location (URL) of app" msgstr "" -#: ../../mod/manage.php:169 -#, php-format -msgid "%d new introductions" +#: ../../mod/appman.php:94 +msgid "Photo icon URL" msgstr "" -#: ../../mod/manage.php:171 -msgid "Delegated Channels" +#: ../../mod/appman.php:94 +msgid "80 x 80 pixels - optional" msgstr "" -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" +#: ../../mod/appman.php:95 +msgid "Version ID" msgstr "" -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" +#: ../../mod/appman.php:96 +msgid "Price of app" msgstr "" -#: ../../mod/api.php:89 -msgid "Please login to continue." +#: ../../mod/appman.php:97 +msgid "Location (URL) to purchase app" msgstr "" -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts, " -"and/or create new posts for you?" +#: ../../mod/filer.php:48 +msgid "- select -" msgstr "" -#: ../../mod/connections.php:52 ../../mod/connections.php:150 -msgid "Blocked" +#: ../../mod/layouts.php:176 +msgid "Comanche page description language help" msgstr "" -#: ../../mod/connections.php:57 ../../mod/connections.php:157 -msgid "Ignored" +#: ../../mod/layouts.php:180 +msgid "Layout Description" msgstr "" -#: ../../mod/connections.php:62 ../../mod/connections.php:171 -msgid "Hidden" +#: ../../mod/layouts.php:185 +msgid "Download PDL file" msgstr "" -#: ../../mod/connections.php:67 ../../mod/connections.php:164 -msgid "Archived" +#: ../../mod/locs.php:21 ../../mod/locs.php:50 +msgid "Location not found." msgstr "" -#: ../../mod/connections.php:128 -msgid "Suggest new connections" +#: ../../mod/locs.php:58 +msgid "Location lookup failed." msgstr "" -#: ../../mod/connections.php:131 -msgid "New Connections" +#: ../../mod/locs.php:62 +msgid "" +"Please select another location to become primary before removing the primary " +"location." msgstr "" -#: ../../mod/connections.php:134 -msgid "Show pending (new) connections" +#: ../../mod/locs.php:91 +msgid "Syncing locations" msgstr "" -#: ../../mod/connections.php:137 ../../mod/profperm.php:139 -msgid "All Connections" +#: ../../mod/locs.php:101 +msgid "No locations found." msgstr "" -#: ../../mod/connections.php:140 -msgid "Show all connections" +#: ../../mod/locs.php:112 +msgid "Manage Channel Locations" msgstr "" -#: ../../mod/connections.php:143 -msgid "Unblocked" +#: ../../mod/locs.php:113 +msgid "Location (address)" msgstr "" -#: ../../mod/connections.php:146 -msgid "Only show unblocked connections" +#: ../../mod/locs.php:114 +msgid "Primary Location" msgstr "" -#: ../../mod/connections.php:153 -msgid "Only show blocked connections" +#: ../../mod/locs.php:115 +msgid "Drop location" msgstr "" -#: ../../mod/connections.php:160 -msgid "Only show ignored connections" +#: ../../mod/locs.php:117 +msgid "Sync now" msgstr "" -#: ../../mod/connections.php:167 -msgid "Only show archived connections" +#: ../../mod/locs.php:118 +msgid "Please wait several minutes between consecutive operations." msgstr "" -#: ../../mod/connections.php:174 -msgid "Only show hidden connections" +#: ../../mod/locs.php:119 +msgid "" +"When possible, drop a location by logging into that website/hub and removing " +"your channel." msgstr "" -#: ../../mod/connections.php:225 -#, php-format -msgid "%1$s [%2$s]" +#: ../../mod/locs.php:120 +msgid "Use this form to drop the location if the hub is no longer operating." msgstr "" -#: ../../mod/connections.php:226 -msgid "Edit connection" +#: ../../mod/mail.php:33 +msgid "Unable to lookup recipient." msgstr "" -#: ../../mod/connections.php:264 -msgid "Search your connections" +#: ../../mod/mail.php:41 +msgid "Unable to communicate with requested channel." msgstr "" -#: ../../mod/connections.php:265 -msgid "Finding: " +#: ../../mod/mail.php:48 +msgid "Cannot verify requested channel." msgstr "" -#: ../../mod/editlayout.php:112 -msgid "Delete layout?" +#: ../../mod/mail.php:74 +msgid "Selected channel has private message restrictions. Send failed." msgstr "" -#: ../../mod/editlayout.php:178 -msgid "Edit Layout" +#: ../../mod/mail.php:132 +msgid "Messages" msgstr "" -#: ../../mod/editwebpage.php:153 -msgid "Delete webpage?" +#: ../../mod/mail.php:167 +msgid "Message recalled." msgstr "" -#: ../../mod/editwebpage.php:172 -msgid "Page link title" +#: ../../mod/mail.php:180 +msgid "Conversation removed." msgstr "" -#: ../../mod/editwebpage.php:222 -msgid "Edit Webpage" +#: ../../mod/mail.php:223 +msgid "Requested channel is not in this network" msgstr "" -#: ../../mod/group.php:20 -msgid "Collection created." +#: ../../mod/mail.php:231 +msgid "Send Private Message" msgstr "" -#: ../../mod/group.php:26 -msgid "Could not create collection." +#: ../../mod/mail.php:232 ../../mod/mail.php:361 +msgid "To:" msgstr "" -#: ../../mod/group.php:54 -msgid "Collection updated." +#: ../../mod/mail.php:235 ../../mod/mail.php:363 +msgid "Subject:" msgstr "" -#: ../../mod/group.php:86 -msgid "Create a collection of channels." +#: ../../mod/mail.php:238 ../../mod/invite.php:131 +msgid "Your message:" msgstr "" -#: ../../mod/group.php:87 ../../mod/group.php:180 -msgid "Collection Name: " +#: ../../mod/mail.php:242 +msgid "Send" msgstr "" -#: ../../mod/group.php:89 ../../mod/group.php:183 -msgid "Members are visible to other channels" +#: ../../mod/mail.php:333 +msgid "Delete message" msgstr "" -#: ../../mod/group.php:107 -msgid "Collection removed." +#: ../../mod/mail.php:334 +msgid "Delivery report" msgstr "" -#: ../../mod/group.php:109 -msgid "Unable to remove collection." +#: ../../mod/mail.php:335 +msgid "Recall message" msgstr "" -#: ../../mod/group.php:179 -msgid "Collection Editor" +#: ../../mod/mail.php:337 +msgid "Message has been recalled." msgstr "" -#: ../../mod/group.php:193 -msgid "Members" +#: ../../mod/mail.php:354 +msgid "Delete Conversation" msgstr "" -#: ../../mod/group.php:195 -msgid "All Connected Channels" +#: ../../mod/mail.php:356 +msgid "" +"No secure communications available. You <strong>may</strong> be able to " +"respond from the sender's profile page." msgstr "" -#: ../../mod/group.php:227 -msgid "Click on a channel to add or remove." +#: ../../mod/mail.php:360 +msgid "Send Reply" msgstr "" -#: ../../mod/connect.php:56 ../../mod/connect.php:104 -msgid "Continue" +#: ../../mod/mail.php:365 +#, php-format +msgid "Your message for %s (%s):" msgstr "" -#: ../../mod/connect.php:85 -msgid "Premium Channel Setup" +#: ../../mod/regmod.php:11 +msgid "Please login." msgstr "" -#: ../../mod/connect.php:87 -msgid "Enable premium channel connection restrictions" +#: ../../mod/xchan.php:6 +msgid "Xchan Lookup" msgstr "" -#: ../../mod/connect.php:88 -msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." +#: ../../mod/xchan.php:9 +msgid "Lookup xchan beginning with (or webbie): " msgstr "" -#: ../../mod/connect.php:90 ../../mod/connect.php:110 -msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" +#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 +msgid "Not found." msgstr "" -#: ../../mod/connect.php:91 -msgid "" -"Potential connections will then see the following text before proceeding:" +#: ../../mod/channel.php:25 ../../mod/chat.php:19 +msgid "You must be logged in to see this page." msgstr "" -#: ../../mod/connect.php:92 ../../mod/connect.php:113 -msgid "" -"By continuing, I certify that I have complied with any instructions provided " -"on this page." +#: ../../mod/channel.php:97 +msgid "Insufficient permissions. Request redirected to profile page." msgstr "" -#: ../../mod/connect.php:101 -msgid "(No specific instructions have been provided by the channel owner.)" +#: ../../mod/attach.php:9 +msgid "Item not available." msgstr "" -#: ../../mod/connect.php:109 -msgid "Restricted or Premium Channel" +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." msgstr "" -#: ../../mod/viewconnections.php:59 -msgid "No connections." +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." msgstr "" -#: ../../mod/viewconnections.php:72 -#, php-format -msgid "Visit %s's profile [%s]" +#: ../../mod/invite.php:76 +msgid "Please join us on $Projectname" msgstr "" -#: ../../mod/locs.php:21 ../../mod/locs.php:50 -msgid "Location not found." +#: ../../mod/invite.php:87 +msgid "Invitation limit exceeded. Please contact your site administrator." msgstr "" -#: ../../mod/locs.php:58 -msgid "Location lookup failed." +#: ../../mod/invite.php:92 +#, php-format +msgid "%s : Message delivery failed." msgstr "" -#: ../../mod/locs.php:62 -msgid "" -"Please select another location to become primary before removing the primary " -"location." +#: ../../mod/invite.php:96 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "" +msgstr[1] "" + +#: ../../mod/invite.php:115 +msgid "You have no more invitations available" msgstr "" -#: ../../mod/locs.php:91 -msgid "Syncing locations" +#: ../../mod/invite.php:129 +msgid "Send invitations" msgstr "" -#: ../../mod/locs.php:101 -msgid "No locations found." +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" msgstr "" -#: ../../mod/locs.php:112 -msgid "Manage Channel Locations" +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." msgstr "" -#: ../../mod/locs.php:113 -msgid "Location (address)" +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " msgstr "" -#: ../../mod/locs.php:114 -msgid "Primary Location" +#: ../../mod/invite.php:135 +msgid "1. Register at any $Projectname location (they are all inter-connected)" msgstr "" -#: ../../mod/locs.php:115 -msgid "Drop location" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." msgstr "" -#: ../../mod/locs.php:117 -msgid "Sync now" +#: ../../mod/invite.php:138 +msgid "or visit " msgstr "" -#: ../../mod/locs.php:118 -msgid "Please wait several minutes between consecutive operations." +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" msgstr "" -#: ../../mod/locs.php:119 -msgid "" -"When possible, drop a location by logging into that website/hub and removing " -"your channel." +#: ../../mod/lockview.php:37 +msgid "Remote privacy information not available." msgstr "" -#: ../../mod/locs.php:120 -msgid "Use this form to drop the location if the hub is no longer operating." +#: ../../mod/lockview.php:58 +msgid "Visible to:" msgstr "" -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please " -"logout and retry." +#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 +msgid "Export Channel" msgstr "" -#: ../../mod/ffsapi.php:8 -msgid "Share content from Firefox to $Projectname" +#: ../../mod/uexport.php:53 +msgid "" +"Export your basic channel information to a file. This acts as a backup of " +"your connections, permissions, profile and basic data, which can be used to " +"import your data to a new server hub, but does not contain your content." msgstr "" -#: ../../mod/ffsapi.php:11 -msgid "Activate the Firefox $Projectname provider" +#: ../../mod/uexport.php:54 +msgid "Export Content" msgstr "" -#: ../../mod/setup.php:191 -msgid "$Projectname Server - Setup" +#: ../../mod/uexport.php:55 +msgid "" +"Export your channel information and recent content to a JSON backup that can " +"be restored or imported to another server hub. This backs up all of your " +"connections, permissions, profile data and several months of posts. This " +"file may be VERY large. Please be patient - it may take several minutes for " +"this download to begin." msgstr "" -#: ../../mod/setup.php:195 -msgid "Could not connect to database." +#: ../../mod/uexport.php:56 +msgid "Export your posts from a given year." msgstr "" -#: ../../mod/setup.php:199 +#: ../../mod/uexport.php:58 msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." +"You may also export your posts and conversations for a particular year or " +"month. Adjust the date in your browser location bar to select other dates. " +"If the export fails (possibly due to memory exhaustion on your server hub), " +"please try again selecting a more limited date range." msgstr "" -#: ../../mod/setup.php:206 -msgid "Could not create table." +#: ../../mod/uexport.php:59 +#, php-format +msgid "" +"To select all posts for a given year, such as this year, visit <a href=\"%1$s" +"\">%2$s</a>" msgstr "" -#: ../../mod/setup.php:211 -msgid "Your site database has been installed." +#: ../../mod/uexport.php:60 +#, php-format +msgid "" +"To select all posts for a given month, such as January of this year, visit " +"<a href=\"%1$s\">%2$s</a>" msgstr "" -#: ../../mod/setup.php:215 +#: ../../mod/uexport.php:61 +#, php-format msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." +"These content files may be imported or restored by visiting <a href=\"%1$s\">" +"%2$s</a> on any site containing your channel. For best results please import " +"or restore these in date order (oldest first)." msgstr "" -#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." +#: ../../mod/editpost.php:31 +msgid "Item is not editable" msgstr "" -#: ../../mod/setup.php:281 -msgid "System check" +#: ../../mod/editpost.php:57 +msgid "Delete item?" msgstr "" -#: ../../mod/setup.php:286 -msgid "Check again" +#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 +msgid "Edit post" msgstr "" -#: ../../mod/setup.php:308 -msgid "Database connection" +#: ../../mod/follow.php:25 +msgid "Channel added." msgstr "" -#: ../../mod/setup.php:309 +#: ../../mod/rmagic.php:40 msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." msgstr "" -#: ../../mod/setup.php:310 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." +#: ../../mod/rmagic.php:40 +msgid "The error message was:" msgstr "" -#: ../../mod/setup.php:311 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." +#: ../../mod/rmagic.php:44 +msgid "Authentication failed." msgstr "" -#: ../../mod/setup.php:315 -msgid "Database Server Name" +#: ../../mod/rmagic.php:84 +msgid "Remote Authentication" msgstr "" -#: ../../mod/setup.php:315 -msgid "Default is 127.0.0.1" +#: ../../mod/rmagic.php:85 +msgid "Enter your channel address (e.g. channel@example.com)" msgstr "" -#: ../../mod/setup.php:316 -msgid "Database Port" +#: ../../mod/rmagic.php:86 +msgid "Authenticate" msgstr "" -#: ../../mod/setup.php:316 -msgid "Communication port number - use 0 for default" +#: ../../mod/chat.php:174 +msgid "Room not found" msgstr "" -#: ../../mod/setup.php:317 -msgid "Database Login Name" +#: ../../mod/chat.php:185 +msgid "Leave Room" msgstr "" -#: ../../mod/setup.php:318 -msgid "Database Login Password" +#: ../../mod/chat.php:186 +msgid "Delete This Room" msgstr "" -#: ../../mod/setup.php:319 -msgid "Database Name" +#: ../../mod/chat.php:187 +msgid "I am away right now" msgstr "" -#: ../../mod/setup.php:320 -msgid "Database Type" +#: ../../mod/chat.php:188 +msgid "I am online" msgstr "" -#: ../../mod/setup.php:322 ../../mod/setup.php:363 -msgid "Site administrator email address" +#: ../../mod/chat.php:190 +msgid "Bookmark this room" msgstr "" -#: ../../mod/setup.php:322 ../../mod/setup.php:363 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." +#: ../../mod/chat.php:208 ../../mod/chat.php:231 +msgid "New Chatroom" msgstr "" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Website URL" +#: ../../mod/chat.php:209 +msgid "Chatroom Name" msgstr "" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Please use SSL (https) URL if available." +#: ../../mod/chat.php:210 +msgid "Expiration of chats (minutes)" msgstr "" -#: ../../mod/setup.php:325 ../../mod/setup.php:367 -msgid "Please select a default timezone for your website" +#: ../../mod/chat.php:227 +#, php-format +msgid "%1$s's Chatrooms" msgstr "" -#: ../../mod/setup.php:352 -msgid "Site settings" +#: ../../mod/viewsrc.php:40 +msgid "Source of Item" msgstr "" -#: ../../mod/setup.php:417 -msgid "Could not find a command line version of PHP in the web server PATH." +#: ../../mod/ffsapi.php:8 +msgid "Share content from Firefox to $Projectname" msgstr "" -#: ../../mod/setup.php:418 -msgid "" -"If you don't have a command line version of PHP installed on server, you " -"will not be able to run background polling via cron." +#: ../../mod/ffsapi.php:11 +msgid "Activate the Firefox $Projectname provider" msgstr "" -#: ../../mod/setup.php:422 -msgid "PHP executable path" +#: ../../mod/magic.php:69 +msgid "Hub not found." msgstr "" -#: ../../mod/setup.php:422 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." +#: ../../mod/connections.php:52 ../../mod/connections.php:150 +msgid "Blocked" msgstr "" -#: ../../mod/setup.php:427 -msgid "Command line PHP" +#: ../../mod/connections.php:57 ../../mod/connections.php:157 +msgid "Ignored" msgstr "" -#: ../../mod/setup.php:436 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." +#: ../../mod/connections.php:62 ../../mod/connections.php:171 +msgid "Hidden" msgstr "" -#: ../../mod/setup.php:437 -msgid "This is required for message delivery to work." +#: ../../mod/connections.php:67 ../../mod/connections.php:164 +msgid "Archived" msgstr "" -#: ../../mod/setup.php:440 -msgid "PHP register_argc_argv" +#: ../../mod/connections.php:128 +msgid "Suggest new connections" msgstr "" -#: ../../mod/setup.php:458 -#, php-format -msgid "" -"Your max allowed total upload size is set to %s. Maximum size of one file to " -"upload is set to %s. You are allowed to upload up to %d files at once." +#: ../../mod/connections.php:131 +msgid "New Connections" msgstr "" -#: ../../mod/setup.php:463 -msgid "You can adjust these settings in the servers php.ini." +#: ../../mod/connections.php:134 +msgid "Show pending (new) connections" msgstr "" -#: ../../mod/setup.php:465 -msgid "PHP upload limits" +#: ../../mod/connections.php:137 ../../mod/profperm.php:139 +msgid "All Connections" msgstr "" -#: ../../mod/setup.php:488 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" +#: ../../mod/connections.php:140 +msgid "Show all connections" msgstr "" -#: ../../mod/setup.php:489 -msgid "" -"If running under Windows, please see \"http://www.php.net/manual/en/openssl." -"installation.php\"." +#: ../../mod/connections.php:143 +msgid "Unblocked" msgstr "" -#: ../../mod/setup.php:492 -msgid "Generate encryption keys" +#: ../../mod/connections.php:146 +msgid "Only show unblocked connections" msgstr "" -#: ../../mod/setup.php:504 -msgid "libCurl PHP module" +#: ../../mod/connections.php:153 +msgid "Only show blocked connections" msgstr "" -#: ../../mod/setup.php:505 -msgid "GD graphics PHP module" +#: ../../mod/connections.php:160 +msgid "Only show ignored connections" msgstr "" -#: ../../mod/setup.php:506 -msgid "OpenSSL PHP module" +#: ../../mod/connections.php:167 +msgid "Only show archived connections" msgstr "" -#: ../../mod/setup.php:507 -msgid "mysqli or postgres PHP module" +#: ../../mod/connections.php:174 +msgid "Only show hidden connections" msgstr "" -#: ../../mod/setup.php:508 -msgid "mb_string PHP module" +#: ../../mod/connections.php:225 +#, php-format +msgid "%1$s [%2$s]" msgstr "" -#: ../../mod/setup.php:509 -msgid "mcrypt PHP module" +#: ../../mod/connections.php:226 +msgid "Edit connection" msgstr "" -#: ../../mod/setup.php:510 -msgid "xml PHP module" +#: ../../mod/connections.php:264 +msgid "Search your connections" msgstr "" -#: ../../mod/setup.php:514 ../../mod/setup.php:516 -msgid "Apache mod_rewrite module" +#: ../../mod/connections.php:265 +msgid "Finding: " msgstr "" -#: ../../mod/setup.php:514 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." +#: ../../mod/help.php:147 +msgid "Documentation Search" msgstr "" -#: ../../mod/setup.php:520 ../../mod/setup.php:523 -msgid "proc_open" +#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 +msgid "Help:" msgstr "" -#: ../../mod/setup.php:520 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" +#: ../../mod/help.php:211 ../../index.php:238 +msgid "Not Found" msgstr "" -#: ../../mod/setup.php:528 -msgid "Error: libCURL PHP module required but not installed." +#: ../../mod/help.php:235 +msgid "$Projectname Documentation" msgstr "" -#: ../../mod/setup.php:532 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." +#: ../../mod/manage.php:130 +#, php-format +msgid "You have created %1$.0f of %2$.0f allowed channels." msgstr "" -#: ../../mod/setup.php:536 -msgid "Error: openssl PHP module required but not installed." +#: ../../mod/manage.php:138 +msgid "Create a new channel" msgstr "" -#: ../../mod/setup.php:540 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." +#: ../../mod/manage.php:161 +msgid "Current Channel" msgstr "" -#: ../../mod/setup.php:544 -msgid "Error: mb_string PHP module required but not installed." +#: ../../mod/manage.php:163 +msgid "Switch to one of your channels by selecting it." msgstr "" -#: ../../mod/setup.php:548 -msgid "Error: mcrypt PHP module required but not installed." +#: ../../mod/manage.php:164 +msgid "Default Channel" msgstr "" -#: ../../mod/setup.php:552 -msgid "Error: xml PHP module required for DAV but not installed." +#: ../../mod/manage.php:165 +msgid "Make Default" msgstr "" -#: ../../mod/setup.php:570 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\" " -"in the top folder of your web server and it is unable to do so." +#: ../../mod/manage.php:168 +#, php-format +msgid "%d new messages" msgstr "" -#: ../../mod/setup.php:571 -msgid "" -"This is most often a permission setting, as the web server may not be able " -"to write files in your folder - even if you can." +#: ../../mod/manage.php:169 +#, php-format +msgid "%d new introductions" msgstr "" -#: ../../mod/setup.php:572 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Red top folder." +#: ../../mod/manage.php:171 +msgid "Delegated Channels" msgstr "" -#: ../../mod/setup.php:573 -msgid "" -"You can alternatively skip this procedure and perform a manual installation. " -"Please see the file \"install/INSTALL.txt\" for instructions." +#: ../../mod/menu.php:45 +msgid "Unable to update menu." msgstr "" -#: ../../mod/setup.php:576 -msgid ".htconfig.php is writable" +#: ../../mod/menu.php:56 +msgid "Unable to create menu." msgstr "" -#: ../../mod/setup.php:590 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." +#: ../../mod/menu.php:94 ../../mod/menu.php:106 +msgid "Menu Name" msgstr "" -#: ../../mod/setup.php:591 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the Red top level folder." +#: ../../mod/menu.php:94 +msgid "Unique name (not visible on webpage) - required" msgstr "" -#: ../../mod/setup.php:592 ../../mod/setup.php:613 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has " -"write access to this folder." +#: ../../mod/menu.php:95 ../../mod/menu.php:107 +msgid "Menu Title" msgstr "" -#: ../../mod/setup.php:593 -#, php-format -msgid "" -"Note: as a security measure, you should give the web server write access to " -"%s only--not the template files (.tpl) that it contains." +#: ../../mod/menu.php:95 +msgid "Visible on webpage - leave empty for no title" msgstr "" -#: ../../mod/setup.php:596 -#, php-format -msgid "%s is writable" +#: ../../mod/menu.php:96 +msgid "Allow Bookmarks" msgstr "" -#: ../../mod/setup.php:612 -msgid "" -"Red uses the store directory to save uploaded files. The web server needs to " -"have write access to the store directory under the Red top level folder" +#: ../../mod/menu.php:96 ../../mod/menu.php:153 +msgid "Menu may be used to store saved bookmarks" msgstr "" -#: ../../mod/setup.php:616 -msgid "store is writable" +#: ../../mod/menu.php:97 ../../mod/menu.php:155 +msgid "Submit and proceed" msgstr "" -#: ../../mod/setup.php:649 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access " -"to this site." +#: ../../mod/menu.php:109 +msgid "Drop" msgstr "" -#: ../../mod/setup.php:650 -msgid "" -"If you have https access to your website or allow connections to TCP port " -"443 (the https: port), you MUST use a browser-valid certificate. You MUST " -"NOT use self-signed certificates!" +#: ../../mod/menu.php:113 +msgid "Bookmarks allowed" msgstr "" -#: ../../mod/setup.php:651 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." +#: ../../mod/menu.php:115 +msgid "Delete this menu" msgstr "" -#: ../../mod/setup.php:652 -msgid "" -"If your certificate is not recognized, members of other sites (who may " -"themselves have valid certificates) will get a warning message on their own " -"site complaining about security issues." +#: ../../mod/menu.php:116 ../../mod/menu.php:150 +msgid "Edit menu contents" msgstr "" -#: ../../mod/setup.php:653 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." +#: ../../mod/menu.php:117 +msgid "Edit this menu" msgstr "" -#: ../../mod/setup.php:654 -msgid "" -"Providers are available that issue free certificates which are browser-valid." +#: ../../mod/menu.php:132 +msgid "Menu could not be deleted." msgstr "" -#: ../../mod/setup.php:656 -msgid "SSL certificate validation" +#: ../../mod/menu.php:140 ../../mod/mitem.php:24 +msgid "Menu not found." msgstr "" -#: ../../mod/setup.php:662 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -"Test: " +#: ../../mod/menu.php:145 +msgid "Edit Menu" msgstr "" -#: ../../mod/setup.php:665 -msgid "Url rewrite is working" +#: ../../mod/menu.php:149 +msgid "Add or remove entries to this menu" msgstr "" -#: ../../mod/setup.php:674 -msgid "" -"The database configuration file \".htconfig.php\" could not be written. " -"Please use the enclosed text to create a configuration file in your web " -"server root." +#: ../../mod/menu.php:151 +msgid "Menu name" msgstr "" -#: ../../mod/setup.php:698 -msgid "Errors encountered creating database tables." +#: ../../mod/menu.php:151 +msgid "Must be unique, only seen by you" msgstr "" -#: ../../mod/setup.php:732 -msgid "<h1>What next</h1>" +#: ../../mod/menu.php:152 +msgid "Menu title" msgstr "" -#: ../../mod/setup.php:733 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." +#: ../../mod/menu.php:152 +msgid "Menu title as seen by others" msgstr "" -#: ../../mod/sharedwithme.php:94 -msgid "Files: shared with me" +#: ../../mod/menu.php:153 +msgid "Allow bookmarks" msgstr "" -#: ../../mod/sharedwithme.php:96 -msgid "NEW" +#: ../../mod/post.php:234 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please " +"logout and retry." msgstr "" -#: ../../mod/sharedwithme.php:99 -msgid "Remove all files" +#: ../../mod/service_limits.php:19 +msgid "No service class restrictions found." msgstr "" -#: ../../mod/sharedwithme.php:100 -msgid "Remove this file" +#: ../../mod/siteinfo.php:111 +#, php-format +msgid "Version %s" msgstr "" -#: ../../mod/suggest.php:35 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." +#: ../../mod/siteinfo.php:132 +msgid "Installed plugins/addons/apps:" msgstr "" -#: ../../mod/profiles.php:18 ../../mod/profiles.php:174 -#: ../../mod/profiles.php:231 ../../mod/profiles.php:600 -msgid "Profile not found." +#: ../../mod/siteinfo.php:145 +msgid "No installed plugins/addons/apps" msgstr "" -#: ../../mod/profiles.php:38 -msgid "Profile deleted." +#: ../../mod/siteinfo.php:158 +msgid "" +"This is a hub of $Projectname - a global cooperative network of " +"decentralized privacy enhanced websites." msgstr "" -#: ../../mod/profiles.php:56 ../../mod/profiles.php:92 -msgid "Profile-" +#: ../../mod/siteinfo.php:160 +msgid "Tag: " msgstr "" -#: ../../mod/profiles.php:77 ../../mod/profiles.php:120 -msgid "New profile created." +#: ../../mod/siteinfo.php:162 +msgid "Last background fetch: " msgstr "" -#: ../../mod/profiles.php:98 -msgid "Profile unavailable to clone." +#: ../../mod/siteinfo.php:164 +msgid "Current load average: " msgstr "" -#: ../../mod/profiles.php:136 -msgid "Profile unavailable to export." +#: ../../mod/siteinfo.php:167 +msgid "Running at web location" msgstr "" -#: ../../mod/profiles.php:241 -msgid "Profile Name is required." +#: ../../mod/siteinfo.php:168 +msgid "" +"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " +"about $Projectname." msgstr "" -#: ../../mod/profiles.php:404 -msgid "Marital Status" +#: ../../mod/siteinfo.php:169 +msgid "Bug reports and issues: please visit" msgstr "" -#: ../../mod/profiles.php:408 -msgid "Romantic Partner" +#: ../../mod/siteinfo.php:171 +msgid "$projectname issues" msgstr "" -#: ../../mod/profiles.php:412 -msgid "Likes" +#: ../../mod/siteinfo.php:172 +msgid "" +"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com" msgstr "" -#: ../../mod/profiles.php:416 -msgid "Dislikes" +#: ../../mod/siteinfo.php:174 +msgid "Site Administrators" msgstr "" -#: ../../mod/profiles.php:420 -msgid "Work/Employment" +#: ../../mod/suggest.php:35 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." msgstr "" -#: ../../mod/profiles.php:423 -msgid "Religion" +#: ../../mod/events.php:21 +msgid "Calendar entries imported." msgstr "" -#: ../../mod/profiles.php:427 -msgid "Political Views" +#: ../../mod/events.php:23 +msgid "No calendar entries found." msgstr "" -#: ../../mod/profiles.php:435 -msgid "Sexual Preference" +#: ../../mod/events.php:100 +msgid "Event can not end before it has started." msgstr "" -#: ../../mod/profiles.php:439 -msgid "Homepage" +#: ../../mod/events.php:102 ../../mod/events.php:111 ../../mod/events.php:131 +msgid "Unable to generate preview." msgstr "" -#: ../../mod/profiles.php:443 -msgid "Interests" +#: ../../mod/events.php:109 +msgid "Event title and start time are required." msgstr "" -#: ../../mod/profiles.php:537 -msgid "Profile updated." +#: ../../mod/events.php:129 ../../mod/events.php:254 +msgid "Event not found." msgstr "" -#: ../../mod/profiles.php:626 -msgid "Hide your contact/friend list from viewers of this profile?" +#: ../../mod/events.php:452 +msgid "Event Title" msgstr "" -#: ../../mod/profiles.php:666 -msgid "Edit Profile Details" +#: ../../mod/events.php:454 +msgid "Categories (comma-separated list)" msgstr "" -#: ../../mod/profiles.php:668 -msgid "View this profile" +#: ../../mod/events.php:455 +msgid "Category" msgstr "" -#: ../../mod/profiles.php:670 -msgid "Change Profile Photo" +#: ../../mod/events.php:458 +msgid "Start date and time" msgstr "" -#: ../../mod/profiles.php:671 -msgid "Create a new profile using these settings" +#: ../../mod/events.php:459 ../../mod/events.php:462 +msgid "Finish date and time are not known or not relevant" msgstr "" -#: ../../mod/profiles.php:672 -msgid "Clone this profile" +#: ../../mod/events.php:461 +msgid "Finish date and time" msgstr "" -#: ../../mod/profiles.php:673 -msgid "Delete this profile" +#: ../../mod/events.php:463 ../../mod/events.php:464 +msgid "Adjust for viewer timezone" msgstr "" -#: ../../mod/profiles.php:675 -msgid "Import profile from file" +#: ../../mod/events.php:463 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." msgstr "" -#: ../../mod/profiles.php:676 -msgid "Export profile to file" +#: ../../mod/events.php:470 ../../mod/events.php:472 +msgid "Share this event" msgstr "" -#: ../../mod/profiles.php:677 -msgid "Profile Name:" +#: ../../mod/events.php:477 +msgid "Advanced Options" msgstr "" -#: ../../mod/profiles.php:678 -msgid "Your Full Name:" +#: ../../mod/events.php:589 +msgid "l, F j" msgstr "" -#: ../../mod/profiles.php:679 -msgid "Title/Description:" +#: ../../mod/events.php:611 +msgid "Edit event" msgstr "" -#: ../../mod/profiles.php:680 -msgid "Your Gender:" +#: ../../mod/events.php:613 +msgid "Delete event" msgstr "" -#: ../../mod/profiles.php:681 -msgid "Birthday :" +#: ../../mod/events.php:647 +msgid "calendar" msgstr "" -#: ../../mod/profiles.php:682 -msgid "Street Address:" +#: ../../mod/events.php:666 +msgid "New Event" msgstr "" -#: ../../mod/profiles.php:683 -msgid "Locality/City:" +#: ../../mod/events.php:676 +msgid "Today" msgstr "" -#: ../../mod/profiles.php:684 -msgid "Postal/Zip Code:" +#: ../../mod/events.php:707 +msgid "Event removed" msgstr "" -#: ../../mod/profiles.php:685 -msgid "Country:" +#: ../../mod/events.php:710 +msgid "Failed to remove event" msgstr "" -#: ../../mod/profiles.php:686 -msgid "Region/State:" +#: ../../mod/profperm.php:29 ../../mod/profperm.php:58 +msgid "Invalid profile identifier." msgstr "" -#: ../../mod/profiles.php:687 -msgid "<span class=\"heart\">♥</span> Marital Status:" +#: ../../mod/profperm.php:110 +msgid "Profile Visibility Editor" msgstr "" -#: ../../mod/profiles.php:688 -msgid "Who: (if applicable)" +#: ../../mod/profperm.php:114 +msgid "Click on a contact to add or remove." msgstr "" -#: ../../mod/profiles.php:689 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +#: ../../mod/profperm.php:123 +msgid "Visible To" msgstr "" -#: ../../mod/profiles.php:690 -msgid "Since [date]:" +#: ../../mod/mitem.php:48 +msgid "Unable to create element." msgstr "" -#: ../../mod/profiles.php:692 -msgid "Homepage URL:" +#: ../../mod/mitem.php:72 +msgid "Unable to update menu element." msgstr "" -#: ../../mod/profiles.php:695 -msgid "Religious Views:" +#: ../../mod/mitem.php:88 +msgid "Unable to add menu element." msgstr "" -#: ../../mod/profiles.php:696 -msgid "Keywords:" +#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 +msgid "Menu Item Permissions" msgstr "" -#: ../../mod/profiles.php:699 -msgid "Example: fishing photography software" +#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 +msgid "Link Name" msgstr "" -#: ../../mod/profiles.php:700 -msgid "Used in directory listings" +#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 +msgid "Link or Submenu Target" msgstr "" -#: ../../mod/profiles.php:701 -msgid "Tell us about yourself..." +#: ../../mod/mitem.php:153 +msgid "Enter URL of the link or select a menu name to create a submenu" msgstr "" -#: ../../mod/profiles.php:702 -msgid "Hobbies/Interests" +#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 +msgid "Use magic-auth if available" msgstr "" -#: ../../mod/profiles.php:703 -msgid "Contact information and Social Networks" +#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 +msgid "Open link in new window" msgstr "" -#: ../../mod/profiles.php:704 -msgid "My other channels" +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Order in list" msgstr "" -#: ../../mod/profiles.php:705 -msgid "Musical interests" +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Higher numbers will sink to bottom of listing" msgstr "" -#: ../../mod/profiles.php:706 -msgid "Books, literature" +#: ../../mod/mitem.php:157 +msgid "Submit and finish" msgstr "" -#: ../../mod/profiles.php:707 -msgid "Television" +#: ../../mod/mitem.php:158 +msgid "Submit and continue" msgstr "" -#: ../../mod/profiles.php:708 -msgid "Film/dance/culture/entertainment" +#: ../../mod/mitem.php:166 +msgid "Menu:" msgstr "" -#: ../../mod/profiles.php:709 -msgid "Love/romance" +#: ../../mod/mitem.php:169 +msgid "Link Target" msgstr "" -#: ../../mod/profiles.php:710 -msgid "Work/employment" +#: ../../mod/mitem.php:172 +msgid "Edit menu" msgstr "" -#: ../../mod/profiles.php:711 -msgid "School/education" +#: ../../mod/mitem.php:175 +msgid "Edit element" msgstr "" -#: ../../mod/profiles.php:717 -msgid "This is your default profile." +#: ../../mod/mitem.php:176 +msgid "Drop element" msgstr "" -#: ../../mod/profiles.php:728 -msgid "Age: " +#: ../../mod/mitem.php:177 +msgid "New element" msgstr "" -#: ../../mod/profiles.php:771 -msgid "Edit/Manage Profiles" +#: ../../mod/mitem.php:178 +msgid "Edit this menu container" msgstr "" -#: ../../mod/profiles.php:772 -msgid "Add profile things" +#: ../../mod/mitem.php:179 +msgid "Add menu element" msgstr "" -#: ../../mod/profiles.php:773 -msgid "Include desirable objects in your profile" +#: ../../mod/mitem.php:180 +msgid "Delete this menu item" msgstr "" -#: ../../mod/profperm.php:29 ../../mod/profperm.php:58 -msgid "Invalid profile identifier." +#: ../../mod/mitem.php:181 +msgid "Edit this menu item" msgstr "" -#: ../../mod/profperm.php:110 -msgid "Profile Visibility Editor" +#: ../../mod/mitem.php:198 +msgid "Menu item not found." msgstr "" -#: ../../mod/profperm.php:114 -msgid "Click on a contact to add or remove." +#: ../../mod/mitem.php:211 +msgid "Menu item deleted." msgstr "" -#: ../../mod/profperm.php:123 -msgid "Visible To" +#: ../../mod/mitem.php:213 +msgid "Menu item could not be deleted." msgstr "" -#: ../../mod/rbmark.php:90 -msgid "Select a bookmark folder" +#: ../../mod/mitem.php:220 +msgid "Edit Menu Element" msgstr "" -#: ../../mod/rbmark.php:95 -msgid "Save Bookmark" +#: ../../mod/mitem.php:226 +msgid "Link text" msgstr "" -#: ../../mod/rbmark.php:96 -msgid "URL of bookmark" +#: ../../mod/wholikesme.php:13 +msgid "Who likes me?" msgstr "" -#: ../../mod/rbmark.php:101 -msgid "Or enter new bookmark folder name" +#: ../../mod/sharedwithme.php:94 +msgid "Files: shared with me" msgstr "" -#: ../../mod/import_items.php:101 -msgid "Import completed" +#: ../../mod/sharedwithme.php:96 +msgid "NEW" msgstr "" -#: ../../mod/import_items.php:119 -msgid "Import Items" +#: ../../mod/sharedwithme.php:99 +msgid "Remove all files" msgstr "" -#: ../../mod/import_items.php:120 -msgid "Use this form to import existing posts and content from an export file." +#: ../../mod/sharedwithme.php:100 +msgid "Remove this file" msgstr "" -#: ../../mod/wholikesme.php:13 -msgid "Who likes me?" +#: ../../mod/viewconnections.php:59 +msgid "No connections." +msgstr "" + +#: ../../mod/viewconnections.php:72 +#, php-format +msgid "Visit %s's profile [%s]" msgstr "" #: ../../view/theme/redbasic/php/config.php:82 @@ -9234,51 +9279,51 @@ msgstr "" msgid "Set size of followup author photos" msgstr "" -#: ../../boot.php:1308 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:1311 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:1478 +#: ../../boot.php:1461 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "" -#: ../../boot.php:1506 +#: ../../boot.php:1489 msgid "Password" msgstr "" -#: ../../boot.php:1507 +#: ../../boot.php:1490 msgid "Remember me" msgstr "" -#: ../../boot.php:1510 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:2136 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "" -#: ../../boot.php:2271 +#: ../../boot.php:2248 msgid "Website SSL certificate is not valid. Please correct." msgstr "" -#: ../../boot.php:2274 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "" -#: ../../boot.php:2311 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "" -#: ../../boot.php:2315 +#: ../../boot.php:2292 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "" diff --git a/util/update_addon_repo b/util/update_addon_repo index 5b531e6a5..ba1862f4b 100755 --- a/util/update_addon_repo +++ b/util/update_addon_repo @@ -7,7 +7,12 @@ if [ $# -ne 1 ]; then exit 1 fi -cd extend/addon/$1 +if [ -d extend/addon/$1 ] ; then + cd extend/addon/$1 +else + echo "$1 not found. Aborting..." + exit 1 +fi if [ -d .git ] ; then git pull diff --git a/version.inc b/version.inc index c4168039b..8282941e1 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-10.1212 +2015-12-03.1235 diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index abffe2f78..29164c7ad 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -29,7 +29,7 @@ nav ul li { max-height: 50px; } -nav img { +nav .navbar-header img { height: 49px; width: 49px; margin-top: 1px; @@ -57,22 +57,14 @@ nav .navbar-toggle { /* nav overrides end */ -aside .nav-pills > li > a { +aside .nav-pills > li > a, +.response-list .nav-pills > li > a { padding: 6px 10px; } -.dropdown-menu img { - float: left; - width: 32px; - height: 32px; - margin-right: 5px; -} - .dropdown-menu li a { overflow: hidden; text-overflow: ellipsis; - line-height: 1em; - padding: 5px 10px; } .nav-tabs.nav-justified > li { diff --git a/view/css/conversation.css b/view/css/conversation.css index dc74dbbeb..d49359f46 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -178,7 +178,6 @@ a.wall-item-name-link { /* comment_item */ .comment-edit-text-empty, .comment-edit-text-full { - float: left; width: 100%; } @@ -247,8 +246,37 @@ a.wall-item-name-link { font-size: 1em !important; } -.response-photo { - height: 18px !important; - width: 18px !important; +/* event item */ + +.event-item-title h3 { + margin: 0px 0px 10px 0px; + font-weight: bold; +} + +.event-item-description { + padding-bottom: 10px; +} + +.event-item-label { + font-weight: bold; +} + +/* vevent */ + +.event-title h3 { + margin: 0px 0px 10px 0px; + font-weight: bold; +} + +.vevent { + padding-top: 10px; } +.event-description { + padding-top: 10px; + padding-bottom: 10px; +} + +.event-label { + font-weight: bold; +} diff --git a/view/css/mod_events.css b/view/css/mod_events.css index a8e6415c7..e72464539 100644 --- a/view/css/mod_events.css +++ b/view/css/mod_events.css @@ -1,55 +1,44 @@ - -#event-desc-textarea, #event-location-textarea { - width: 400px; -} - -#event-summary-text, #event-start-text, #event-finish-text { - width: 200px; - float: left; -} - -#event-summary, #start_text { - width: 95%; - float: left; -} - -#finish_text { - width: 100%; - float: left; +/* fix borders */ +#events-calendar { + margin-left: -1px; + margin-bottom: -1px; } - -#event-category-wrap { - margin-top: 15px; +.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; } -.event-cats { - margin-top: 15px; +#events-spinner .spinner { + margin-top: 9px; + margin-bottom: -9px; } .bootstrap-tagsinput { width: 100%; + padding: 6px 12px; } - -.required { - float: left; - cursor: default; -} - -#event-datetime-break { - clear: both; +.event-wrapper, +.vevent { + max-width: 700px; } -#event-nofinish-break { - margin-bottom: 10px; +.event-owner { + padding: 10px; } -#event-desc-text, #event-location-text, .event-form-location-end { - margin-top: 15px; +.event-owner img { + margin-right: 5px; } -#event-edit-preview-btn { - margin-right: 15px; +.vevent, +.event-buttons { + padding: 10px; } diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css index 5fd646765..1346eecd5 100644 --- a/view/css/mod_mail.css +++ b/view/css/mod_mail.css @@ -24,3 +24,7 @@ #prvmail-rotator { margin: 15px; } + +.mail-conv-outside-wrapper { + margin-bottom: 20px; +} diff --git a/view/css/widgets.css b/view/css/widgets.css index eb771cc06..f1c1436c7 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -124,3 +124,12 @@ li:hover .group-edit-icon { width: 250px; } +/* events tools */ + +#event-upload-form { + margin-top: 10px; +} + +#event-upload-choose { + width: 100%; +} diff --git a/view/en/htconfig.tpl b/view/en/htconfig.tpl index c6357b3a7..17ee7bfeb 100644 --- a/view/en/htconfig.tpl +++ b/view/en/htconfig.tpl @@ -81,7 +81,7 @@ $a->config['system']['php_path'] = '{{$phpath}}'; // Configure how we communicate with directory servers. // DIRECTORY_MODE_NORMAL = directory client, we will find a directory // DIRECTORY_MODE_SECONDARY = caching directory or mirror -// DIRECTORY_MODE_PRIMARY = main directory server +// DIRECTORY_MODE_PRIMARY = master directory server - one per realm // DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services $a->config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL; diff --git a/view/es/hmessages.po b/view/es/hmessages.po index 290f4d23e..88ad2bf09 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-06 00:02-0800\n" -"PO-Revision-Date: 2015-11-07 17:17+0000\n" +"POT-Creation-Date: 2015-11-27 00:03-0800\n" +"PO-Revision-Date: 2015-11-28 17:04+0000\n" "Last-Translator: Manuel Jiménez Friaza <mjfriaza@openmailbox.org>\n" "Language-Team: Spanish (http://www.transifex.com/Friendica/red-matrix/language/es/)\n" "MIME-Version: 1.0\n" @@ -23,690 +23,114 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/conversation.php:120 ../../include/text.php:1863 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 -msgid "photo" -msgstr "foto" - -#: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1866 ../../mod/like.php:363 ../../mod/tagger.php:47 -#: ../../mod/events.php:245 -msgid "event" -msgstr "evento" - -#: ../../include/conversation.php:126 ../../mod/like.php:113 -msgid "channel" -msgstr "canal" - -#: ../../include/conversation.php:148 ../../include/text.php:1869 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 -msgid "status" -msgstr "el mensaje de estado" - -#: ../../include/conversation.php:150 ../../include/text.php:1871 -#: ../../mod/tagger.php:53 -msgid "comment" -msgstr "comentario" - -#: ../../include/conversation.php:164 ../../mod/like.php:410 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "a %1$s le gusta %3$s de %2$s" - -#: ../../include/conversation.php:167 ../../mod/like.php:412 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "a %1$s no le gusta %3$s de %2$s" - -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s ahora está conectado/a con %2$s" - -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s ha dado un toque a %2$s" - -#: ../../include/conversation.php:243 ../../include/text.php:942 -msgid "poked" -msgstr "ha recibido un toque" - -#: ../../include/conversation.php:260 ../../mod/mood.php:63 -#, php-format -msgctxt "mood" -msgid "%1$s is %2$s" -msgstr "%1$s está %2$s" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Likes" -msgstr "Me gusta" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Dislikes" -msgstr "No me gusta" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Agree" -msgstr "De acuerdo" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Disagree" -msgstr "En desacuerdo" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Abstain" -msgstr "Abstención" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Attending" -msgstr "Participaré" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Not attending" -msgstr "No participaré" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Might attend" -msgstr "Quizá participe" - -#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 -msgid "Select" -msgstr "Seleccionar" - -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:546 ../../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" - -#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 -msgid "Message signature validated" -msgstr "Firma de mensaje validada" - -#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 -msgid "Message signature incorrect" -msgstr "Firma de mensaje incorrecta" - -#: ../../include/conversation.php:691 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Ver el perfil @ %s de %s" - -#: ../../include/conversation.php:709 -msgid "Categories:" -msgstr "Categorías:" - -#: ../../include/conversation.php:710 -msgid "Filed under:" -msgstr "Archivado bajo:" - -#: ../../include/conversation.php:718 ../../include/ItemObject.php:321 -#, php-format -msgid "from %s" -msgstr "desde %s" - -#: ../../include/conversation.php:721 ../../include/ItemObject.php:324 -#, php-format -msgid "last edited: %s" -msgstr "último cambio: %s" - -#: ../../include/conversation.php:722 ../../include/ItemObject.php:325 -#, php-format -msgid "Expires: %s" -msgstr "Caduca: %s" - -#: ../../include/conversation.php:737 -msgid "View in context" -msgstr "Mostrar en su contexto" - -#: ../../include/conversation.php:739 ../../include/conversation.php:1221 -#: ../../include/ItemObject.php:375 ../../mod/photos.php:1029 -#: ../../mod/editblock.php:150 ../../mod/editpost.php:129 -#: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:190 -msgid "Please wait" -msgstr "Espere por favor" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "eliminar" - -#: ../../include/conversation.php:853 ../../include/nav.php:241 -msgid "Loading..." -msgstr "Cargando..." - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "Eliminar elementos seleccionados" - -#: ../../include/conversation.php:945 -msgid "View Source" -msgstr "Ver la fuente original de la entrada" - -#: ../../include/conversation.php:946 -msgid "Follow Thread" -msgstr "Seguir el hilo" - -#: ../../include/conversation.php:947 -msgid "Stop Following" -msgstr "Dejar de seguir" - -#: ../../include/conversation.php:948 -msgid "View Status" -msgstr "Ver el estado actual" - -#: ../../include/conversation.php:949 ../../include/nav.php:86 -#: ../../mod/connedit.php:493 -msgid "View Profile" -msgstr "Ver el perfil" - -#: ../../include/conversation.php:950 -msgid "View Photos" -msgstr "Ver fotos" - -#: ../../include/conversation.php:951 -msgid "Activity/Posts" -msgstr "Actividad y entradas" - -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:965 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:316 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 +#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/conversation.php:953 ../../mod/match.php:64 +#: ../../mod/directory.php:318 ../../mod/suggest.php:52 msgid "Connect" msgstr "Conectar" -#: ../../include/conversation.php:953 -msgid "Edit Connection" -msgstr "Editar conexión" - -#: ../../include/conversation.php:954 -msgid "Send PM" -msgstr "Enviar un mensaje privado" - -#: ../../include/conversation.php:955 ../../include/apps.php:145 -msgid "Poke" -msgstr "Toques y otras cosas" - -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../mod/photos.php:759 ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "Desconocido" - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s likes this." -msgstr "a %s le gusta esto." - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s doesn't like this." -msgstr "a %s no le gusta esto." - -#: ../../include/conversation.php:1073 -#, php-format -msgid "<span %1$s>%2$d people</span> like this." -msgid_plural "<span %1$s>%2$d people</span> like this." -msgstr[0] "a <span %1$s>%2$d personas</span> le gusta esto." -msgstr[1] "a <span %1$s>%2$d personas</span> les gusta esto." - -#: ../../include/conversation.php:1075 -#, php-format -msgid "<span %1$s>%2$d people</span> don't like this." -msgid_plural "<span %1$s>%2$d people</span> don't like this." -msgstr[0] "a <span %1$s>%2$d personas</span> no les gusta esto." -msgstr[1] "a <span %1$s>%2$d personas</span> no les gusta esto." - -#: ../../include/conversation.php:1081 -msgid "and" -msgstr "y" - -#: ../../include/conversation.php:1084 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] ", y %d persona más" -msgstr[1] ", y %d personas más" +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "Nueva ventana" -#: ../../include/conversation.php:1085 -#, php-format -msgid "%s like this." -msgstr "a %s le gusta esto." +#: ../../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/conversation.php:1085 +#: ../../include/Contact.php:237 #, php-format -msgid "%s don't like this." -msgstr "a %s no le gusta esto." - -#: ../../include/conversation.php:1148 -msgid "Visible to <strong>everybody</strong>" -msgstr "Visible para <strong>cualquiera</strong>" - -#: ../../include/conversation.php:1149 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 -msgid "Please enter a link URL:" -msgstr "Por favor, introduzca la dirección del enlace:" - -#: ../../include/conversation.php:1150 -msgid "Please enter a video link/URL:" -msgstr "Por favor, introduzca un enlace de vídeo:" - -#: ../../include/conversation.php:1151 -msgid "Please enter an audio link/URL:" -msgstr "Por favor, introduzca un enlace de audio:" - -#: ../../include/conversation.php:1152 -msgid "Tag term:" -msgstr "Término de la etiqueta:" - -#: ../../include/conversation.php:1153 ../../mod/filer.php:48 -msgid "Save to Folder:" -msgstr "Guardar en carpeta:" - -#: ../../include/conversation.php:1154 -msgid "Where are you right now?" -msgstr "¿Donde está ahora?" - -#: ../../include/conversation.php:1155 ../../mod/editpost.php:54 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Caduca YYYY-MM-DD HH:MM" - -#: ../../include/conversation.php:1163 ../../include/page_widgets.php:40 -#: ../../include/ItemObject.php:692 ../../mod/photos.php:1049 -#: ../../mod/editblock.php:171 ../../mod/editpost.php:149 -#: ../../mod/events.php:707 ../../mod/webpages.php:188 -#: ../../mod/editwebpage.php:212 -msgid "Preview" -msgstr "Previsualizar" - -#: ../../include/conversation.php:1186 ../../mod/layouts.php:184 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/blocks.php:154 -msgid "Share" -msgstr "Compartir" - -#: ../../include/conversation.php:1188 -msgid "Page link name" -msgstr "Nombre de enlace de página" - -#: ../../include/conversation.php:1191 -msgid "Post as" -msgstr "Publicar como" - -#: ../../include/conversation.php:1193 ../../include/ItemObject.php:684 -#: ../../mod/editblock.php:136 ../../mod/editpost.php:113 -#: ../../mod/editlayout.php:135 ../../mod/editwebpage.php:177 -msgid "Bold" -msgstr "Negrita" - -#: ../../include/conversation.php:1194 ../../include/ItemObject.php:685 -#: ../../mod/editblock.php:137 ../../mod/editpost.php:114 -#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:178 -msgid "Italic" -msgstr "Itálico " - -#: ../../include/conversation.php:1195 ../../include/ItemObject.php:686 -#: ../../mod/editblock.php:138 ../../mod/editpost.php:115 -#: ../../mod/editlayout.php:137 ../../mod/editwebpage.php:179 -msgid "Underline" -msgstr "Subrayar" - -#: ../../include/conversation.php:1196 ../../include/ItemObject.php:687 -#: ../../mod/editblock.php:139 ../../mod/editpost.php:116 -#: ../../mod/editlayout.php:138 ../../mod/editwebpage.php:180 -msgid "Quote" -msgstr "Citar" - -#: ../../include/conversation.php:1197 ../../include/ItemObject.php:688 -#: ../../mod/editblock.php:140 ../../mod/editpost.php:117 -#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:181 -msgid "Code" -msgstr "Código" - -#: ../../include/conversation.php:1198 ../../mod/editblock.php:142 -#: ../../mod/editpost.php:118 ../../mod/editlayout.php:140 -#: ../../mod/editwebpage.php:182 -msgid "Upload photo" -msgstr "Subir foto" - -#: ../../include/conversation.php:1199 -msgid "upload photo" -msgstr "subir foto" - -#: ../../include/conversation.php:1200 ../../mod/editblock.php:143 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:369 -#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:183 -msgid "Attach file" -msgstr "Adjuntar fichero" - -#: ../../include/conversation.php:1201 -msgid "attach file" -msgstr "adjuntar fichero" - -#: ../../include/conversation.php:1202 ../../mod/editblock.php:144 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:370 -#: ../../mod/editlayout.php:142 ../../mod/editwebpage.php:184 -msgid "Insert web link" -msgstr "Insertar enlace web" - -#: ../../include/conversation.php:1203 -msgid "web link" -msgstr "enlace web" - -#: ../../include/conversation.php:1204 -msgid "Insert video link" -msgstr "Insertar enlace de vídeo" - -#: ../../include/conversation.php:1205 -msgid "video link" -msgstr "enlace de vídeo" - -#: ../../include/conversation.php:1206 -msgid "Insert audio link" -msgstr "Insertar enlace de audio" - -#: ../../include/conversation.php:1207 -msgid "audio link" -msgstr "enlace de audio" - -#: ../../include/conversation.php:1208 ../../mod/editblock.php:148 -#: ../../mod/editpost.php:124 ../../mod/editlayout.php:146 -#: ../../mod/editwebpage.php:188 -msgid "Set your location" -msgstr "Establecer su ubicación" - -#: ../../include/conversation.php:1209 -msgid "set location" -msgstr "establecer ubicación" - -#: ../../include/conversation.php:1210 ../../mod/editpost.php:126 -msgid "Toggle voting" -msgstr "Cambiar votación" - -#: ../../include/conversation.php:1213 ../../mod/editblock.php:149 -#: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 -#: ../../mod/editwebpage.php:189 -msgid "Clear browser location" -msgstr "Eliminar los datos de ubicación del navegador" - -#: ../../include/conversation.php:1214 -msgid "clear location" -msgstr "borrar los datos de ubicación" - -#: ../../include/conversation.php:1216 ../../mod/editblock.php:162 -#: ../../mod/editpost.php:141 ../../mod/editwebpage.php:205 -msgid "Title (optional)" -msgstr "Título (opcional)" - -#: ../../include/conversation.php:1220 ../../mod/editblock.php:165 -#: ../../mod/editpost.php:143 ../../mod/editlayout.php:163 -#: ../../mod/editwebpage.php:207 -msgid "Categories (optional, comma-separated list)" -msgstr "Categorías (opcional, lista separada por comas)" - -#: ../../include/conversation.php:1222 ../../mod/editblock.php:151 -#: ../../mod/editpost.php:130 ../../mod/editlayout.php:149 -#: ../../mod/editwebpage.php:191 -msgid "Permission settings" -msgstr "Configuración de permisos" - -#: ../../include/conversation.php:1223 -msgid "permissions" -msgstr "permisos" - -#: ../../include/conversation.php:1231 ../../mod/editblock.php:159 -#: ../../mod/editpost.php:138 ../../mod/editlayout.php:156 -#: ../../mod/editwebpage.php:200 -msgid "Public post" -msgstr "Entrada pública" - -#: ../../include/conversation.php:1233 ../../mod/editblock.php:166 -#: ../../mod/editpost.php:144 ../../mod/editlayout.php:164 -#: ../../mod/editwebpage.php:208 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com" - -#: ../../include/conversation.php:1246 ../../mod/editblock.php:176 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:374 -#: ../../mod/editlayout.php:173 ../../mod/editwebpage.php:217 -msgid "Set expiration date" -msgstr "Configurar fecha de caducidad" - -#: ../../include/conversation.php:1249 -msgid "Set publish date" -msgstr "Establecer la fecha de publicación" - -#: ../../include/conversation.php:1251 ../../include/ItemObject.php:695 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:376 -msgid "Encrypt text" -msgstr "Cifrar texto" - -#: ../../include/conversation.php:1253 ../../mod/editpost.php:159 -#: ../../mod/events.php:691 -msgid "OK" -msgstr "OK" - -#: ../../include/conversation.php:1254 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:160 -#: ../../mod/events.php:690 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 -#: ../../mod/settings.php:585 ../../mod/settings.php:611 -msgid "Cancel" -msgstr "Cancelar" - -#: ../../include/conversation.php:1497 -msgid "Discover" -msgstr "Descubrir" - -#: ../../include/conversation.php:1500 -msgid "Imported public streams" -msgstr "Flujos públicos importados" - -#: ../../include/conversation.php:1505 -msgid "Commented Order" -msgstr "Comentarios recientes" - -#: ../../include/conversation.php:1508 -msgid "Sort by Comment Date" -msgstr "Ordenar por fecha de comentario" - -#: ../../include/conversation.php:1512 -msgid "Posted Order" -msgstr "Publicaciones recientes" - -#: ../../include/conversation.php:1515 -msgid "Sort by Post Date" -msgstr "Ordenar por fecha de publicación" - -#: ../../include/conversation.php:1520 ../../include/widgets.php:94 -msgid "Personal" -msgstr "Personales" - -#: ../../include/conversation.php:1523 -msgid "Posts that mention or involve you" -msgstr "Publicaciones que le mencionan o involucran" - -#: ../../include/conversation.php:1529 ../../mod/menu.php:112 -#: ../../mod/connections.php:72 ../../mod/connections.php:82 -msgid "New" -msgstr "Nuevas" - -#: ../../include/conversation.php:1532 -msgid "Activity Stream - by date" -msgstr "Flujo de actividad - por fecha" - -#: ../../include/conversation.php:1538 -msgid "Starred" -msgstr "Preferidas" - -#: ../../include/conversation.php:1541 -msgid "Favourite Posts" -msgstr "Publicaciones favoritas" - -#: ../../include/conversation.php:1548 -msgid "Spam" -msgstr "Correo basura" - -#: ../../include/conversation.php:1551 -msgid "Posts flagged as SPAM" -msgstr "Publicaciones marcadas como basura" - -#: ../../include/conversation.php:1595 ../../mod/admin.php:972 -msgid "Channel" -msgstr "Canal" - -#: ../../include/conversation.php:1598 -msgid "Status Messages and Posts" -msgstr "Mensajes de estado y publicaciones" - -#: ../../include/conversation.php:1607 -msgid "About" -msgstr "Sobre mí" - -#: ../../include/conversation.php:1610 -msgid "Profile Details" -msgstr "Detalles del perfil" - -#: ../../include/conversation.php:1616 ../../include/apps.php:139 -#: ../../include/nav.php:92 ../../mod/fbrowser.php:25 -msgid "Photos" -msgstr "Fotos" - -#: ../../include/conversation.php:1619 ../../include/photos.php:483 -msgid "Photo Albums" -msgstr "Álbumes de fotos" - -#: ../../include/conversation.php:1623 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Ficheros" - -#: ../../include/conversation.php:1626 -msgid "Files and Storage" -msgstr "Ficheros y repositorio" - -#: ../../include/conversation.php:1636 ../../include/conversation.php:1639 -msgid "Chatrooms" -msgstr "Salas de chat" - -#: ../../include/conversation.php:1649 ../../include/apps.php:129 -#: ../../include/nav.php:103 -msgid "Bookmarks" -msgstr "Marcadores" - -#: ../../include/conversation.php:1652 -msgid "Saved Bookmarks" -msgstr "Marcadores guardados" - -#: ../../include/conversation.php:1659 ../../include/apps.php:136 -#: ../../include/nav.php:107 ../../mod/webpages.php:178 -msgid "Webpages" -msgstr "Páginas web" - -#: ../../include/conversation.php:1662 -msgid "Manage Webpages" -msgstr "Administrar páginas web" - -#: ../../include/conversation.php:1691 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 -msgid "View all" -msgstr "Ver todo" - -#: ../../include/conversation.php:1715 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1276 ../../include/taxonomy.php:403 -#: ../../mod/photos.php:1086 -msgctxt "noun" -msgid "Like" -msgid_plural "Likes" -msgstr[0] "Me gusta" -msgstr[1] "Me gusta" - -#: ../../include/conversation.php:1718 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 -msgctxt "noun" -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "No me gusta" -msgstr[1] "No me gusta" +msgid "User '%s' deleted" +msgstr "El usuario '%s' ha sido eliminado" -#: ../../include/conversation.php:1721 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "Participando" -msgstr[1] "Participaré" +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "Sala de chat sin nombre" -#: ../../include/conversation.php:1724 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "No participando" -msgstr[1] "No participaré" +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "Nombre de sala duplicado." -#: ../../include/conversation.php:1727 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "Indeciso/a" -msgstr[1] "Indecisos/as" +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "Especificador de sala no válido." -#: ../../include/conversation.php:1730 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "Está de acuerdo" -msgstr[1] "De acuerdo" +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "Sala no encontrada." -#: ../../include/conversation.php:1733 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "No está de acuerdo" -msgstr[1] "En desacuerdo" +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../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 +#: ../../include/photos.php:29 ../../mod/filestorage.php:18 +#: ../../mod/filestorage.php:73 ../../mod/filestorage.php:88 +#: ../../mod/filestorage.php:115 ../../mod/group.php:9 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/common.php:35 +#: ../../mod/achievements.php:30 ../../mod/rate.php:111 +#: ../../mod/blocks.php:69 ../../mod/blocks.php:76 ../../mod/id.php:71 +#: ../../mod/like.php:177 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/mood.php:112 ../../mod/new_channel.php:68 +#: ../../mod/new_channel.php:99 ../../mod/setup.php:227 +#: ../../mod/bookmarks.php:48 ../../mod/poke.php:133 +#: ../../mod/profiles.php:198 ../../mod/profiles.php:584 +#: ../../mod/connedit.php:352 ../../mod/editwebpage.php:64 +#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:101 +#: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 +#: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 +#: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 +#: ../../mod/notifications.php:66 ../../mod/photos.php:70 +#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 +#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 +#: ../../mod/editblock.php:65 ../../mod/network.php:12 +#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/settings.php:568 ../../mod/webpages.php:69 +#: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/mail.php:118 +#: ../../mod/regmod.php:17 ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/invite.php:13 ../../mod/invite.php:104 +#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 +#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 +#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 +msgid "Permission denied." +msgstr "Acceso denegado." -#: ../../include/conversation.php:1736 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "se abstiene" -msgstr[1] "Se abstienen" +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "La sala está llena." -#: ../../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.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/import_diaspora.php:42 ../../include/import.php:44 +#: ../../include/import.php:44 ../../include/Import/import_diaspora.php:42 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:486 -msgid "Import completed." -msgstr "Importación completada." +#: ../../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/RedDAV/RedBrowser.php:107 #: ../../include/RedDAV/RedBrowser.php:239 msgid "parent" msgstr "padre" -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2529 +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2582 msgid "Collection" msgstr "Colección" @@ -730,6 +154,19 @@ msgstr "Programar bandeja de entrada" msgid "Schedule Outbox" msgstr "Programar bandeja de salida" +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1317 +#: ../../include/conversation.php:1027 ../../include/apps.php:360 +#: ../../include/apps.php:415 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "Desconocido" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 +#: ../../include/nav.php:93 ../../include/apps.php:135 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Ficheros" + #: ../../include/RedDAV/RedBrowser.php:227 msgid "Total" msgstr "Total" @@ -739,20 +176,21 @@ 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 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/blocks.php:152 +#: ../../mod/new_channel.php:121 ../../mod/webpages.php:180 +#: ../../mod/layouts.php:175 ../../mod/menu.php:114 msgid "Create" msgstr "Crear" #: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:784 -#: ../../mod/photos.php:1317 ../../mod/profile_photo.php:450 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:453 msgid "Upload" msgstr "Subir" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" msgstr "Nombre" @@ -761,7 +199,7 @@ msgstr "Nombre" msgid "Type" msgstr "Tipo" -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1236 +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1248 #: ../../mod/sharedwithme.php:97 msgid "Size" msgstr "Tamaño" @@ -772,16 +210,27 @@ 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 +#: ../../include/ItemObject.php:100 ../../include/apps.php:259 +#: ../../mod/blocks.php:153 ../../mod/editwebpage.php:176 +#: ../../mod/thing.php:257 ../../mod/editblock.php:135 +#: ../../mod/editlayout.php:134 ../../mod/settings.php:648 +#: ../../mod/webpages.php:181 ../../mod/layouts.php:183 +#: ../../mod/editpost.php:112 ../../mod/connections.php:235 #: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +#: ../../mod/menu.php:108 msgid "Edit" msgstr "Editar" +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/ItemObject.php:120 ../../include/apps.php:260 +#: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 +#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 +#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 +#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 +#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +msgid "Delete" +msgstr "Eliminar" + #: ../../include/RedDAV/RedBrowser.php:282 #, php-format msgid "You are using %1$s of your available file storage." @@ -804,570 +253,16 @@ msgstr "Crear nueva carpeta" 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:347 ../../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:1004 ../../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:2312 -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 +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 #: ../../mod/photos.php:1047 ../../mod/photos.php:1165 msgid "Comment" msgstr "Comentar" -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:413 msgid "[+] show all" msgstr "[+] mostrar todo:" @@ -1419,8 +314,8 @@ msgstr "Nada nuevo por aquí" msgid "Rate This Channel (this is public)" msgstr "Valorar este canal (esto es público)" -#: ../../include/js_strings.php:20 ../../mod/connedit.php:685 -#: ../../mod/rate.php:157 +#: ../../include/js_strings.php:20 ../../mod/rate.php:157 +#: ../../mod/connedit.php:694 msgid "Rating" msgstr "Valoración" @@ -1428,24 +323,25 @@ msgstr "Valoración" 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:706 ../../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:517 ../../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 +#: ../../include/js_strings.php:22 ../../include/widgets.php:676 +#: ../../include/ItemObject.php:697 ../../mod/filestorage.php:156 +#: ../../mod/group.php:81 ../../mod/connect.php:93 ../../mod/rate.php:168 +#: ../../mod/mood.php:135 ../../mod/setup.php:331 ../../mod/setup.php:371 +#: ../../mod/pconfig.php:108 ../../mod/poke.php:171 ../../mod/profiles.php:675 +#: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/thing.php:359 ../../mod/import_items.php:122 +#: ../../mod/pdledit.php:58 ../../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/settings.php:586 +#: ../../mod/settings.php:698 ../../mod/settings.php:726 +#: ../../mod/settings.php:749 ../../mod/settings.php:834 +#: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 +#: ../../mod/mail.php:371 ../../mod/xchan.php:11 ../../mod/invite.php:142 +#: ../../mod/chat.php:184 ../../mod/chat.php:213 ../../mod/events.php:476 +#: ../../mod/events.php:673 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" msgstr "Enviar" @@ -1458,369 +354,279 @@ msgstr "Por favor, introduzca una dirección de enlace" 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 +#: ../../include/js_strings.php:25 ../../mod/pubsites.php:28 +#: ../../mod/profiles.php:464 ../../mod/events.php:467 +msgid "Location" +msgstr "Ubicación" + +#: ../../include/js_strings.php:27 msgid "timeago.prefixAgo" msgstr "timeago.prefixAgo" -#: ../../include/js_strings.php:27 +#: ../../include/js_strings.php:28 msgid "timeago.prefixFromNow" msgstr "timeago.prefixFromNow" -#: ../../include/js_strings.php:28 +#: ../../include/js_strings.php:29 msgid "ago" msgstr "antes" -#: ../../include/js_strings.php:29 +#: ../../include/js_strings.php:30 msgid "from now" msgstr "desde ahora" -#: ../../include/js_strings.php:30 +#: ../../include/js_strings.php:31 msgid "less than a minute" msgstr "menos de un minuto" -#: ../../include/js_strings.php:31 +#: ../../include/js_strings.php:32 msgid "about a minute" msgstr "alrededor de un minuto" -#: ../../include/js_strings.php:32 +#: ../../include/js_strings.php:33 #, php-format msgid "%d minutes" msgstr "%d minutos" -#: ../../include/js_strings.php:33 +#: ../../include/js_strings.php:34 msgid "about an hour" msgstr "alrededor de una hora" -#: ../../include/js_strings.php:34 +#: ../../include/js_strings.php:35 #, php-format msgid "about %d hours" msgstr "alrededor de %d horas" -#: ../../include/js_strings.php:35 +#: ../../include/js_strings.php:36 msgid "a day" msgstr "un día" -#: ../../include/js_strings.php:36 +#: ../../include/js_strings.php:37 #, php-format msgid "%d days" msgstr "%d días" -#: ../../include/js_strings.php:37 +#: ../../include/js_strings.php:38 msgid "about a month" msgstr "alrededor de un mes" -#: ../../include/js_strings.php:38 +#: ../../include/js_strings.php:39 #, php-format msgid "%d months" msgstr "%d meses" -#: ../../include/js_strings.php:39 +#: ../../include/js_strings.php:40 msgid "about a year" msgstr "alrededor de un año" -#: ../../include/js_strings.php:40 +#: ../../include/js_strings.php:41 #, php-format msgid "%d years" msgstr "%d años" -#: ../../include/js_strings.php:41 +#: ../../include/js_strings.php:42 msgid " " msgstr " " -#: ../../include/js_strings.php:42 +#: ../../include/js_strings.php:43 msgid "timeago.numbers" msgstr "timeago.numbers" -#: ../../include/js_strings.php:44 ../../include/text.php:1153 +#: ../../include/js_strings.php:45 ../../include/text.php:1165 msgid "January" msgstr "enero" -#: ../../include/js_strings.php:45 ../../include/text.php:1153 +#: ../../include/js_strings.php:46 ../../include/text.php:1165 msgid "February" msgstr "febrero" -#: ../../include/js_strings.php:46 ../../include/text.php:1153 +#: ../../include/js_strings.php:47 ../../include/text.php:1165 msgid "March" msgstr "marzo" -#: ../../include/js_strings.php:47 ../../include/text.php:1153 +#: ../../include/js_strings.php:48 ../../include/text.php:1165 msgid "April" msgstr "abril" -#: ../../include/js_strings.php:48 +#: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "mayo" -#: ../../include/js_strings.php:49 ../../include/text.php:1153 +#: ../../include/js_strings.php:50 ../../include/text.php:1165 msgid "June" msgstr "junio" -#: ../../include/js_strings.php:50 ../../include/text.php:1153 +#: ../../include/js_strings.php:51 ../../include/text.php:1165 msgid "July" msgstr "julio" -#: ../../include/js_strings.php:51 ../../include/text.php:1153 +#: ../../include/js_strings.php:52 ../../include/text.php:1165 msgid "August" msgstr "agosto" -#: ../../include/js_strings.php:52 ../../include/text.php:1153 +#: ../../include/js_strings.php:53 ../../include/text.php:1165 msgid "September" msgstr "septiembre" -#: ../../include/js_strings.php:53 ../../include/text.php:1153 +#: ../../include/js_strings.php:54 ../../include/text.php:1165 msgid "October" msgstr "octubre" -#: ../../include/js_strings.php:54 ../../include/text.php:1153 +#: ../../include/js_strings.php:55 ../../include/text.php:1165 msgid "November" msgstr "noviembre" -#: ../../include/js_strings.php:55 ../../include/text.php:1153 +#: ../../include/js_strings.php:56 ../../include/text.php:1165 msgid "December" msgstr "diciembre" -#: ../../include/js_strings.php:56 +#: ../../include/js_strings.php:57 msgid "Jan" -msgstr "Ene" +msgstr "ene" -#: ../../include/js_strings.php:57 +#: ../../include/js_strings.php:58 msgid "Feb" -msgstr "Feb" +msgstr "feb" -#: ../../include/js_strings.php:58 +#: ../../include/js_strings.php:59 msgid "Mar" -msgstr "Mar" +msgstr "mar" -#: ../../include/js_strings.php:59 +#: ../../include/js_strings.php:60 msgid "Apr" -msgstr "Abr" +msgstr "abr" -#: ../../include/js_strings.php:60 +#: ../../include/js_strings.php:61 msgctxt "short" msgid "May" -msgstr "May" +msgstr "may" -#: ../../include/js_strings.php:61 +#: ../../include/js_strings.php:62 msgid "Jun" -msgstr "Jun" +msgstr "jun" -#: ../../include/js_strings.php:62 +#: ../../include/js_strings.php:63 msgid "Jul" -msgstr "Jul" +msgstr "jul" -#: ../../include/js_strings.php:63 +#: ../../include/js_strings.php:64 msgid "Aug" -msgstr "Ago" +msgstr "ago" -#: ../../include/js_strings.php:64 +#: ../../include/js_strings.php:65 msgid "Sep" -msgstr "Sep" +msgstr "sep" -#: ../../include/js_strings.php:65 +#: ../../include/js_strings.php:66 msgid "Oct" -msgstr "Oct" +msgstr "oct" -#: ../../include/js_strings.php:66 +#: ../../include/js_strings.php:67 msgid "Nov" -msgstr "Nov" +msgstr "nov" -#: ../../include/js_strings.php:67 +#: ../../include/js_strings.php:68 msgid "Dec" -msgstr "Dic" +msgstr "dic" -#: ../../include/js_strings.php:68 ../../include/text.php:1149 +#: ../../include/js_strings.php:69 ../../include/text.php:1161 msgid "Sunday" msgstr "domingo" -#: ../../include/js_strings.php:69 ../../include/text.php:1149 +#: ../../include/js_strings.php:70 ../../include/text.php:1161 msgid "Monday" msgstr "lunes" -#: ../../include/js_strings.php:70 ../../include/text.php:1149 +#: ../../include/js_strings.php:71 ../../include/text.php:1161 msgid "Tuesday" msgstr "martes" -#: ../../include/js_strings.php:71 ../../include/text.php:1149 +#: ../../include/js_strings.php:72 ../../include/text.php:1161 msgid "Wednesday" msgstr "miércoles" -#: ../../include/js_strings.php:72 ../../include/text.php:1149 +#: ../../include/js_strings.php:73 ../../include/text.php:1161 msgid "Thursday" msgstr "jueves" -#: ../../include/js_strings.php:73 ../../include/text.php:1149 +#: ../../include/js_strings.php:74 ../../include/text.php:1161 msgid "Friday" msgstr "viernes" -#: ../../include/js_strings.php:74 ../../include/text.php:1149 +#: ../../include/js_strings.php:75 ../../include/text.php:1161 msgid "Saturday" msgstr "sábado" -#: ../../include/js_strings.php:75 +#: ../../include/js_strings.php:76 msgid "Sun" -msgstr "Dom" +msgstr "dom" -#: ../../include/js_strings.php:76 +#: ../../include/js_strings.php:77 msgid "Mon" -msgstr "Lun" +msgstr "lun" -#: ../../include/js_strings.php:77 +#: ../../include/js_strings.php:78 msgid "Tue" -msgstr "Mar" +msgstr "mar" -#: ../../include/js_strings.php:78 +#: ../../include/js_strings.php:79 msgid "Wed" -msgstr "Mié" +msgstr "mié" -#: ../../include/js_strings.php:79 +#: ../../include/js_strings.php:80 msgid "Thu" -msgstr "Jue" +msgstr "jue" -#: ../../include/js_strings.php:80 +#: ../../include/js_strings.php:81 msgid "Fri" -msgstr "Vie" +msgstr "vie" -#: ../../include/js_strings.php:81 +#: ../../include/js_strings.php:82 msgid "Sat" -msgstr "Sáb" +msgstr "sáb" -#: ../../include/js_strings.php:82 +#: ../../include/js_strings.php:83 msgctxt "calendar" msgid "today" msgstr "hoy" -#: ../../include/js_strings.php:83 +#: ../../include/js_strings.php:84 msgctxt "calendar" msgid "month" msgstr "mes" -#: ../../include/js_strings.php:84 +#: ../../include/js_strings.php:85 msgctxt "calendar" msgid "week" msgstr "semana" -#: ../../include/js_strings.php:85 +#: ../../include/js_strings.php:86 msgctxt "calendar" msgid "day" msgstr "día" -#: ../../include/js_strings.php:86 +#: ../../include/js_strings.php:87 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:1505 -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/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/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "El usuario '%s' ha sido eliminado" +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "Importación completada." -#: ../../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/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "Predeterminado" -#: ../../include/items.php:423 ../../mod/like.php:280 ../../mod/dreport.php:6 -#: ../../mod/dreport.php:45 ../../mod/subthread.php:52 ../../mod/group.php:68 -#: ../../mod/profperm.php:23 ../../mod/import_items.php:114 -#: ../../index.php:360 +#: ../../include/items.php:423 ../../mod/group.php:68 ../../mod/like.php:280 +#: ../../mod/dreport.php:6 ../../mod/dreport.php:45 ../../mod/subthread.php:58 +#: ../../mod/import_items.php:114 ../../mod/profperm.php:23 +#: ../../index.php:364 msgid "Permission denied" msgstr "Permiso denegado" @@ -1861,126 +667,557 @@ msgstr "Visible para las conexiones permitidas." 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 +#: ../../include/items.php:4317 ../../mod/filestorage.php:27 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 +#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Elemento no encontrado." -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 msgid "Collection not found." msgstr "Colección no encontrada." -#: ../../include/items.php:4836 +#: ../../include/items.php:4842 msgid "Collection is empty." msgstr "La colección está vacía." -#: ../../include/items.php:4843 +#: ../../include/items.php:4849 #, php-format msgid "Collection: %s" msgstr "Colección: %s" -#: ../../include/items.php:4853 ../../mod/connedit.php:674 +#: ../../include/items.php:4859 ../../mod/connedit.php:683 #, php-format msgid "Connection: %s" msgstr "Conexión: %s" -#: ../../include/items.php:4855 +#: ../../include/items.php:4861 msgid "Connection not found." msgstr "Conexión no encontrada" -#: ../../include/network.php:635 +#: ../../include/message.php:18 +msgid "No recipient provided." +msgstr "No se ha especificado ningún destinatario." + +#: ../../include/message.php:23 +msgid "[no subject]" +msgstr "[sin asunto]" + +#: ../../include/message.php:43 +msgid "Unable to determine sender." +msgstr "No ha sido posible determinar el remitente. " + +#: ../../include/message.php:218 +msgid "Stored post could not be verified." +msgstr "No se han podido verificar las entradas guardadas." + +#: ../../include/network.php:630 msgid "view full size" msgstr "Ver en el tamaño original" -#: ../../include/network.php:1613 ../../include/enotify.php:57 +#: ../../include/network.php:1608 ../../include/enotify.php:57 msgid "$Projectname Notification" msgstr "Notificación de $Projectname" -#: ../../include/network.php:1614 ../../include/enotify.php:58 +#: ../../include/network.php:1609 ../../include/enotify.php:58 msgid "$projectname" msgstr "$projectname" -#: ../../include/network.php:1616 ../../include/enotify.php:60 +#: ../../include/network.php:1611 ../../include/enotify.php:60 msgid "Thank You," msgstr "Gracias," -#: ../../include/network.php:1618 ../../include/enotify.php:62 +#: ../../include/network.php:1613 ../../include/enotify.php:62 #, php-format msgid "%s Administrator" msgstr "%s Administrador" -#: ../../include/network.php:1660 ../../include/account.php:316 +#: ../../include/network.php:1655 ../../include/account.php:316 #: ../../include/account.php:343 ../../include/account.php:403 msgid "Administrator" msgstr "Administrador" -#: ../../include/network.php:1674 +#: ../../include/network.php:1669 msgid "No Subject" msgstr "Sin asunto" -#: ../../include/bookmarks.php:35 +#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 +#: ../../include/text.php:1392 +msgid "l F d, Y \\@ g:i A" +msgstr "l d de F, Y \\@ G:i" + +#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 +#: ../../include/text.php:1396 +msgid "Starts:" +msgstr "Comienza:" + +#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 +#: ../../include/text.php:1400 +msgid "Finishes:" +msgstr "Finaliza:" + +#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 +#: ../../mod/directory.php:304 +msgid "Location:" +msgstr "Ubicación:" + +#: ../../include/event.php:768 +msgid "This event has been added to your calendar." +msgstr "Este evento ha sido añadido a su calendario." + +#: ../../include/event.php:904 ../../include/conversation.php:123 +#: ../../include/text.php:1919 ../../mod/tagger.php:47 ../../mod/like.php:363 +#: ../../mod/events.php:249 +msgid "event" +msgstr "evento" + +#: ../../include/event.php:967 +msgid "Not specified" +msgstr "Sin especificar" + +#: ../../include/event.php:968 +msgid "Needs Action" +msgstr "Necesita de una intervención" + +#: ../../include/event.php:969 +msgid "Completed" +msgstr "Completado/a" + +#: ../../include/event.php:970 +msgid "In Process" +msgstr "En proceso" + +#: ../../include/event.php:971 +msgid "Cancelled" +msgstr "Cancelado/a" + +#: ../../include/identity.php:32 +msgid "Unable to obtain identity information from database" +msgstr "No ha sido posible obtener información sobre la identidad desde la base de datos" + +#: ../../include/identity.php:66 +msgid "Empty name" +msgstr "Nombre vacío" + +#: ../../include/identity.php:69 +msgid "Name too long" +msgstr "Nombre demasiado largo" + +#: ../../include/identity.php:181 +msgid "No account identifier" +msgstr "Ningún identificador de la cuenta" + +#: ../../include/identity.php:193 +msgid "Nickname is required." +msgstr "Se requiere un sobrenombre (alias)." + +#: ../../include/identity.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Sobrenombre en uso. Por favor, elija otro." + +#: ../../include/identity.php:212 +msgid "" +"Nickname has unsupported characters or is already being used on this site." +msgstr "El alias contiene caracteres no admitidos o está ya en uso por otros usuarios de este sitio." + +#: ../../include/identity.php:288 +msgid "Unable to retrieve created identity" +msgstr "No ha sido posible recuperar la identidad creada" + +#: ../../include/identity.php:346 +msgid "Default Profile" +msgstr "Perfil principal" + +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../include/widgets.php:430 +#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:573 +#: ../../mod/settings.php:338 ../../mod/settings.php:342 +#: ../../mod/settings.php:343 ../../mod/settings.php:346 +#: ../../mod/settings.php:357 +msgid "Friends" +msgstr "Amigos" + +#: ../../include/identity.php:770 +msgid "Requested channel is not available." +msgstr "El canal solicitado no está disponible." + +#: ../../include/identity.php:816 ../../mod/filestorage.php:54 +#: ../../mod/connect.php:13 ../../mod/achievements.php:11 +#: ../../mod/blocks.php:29 ../../mod/hcard.php:8 ../../mod/editwebpage.php:28 +#: ../../mod/profile.php:16 ../../mod/editblock.php:29 +#: ../../mod/editlayout.php:27 ../../mod/webpages.php:29 +#: ../../mod/layouts.php:29 +msgid "Requested profile is not available." +msgstr "El perfil solicitado no está disponible." + +#: ../../include/identity.php:966 ../../mod/profiles.php:782 +msgid "Change profile photo" +msgstr "Cambiar la foto del perfil" + +#: ../../include/identity.php:972 +msgid "Profiles" +msgstr "Perfiles" + +#: ../../include/identity.php:972 +msgid "Manage/edit profiles" +msgstr "Administrar/editar perfiles" + +#: ../../include/identity.php:973 ../../mod/profiles.php:783 +msgid "Create New Profile" +msgstr "Crear un nuevo perfil" + +#: ../../include/identity.php:976 ../../include/nav.php:90 +msgid "Edit Profile" +msgstr "Editar el perfil" + +#: ../../include/identity.php:988 ../../mod/profiles.php:794 +msgid "Profile Image" +msgstr "Imagen del perfil" + +#: ../../include/identity.php:991 +msgid "visible to everybody" +msgstr "visible para cualquiera" + +#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../mod/profiles.php:798 +msgid "Edit visibility" +msgstr "Editar visibilidad" + +#: ../../include/identity.php:1008 ../../include/identity.php:1248 +msgid "Gender:" +msgstr "Género:" + +#: ../../include/identity.php:1009 ../../include/identity.php:1292 +msgid "Status:" +msgstr "Estado:" + +#: ../../include/identity.php:1010 ../../include/identity.php:1303 +msgid "Homepage:" +msgstr "Página personal:" + +#: ../../include/identity.php:1011 +msgid "Online Now" +msgstr "Ahora en línea" + +#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../mod/ping.php:318 +msgid "g A l F d" +msgstr "g A l d F" + +#: ../../include/identity.php:1096 ../../include/identity.php:1174 +msgid "F d" +msgstr "d F" + +#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../mod/ping.php:341 +msgid "[today]" +msgstr "[hoy]" + +#: ../../include/identity.php:1152 +msgid "Birthday Reminders" +msgstr "Recordatorios de cumpleaños" + +#: ../../include/identity.php:1153 +msgid "Birthdays this week:" +msgstr "Cumpleaños de esta semana:" + +#: ../../include/identity.php:1206 +msgid "[No description]" +msgstr "[Sin descripción]" + +#: ../../include/identity.php:1224 +msgid "Event Reminders" +msgstr "Recordatorios de eventos" + +#: ../../include/identity.php:1225 +msgid "Events this week:" +msgstr "Eventos de esta semana:" + +#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/apps.php:138 ../../mod/profperm.php:112 +msgid "Profile" +msgstr "Perfil" + +#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +msgid "Full Name:" +msgstr "Nombre completo:" + +#: ../../include/identity.php:1253 +msgid "Like this channel" +msgstr "Me gusta este canal" + +#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 +#: ../../mod/photos.php:1086 +msgctxt "noun" +msgid "Like" +msgid_plural "Likes" +msgstr[0] "Me gusta" +msgstr[1] "Me gusta" + +#: ../../include/identity.php:1277 +msgid "j F, Y" +msgstr "j F Y" + +#: ../../include/identity.php:1278 +msgid "j F" +msgstr "j F" + +#: ../../include/identity.php:1285 +msgid "Birthday:" +msgstr "Cumpleaños:" + +#: ../../include/identity.php:1289 ../../mod/directory.php:299 +msgid "Age:" +msgstr "Edad:" + +#: ../../include/identity.php:1298 #, php-format -msgid "%1$s's bookmarks" -msgstr "Marcadores de %1$s" +msgid "for %1$d %2$s" +msgstr "por %1$d %2$s" + +#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +msgid "Sexual Preference:" +msgstr "Orientación sexual:" + +#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../mod/directory.php:315 +msgid "Hometown:" +msgstr "Ciudad de origen:" + +#: ../../include/identity.php:1307 +msgid "Tags:" +msgstr "Etiquetas:" + +#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +msgid "Political Views:" +msgstr "Posición política:" + +#: ../../include/identity.php:1311 +msgid "Religion:" +msgstr "Religión:" + +#: ../../include/identity.php:1313 ../../mod/directory.php:317 +msgid "About:" +msgstr "Sobre mí:" + +#: ../../include/identity.php:1315 +msgid "Hobbies/Interests:" +msgstr "Aficciones/Intereses:" + +#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +msgid "Likes:" +msgstr "Me gusta:" + +#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +msgid "Dislikes:" +msgstr "No me gusta:" + +#: ../../include/identity.php:1321 +msgid "Contact information and Social Networks:" +msgstr "Información de contacto y redes sociales:" + +#: ../../include/identity.php:1323 +msgid "My other channels:" +msgstr "Mis otros canales:" + +#: ../../include/identity.php:1325 +msgid "Musical interests:" +msgstr "Intereses musicales:" + +#: ../../include/identity.php:1327 +msgid "Books, literature:" +msgstr "Libros, literatura:" + +#: ../../include/identity.php:1329 +msgid "Television:" +msgstr "Televisión:" + +#: ../../include/identity.php:1331 +msgid "Film/dance/culture/entertainment:" +msgstr "Cine/danza/cultura/entretenimiento:" + +#: ../../include/identity.php:1333 +msgid "Love/Romance:" +msgstr "Vida sentimental/amorosa:" + +#: ../../include/identity.php:1335 +msgid "Work/employment:" +msgstr "Trabajo:" + +#: ../../include/identity.php:1337 +msgid "School/education:" +msgstr "Estudios:" + +#: ../../include/identity.php:1357 +msgid "Like this thing" +msgstr "Me gusta esto" + +#: ../../include/taxonomy.php:240 ../../include/taxonomy.php:261 +msgid "Tags" +msgstr "Etiquetas" + +#: ../../include/taxonomy.php:282 ../../include/widgets.php:36 +#: ../../include/contact_widgets.php:95 +msgid "Categories" +msgstr "Categorías" + +#: ../../include/taxonomy.php:305 +msgid "Keywords" +msgstr "Palabras clave" + +#: ../../include/taxonomy.php:326 +msgid "have" +msgstr "tener" + +#: ../../include/taxonomy.php:326 +msgid "has" +msgstr "tiene" + +#: ../../include/taxonomy.php:327 +msgid "want" +msgstr "quiero" + +#: ../../include/taxonomy.php:327 +msgid "wants" +msgstr "quiere" + +#: ../../include/taxonomy.php:328 ../../include/ItemObject.php:254 +msgid "like" +msgstr "me gusta" -#: ../../include/acl_selectors.php:239 +#: ../../include/taxonomy.php:328 +msgid "likes" +msgstr "le gusta" + +#: ../../include/taxonomy.php:329 ../../include/ItemObject.php:255 +msgid "dislike" +msgstr "no me gusta" + +#: ../../include/taxonomy.php:329 +msgid "dislikes" +msgstr "no le gusta" + +#: ../../include/acl_selectors.php:240 msgid "Visible to your default audience" msgstr "Visible para su público predeterminado." -#: ../../include/acl_selectors.php:240 +#: ../../include/acl_selectors.php:241 msgid "Show" msgstr "Mostrar" -#: ../../include/acl_selectors.php:241 +#: ../../include/acl_selectors.php:242 msgid "Don't show" msgstr "No mostrar" -#: ../../include/acl_selectors.php:247 ../../mod/filestorage.php:147 -#: ../../mod/chat.php:211 ../../mod/photos.php:631 ../../mod/photos.php:1001 -#: ../../mod/events.php:708 ../../mod/thing.php:310 ../../mod/thing.php:356 +#: ../../include/acl_selectors.php:247 +msgid "Other networks and post services" +msgstr "Otras redes y servicios de correo" + +#: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 +#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 +#: ../../mod/thing.php:356 ../../mod/chat.php:211 msgid "Permissions" msgstr "Permisos" -#: ../../include/acl_selectors.php:248 ../../include/ItemObject.php:370 +#: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 #: ../../mod/photos.php:1218 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/activities.php:42 +msgid " and " +msgstr "y" -#: ../../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/activities.php:50 +msgid "public profile" +msgstr "perfil público" -#: ../../include/import.php:80 ../../mod/import.php:138 -msgid "Cloned channel not found. Import failed." -msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado." +#: ../../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/photos.php:112 +#: ../../include/activities.php:60 #, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "La imagen excede el límite de %lu bytes del sitio" +msgid "Visit %1$s's %2$s" +msgstr "Visitar %2$s de %1$s" -#: ../../include/photos.php:119 -msgid "Image file is empty." -msgstr "El fichero de imagen está vacío. " +#: ../../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/photos.php:146 ../../mod/profile_photo.php:222 -msgid "Unable to process image" -msgstr "No ha sido posible procesar la imagen" +#: ../../include/attach.php:246 ../../include/attach.php:332 +msgid "Item was not found." +msgstr "Elemento no encontrado." -#: ../../include/photos.php:257 -msgid "Photo storage failed." -msgstr "La foto no ha podido ser guardada." +#: ../../include/attach.php:496 +msgid "No source file." +msgstr "Ningún fichero de origen" -#: ../../include/photos.php:487 -msgid "Upload New Photos" -msgstr "Subir nuevas fotos" +#: ../../include/attach.php:514 +msgid "Cannot locate file to replace" +msgstr "No se puede localizar el fichero que va a ser sustituido." + +#: ../../include/attach.php:532 +msgid "Cannot locate file to revise/update" +msgstr "No se puede localizar el fichero para revisar/actualizar" + +#: ../../include/attach.php:667 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "El fichero supera el limite de tamaño de %d" + +#: ../../include/attach.php:681 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos." + +#: ../../include/attach.php:837 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado." + +#: ../../include/attach.php:850 +msgid "Stored file could not be verified. Upload failed." +msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado." + +#: ../../include/attach.php:898 ../../include/attach.php:914 +msgid "Path not available." +msgstr "Ruta no disponible." + +#: ../../include/attach.php:960 ../../include/attach.php:1112 +msgid "Empty pathname" +msgstr "Ruta vacía" + +#: ../../include/attach.php:986 +msgid "duplicate filename or path" +msgstr "Nombre duplicado de ruta o fichero" + +#: ../../include/attach.php:1008 +msgid "Path not found." +msgstr "Ruta no encontrada" + +#: ../../include/attach.php:1066 +msgid "mkdir failed." +msgstr "mkdir ha fallado." + +#: ../../include/attach.php:1070 +msgid "database storage failed." +msgstr "el almacenamiento en la base de datos ha fallado." + +#: ../../include/attach.php:1118 +msgid "Empty path" +msgstr "Ruta vacía" + +#: ../../include/bb2diaspora.php:382 +msgid "Attachments:" +msgstr "Ficheros adjuntos:" + +#: ../../include/bb2diaspora.php:473 +msgid "$Projectname event notification:" +msgstr "Notificación de eventos de $Projectname:" #: ../../include/notify.php:20 msgid "created a new post" @@ -1991,42 +1228,603 @@ msgstr "ha creado una nueva entrada" msgid "commented on %s's post" msgstr "ha comentado la entrada de %s" -#: ../../include/page_widgets.php:6 -msgid "New Page" -msgstr "Nueva página" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "Aplicaciones" -#: ../../include/page_widgets.php:39 ../../mod/layouts.php:188 -#: ../../mod/webpages.php:187 ../../mod/blocks.php:159 -msgid "View" -msgstr "Ver" +#: ../../include/widgets.php:93 +msgid "System" +msgstr "Sistema" -#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 -msgid "Actions" -msgstr "Acciones" +#: ../../include/widgets.php:95 ../../include/conversation.php:1526 +msgid "Personal" +msgstr "Personales" -#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 -msgid "Page Link" -msgstr "Vínculo de la página" +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "Crear una aplicación personal" -#: ../../include/page_widgets.php:43 -msgid "Title" -msgstr "Título" +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "Editar una aplicación personal" -#: ../../include/page_widgets.php:44 ../../mod/layouts.php:181 -#: ../../mod/menu.php:110 ../../mod/webpages.php:192 ../../mod/blocks.php:150 -msgid "Created" -msgstr "Creado" +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "Ignorar/Ocultar" -#: ../../include/page_widgets.php:45 ../../mod/layouts.php:182 -#: ../../mod/menu.php:111 ../../mod/webpages.php:193 ../../mod/blocks.php:151 -msgid "Edited" -msgstr "Editado" +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "Sugerencias" -#: ../../include/photo/photo_driver.php:708 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:146 -#: ../../mod/profile_photo.php:236 ../../mod/profile_photo.php:376 -msgid "Profile Photos" -msgstr "Fotos del perfil" +#: ../../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:868 +#: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +msgid "Save" +msgstr "Guardar" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "Eliminar término" + +#: ../../include/widgets.php:274 ../../include/features.php:72 +msgid "Saved Searches" +msgstr "Búsquedas guardadas" + +#: ../../include/widgets.php:275 ../../include/group.php:300 +msgid "add" +msgstr "añadir" + +#: ../../include/widgets.php:304 ../../include/features.php:85 +#: ../../include/contact_widgets.php:57 +msgid "Saved Folders" +msgstr "Carpetas guardadas" + +#: ../../include/widgets.php:307 ../../include/contact_widgets.php:60 +#: ../../include/contact_widgets.php:98 +msgid "Everything" +msgstr "Todo" + +#: ../../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:546 ../../include/features.php:59 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "Orígenes de los contenidos del canal" + +#: ../../include/widgets.php:554 ../../include/nav.php:202 +#: ../../include/apps.php:134 ../../mod/admin.php:1064 +#: ../../mod/admin.php:1264 +msgid "Settings" +msgstr "Ajustes" + +#: ../../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:669 +msgid "Export" +msgstr "Exportar" + +#: ../../include/widgets.php:675 ../../mod/events.php:672 +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/bookmarks.php:35 +#, php-format +msgid "%1$s's bookmarks" +msgstr "Marcadores de %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 +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 +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 +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/profile_selectors.php:6 #: ../../include/profile_selectors.php:23 ../../mod/id.php:103 @@ -2079,6 +1877,13 @@ msgid "Non-specific" msgstr "No especificado" #: ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 ../../include/permissions.php:871 +msgid "Other" +msgstr "Otro" + +#: ../../include/profile_selectors.php:6 msgid "Undecided" msgstr "Indeciso/a" @@ -2174,15 +1979,6 @@ 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:568 -#: ../../mod/settings.php:338 ../../mod/settings.php:342 -#: ../../mod/settings.php:343 ../../mod/settings.php:346 -#: ../../mod/settings.php:357 -msgid "Friends" -msgstr "Amigos" - #: ../../include/profile_selectors.php:80 msgid "Friends/Benefits" msgstr "Amigos con algo extra" @@ -2273,502 +2069,797 @@ msgstr "No me importa" msgid "Ask me" msgstr "Pregúnteme" -#: ../../include/oembed.php:213 -msgid "Embedded content" -msgstr "Contenido incorporado" +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "Varios" -#: ../../include/oembed.php:222 -msgid "Embedding disabled" -msgstr "Incrustación deshabilitada" +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-DD o MM-DD" -#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 -msgid "l F d, Y \\@ g:i A" -msgstr "l d de F, Y \\@ G:i" +#: ../../include/datetime.php:236 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:452 ../../mod/events.php:457 +msgid "Required" +msgstr "Obligatorio" -#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 -msgid "Starts:" -msgstr "Comienza:" +#: ../../include/datetime.php:263 ../../boot.php:2289 +msgid "never" +msgstr "nunca" -#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 -msgid "Finishes:" -msgstr "Finaliza:" +#: ../../include/datetime.php:269 +msgid "less than a second ago" +msgstr "hace un instante" -#: ../../include/event.php:50 ../../include/identity.php:1016 -#: ../../include/bb2diaspora.php:493 ../../mod/directory.php:302 -#: ../../mod/events.php:701 -msgid "Location:" -msgstr "Ubicación:" +#: ../../include/datetime.php:272 +msgid "year" +msgstr "año" -#: ../../include/event.php:766 -msgid "This event has been added to your calendar." -msgstr "Este evento ha sido añadido a su calendario." +#: ../../include/datetime.php:272 +msgid "years" +msgstr "años" -#: ../../include/event.php:953 -msgid "Not specified" -msgstr "Sin especificar" +#: ../../include/datetime.php:273 +msgid "month" +msgstr "mes" -#: ../../include/event.php:954 -msgid "Needs Action" -msgstr "Necesita de una intervención" +#: ../../include/datetime.php:273 +msgid "months" +msgstr "meses" -#: ../../include/event.php:955 -msgid "Completed" -msgstr "Completado/a" +#: ../../include/datetime.php:274 +msgid "week" +msgstr "semana" -#: ../../include/event.php:956 -msgid "In Process" -msgstr "En proceso" +#: ../../include/datetime.php:274 +msgid "weeks" +msgstr "semanas" -#: ../../include/event.php:957 -msgid "Cancelled" -msgstr "Cancelado/a" +#: ../../include/datetime.php:275 +msgid "day" +msgstr "día" -#: ../../include/apps.php:128 -msgid "Site Admin" -msgstr "Adminstrador del sitio" +#: ../../include/datetime.php:275 +msgid "days" +msgstr "días" -#: ../../include/apps.php:130 -msgid "Address Book" -msgstr "Libreta de direcciones" +#: ../../include/datetime.php:276 +msgid "hour" +msgstr "hora" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1503 -msgid "Login" -msgstr "Iniciar sesión" +#: ../../include/datetime.php:276 +msgid "hours" +msgstr "horas" -#: ../../include/apps.php:132 ../../include/nav.php:200 -#: ../../mod/manage.php:160 -msgid "Channel Manager" -msgstr "Administración de canales" +#: ../../include/datetime.php:277 +msgid "minute" +msgstr "minuto" -#: ../../include/apps.php:133 ../../include/nav.php:174 -msgid "Grid" -msgstr "Red" +#: ../../include/datetime.php:277 +msgid "minutes" +msgstr "minutos" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 -msgid "Settings" -msgstr "Ajustes" +#: ../../include/datetime.php:278 +msgid "second" +msgstr "segundo" -#: ../../include/apps.php:137 ../../include/nav.php:177 -msgid "Channel Home" -msgstr "Mi canal" +#: ../../include/datetime.php:278 +msgid "seconds" +msgstr "segundos" -#: ../../include/apps.php:138 ../../include/identity.php:1250 -#: ../../include/identity.php:1367 ../../mod/profperm.php:112 -msgid "Profile" -msgstr "Perfil" +#: ../../include/datetime.php:286 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "hace %1$d %2$s" -#: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 -msgid "Events" -msgstr "Eventos" +#: ../../include/datetime.php:520 +#, php-format +msgid "%1$s's birthday" +msgstr "Cumpleaños de %1$s" -#: ../../include/apps.php:141 ../../include/nav.php:162 -msgid "Directory" -msgstr "Directorio" +#: ../../include/datetime.php:521 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Feliz cumpleaños %1$s" -#: ../../include/apps.php:142 ../../include/nav.php:154 ../../mod/help.php:202 -#: ../../mod/help.php:207 ../../mod/layouts.php:176 -msgid "Help" -msgstr "Ayuda" +#: ../../include/api.php:1302 +msgid "Public Timeline" +msgstr "Cronología pública" -#: ../../include/apps.php:143 ../../include/nav.php:188 -msgid "Mail" -msgstr "Correo" +#: ../../include/conversation.php:120 ../../include/text.php:1916 +#: ../../mod/tagger.php:43 ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "photo" +msgstr "foto" -#: ../../include/apps.php:144 ../../mod/mood.php:131 -msgid "Mood" -msgstr "Estado de ánimo" +#: ../../include/conversation.php:126 ../../mod/like.php:113 +msgid "channel" +msgstr "canal" -#: ../../include/apps.php:146 ../../include/nav.php:97 -msgid "Chat" -msgstr "Chat" +#: ../../include/conversation.php:148 ../../include/text.php:1922 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "status" +msgstr "el mensaje de estado" -#: ../../include/apps.php:147 ../../include/text.php:857 -#: ../../include/text.php:869 ../../include/nav.php:159 -#: ../../mod/search.php:40 -msgid "Search" -msgstr "Buscar" +#: ../../include/conversation.php:150 ../../include/text.php:1924 +#: ../../mod/tagger.php:53 +msgid "comment" +msgstr "comentario" -#: ../../include/apps.php:148 -msgid "Probe" -msgstr "Probar" +#: ../../include/conversation.php:164 ../../mod/like.php:410 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "a %1$s le gusta %3$s de %2$s" -#: ../../include/apps.php:149 -msgid "Suggest" -msgstr "Sugerir" +#: ../../include/conversation.php:167 ../../mod/like.php:412 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "a %1$s no le gusta %3$s de %2$s" -#: ../../include/apps.php:150 -msgid "Random Channel" -msgstr "Canal aleatorio" +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "%1$s ahora está conectado/a con %2$s" -#: ../../include/apps.php:151 -msgid "Invite" -msgstr "Invitar" +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s ha dado un toque a %2$s" -#: ../../include/apps.php:152 -msgid "Features" -msgstr "Características" +#: ../../include/conversation.php:243 ../../include/text.php:954 +msgid "poked" +msgstr "ha recibido un toque" -#: ../../include/apps.php:153 ../../mod/id.php:28 -msgid "Language" -msgstr "Idioma" +#: ../../include/conversation.php:260 ../../mod/mood.php:63 +#, php-format +msgctxt "mood" +msgid "%1$s is %2$s" +msgstr "%1$s está %2$s" -#: ../../include/apps.php:154 -msgid "Post" -msgstr "Publicación" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Likes" +msgstr "Me gusta" -#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 -#: ../../mod/id.php:19 -msgid "Profile Photo" -msgstr "Foto del perfil" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Dislikes" +msgstr "No me gusta" -#: ../../include/apps.php:252 ../../mod/settings.php:84 -#: ../../mod/settings.php:610 -msgid "Update" -msgstr "Actualizar" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Agree" +msgstr "De acuerdo" -#: ../../include/apps.php:252 -msgid "Install" -msgstr "Instalar" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Disagree" +msgstr "En desacuerdo" -#: ../../include/apps.php:257 -msgid "Purchase" -msgstr "Comprar" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Abstain" +msgstr "Abstención" -#: ../../include/auth.php:131 -msgid "Logged out." -msgstr "Desconectado/a." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Attending" +msgstr "Participaré" -#: ../../include/auth.php:272 -msgid "Failed authentication" -msgstr "Autenticación fallida." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Not attending" +msgstr "No participaré" -#: ../../include/auth.php:286 ../../mod/openid.php:189 -msgid "Login failed." -msgstr "El acceso ha fallado." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Might attend" +msgstr "Quizá participe" -#: ../../include/enotify.php:96 -#, php-format -msgid "%s <!item_type!>" -msgstr "%s <!item_type!>" +#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 +msgid "Select" +msgstr "Seleccionar" -#: ../../include/enotify.php:100 -#, php-format -msgid "[Hubzilla:Notify] New mail received at %s" -msgstr "[Hubzilla:Aviso] Nuevo mensaje en %s" +#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 +msgid "Private Message" +msgstr "Mensaje Privado" -#: ../../include/enotify.php:102 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." -msgstr "%1$s, %2$s le ha enviado un nuevo mensaje privado en %3$s." +#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 +msgid "Message signature validated" +msgstr "Firma de mensaje validada" -#: ../../include/enotify.php:103 +#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 +msgid "Message signature incorrect" +msgstr "Firma de mensaje incorrecta" + +#: ../../include/conversation.php:691 #, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s le envió %2$s." +msgid "View %s's profile @ %s" +msgstr "Ver el perfil @ %s de %s" -#: ../../include/enotify.php:103 -msgid "a private message" -msgstr "un mensaje privado" +#: ../../include/conversation.php:710 +msgid "Categories:" +msgstr "Categorías:" -#: ../../include/enotify.php:104 -#, php-format -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/conversation.php:711 +msgid "Filed under:" +msgstr "Archivado bajo:" -#: ../../include/enotify.php:158 +#: ../../include/conversation.php:719 ../../include/ItemObject.php:334 #, 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]" +msgid "from %s" +msgstr "desde %s" -#: ../../include/enotify.php:166 +#: ../../include/conversation.php:722 ../../include/ItemObject.php:337 #, 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] " +msgid "last edited: %s" +msgstr "último cambio: %s" -#: ../../include/enotify.php:175 +#: ../../include/conversation.php:723 ../../include/ItemObject.php:338 #, 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]" +msgid "Expires: %s" +msgstr "Caduca: %s" -#: ../../include/enotify.php:186 -#, 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/conversation.php:738 +msgid "View in context" +msgstr "Mostrar en su contexto" -#: ../../include/enotify.php:187 -#, 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/conversation.php:740 ../../include/conversation.php:1227 +#: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 +#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 +#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +msgid "Please wait" +msgstr "Espere por favor" -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 -#, 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/conversation.php:850 +msgid "remove" +msgstr "eliminar" -#: ../../include/enotify.php:196 -#, 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/conversation.php:854 ../../include/nav.php:241 +msgid "Loading..." +msgstr "Cargando..." -#: ../../include/enotify.php:198 -#, 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/conversation.php:855 +msgid "Delete Selected Items" +msgstr "Eliminar elementos seleccionados" -#: ../../include/enotify.php:200 -#, 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/conversation.php:946 +msgid "View Source" +msgstr "Ver la fuente original de la entrada" -#: ../../include/enotify.php:224 -#, php-format -msgid "[Hubzilla:Notify] %s tagged you" -msgstr "[Hubzilla:Aviso] %s le ha etiquetado" +#: ../../include/conversation.php:947 +msgid "Follow Thread" +msgstr "Seguir este hilo" -#: ../../include/enotify.php:225 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s le etiquetó en %3$s" +#: ../../include/conversation.php:948 +msgid "Unfollow Thread" +msgstr "Dejar de seguir este hilo" -#: ../../include/enotify.php:226 -#, 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/conversation.php:949 +msgid "View Status" +msgstr "Ver el estado actual" -#: ../../include/enotify.php:238 -#, php-format -msgid "[Hubzilla:Notify] %1$s poked you" -msgstr "[Hubzilla:Aviso] %1$s le ha dado un toque" +#: ../../include/conversation.php:950 ../../include/nav.php:86 +#: ../../mod/connedit.php:498 +msgid "View Profile" +msgstr "Ver el perfil" -#: ../../include/enotify.php:239 -#, 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/conversation.php:951 +msgid "View Photos" +msgstr "Ver fotos" -#: ../../include/enotify.php:240 +#: ../../include/conversation.php:952 +msgid "Activity/Posts" +msgstr "Actividad y entradas" + +#: ../../include/conversation.php:954 +msgid "Edit Connection" +msgstr "Editar conexión" + +#: ../../include/conversation.php:955 +msgid "Send PM" +msgstr "Enviar un mensaje privado" + +#: ../../include/conversation.php:956 ../../include/apps.php:145 +msgid "Poke" +msgstr "Toques y otras cosas" + +#: ../../include/conversation.php:1070 #, 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]." +msgid "%s likes this." +msgstr "a %s le gusta esto." -#: ../../include/enotify.php:256 +#: ../../include/conversation.php:1070 #, php-format -msgid "[Hubzilla:Notify] %s tagged your post" -msgstr "[Hubzilla:Aviso] %s ha etiquetado su publicación" +msgid "%s doesn't like this." +msgstr "a %s no le gusta esto." -#: ../../include/enotify.php:257 +#: ../../include/conversation.php:1074 #, 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" +msgid "<span %1$s>%2$d people</span> like this." +msgid_plural "<span %1$s>%2$d people</span> like this." +msgstr[0] "a <span %1$s>%2$d personas</span> le gusta esto." +msgstr[1] "a <span %1$s>%2$d personas</span> les gusta esto." -#: ../../include/enotify.php:258 +#: ../../include/conversation.php:1076 #, 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]" +msgid "<span %1$s>%2$d people</span> don't like this." +msgid_plural "<span %1$s>%2$d people</span> don't like this." +msgstr[0] "a <span %1$s>%2$d personas</span> no les gusta esto." +msgstr[1] "a <span %1$s>%2$d personas</span> no les gusta esto." -#: ../../include/enotify.php:270 -msgid "[Hubzilla:Notify] Introduction received" -msgstr "[Hubzilla:Aviso] Ha recibido una solicitud de conexión" +#: ../../include/conversation.php:1082 +msgid "and" +msgstr "y" -#: ../../include/enotify.php:271 +#: ../../include/conversation.php:1085 #, 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" +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] ", y %d persona más" +msgstr[1] ", y %d personas más" -#: ../../include/enotify.php:272 +#: ../../include/conversation.php:1086 #, 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." +msgid "%s like this." +msgstr "a %s le gusta esto." -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/conversation.php:1086 #, php-format -msgid "You may visit their profile at %s" -msgstr "Puede visitar su perfil en %s" +msgid "%s don't like this." +msgstr "a %s no le gusta esto." -#: ../../include/enotify.php:278 -#, 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/conversation.php:1154 +msgid "Visible to <strong>everybody</strong>" +msgstr "Visible para <strong>cualquiera</strong>" -#: ../../include/enotify.php:285 -msgid "[Hubzilla:Notify] Friend suggestion received" -msgstr "[Hubzilla:Aviso] Ha recibido una sugerencia de amistad" +#: ../../include/conversation.php:1155 ../../mod/mail.php:194 +#: ../../mod/mail.php:308 +msgid "Please enter a link URL:" +msgstr "Por favor, introduzca la dirección del enlace:" -#: ../../include/enotify.php:286 -#, 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/conversation.php:1156 +msgid "Please enter a video link/URL:" +msgstr "Por favor, introduzca un enlace de vídeo:" -#: ../../include/enotify.php:287 -#, 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/conversation.php:1157 +msgid "Please enter an audio link/URL:" +msgstr "Por favor, introduzca un enlace de audio:" -#: ../../include/enotify.php:293 -msgid "Name:" -msgstr "Nombre:" +#: ../../include/conversation.php:1158 +msgid "Tag term:" +msgstr "Término de la etiqueta:" -#: ../../include/enotify.php:294 -msgid "Photo:" -msgstr "Foto:" +#: ../../include/conversation.php:1159 ../../mod/filer.php:48 +msgid "Save to Folder:" +msgstr "Guardar en carpeta:" -#: ../../include/enotify.php:297 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia." +#: ../../include/conversation.php:1160 +msgid "Where are you right now?" +msgstr "¿Donde está ahora?" -#: ../../include/enotify.php:511 -msgid "[Hubzilla:Notify]" -msgstr "[Hubzilla:Aviso]" +#: ../../include/conversation.php:1161 ../../mod/mail.php:195 +#: ../../mod/mail.php:309 ../../mod/editpost.php:56 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Caduca YYYY-MM-DD HH:MM" -#: ../../include/ItemObject.php:130 -msgid "Save to Folder" -msgstr "Guardar en carpeta" +#: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 +#: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 +#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 +#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/events.php:473 +msgid "Preview" +msgstr "Previsualizar" -#: ../../include/ItemObject.php:151 -msgid "I will attend" -msgstr "Participaré" +#: ../../include/conversation.php:1192 ../../mod/blocks.php:154 +#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 +#: ../../mod/layouts.php:184 +msgid "Share" +msgstr "Compartir" -#: ../../include/ItemObject.php:151 -msgid "I will not attend" -msgstr "No participaré" +#: ../../include/conversation.php:1194 +msgid "Page link name" +msgstr "Nombre de enlace de página" -#: ../../include/ItemObject.php:151 -msgid "I might attend" -msgstr "Quizá participe" +#: ../../include/conversation.php:1197 +msgid "Post as" +msgstr "Publicar como" -#: ../../include/ItemObject.php:161 -msgid "I agree" -msgstr "Estoy de acuerdo" +#: ../../include/conversation.php:1199 ../../include/ItemObject.php:698 +#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:136 +#: ../../mod/editlayout.php:135 ../../mod/editpost.php:113 +msgid "Bold" +msgstr "Negrita" -#: ../../include/ItemObject.php:161 -msgid "I disagree" -msgstr "No estoy de acuerdo" +#: ../../include/conversation.php:1200 ../../include/ItemObject.php:699 +#: ../../mod/editwebpage.php:178 ../../mod/editblock.php:137 +#: ../../mod/editlayout.php:136 ../../mod/editpost.php:114 +msgid "Italic" +msgstr "Itálico " -#: ../../include/ItemObject.php:161 -msgid "I abstain" -msgstr "Me abstengo" +#: ../../include/conversation.php:1201 ../../include/ItemObject.php:700 +#: ../../mod/editwebpage.php:179 ../../mod/editblock.php:138 +#: ../../mod/editlayout.php:137 ../../mod/editpost.php:115 +msgid "Underline" +msgstr "Subrayar" -#: ../../include/ItemObject.php:212 -msgid "Add Star" -msgstr "Destacar añadiendo una estrella" +#: ../../include/conversation.php:1202 ../../include/ItemObject.php:701 +#: ../../mod/editwebpage.php:180 ../../mod/editblock.php:139 +#: ../../mod/editlayout.php:138 ../../mod/editpost.php:116 +msgid "Quote" +msgstr "Citar" -#: ../../include/ItemObject.php:213 -msgid "Remove Star" -msgstr "Eliminar estrella" +#: ../../include/conversation.php:1203 ../../include/ItemObject.php:702 +#: ../../mod/editwebpage.php:181 ../../mod/editblock.php:140 +#: ../../mod/editlayout.php:139 ../../mod/editpost.php:117 +msgid "Code" +msgstr "Código" -#: ../../include/ItemObject.php:214 -msgid "Toggle Star Status" -msgstr "Activar o desactivar el estado de entrada preferida" +#: ../../include/conversation.php:1204 ../../mod/editwebpage.php:182 +#: ../../mod/editblock.php:142 ../../mod/editlayout.php:140 +#: ../../mod/editpost.php:118 +msgid "Upload photo" +msgstr "Subir foto" -#: ../../include/ItemObject.php:218 -msgid "starred" -msgstr "preferidas" +#: ../../include/conversation.php:1205 +msgid "upload photo" +msgstr "subir foto" -#: ../../include/ItemObject.php:236 -msgid "Add Tag" -msgstr "Añadir etiqueta" +#: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 +#: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 +#: ../../mod/mail.php:240 ../../mod/mail.php:369 ../../mod/editpost.php:119 +msgid "Attach file" +msgstr "Adjuntar fichero" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 -msgid "I like this (toggle)" -msgstr "me gusta (cambiar)" +#: ../../include/conversation.php:1207 +msgid "attach file" +msgstr "adjuntar fichero" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 -msgid "like" -msgstr "me gusta" +#: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 +#: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 +#: ../../mod/mail.php:241 ../../mod/mail.php:370 ../../mod/editpost.php:120 +msgid "Insert web link" +msgstr "Insertar enlace web" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 -msgid "I don't like this (toggle)" -msgstr "No me gusta esto (cambiar)" +#: ../../include/conversation.php:1209 +msgid "web link" +msgstr "enlace web" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 -msgid "dislike" -msgstr "no me gusta" +#: ../../include/conversation.php:1210 +msgid "Insert video link" +msgstr "Insertar enlace de vídeo" -#: ../../include/ItemObject.php:259 -msgid "Share This" -msgstr "Compartir esto" +#: ../../include/conversation.php:1211 +msgid "video link" +msgstr "enlace de vídeo" -#: ../../include/ItemObject.php:259 -msgid "share" -msgstr "compartir" +#: ../../include/conversation.php:1212 +msgid "Insert audio link" +msgstr "Insertar enlace de audio" -#: ../../include/ItemObject.php:277 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d comentario" -msgstr[1] "%d comentarios" +#: ../../include/conversation.php:1213 +msgid "audio link" +msgstr "enlace de audio" -#: ../../include/ItemObject.php:302 ../../include/ItemObject.php:303 -#, php-format -msgid "View %s's profile - %s" -msgstr "Ver el perfil de %s - %s" +#: ../../include/conversation.php:1214 ../../mod/editwebpage.php:188 +#: ../../mod/editblock.php:148 ../../mod/editlayout.php:146 +#: ../../mod/editpost.php:124 +msgid "Set your location" +msgstr "Establecer su ubicación" -#: ../../include/ItemObject.php:306 -msgid "to" -msgstr "a" +#: ../../include/conversation.php:1215 +msgid "set location" +msgstr "establecer ubicación" -#: ../../include/ItemObject.php:307 -msgid "via" -msgstr "mediante" +#: ../../include/conversation.php:1216 ../../mod/editpost.php:126 +msgid "Toggle voting" +msgstr "Cambiar votación" -#: ../../include/ItemObject.php:308 -msgid "Wall-to-Wall" -msgstr "De página del perfil a página del perfil (de Muro a Muro)" +#: ../../include/conversation.php:1219 ../../mod/editwebpage.php:189 +#: ../../mod/editblock.php:149 ../../mod/editlayout.php:147 +#: ../../mod/editpost.php:125 +msgid "Clear browser location" +msgstr "Eliminar los datos de ubicación del navegador" -#: ../../include/ItemObject.php:309 -msgid "via Wall-To-Wall:" -msgstr "Mediante el procedimiento página del perfil a página del perfil (de Muro a Muro)" +#: ../../include/conversation.php:1220 +msgid "clear location" +msgstr "borrar los datos de ubicación" -#: ../../include/ItemObject.php:312 -msgid "Delivery Report" -msgstr "Informe de transmisión" +#: ../../include/conversation.php:1222 ../../mod/editwebpage.php:205 +#: ../../mod/editblock.php:162 ../../mod/editpost.php:141 +msgid "Title (optional)" +msgstr "Título (opcional)" -#: ../../include/ItemObject.php:348 -msgid "Save Bookmarks" -msgstr "Guardar en Marcadores" +#: ../../include/conversation.php:1226 ../../mod/editwebpage.php:207 +#: ../../mod/editblock.php:165 ../../mod/editlayout.php:163 +#: ../../mod/editpost.php:143 +msgid "Categories (optional, comma-separated list)" +msgstr "Categorías (opcional, lista separada por comas)" -#: ../../include/ItemObject.php:349 -msgid "Add to Calendar" -msgstr "Añadir al calendario" +#: ../../include/conversation.php:1228 ../../mod/editwebpage.php:191 +#: ../../mod/editblock.php:151 ../../mod/editlayout.php:149 +#: ../../mod/editpost.php:130 ../../mod/events.php:474 +msgid "Permission settings" +msgstr "Configuración de permisos" -#: ../../include/ItemObject.php:358 -msgid "Mark all seen" -msgstr "Marcar todo como visto" +#: ../../include/conversation.php:1229 +msgid "permissions" +msgstr "permisos" + +#: ../../include/conversation.php:1237 ../../mod/editwebpage.php:200 +#: ../../mod/editblock.php:159 ../../mod/editlayout.php:156 +#: ../../mod/editpost.php:138 +msgid "Public post" +msgstr "Entrada pública" + +#: ../../include/conversation.php:1239 ../../mod/editwebpage.php:208 +#: ../../mod/editblock.php:166 ../../mod/editlayout.php:164 +#: ../../mod/editpost.php:144 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com" + +#: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 +#: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 +#: ../../mod/mail.php:245 ../../mod/mail.php:374 ../../mod/editpost.php:155 +msgid "Set expiration date" +msgstr "Configurar fecha de caducidad" + +#: ../../include/conversation.php:1255 +msgid "Set publish date" +msgstr "Establecer la fecha de publicación" + +#: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 +#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:157 +msgid "Encrypt text" +msgstr "Cifrar texto" + +#: ../../include/conversation.php:1259 ../../mod/editpost.php:159 +msgid "OK" +msgstr "OK" + +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 +#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/editpost.php:160 +msgid "Cancel" +msgstr "Cancelar" + +#: ../../include/conversation.php:1503 +msgid "Discover" +msgstr "Descubrir" + +#: ../../include/conversation.php:1506 +msgid "Imported public streams" +msgstr "Flujos públicos importados" + +#: ../../include/conversation.php:1511 +msgid "Commented Order" +msgstr "Comentarios recientes" + +#: ../../include/conversation.php:1514 +msgid "Sort by Comment Date" +msgstr "Ordenar por fecha de comentario" + +#: ../../include/conversation.php:1518 +msgid "Posted Order" +msgstr "Publicaciones recientes" + +#: ../../include/conversation.php:1521 +msgid "Sort by Post Date" +msgstr "Ordenar por fecha de publicación" + +#: ../../include/conversation.php:1529 +msgid "Posts that mention or involve you" +msgstr "Publicaciones que le mencionan o involucran" + +#: ../../include/conversation.php:1535 ../../mod/connections.php:72 +#: ../../mod/connections.php:82 ../../mod/menu.php:112 +msgid "New" +msgstr "Nuevas" + +#: ../../include/conversation.php:1538 +msgid "Activity Stream - by date" +msgstr "Flujo de actividad - por fecha" + +#: ../../include/conversation.php:1544 +msgid "Starred" +msgstr "Preferidas" + +#: ../../include/conversation.php:1547 +msgid "Favourite Posts" +msgstr "Publicaciones favoritas" + +#: ../../include/conversation.php:1554 +msgid "Spam" +msgstr "Correo basura" + +#: ../../include/conversation.php:1557 +msgid "Posts flagged as SPAM" +msgstr "Publicaciones marcadas como basura" + +#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +msgid "Channel" +msgstr "Canal" + +#: ../../include/conversation.php:1604 +msgid "Status Messages and Posts" +msgstr "Mensajes de estado y publicaciones" + +#: ../../include/conversation.php:1613 +msgid "About" +msgstr "Mi perfil" -#: ../../include/ItemObject.php:364 ../../mod/photos.php:1212 +#: ../../include/conversation.php:1616 +msgid "Profile Details" +msgstr "Detalles del perfil" + +#: ../../include/conversation.php:1622 ../../include/nav.php:92 +#: ../../include/apps.php:139 ../../mod/fbrowser.php:25 +msgid "Photos" +msgstr "Fotos" + +#: ../../include/conversation.php:1625 ../../include/photos.php:483 +msgid "Photo Albums" +msgstr "Álbumes de fotos" + +#: ../../include/conversation.php:1632 +msgid "Files and Storage" +msgstr "Ficheros y repositorio" + +#: ../../include/conversation.php:1642 ../../include/conversation.php:1645 +msgid "Chatrooms" +msgstr "Salas de chat" + +#: ../../include/conversation.php:1655 ../../include/nav.php:103 +#: ../../include/apps.php:129 +msgid "Bookmarks" +msgstr "Marcadores" + +#: ../../include/conversation.php:1658 +msgid "Saved Bookmarks" +msgstr "Marcadores guardados" + +#: ../../include/conversation.php:1665 ../../include/nav.php:107 +#: ../../include/apps.php:136 ../../mod/webpages.php:178 +msgid "Webpages" +msgstr "Páginas web" + +#: ../../include/conversation.php:1668 +msgid "Manage Webpages" +msgstr "Administrar páginas web" + +#: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 +#: ../../mod/photos.php:1094 +msgid "View all" +msgstr "Ver todo" + +#: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 +#: ../../mod/photos.php:1091 msgctxt "noun" -msgid "Likes" -msgstr "Me gusta" +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "No me gusta" +msgstr[1] "No me gusta" -#: ../../include/ItemObject.php:365 ../../mod/photos.php:1213 +#: ../../include/conversation.php:1727 msgctxt "noun" -msgid "Dislikes" -msgstr "No me gusta" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Participaré" +msgstr[1] "Participaré" -#: ../../include/ItemObject.php:680 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 -msgid "This is you" -msgstr "Este es usted" +#: ../../include/conversation.php:1730 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "No participaré" +msgstr[1] "No participaré" -#: ../../include/ItemObject.php:689 -msgid "Image" -msgstr "Imagen" +#: ../../include/conversation.php:1733 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "Indeciso/a" +msgstr[1] "Indecisos/as" -#: ../../include/ItemObject.php:690 -msgid "Insert Link" -msgstr "Insertar enlace" +#: ../../include/conversation.php:1736 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "De acuerdo" +msgstr[1] "De acuerdo" -#: ../../include/ItemObject.php:691 -msgid "Video" -msgstr "Vídeo" +#: ../../include/conversation.php:1739 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "En desacuerdo" +msgstr[1] "En desacuerdo" + +#: ../../include/conversation.php:1742 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "se abstiene" +msgstr[1] "Se abstienen" + +#: ../../include/auth.php:132 +msgid "Logged out." +msgstr "Desconectado/a." + +#: ../../include/auth.php:273 +msgid "Failed authentication" +msgstr "Autenticación fallida." + +#: ../../include/auth.php:287 ../../mod/openid.php:189 +msgid "Login failed." +msgstr "El acceso ha fallado." + +#: ../../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/zot.php:685 msgid "Invalid data packet" @@ -2778,19 +2869,15 @@ 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" -#: ../../include/api.php:1389 -msgid "Public Timeline" -msgstr "Cronología pública" - #: ../../include/bbcode.php:123 ../../include/bbcode.php:794 #: ../../include/bbcode.php:797 ../../include/bbcode.php:802 #: ../../include/bbcode.php:805 ../../include/bbcode.php:808 @@ -2854,116 +2941,6 @@ msgstr "$1 spoiler" msgid "$1 wrote:" msgstr "$1 escribió" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "Dirección de correo no válida" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio." - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "Su dirección de correo está ya registrada en este sitio." - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "Es obligatorio que le inviten." - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "No se ha podido verificar su invitación." - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "Por favor introduzca la información requerida." - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "La información de la cuenta no se ha podido guardar." - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Confirmación de registro para %s" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "Solicitud de registro en %s" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "su contraseña de registro" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "Detalles del registro de %s" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "Cuenta aprobada." - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registro revocado para %s" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "Cuenta verificada. Por favor, inicie sesión." - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "Pulse aquí para actualizar" - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Esta acción supera los límites establecidos por su plan de suscripción " - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "Esta acción no está disponible en su plan de suscripción." - -#: ../../include/follow.php:28 -msgid "Channel is blocked on this site." -msgstr "El canal está bloqueado en este sitio." - -#: ../../include/follow.php:33 -msgid "Channel location missing." -msgstr "Falta la dirección del canal." - -#: ../../include/follow.php:82 -msgid "Response from remote channel was incomplete." -msgstr "Respuesta incompleta del canal." - -#: ../../include/follow.php:99 -msgid "Channel was deleted and no longer exists." -msgstr "El canal ha sido eliminado y ya no existe." - -#: ../../include/follow.php:152 ../../include/follow.php:180 -msgid "Protocol disabled." -msgstr "Protocolo deshabilitado." - -#: ../../include/follow.php:170 -msgid "Channel discovery failed." -msgstr "El intento de acceder al canal ha fallado." - -#: ../../include/follow.php:196 -msgid "local account not found." -msgstr "No se ha encontrado la cuenta local." - -#: ../../include/follow.php:220 -msgid "Cannot connect to yourself." -msgstr "No puede conectarse consigo mismo." - -#: ../../include/security.php:381 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." -msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado" - #: ../../include/contact_widgets.php:14 #, php-format msgid "%d invitation available" @@ -2971,7 +2948,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" @@ -2991,12 +2968,12 @@ msgstr "Conectar/Seguir" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Ejemplos: José Fernández, Pesca" -#: ../../include/contact_widgets.php:26 ../../mod/directory.php:379 -#: ../../mod/directory.php:384 ../../mod/connections.php:266 +#: ../../include/contact_widgets.php:26 ../../mod/directory.php:381 +#: ../../mod/directory.php:386 ../../mod/connections.php:266 msgid "Find" msgstr "Encontrar" -#: ../../include/contact_widgets.php:27 ../../mod/directory.php:383 +#: ../../include/contact_widgets.php:27 ../../mod/directory.php:385 #: ../../mod/suggest.php:60 msgid "Channel Suggestions" msgstr "Sugerencias de canales" @@ -3013,16 +2990,6 @@ msgstr "Invitar a amigos" 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 -msgid "Everything" -msgstr "Todo" - -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 -msgid "Categories" -msgstr "Categorías" - #: ../../include/contact_widgets.php:128 #, php-format msgid "%d connection in common" @@ -3034,1248 +3001,1414 @@ msgstr[1] "%d conexiones en común" msgid "show more" msgstr "mostrar más" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"<strong>may</strong> apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente." - -#: ../../include/group.php:232 -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 -msgid "All Channels" -msgstr "Todos los canales" - -#: ../../include/group.php:273 -msgid "edit" -msgstr "editar" - -#: ../../include/group.php:295 -msgid "Collections" -msgstr "Colecciones" - -#: ../../include/group.php:296 -msgid "Edit collection" -msgstr "Editar colección" - -#: ../../include/group.php:297 -msgid "Add new collection" -msgstr "Añadir nueva colección" - -#: ../../include/group.php:298 -msgid "Channels not in any collection" -msgstr "El canal no se encuentra en ninguna colección" - -#: ../../include/group.php:300 ../../include/widgets.php:274 -msgid "add" -msgstr "añadir" - -#: ../../include/message.php:18 -msgid "No recipient provided." -msgstr "No se ha especificado ningún destinatario." - -#: ../../include/message.php:23 -msgid "[no subject]" -msgstr "[sin asunto]" - -#: ../../include/message.php:43 -msgid "Unable to determine sender." -msgstr "No ha sido posible determinar el remitente. " - -#: ../../include/message.php:218 -msgid "Stored post could not be verified." -msgstr "No se han podido verificar las entradas guardadas." - -#: ../../include/identity.php:32 -msgid "Unable to obtain identity information from database" -msgstr "No ha sido posible obtener información sobre la identidad desde la base de datos" - -#: ../../include/identity.php:66 -msgid "Empty name" -msgstr "Nombre vacío" - -#: ../../include/identity.php:69 -msgid "Name too long" -msgstr "Nombre demasiado largo" - -#: ../../include/identity.php:181 -msgid "No account identifier" -msgstr "Ningún identificador de la cuenta" - -#: ../../include/identity.php:193 -msgid "Nickname is required." -msgstr "Se requiere un sobrenombre (alias)." - -#: ../../include/identity.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Sobrenombre en uso. Por favor, elija otro." - -#: ../../include/identity.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "El alias contiene caracteres no admitidos o está ya en uso por otros usuarios de este sitio." - -#: ../../include/identity.php:288 -msgid "Unable to retrieve created identity" -msgstr "No ha sido posible recuperar la identidad creada" - -#: ../../include/identity.php:346 -msgid "Default Profile" -msgstr "Perfil principal" - -#: ../../include/identity.php:769 -msgid "Requested channel is not available." -msgstr "El canal solicitado no está disponible." - -#: ../../include/identity.php:815 ../../mod/achievements.php:11 -#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 -#: ../../mod/editblock.php:29 ../../mod/profile.php:16 -#: ../../mod/webpages.php:29 ../../mod/blocks.php:29 -#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 -#: ../../mod/connect.php:13 -msgid "Requested profile is not available." -msgstr "El perfil solicitado no está disponible." - -#: ../../include/identity.php:978 ../../mod/profiles.php:774 -msgid "Change profile photo" -msgstr "Cambiar la foto del perfil" - -#: ../../include/identity.php:984 -msgid "Profiles" -msgstr "Perfiles" - -#: ../../include/identity.php:984 -msgid "Manage/edit profiles" -msgstr "Administrar/editar perfiles" - -#: ../../include/identity.php:985 ../../mod/profiles.php:775 -msgid "Create New Profile" -msgstr "Crear un nuevo perfil" - -#: ../../include/identity.php:988 ../../include/nav.php:90 -msgid "Edit Profile" -msgstr "Editar el perfil" - -#: ../../include/identity.php:1000 ../../mod/profiles.php:786 -msgid "Profile Image" -msgstr "Imagen del perfil" - -#: ../../include/identity.php:1003 -msgid "visible to everybody" -msgstr "visible para cualquiera" - -#: ../../include/identity.php:1004 ../../mod/profiles.php:669 -#: ../../mod/profiles.php:790 -msgid "Edit visibility" -msgstr "Editar visibilidad" - -#: ../../include/identity.php:1020 ../../include/identity.php:1260 -msgid "Gender:" -msgstr "Género:" - -#: ../../include/identity.php:1021 ../../include/identity.php:1304 -msgid "Status:" -msgstr "Estado:" - -#: ../../include/identity.php:1022 ../../include/identity.php:1315 -msgid "Homepage:" -msgstr "Página personal:" - -#: ../../include/identity.php:1023 -msgid "Online Now" -msgstr "Ahora en línea" - -#: ../../include/identity.php:1107 ../../include/identity.php:1185 -#: ../../mod/ping.php:318 -msgid "g A l F d" -msgstr "g A l d F" - -#: ../../include/identity.php:1108 ../../include/identity.php:1186 -msgid "F d" -msgstr "d F" - -#: ../../include/identity.php:1153 ../../include/identity.php:1225 -#: ../../mod/ping.php:341 -msgid "[today]" -msgstr "[hoy]" - -#: ../../include/identity.php:1164 -msgid "Birthday Reminders" -msgstr "Recordatorios de cumpleaños" - -#: ../../include/identity.php:1165 -msgid "Birthdays this week:" -msgstr "Cumpleaños de esta semana:" - -#: ../../include/identity.php:1218 -msgid "[No description]" -msgstr "[Sin descripción]" - -#: ../../include/identity.php:1236 -msgid "Event Reminders" -msgstr "Recordatorios de eventos" - -#: ../../include/identity.php:1237 -msgid "Events this week:" -msgstr "Eventos de esta semana:" - -#: ../../include/identity.php:1258 ../../mod/settings.php:1027 -msgid "Full Name:" -msgstr "Nombre completo:" +#: ../../include/dir_fns.php:139 +msgid "Directory Options" +msgstr "Opciones del directorio" -#: ../../include/identity.php:1265 -msgid "Like this channel" -msgstr "Me gusta este canal" +#: ../../include/dir_fns.php:141 +msgid "Safe Mode" +msgstr "Modo seguro" -#: ../../include/identity.php:1289 -msgid "j F, Y" -msgstr "j F Y" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 +#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:462 +#: ../../mod/events.php:463 ../../mod/events.php:472 ../../mod/mitem.php:154 +#: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 +#: ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "No" +msgstr "No" -#: ../../include/identity.php:1290 -msgid "j F" -msgstr "j F" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 +#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/events.php:462 ../../mod/events.php:463 ../../mod/events.php:472 +#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 +#: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "Yes" +msgstr "Sí" -#: ../../include/identity.php:1297 -msgid "Birthday:" -msgstr "Cumpleaños:" +#: ../../include/dir_fns.php:142 +msgid "Public Forums Only" +msgstr "Solo foros públicos" -#: ../../include/identity.php:1301 ../../mod/directory.php:297 -msgid "Age:" -msgstr "Edad:" +#: ../../include/dir_fns.php:143 +msgid "This Website Only" +msgstr "Solo este sitio web" -#: ../../include/identity.php:1310 +#: ../../include/enotify.php:96 #, php-format -msgid "for %1$d %2$s" -msgstr "por %1$d %2$s" - -#: ../../include/identity.php:1313 ../../mod/profiles.php:691 -msgid "Sexual Preference:" -msgstr "Orientación sexual:" - -#: ../../include/identity.php:1317 ../../mod/directory.php:313 -#: ../../mod/profiles.php:693 -msgid "Hometown:" -msgstr "Ciudad de origen:" - -#: ../../include/identity.php:1319 -msgid "Tags:" -msgstr "Etiquetas:" - -#: ../../include/identity.php:1321 ../../mod/profiles.php:694 -msgid "Political Views:" -msgstr "Posición política:" - -#: ../../include/identity.php:1323 -msgid "Religion:" -msgstr "Religión:" - -#: ../../include/identity.php:1325 ../../mod/directory.php:315 -msgid "About:" -msgstr "Sobre mí:" - -#: ../../include/identity.php:1327 -msgid "Hobbies/Interests:" -msgstr "Aficciones/Intereses:" +msgid "%s <!item_type!>" +msgstr "%s <!item_type!>" -#: ../../include/identity.php:1329 ../../mod/profiles.php:697 -msgid "Likes:" -msgstr "Me gusta:" +#: ../../include/enotify.php:100 +#, php-format +msgid "[Hubzilla:Notify] New mail received at %s" +msgstr "[Hubzilla:Aviso] Nuevo mensaje en %s" -#: ../../include/identity.php:1331 ../../mod/profiles.php:698 -msgid "Dislikes:" -msgstr "No me gusta:" +#: ../../include/enotify.php:102 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." +msgstr "%1$s, %2$s le ha enviado un nuevo mensaje privado en %3$s." -#: ../../include/identity.php:1333 -msgid "Contact information and Social Networks:" -msgstr "Información de contacto y redes sociales:" +#: ../../include/enotify.php:103 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s le envió %2$s." -#: ../../include/identity.php:1335 -msgid "My other channels:" -msgstr "Mis otros canales:" +#: ../../include/enotify.php:103 +msgid "a private message" +msgstr "un mensaje privado" -#: ../../include/identity.php:1337 -msgid "Musical interests:" -msgstr "Intereses musicales:" +#: ../../include/enotify.php:104 +#, php-format +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/identity.php:1339 -msgid "Books, literature:" -msgstr "Libros, literatura:" +#: ../../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/identity.php:1341 -msgid "Television:" -msgstr "Televisión:" +#: ../../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/identity.php:1343 -msgid "Film/dance/culture/entertainment:" -msgstr "Cine/danza/cultura/entretenimiento:" +#: ../../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/identity.php:1345 -msgid "Love/Romance:" -msgstr "Vida sentimental/amorosa:" +#: ../../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/identity.php:1347 -msgid "Work/employment:" -msgstr "Trabajo:" +#: ../../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/identity.php:1349 -msgid "School/education:" -msgstr "Estudios:" +#: ../../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/identity.php:1369 -msgid "Like this thing" -msgstr "Me gusta esto" +#: ../../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/taxonomy.php:229 ../../include/taxonomy.php:250 -msgid "Tags" -msgstr "Etiquetas" +#: ../../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/taxonomy.php:294 -msgid "Keywords" -msgstr "Palabras clave" +#: ../../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/taxonomy.php:315 -msgid "have" -msgstr "tener" +#: ../../include/enotify.php:226 +#, php-format +msgid "[Hubzilla:Notify] %s tagged you" +msgstr "[Hubzilla:Aviso] %s le ha etiquetado" -#: ../../include/taxonomy.php:315 -msgid "has" -msgstr "tiene" +#: ../../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/taxonomy.php:316 -msgid "want" -msgstr "quiero" +#: ../../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/taxonomy.php:316 -msgid "wants" -msgstr "quiere" +#: ../../include/enotify.php:240 +#, php-format +msgid "[Hubzilla:Notify] %1$s poked you" +msgstr "[Hubzilla:Aviso] %1$s le ha dado un toque" -#: ../../include/taxonomy.php:317 -msgid "likes" -msgstr "le gusta" +#: ../../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/taxonomy.php:318 -msgid "dislikes" -msgstr "no le gusta" +#: ../../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/attach.php:246 ../../include/attach.php:332 -msgid "Item was not found." -msgstr "Elemento no encontrado." +#: ../../include/enotify.php:258 +#, php-format +msgid "[Hubzilla:Notify] %s tagged your post" +msgstr "[Hubzilla:Aviso] %s ha etiquetado su publicación" -#: ../../include/attach.php:496 -msgid "No source file." -msgstr "Ningún fichero de origen" +#: ../../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/attach.php:514 -msgid "Cannot locate file to replace" -msgstr "No se puede localizar el fichero que va a ser sustituido." +#: ../../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/attach.php:532 -msgid "Cannot locate file to revise/update" -msgstr "No se puede localizar el fichero para revisar/actualizar" +#: ../../include/enotify.php:272 +msgid "[Hubzilla:Notify] Introduction received" +msgstr "[Hubzilla:Aviso] Ha recibido una solicitud de conexión" -#: ../../include/attach.php:667 +#: ../../include/enotify.php:273 #, php-format -msgid "File exceeds size limit of %d" -msgstr "El fichero supera el limite de tamaño de %d" +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/attach.php:681 +#: ../../include/enotify.php:274 #, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos." - -#: ../../include/attach.php:837 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado." - -#: ../../include/attach.php:850 -msgid "Stored file could not be verified. Upload failed." -msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado." +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/attach.php:898 ../../include/attach.php:914 -msgid "Path not available." -msgstr "Ruta no disponible." +#: ../../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/attach.php:960 ../../include/attach.php:1112 -msgid "Empty pathname" -msgstr "Ruta vacía" +#: ../../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/attach.php:986 -msgid "duplicate filename or path" -msgstr "Nombre duplicado de ruta o fichero" +#: ../../include/enotify.php:287 +msgid "[Hubzilla:Notify] Friend suggestion received" +msgstr "[Hubzilla:Aviso] Ha recibido una sugerencia de amistad" -#: ../../include/attach.php:1008 -msgid "Path not found." -msgstr "Ruta no encontrada" +#: ../../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/attach.php:1066 -msgid "mkdir failed." -msgstr "mkdir ha fallado." +#: ../../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/attach.php:1070 -msgid "database storage failed." -msgstr "el almacenamiento en la base de datos ha fallado." +#: ../../include/enotify.php:295 +msgid "Name:" +msgstr "Nombre:" -#: ../../include/attach.php:1118 -msgid "Empty path" -msgstr "Ruta vacía" +#: ../../include/enotify.php:296 +msgid "Photo:" +msgstr "Foto:" -#: ../../include/bb2diaspora.php:382 -msgid "Attachments:" -msgstr "Ficheros adjuntos:" +#: ../../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/bb2diaspora.php:473 -msgid "$Projectname event notification:" -msgstr "Notificación de eventos de $Projectname:" +#: ../../include/enotify.php:514 +msgid "[Hubzilla:Notify]" +msgstr "[Hubzilla:Aviso]" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" -msgstr "Aplicaciones" +#: ../../include/follow.php:28 +msgid "Channel is blocked on this site." +msgstr "El canal está bloqueado en este sitio." -#: ../../include/widgets.php:92 -msgid "System" -msgstr "Sistema" +#: ../../include/follow.php:33 +msgid "Channel location missing." +msgstr "Falta la dirección del canal." -#: ../../include/widgets.php:95 -msgid "Create Personal App" -msgstr "Crear una aplicación personal" +#: ../../include/follow.php:82 +msgid "Response from remote channel was incomplete." +msgstr "Respuesta incompleta del canal." -#: ../../include/widgets.php:96 -msgid "Edit Personal App" -msgstr "Editar una aplicación personal" +#: ../../include/follow.php:99 +msgid "Channel was deleted and no longer exists." +msgstr "El canal ha sido eliminado y ya no existe." -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" -msgstr "Ignorar/Ocultar" +#: ../../include/follow.php:152 ../../include/follow.php:180 +msgid "Protocol disabled." +msgstr "Protocolo deshabilitado." -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" -msgstr "Sugerencias" +#: ../../include/follow.php:170 +msgid "Channel discovery failed." +msgstr "El intento de acceder al canal ha fallado." -#: ../../include/widgets.php:144 -msgid "See more..." -msgstr "Ver más..." +#: ../../include/follow.php:196 +msgid "local account not found." +msgstr "No se ha encontrado la cuenta local." -#: ../../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/follow.php:220 +msgid "Cannot connect to yourself." +msgstr "No puede conectarse consigo mismo." -#: ../../include/widgets.php:171 -msgid "Add New Connection" -msgstr "Añadir nueva conexión" +#: ../../include/oembed.php:213 +msgid "Embedded content" +msgstr "Contenido incorporado" -#: ../../include/widgets.php:172 -msgid "Enter the channel address" -msgstr "Introducir la dirección del canal" +#: ../../include/oembed.php:222 +msgid "Embedding disabled" +msgstr "Incrustación deshabilitada" -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Ejemplo: paco@ejemplo.com, http://ejemplo.com/paco" +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 +msgid "Logout" +msgstr "Finalizar sesión" -#: ../../include/widgets.php:189 -msgid "Notes" -msgstr "Notas" +#: ../../include/nav.php:82 ../../include/nav.php:114 +msgid "End this session" +msgstr "Finalizar esta sesión" -#: ../../include/widgets.php:191 ../../include/text.php:858 -#: ../../include/text.php:870 ../../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/nav.php:85 ../../include/nav.php:145 +msgid "Home" +msgstr "Inicio" -#: ../../include/widgets.php:265 -msgid "Remove term" -msgstr "Eliminar término" +#: ../../include/nav.php:85 +msgid "Your posts and conversations" +msgstr "Sus entradas y conversaciones" -#: ../../include/widgets.php:348 -msgid "Archives" -msgstr "Hemeroteca" +#: ../../include/nav.php:86 +msgid "Your profile page" +msgstr "Su página del perfil" -#: ../../include/widgets.php:427 ../../mod/connedit.php:566 -msgid "Me" -msgstr "Yo" +#: ../../include/nav.php:88 +msgid "Edit Profiles" +msgstr "Editar perfiles" -#: ../../include/widgets.php:428 ../../mod/connedit.php:567 -msgid "Family" -msgstr "Familia" +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" +msgstr "Administrar/editar perfiles" -#: ../../include/widgets.php:430 ../../mod/connedit.php:569 -msgid "Acquaintances" -msgstr "Conocidos/as" +#: ../../include/nav.php:90 +msgid "Edit your profile" +msgstr "Editar su perfil" -#: ../../include/widgets.php:431 ../../mod/connedit.php:570 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "Todas" +#: ../../include/nav.php:92 +msgid "Your photos" +msgstr "Sus fotos" -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "Recargar" +#: ../../include/nav.php:93 +msgid "Your files" +msgstr "Sus ficheros" -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "Configuración de la cuenta" +#: ../../include/nav.php:97 ../../include/apps.php:146 +msgid "Chat" +msgstr "Chat" -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "Configuración del canal" +#: ../../include/nav.php:97 +msgid "Your chatrooms" +msgstr "Sus salas de chat" -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "Características adicionales" +#: ../../include/nav.php:103 +msgid "Your bookmarks" +msgstr "Sus marcadores" -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "Configuración de características o complementos" +#: ../../include/nav.php:107 +msgid "Your webpages" +msgstr "Sus páginas web" -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "Ajustes de visualización" +#: ../../include/nav.php:111 ../../include/apps.php:131 ../../boot.php:1486 +msgid "Login" +msgstr "Iniciar sesión" -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "Aplicaciones conectadas" +#: ../../include/nav.php:111 +msgid "Sign in" +msgstr "Acceder" -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "Exportar canal" +#: ../../include/nav.php:128 +#, php-format +msgid "%s - click to logout" +msgstr "%s - pulsar para finalizar sesión" -#: ../../include/widgets.php:529 ../../mod/connedit.php:674 -msgid "Connection Default Permissions" -msgstr "Permisos predeterminados de conexión" +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "Acceder desde su servidor" -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "Configuración del canal premium" +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "Pulsar para identificarse en su servidor de inicio" -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" -msgstr "Menú de correo privado" +#: ../../include/nav.php:145 +msgid "Home Page" +msgstr "Página de inicio" -#: ../../include/widgets.php:569 -msgid "Combined View" -msgstr "Vista combinada" +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 +msgid "Register" +msgstr "Registrarse" -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" -msgstr "Bandeja de entrada" +#: ../../include/nav.php:149 +msgid "Create an account" +msgstr "Crear una cuenta" -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" -msgstr "Bandeja de salida" +#: ../../include/nav.php:154 ../../include/apps.php:142 +#: ../../mod/layouts.php:176 ../../mod/help.php:202 ../../mod/help.php:207 +msgid "Help" +msgstr "Ayuda" -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" -msgstr "Nuevo mensaje" +#: ../../include/nav.php:154 +msgid "Help and documentation" +msgstr "Ayuda y documentación" -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" -msgstr "Conversaciones" +#: ../../include/nav.php:157 +msgid "Applications, utilities, links, games" +msgstr "Aplicaciones, utilidades, enlaces, juegos" -#: ../../include/widgets.php:607 -msgid "Received Messages" -msgstr "Mensajes recibidos" +#: ../../include/nav.php:159 ../../include/text.php:867 +#: ../../include/text.php:879 ../../include/apps.php:147 +#: ../../mod/search.php:40 +msgid "Search" +msgstr "Buscar" -#: ../../include/widgets.php:611 -msgid "Sent Messages" -msgstr "Enviar mensajes" +#: ../../include/nav.php:159 +msgid "Search site @name, #tag, ?docs, content" +msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido" -#: ../../include/widgets.php:625 -msgid "No messages." -msgstr "Sin mensajes." +#: ../../include/nav.php:162 ../../include/apps.php:141 +msgid "Directory" +msgstr "Directorio" -#: ../../include/widgets.php:643 -msgid "Delete conversation" -msgstr "Eliminar conversación" +#: ../../include/nav.php:162 +msgid "Channel Directory" +msgstr "Directorio de canales" -#: ../../include/widgets.php:734 -msgid "Chat Rooms" -msgstr "Salas de chat" +#: ../../include/nav.php:174 ../../include/apps.php:133 +msgid "Grid" +msgstr "Red" -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" -msgstr "Salas de chat preferidas" +#: ../../include/nav.php:174 +msgid "Your grid" +msgstr "Mi red" -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" -msgstr "Salas de chat sugeridas" +#: ../../include/nav.php:175 +msgid "Mark all grid notifications seen" +msgstr "Marcar todas las notificaciones de la red como vistas" -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" -msgstr "foto/imagen" +#: ../../include/nav.php:177 ../../include/apps.php:137 +msgid "Channel Home" +msgstr "Mi canal" -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" -msgstr "Valorar este canal" +#: ../../include/nav.php:177 +msgid "Channel home" +msgstr "Mi canal" -#: ../../include/widgets.php:1060 -msgid "View Ratings" -msgstr "Mostrar las valoraciones" +#: ../../include/nav.php:178 +msgid "Mark all channel notifications seen" +msgstr "Marcar todas las notificaciones del canal como leídas" -#: ../../include/widgets.php:1071 -msgid "Public Hubs" -msgstr "Servidores públicos" +#: ../../include/nav.php:181 ../../mod/connections.php:260 +msgid "Connections" +msgstr "Conexiones" -#: ../../include/widgets.php:1119 -msgid "Forums" -msgstr "Foros" +#: ../../include/nav.php:184 +msgid "Notices" +msgstr "Avisos" -#: ../../include/widgets.php:1146 -msgid "Tasks" -msgstr "Tareas" +#: ../../include/nav.php:184 +msgid "Notifications" +msgstr "Notificaciones" -#: ../../include/widgets.php:1155 -msgid "Documentation" -msgstr "Documentación" +#: ../../include/nav.php:185 +msgid "See all notifications" +msgstr "Ver todas las notificaciones" -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" -msgstr "Información sobre el proyecto o sitio" +#: ../../include/nav.php:186 ../../mod/notifications.php:99 +msgid "Mark all system notifications seen" +msgstr "Marcar todas las notificaciones de sistema como leídas" -#: ../../include/widgets.php:1158 -msgid "For Members" -msgstr "Para los usuarios" +#: ../../include/nav.php:188 ../../include/apps.php:143 +msgid "Mail" +msgstr "Correo" -#: ../../include/widgets.php:1159 -msgid "For Administrators" -msgstr "Para los administradores" +#: ../../include/nav.php:188 +msgid "Private mail" +msgstr "Correo privado" -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "Para los desarrolladores" +#: ../../include/nav.php:189 +msgid "See all private messages" +msgstr "Ver todas los mensajes privados" -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "Sitio" +#: ../../include/nav.php:190 +msgid "Mark all private messages seen" +msgstr "Marcar todos los mensajes privados como leídos" -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "Cuentas" +#: ../../include/nav.php:196 ../../include/apps.php:140 +msgid "Events" +msgstr "Eventos" -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "Canales" +#: ../../include/nav.php:196 +msgid "Event Calendar" +msgstr "Calendario de eventos" -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "Extensiones" +#: ../../include/nav.php:197 +msgid "See all events" +msgstr "Ver todos los eventos" -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "Temas" +#: ../../include/nav.php:198 +msgid "Mark all events seen" +msgstr "Marcar todos los eventos como leidos" -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "Examinar la cola" +#: ../../include/nav.php:200 ../../include/apps.php:132 +#: ../../mod/manage.php:160 +msgid "Channel Manager" +msgstr "Administración de canales" -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "Ajustes del perfil" +#: ../../include/nav.php:200 +msgid "Manage Your Channels" +msgstr "Gestionar sus canales" -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "Actualizaciones de la base de datos" +#: ../../include/nav.php:202 +msgid "Account/Channel Settings" +msgstr "Ajustes de cuenta/canales" -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "Informes" +#: ../../include/nav.php:210 +msgid "Site Setup and Configuration" +msgstr "Ajustes y configuración del sitio" -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "Administrador" +#: ../../include/nav.php:246 +msgid "@name, #tag, ?doc, content" +msgstr "@nombre, #etiqueta, ?ayuda, contenido" -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "Ajustes de la extensión" +#: ../../include/nav.php:247 +msgid "Please wait..." +msgstr "Espere por favor…" -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "Registros de usuarios pendientes de confirmación" +#: ../../include/security.php:381 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." +msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado" -#: ../../include/text.php:391 +#: ../../include/text.php:394 msgid "prev" msgstr "anterior" -#: ../../include/text.php:393 +#: ../../include/text.php:396 msgid "first" msgstr "primera" -#: ../../include/text.php:422 +#: ../../include/text.php:425 msgid "last" msgstr "última" -#: ../../include/text.php:425 +#: ../../include/text.php:428 msgid "next" msgstr "próxima" -#: ../../include/text.php:435 +#: ../../include/text.php:438 msgid "older" msgstr "más antiguas" -#: ../../include/text.php:437 +#: ../../include/text.php:440 msgid "newer" msgstr "más recientes" -#: ../../include/text.php:775 +#: ../../include/text.php:785 msgid "No connections" msgstr "Sin conexiones" -#: ../../include/text.php:787 +#: ../../include/text.php:797 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "%d Conexión" msgstr[1] "%d Conexiones" -#: ../../include/text.php:800 ../../mod/viewconnections.php:101 +#: ../../include/text.php:810 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "Ver conexiones" -#: ../../include/text.php:942 +#: ../../include/text.php:954 msgid "poke" msgstr "un toque" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "ping" msgstr "un \"ping\"" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "pinged" msgstr "avisado/a" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prod" msgstr "una incitación" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prodded" msgstr "ha recibido una incitación" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slap" msgstr "una bofetada" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slapped" msgstr "ha recibido una bofetada" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "finger" msgstr "un \"finger\"" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "fingered" msgstr "ha recibido un \"finger\"" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuff" msgstr "un rechazo" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuffed" msgstr "ha sido rechazado/a" -#: ../../include/text.php:957 +#: ../../include/text.php:969 msgid "happy" msgstr "feliz" -#: ../../include/text.php:958 +#: ../../include/text.php:970 msgid "sad" msgstr "triste" -#: ../../include/text.php:959 +#: ../../include/text.php:971 msgid "mellow" msgstr "amable" -#: ../../include/text.php:960 +#: ../../include/text.php:972 msgid "tired" msgstr "cansado/a" -#: ../../include/text.php:961 +#: ../../include/text.php:973 msgid "perky" msgstr "fresco/a" -#: ../../include/text.php:962 +#: ../../include/text.php:974 msgid "angry" msgstr "enfadado/a" -#: ../../include/text.php:963 +#: ../../include/text.php:975 msgid "stupified" msgstr "estupefacto/a" -#: ../../include/text.php:964 +#: ../../include/text.php:976 msgid "puzzled" msgstr "perplejo/a" -#: ../../include/text.php:965 +#: ../../include/text.php:977 msgid "interested" msgstr "interesado/a" -#: ../../include/text.php:966 +#: ../../include/text.php:978 msgid "bitter" msgstr "amargado/a" -#: ../../include/text.php:967 +#: ../../include/text.php:979 msgid "cheerful" msgstr "alegre" -#: ../../include/text.php:968 +#: ../../include/text.php:980 msgid "alive" msgstr "vivo/a" -#: ../../include/text.php:969 +#: ../../include/text.php:981 msgid "annoyed" msgstr "molesto/a" -#: ../../include/text.php:970 +#: ../../include/text.php:982 msgid "anxious" msgstr "ansioso/a" -#: ../../include/text.php:971 +#: ../../include/text.php:983 msgid "cranky" msgstr "de mal humor" -#: ../../include/text.php:972 +#: ../../include/text.php:984 msgid "disturbed" msgstr "perturbado/a" -#: ../../include/text.php:973 +#: ../../include/text.php:985 msgid "frustrated" msgstr "frustrado/a" -#: ../../include/text.php:974 +#: ../../include/text.php:986 msgid "depressed" msgstr "deprimido/a" -#: ../../include/text.php:975 +#: ../../include/text.php:987 msgid "motivated" msgstr "motivado/a" -#: ../../include/text.php:976 +#: ../../include/text.php:988 msgid "relaxed" msgstr "relajado/a" -#: ../../include/text.php:977 +#: ../../include/text.php:989 msgid "surprised" msgstr "sorprendido/a" -#: ../../include/text.php:1153 +#: ../../include/text.php:1165 msgid "May" msgstr "mayo" -#: ../../include/text.php:1230 ../../include/text.php:1234 +#: ../../include/text.php:1242 ../../include/text.php:1246 msgid "Unknown Attachment" msgstr "Adjunto no reconocido" -#: ../../include/text.php:1236 +#: ../../include/text.php:1248 msgid "unknown" msgstr "desconocido" -#: ../../include/text.php:1272 +#: ../../include/text.php:1284 msgid "remove category" msgstr "eliminar categoría" -#: ../../include/text.php:1349 +#: ../../include/text.php:1361 msgid "remove from file" msgstr "eliminar del fichero" -#: ../../include/text.php:1461 ../../include/text.php:1472 +#: ../../include/text.php:1507 ../../include/text.php:1518 msgid "Click to open/close" msgstr "Pulsar para abrir/cerrar" -#: ../../include/text.php:1640 ../../mod/events.php:497 +#: ../../include/text.php:1692 ../../mod/events.php:638 msgid "Link to Source" msgstr "Enlazar con la entrada en su ubicación original" -#: ../../include/text.php:1661 ../../include/text.php:1732 +#: ../../include/text.php:1713 ../../include/text.php:1785 msgid "default" msgstr "por defecto" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 msgid "Page layout" msgstr "Formato de la página" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 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:1710 +#: ../../include/text.php:1763 msgid "Page content type" msgstr "Tipo de contenido de página" -#: ../../include/text.php:1744 +#: ../../include/text.php:1797 msgid "Select an alternate language" msgstr "Seleccionar un idioma alternativo" -#: ../../include/text.php:1876 +#: ../../include/text.php:1929 msgid "activity" msgstr "actividad" -#: ../../include/text.php:2171 +#: ../../include/text.php:2224 msgid "Design Tools" msgstr "Herramientas de diseño" -#: ../../include/text.php:2174 ../../mod/blocks.php:147 +#: ../../include/text.php:2227 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Bloques" -#: ../../include/text.php:2175 ../../mod/menu.php:103 +#: ../../include/text.php:2228 ../../mod/menu.php:103 msgid "Menus" msgstr "Menús" -#: ../../include/text.php:2176 ../../mod/layouts.php:174 +#: ../../include/text.php:2229 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Formato gráfico" -#: ../../include/text.php:2177 +#: ../../include/text.php:2230 msgid "Pages" msgstr "Páginas" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1502 -msgid "Logout" -msgstr "Finalizar sesión" +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"<strong>may</strong> apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente." -#: ../../include/nav.php:82 ../../include/nav.php:114 -msgid "End this session" -msgstr "Finalizar esta sesión" +#: ../../include/group.php:232 +msgid "Add new connections to this collection (privacy group)" +msgstr "Añadir nuevas conexiones a esta colección (privacidad del grupo)" -#: ../../include/nav.php:85 ../../include/nav.php:145 -msgid "Home" -msgstr "Inicio" +#: ../../include/group.php:251 ../../mod/admin.php:814 +msgid "All Channels" +msgstr "Todos los canales" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" -msgstr "Sus entradas y conversaciones" +#: ../../include/group.php:273 +msgid "edit" +msgstr "editar" -#: ../../include/nav.php:86 -msgid "Your profile page" -msgstr "Su página del perfil" +#: ../../include/group.php:295 +msgid "Collections" +msgstr "Colecciones" -#: ../../include/nav.php:88 -msgid "Edit Profiles" -msgstr "Editar perfiles" +#: ../../include/group.php:296 +msgid "Edit collection" +msgstr "Editar colección" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" -msgstr "Administrar/editar perfiles" +#: ../../include/group.php:297 +msgid "Add new collection" +msgstr "Añadir nueva colección" -#: ../../include/nav.php:90 -msgid "Edit your profile" -msgstr "Editar su perfil" +#: ../../include/group.php:298 +msgid "Channels not in any collection" +msgstr "El canal no se encuentra en ninguna colección" -#: ../../include/nav.php:92 -msgid "Your photos" -msgstr "Sus fotos" +#: ../../include/page_widgets.php:6 +msgid "New Page" +msgstr "Nueva página" -#: ../../include/nav.php:93 -msgid "Your files" -msgstr "Sus ficheros" +#: ../../include/page_widgets.php:39 ../../mod/blocks.php:159 +#: ../../mod/webpages.php:187 ../../mod/layouts.php:188 +msgid "View" +msgstr "Ver" -#: ../../include/nav.php:97 -msgid "Your chatrooms" -msgstr "Sus salas de chat" +#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 +msgid "Actions" +msgstr "Acciones" -#: ../../include/nav.php:103 -msgid "Your bookmarks" -msgstr "Sus marcadores" +#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 +msgid "Page Link" +msgstr "Vínculo de la página" -#: ../../include/nav.php:107 -msgid "Your webpages" -msgstr "Sus páginas web" +#: ../../include/page_widgets.php:43 +msgid "Title" +msgstr "Título" -#: ../../include/nav.php:111 -msgid "Sign in" -msgstr "Acceder" +#: ../../include/page_widgets.php:44 ../../mod/blocks.php:150 +#: ../../mod/webpages.php:192 ../../mod/layouts.php:181 ../../mod/menu.php:110 +msgid "Created" +msgstr "Creado" -#: ../../include/nav.php:128 +#: ../../include/page_widgets.php:45 ../../mod/blocks.php:151 +#: ../../mod/webpages.php:193 ../../mod/layouts.php:182 ../../mod/menu.php:111 +msgid "Edited" +msgstr "Editado" + +#: ../../include/dba/dba_driver.php:141 #, php-format -msgid "%s - click to logout" -msgstr "%s - pulsar para finalizar sesión" +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/nav.php:131 -msgid "Remote authentication" -msgstr "Acceder desde su servidor" +#: ../../include/photos.php:112 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" +msgstr "La imagen excede el límite de %lu bytes del sitio" -#: ../../include/nav.php:131 -msgid "Click to authenticate to your home hub" -msgstr "Pulsar para identificarse en su servidor de inicio" +#: ../../include/photos.php:119 +msgid "Image file is empty." +msgstr "El fichero de imagen está vacío. " -#: ../../include/nav.php:145 -msgid "Home Page" -msgstr "Página de inicio" +#: ../../include/photos.php:146 ../../mod/profile_photo.php:225 +msgid "Unable to process image" +msgstr "No ha sido posible procesar la imagen" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1479 -msgid "Register" -msgstr "Registrarse" +#: ../../include/photos.php:257 +msgid "Photo storage failed." +msgstr "La foto no ha podido ser guardada." -#: ../../include/nav.php:149 -msgid "Create an account" -msgstr "Crear una cuenta" +#: ../../include/photos.php:487 +msgid "Upload New Photos" +msgstr "Subir nuevas fotos" -#: ../../include/nav.php:154 -msgid "Help and documentation" -msgstr "Ayuda y documentación" +#: ../../include/ItemObject.php:130 +msgid "Save to Folder" +msgstr "Guardar en carpeta" -#: ../../include/nav.php:157 -msgid "Applications, utilities, links, games" -msgstr "Aplicaciones, utilidades, enlaces, juegos" +#: ../../include/ItemObject.php:151 +msgid "I will attend" +msgstr "Participaré" -#: ../../include/nav.php:159 -msgid "Search site @name, #tag, ?docs, content" -msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido" +#: ../../include/ItemObject.php:151 +msgid "I will not attend" +msgstr "No participaré" -#: ../../include/nav.php:162 -msgid "Channel Directory" -msgstr "Directorio de canales" +#: ../../include/ItemObject.php:151 +msgid "I might attend" +msgstr "Quizá participe" -#: ../../include/nav.php:174 -msgid "Your grid" -msgstr "Mi red" +#: ../../include/ItemObject.php:161 +msgid "I agree" +msgstr "Estoy de acuerdo" -#: ../../include/nav.php:175 -msgid "Mark all grid notifications seen" -msgstr "Marcar todas las notificaciones de la red como vistas" +#: ../../include/ItemObject.php:161 +msgid "I disagree" +msgstr "No estoy de acuerdo" -#: ../../include/nav.php:177 -msgid "Channel home" -msgstr "Mi canal" +#: ../../include/ItemObject.php:161 +msgid "I abstain" +msgstr "Me abstengo" -#: ../../include/nav.php:178 -msgid "Mark all channel notifications seen" -msgstr "Marcar todas las notificaciones del canal como leídas" +#: ../../include/ItemObject.php:212 +msgid "Add Star" +msgstr "Destacar añadiendo una estrella" -#: ../../include/nav.php:181 ../../mod/connections.php:260 -msgid "Connections" -msgstr "Conexiones" +#: ../../include/ItemObject.php:213 +msgid "Remove Star" +msgstr "Eliminar estrella" -#: ../../include/nav.php:184 -msgid "Notices" -msgstr "Avisos" +#: ../../include/ItemObject.php:214 +msgid "Toggle Star Status" +msgstr "Activar o desactivar el estado de entrada preferida" -#: ../../include/nav.php:184 -msgid "Notifications" -msgstr "Notificaciones" +#: ../../include/ItemObject.php:218 +msgid "starred" +msgstr "preferidas" -#: ../../include/nav.php:185 -msgid "See all notifications" -msgstr "Ver todas las notificaciones" +#: ../../include/ItemObject.php:236 +msgid "Add Tag" +msgstr "Añadir etiqueta" -#: ../../include/nav.php:186 ../../mod/notifications.php:99 -msgid "Mark all system notifications seen" -msgstr "Marcar todas las notificaciones de sistema como leídas" +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +msgid "I like this (toggle)" +msgstr "me gusta (cambiar)" -#: ../../include/nav.php:188 -msgid "Private mail" -msgstr "Correo privado" +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +msgid "I don't like this (toggle)" +msgstr "No me gusta esto (cambiar)" -#: ../../include/nav.php:189 -msgid "See all private messages" -msgstr "Ver todas los mensajes privados" +#: ../../include/ItemObject.php:259 +msgid "Share This" +msgstr "Compartir esto" -#: ../../include/nav.php:190 -msgid "Mark all private messages seen" -msgstr "Marcar todos los mensajes privados como leídos" +#: ../../include/ItemObject.php:259 +msgid "share" +msgstr "compartir" -#: ../../include/nav.php:196 -msgid "Event Calendar" -msgstr "Calendario de eventos" +#: ../../include/ItemObject.php:268 +msgid "Delivery Report" +msgstr "Informe de transmisión" -#: ../../include/nav.php:197 -msgid "See all events" -msgstr "Ver todos los eventos" +#: ../../include/ItemObject.php:286 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d comentario" +msgstr[1] "%d comentarios" -#: ../../include/nav.php:198 -msgid "Mark all events seen" -msgstr "Marcar todos los eventos como leidos" +#: ../../include/ItemObject.php:315 ../../include/ItemObject.php:316 +#, php-format +msgid "View %s's profile - %s" +msgstr "Ver el perfil de %s - %s" -#: ../../include/nav.php:200 -msgid "Manage Your Channels" -msgstr "Gestionar sus canales" +#: ../../include/ItemObject.php:319 +msgid "to" +msgstr "a" -#: ../../include/nav.php:202 -msgid "Account/Channel Settings" -msgstr "Ajustes de cuenta/canales" +#: ../../include/ItemObject.php:320 +msgid "via" +msgstr "mediante" -#: ../../include/nav.php:210 -msgid "Site Setup and Configuration" -msgstr "Ajustes y configuración del sitio" +#: ../../include/ItemObject.php:321 +msgid "Wall-to-Wall" +msgstr "De página del perfil a página del perfil (de Muro a Muro)" -#: ../../include/nav.php:246 -msgid "@name, #tag, ?doc, content" -msgstr "@nombre, #etiqueta, ?ayuda, contenido" +#: ../../include/ItemObject.php:322 +msgid "via Wall-To-Wall:" +msgstr "Mediante el procedimiento página del perfil a página del perfil (de Muro a Muro)" -#: ../../include/nav.php:247 -msgid "Please wait..." -msgstr "Espere por favor…" +#: ../../include/ItemObject.php:362 +msgid "Save Bookmarks" +msgstr "Guardar en Marcadores" -#: ../../include/dir_fns.php:126 -msgid "Directory Options" -msgstr "Opciones del directorio" +#: ../../include/ItemObject.php:363 +msgid "Add to Calendar" +msgstr "Añadir al calendario" -#: ../../include/dir_fns.php:128 -msgid "Safe Mode" -msgstr "Modo seguro" +#: ../../include/ItemObject.php:372 +msgid "Mark all seen" +msgstr "Marcar todo como visto" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 -#: ../../mod/mitem.php:229 ../../mod/connedit.php:630 -#: ../../mod/connedit.php:675 ../../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/settings.php:575 ../../mod/api.php:106 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "No" -msgstr "No" +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +msgctxt "noun" +msgid "Likes" +msgstr "Me gusta" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../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/settings.php:575 ../../mod/api.php:105 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "Yes" -msgstr "Sí" +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +msgctxt "noun" +msgid "Dislikes" +msgstr "No me gusta" -#: ../../include/dir_fns.php:129 -msgid "Public Forums Only" -msgstr "Solo foros públicos" +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 +#: ../../mod/photos.php:1163 +msgid "This is you" +msgstr "Este es usted" -#: ../../include/dir_fns.php:130 -msgid "This Website Only" -msgstr "Solo este sitio web" +#: ../../include/ItemObject.php:703 +msgid "Image" +msgstr "Imagen" -#: ../../mod/achievements.php:34 -msgid "Some blurb about what to do when you're new here" -msgstr "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí" +#: ../../include/ItemObject.php:704 +msgid "Insert Link" +msgstr "Insertar enlace" -#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 -msgid "Contact not found." -msgstr "Contacto no encontrado" +#: ../../include/ItemObject.php:705 +msgid "Video" +msgstr "Vídeo" -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Enviar sugerencia a un amigo." +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "Dirección de correo no válida" -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Sugerir amigos" +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio." -#: ../../mod/fsuggest.php:99 +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "Su dirección de correo está ya registrada en este sitio." + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "Es obligatorio que le inviten." + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "No se ha podido verificar su invitación." + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "Por favor introduzca la información requerida." + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "La información de la cuenta no se ha podido guardar." + +#: ../../include/account.php:248 #, php-format -msgid "Suggest a friend for %s" -msgstr "Sugerir un amigo a %s" +msgid "Registration confirmation for %s" +msgstr "Confirmación de registro para %s" -#: ../../mod/directory.php:59 ../../mod/display.php:13 ../../mod/search.php:13 -#: ../../mod/photos.php:490 ../../mod/ratings.php:82 -#: ../../mod/viewconnections.php:17 -msgid "Public access denied." -msgstr "Acceso público denegado." +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "Solicitud de registro en %s" + +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "su contraseña de registro" -#: ../../mod/directory.php:234 +#: ../../include/account.php:341 ../../include/account.php:401 #, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d valoración" -msgstr[1] "%d valoraciones" +msgid "Registration details for %s" +msgstr "Detalles del registro de %s" -#: ../../mod/directory.php:245 -msgid "Gender: " -msgstr "Género:" +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "Cuenta aprobada." -#: ../../mod/directory.php:247 -msgid "Status: " -msgstr "Estado:" +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registro revocado para %s" -#: ../../mod/directory.php:249 -msgid "Homepage: " -msgstr "Página personal:" +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "Cuenta verificada. Por favor, inicie sesión." -#: ../../mod/directory.php:308 ../../mod/events.php:699 -msgid "Description:" -msgstr "Descripción:" +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "Pulse aquí para actualizar" -#: ../../mod/directory.php:317 -msgid "Public Forum:" -msgstr "Foro público:" +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Esta acción supera los límites establecidos por su plan de suscripción " -#: ../../mod/directory.php:320 -msgid "Keywords: " -msgstr "Palabras clave:" +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "Esta acción no está disponible en su plan de suscripción." -#: ../../mod/directory.php:323 -msgid "Don't suggest" -msgstr "No sugerir:" +#: ../../include/apps.php:128 +msgid "Site Admin" +msgstr "Adminstrador del sitio" -#: ../../mod/directory.php:325 -msgid "Common connections:" -msgstr "Conexiones comunes:" +#: ../../include/apps.php:130 +msgid "Address Book" +msgstr "Libreta de direcciones" -#: ../../mod/directory.php:374 -msgid "Global Directory" -msgstr "Directorio global:" +#: ../../include/apps.php:144 ../../mod/mood.php:131 +msgid "Mood" +msgstr "Estado de ánimo" -#: ../../mod/directory.php:374 -msgid "Local Directory" -msgstr "Directorio local:" +#: ../../include/apps.php:148 +msgid "Probe" +msgstr "Probar" -#: ../../mod/directory.php:380 -msgid "Finding:" -msgstr "Encontrar:" +#: ../../include/apps.php:149 +msgid "Suggest" +msgstr "Sugerir" -#: ../../mod/directory.php:385 -msgid "next page" -msgstr "siguiente página" +#: ../../include/apps.php:150 +msgid "Random Channel" +msgstr "Canal aleatorio" -#: ../../mod/directory.php:385 -msgid "previous page" -msgstr "página anterior" +#: ../../include/apps.php:151 +msgid "Invite" +msgstr "Invitar" -#: ../../mod/directory.php:386 -msgid "Sort options" -msgstr "Ordenar opciones" +#: ../../include/apps.php:152 +msgid "Features" +msgstr "Características" -#: ../../mod/directory.php:387 -msgid "Alphabetic" -msgstr "Alfabético" +#: ../../include/apps.php:153 ../../mod/id.php:28 +msgid "Language" +msgstr "Idioma" -#: ../../mod/directory.php:388 -msgid "Reverse Alphabetic" -msgstr "Alfabético inverso" +#: ../../include/apps.php:154 +msgid "Post" +msgstr "Publicación" -#: ../../mod/directory.php:389 -msgid "Newest to Oldest" -msgstr "De más nuevo a más antiguo" +#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 +#: ../../mod/id.php:19 +msgid "Profile Photo" +msgstr "Foto del perfil" -#: ../../mod/directory.php:390 -msgid "Oldest to Newest" -msgstr "De más antiguo a más nuevo" +#: ../../include/apps.php:252 ../../mod/settings.php:84 +#: ../../mod/settings.php:612 +msgid "Update" +msgstr "Actualizar" -#: ../../mod/directory.php:407 -msgid "No entries (some entries may be hidden)." -msgstr "Sin entradas (algunas entradas pueden estar ocultas)." +#: ../../include/apps.php:252 +msgid "Install" +msgstr "Instalar" -#: ../../mod/bookmarks.php:40 -msgid "Bookmark added" -msgstr "Marcador añadido" +#: ../../include/apps.php:257 +msgid "Purchase" +msgstr "Comprar" -#: ../../mod/bookmarks.php:62 -msgid "My Bookmarks" -msgstr "Mis Marcadores" +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "Pueden verse mi flujo de actividad y publicaciones normales" -#: ../../mod/bookmarks.php:73 -msgid "My Connections Bookmarks" -msgstr "Marcadores de mis conexiones" +#: ../../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 +msgid "Custom/Expert Mode" +msgstr "Modo personalizado/experto" + +#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 +#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +msgid "Profile Photos" +msgstr "Fotos del perfil" + +#: ../../mod/filestorage.php:82 +msgid "Permission Denied." +msgstr "Permiso denegado" + +#: ../../mod/filestorage.php:98 +msgid "File not found." +msgstr "Fichero no encontrado." + +#: ../../mod/filestorage.php:141 +msgid "Edit file permissions" +msgstr "Modificar los permisos del fichero" + +#: ../../mod/filestorage.php:150 +msgid "Set/edit permissions" +msgstr "Establecer/editar los permisos" + +#: ../../mod/filestorage.php:151 +msgid "Include all files and sub folders" +msgstr "Incluir todos los ficheros y subcarpetas" + +#: ../../mod/filestorage.php:152 +msgid "Return to file list" +msgstr "Volver a la lista de ficheros" + +#: ../../mod/filestorage.php:154 +msgid "Copy/paste this code to attach file to a post" +msgstr "Copiar/pegar este código para adjuntar el fichero al envío" + +#: ../../mod/filestorage.php:155 +msgid "Copy/paste this URL to link file from a web page" +msgstr "Copiar/pegar esta dirección para enlazar el fichero desde una página web" + +#: ../../mod/filestorage.php:157 +msgid "Share this file" +msgstr "Compartir este fichero" + +#: ../../mod/filestorage.php:158 +msgid "Show URL to this file" +msgstr "Mostrar la dirección de este fichero" + +#: ../../mod/filestorage.php:159 +msgid "Notify your contacts about this file" +msgstr "Avisar a sus contactos sobre este fichero" + +#: ../../mod/group.php:20 +msgid "Collection created." +msgstr "La colección ha sido creada." + +#: ../../mod/group.php:26 +msgid "Could not create collection." +msgstr "No se puede crear la colección." + +#: ../../mod/group.php:54 +msgid "Collection updated." +msgstr "La colección ha sido actualizada." + +#: ../../mod/group.php:86 +msgid "Create a collection of channels." +msgstr "Crear una colección de canales." + +#: ../../mod/group.php:87 ../../mod/group.php:180 +msgid "Collection Name: " +msgstr "Nombre de la colección:" + +#: ../../mod/group.php:89 ../../mod/group.php:183 +msgid "Members are visible to other channels" +msgstr "Los miembros son visibles para otros canales" + +#: ../../mod/group.php:107 +msgid "Collection removed." +msgstr "La colección ha sido eliminada." + +#: ../../mod/group.php:109 +msgid "Unable to remove collection." +msgstr "No ha sido posible de eliminar la colección." + +#: ../../mod/group.php:179 +msgid "Collection Editor" +msgstr "Editor de colecciones" + +#: ../../mod/group.php:193 +msgid "Members" +msgstr "Miembros" + +#: ../../mod/group.php:195 +msgid "All Connected Channels" +msgstr "Todos los canales conectados" + +#: ../../mod/group.php:227 +msgid "Click on a channel to add or remove." +msgstr "Haga clic en un canal para agregarlo o quitarlo." + +#: ../../mod/item.php:173 +msgid "Unable to locate original post." +msgstr "No ha sido posible encontrar la entrada original." + +#: ../../mod/item.php:417 +msgid "Empty post discarded." +msgstr "La entrada vacía ha sido desechada." + +#: ../../mod/item.php:457 +msgid "Executable content type not permitted to this channel." +msgstr "Contenido de tipo ejecutable no permitido en este canal." + +#: ../../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: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: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: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." + +#: ../../mod/common.php:10 +msgid "No channel." +msgstr "Ningún canal." + +#: ../../mod/common.php:39 +msgid "Common connections" +msgstr "Conexiones comunes" + +#: ../../mod/common.php:44 +msgid "No connections in common." +msgstr "Ninguna conexión en común." + +#: ../../mod/connect.php:56 ../../mod/connect.php:104 +msgid "Continue" +msgstr "Continuar" + +#: ../../mod/connect.php:85 +msgid "Premium Channel Setup" +msgstr "Configuración del canal premium" + +#: ../../mod/connect.php:87 +msgid "Enable premium channel connection restrictions" +msgstr "Habilitar restricciones de conexión del canal premium" + +#: ../../mod/connect.php:88 +msgid "" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." +msgstr "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc." + +#: ../../mod/connect.php:90 ../../mod/connect.php:110 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" +msgstr "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:" + +#: ../../mod/connect.php:91 +msgid "" +"Potential connections will then see the following text before proceeding:" +msgstr "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:" + +#: ../../mod/connect.php:92 ../../mod/connect.php:113 +msgid "" +"By continuing, I certify that I have complied with any instructions provided" +" on this page." +msgstr "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página." + +#: ../../mod/connect.php:101 +msgid "(No specific instructions have been provided by the channel owner.)" +msgstr "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)" + +#: ../../mod/connect.php:109 +msgid "Restricted or Premium Channel" +msgstr "Canal premium o restringido" + +#: ../../mod/match.php:22 +msgid "Profile Match" +msgstr "Perfil compatible" + +#: ../../mod/match.php:31 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal." + +#: ../../mod/match.php:63 +msgid "is interested in:" +msgstr "está interesado en:" + +#: ../../mod/match.php:70 +msgid "No matches" +msgstr "No se han encontrado perfiles compatibles" #: ../../mod/openid.php:26 msgid "OpenID protocol error. No ID returned." @@ -4286,18 +4419,92 @@ msgstr "Error del protocolo OpenID. Ningún ID recibido como respuesta." msgid "Welcome %s. Remote authentication successful." msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente." -#: ../../mod/block.php:27 ../../mod/page.php:36 -msgid "Invalid item." -msgstr "Elemento no válido." +#: ../../mod/achievements.php:34 +msgid "Some blurb about what to do when you're new here" +msgstr "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí" -#: ../../mod/block.php:39 ../../mod/page.php:52 ../../mod/wall_upload.php:29 -msgid "Channel not found." -msgstr "Canal no encontrado." +#: ../../mod/chatsvc.php:111 +msgid "Away" +msgstr "Ausente" -#: ../../mod/block.php:75 ../../mod/display.php:110 ../../mod/help.php:214 -#: ../../mod/page.php:89 ../../index.php:237 -msgid "Page not found." -msgstr "Página no encontrada." +#: ../../mod/chatsvc.php:115 +msgid "Online" +msgstr "Conectado/a" + +#: ../../mod/pubsites.php:18 +msgid "Public Sites" +msgstr "Sitios públicos" + +#: ../../mod/pubsites.php:21 +msgid "" +"The listed sites allow public registration for the $Projectname network. All" +" sites in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some sites may require subscription or" +" provide tiered service plans. The provider links <strong>may</strong> " +"provide additional details." +msgstr "Los sitios listados permiten el registro público en la red $Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales." + +#: ../../mod/pubsites.php:27 +msgid "Rate this hub" +msgstr "Valorar este sitio" + +#: ../../mod/pubsites.php:28 +msgid "Site URL" +msgstr "Dirección del sitio" + +#: ../../mod/pubsites.php:28 +msgid "Access Type" +msgstr "Tipo de acceso" + +#: ../../mod/pubsites.php:28 +msgid "Registration Policy" +msgstr "Normas de registro" + +#: ../../mod/pubsites.php:28 +msgid "Project" +msgstr "Proyecto" + +#: ../../mod/pubsites.php:28 +msgid "View hub ratings" +msgstr "Ver las valoraciones del sitio" + +#: ../../mod/pubsites.php:32 +msgid "Rate" +msgstr "Valorar" + +#: ../../mod/pubsites.php:33 +msgid "View ratings" +msgstr "Ver valoraciones" + +#: ../../mod/tagger.php:96 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s ha etiquetado la %3$s de %2$s con %4$s" + +#: ../../mod/rate.php:158 +msgid "Website:" +msgstr "Sitio web:" + +#: ../../mod/rate.php:161 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Canal remoto [%s] (aún no es conocido en este sitio)" + +#: ../../mod/rate.php:162 +msgid "Rating (this information is public)" +msgstr "Valoración (esta información es pública)" + +#: ../../mod/rate.php:163 +msgid "Optionally explain your rating (this information is public)" +msgstr "Opcionalmente puede explicar su valoración (esta información es pública)" + +#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 +msgid "Block Name" +msgstr "Nombre del bloque" + +#: ../../mod/blocks.php:149 +msgid "Block Title" +msgstr "Título del bloque" #: ../../mod/id.php:11 msgid "First Name" @@ -4363,7 +4570,7 @@ msgstr "Día de nacimiento" msgid "Birthdate" msgstr "Fecha de nacimiento" -#: ../../mod/id.php:33 ../../mod/profiles.php:431 +#: ../../mod/id.php:33 ../../mod/profiles.php:441 msgid "Gender" msgstr "Género" @@ -4435,116 +4642,28 @@ msgstr "Acción completada." msgid "Thank you." msgstr "Gracias." -#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 -msgid "Export Channel" -msgstr "Exportar el canal" - -#: ../../mod/uexport.php:53 -msgid "" -"Export your basic channel information to a file. This acts as a backup of " -"your connections, permissions, profile and basic data, which can be used to " -"import your data to a new server hub, but does not contain your content." -msgstr "Exportar la información básica del canal a un fichero. Este equivale a una copia de seguridad de sus conexiones, el perfil y datos fundamentales, que puede usarse para importar sus datos a un nuevo servidor, pero no incluye su contenido." - -#: ../../mod/uexport.php:54 -msgid "Export Content" -msgstr "Exportar contenidos" - -#: ../../mod/uexport.php:55 -msgid "" -"Export your channel information and recent content to a JSON backup that can" -" be restored or imported to another server hub. This backs up all of your " -"connections, permissions, profile data and several months of posts. This " -"file may be VERY large. Please be patient - it may take several minutes for" -" this download to begin." -msgstr "Exportar la información sobre su canal y el contenido reciente a un fichero de respaldo JSON, que puede ser restaurado o importado a otro servidor. Este fichero incluye todas sus conexiones, permisos, datos del perfil y publicaciones de varios meses. Puede llegar a ser MUY grande. Por favor, sea paciente, la descarga puede tardar varios minutos en comenzar." - -#: ../../mod/uexport.php:56 -msgid "Export your posts from a given year." -msgstr "Exporta sus entradas de un año dado." - -#: ../../mod/uexport.php:58 -msgid "" -"You may also export your posts and conversations for a particular year or " -"month. Adjust the date in your browser location bar to select other dates. " -"If the export fails (possibly due to memory exhaustion on your server hub), " -"please try again selecting a more limited date range." -msgstr "También puede exportar sus mensajes y conversaciones durante un año o mes en particular. Ajuste la fecha en la barra de direcciones del navegador para seleccionar otras fechas. Si la exportación falla (posiblemente debido al agotamiento de la memoria del servidor hub), por favor, intente de nuevo la selección de un rango de fechas más pequeño." +#: ../../mod/page.php:36 ../../mod/block.php:27 +msgid "Invalid item." +msgstr "Elemento no válido." -#: ../../mod/uexport.php:59 -#, php-format -msgid "" -"To select all posts for a given year, such as this year, visit <a " -"href=\"%1$s\">%2$s</a>" -msgstr "Para seleccionar todos los mensajes de un año determinado, como este año, visite <a href=\"%1$s\">%2$s</a>" +#: ../../mod/page.php:52 ../../mod/wall_upload.php:29 ../../mod/block.php:39 +msgid "Channel not found." +msgstr "Canal no encontrado." -#: ../../mod/uexport.php:60 -#, php-format -msgid "" -"To select all posts for a given month, such as January of this year, visit " -"<a href=\"%1$s\">%2$s</a>" -msgstr "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite <a href=\"%1$s\">%2$s</a>" +#: ../../mod/page.php:89 ../../mod/display.php:110 ../../mod/help.php:214 +#: ../../mod/block.php:75 ../../index.php:241 +msgid "Page not found." +msgstr "Página no encontrada." -#: ../../mod/uexport.php:61 -#, php-format +#: ../../mod/page.php:126 msgid "" -"These content files may be imported or restored by visiting <a " -"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" -" please import or restore these in date order (oldest first)." -msgstr "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1$s\">%2$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)." - -#: ../../mod/chatsvc.php:111 -msgid "Away" -msgstr "Ausente" - -#: ../../mod/chatsvc.php:115 -msgid "Online" -msgstr "Conectado/a" - -#: ../../mod/tagger.php:96 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s ha etiquetado la %3$s de %2$s con %4$s" - -#: ../../mod/common.php:10 -msgid "No channel." -msgstr "Ningún canal." - -#: ../../mod/common.php:39 -msgid "Common connections" -msgstr "Conexiones comunes" - -#: ../../mod/common.php:44 -msgid "No connections in common." -msgstr "Ninguna conexión en común." - -#: ../../mod/ping.php:260 -msgid "sent you a private message" -msgstr "le ha enviado un mensaje privado" - -#: ../../mod/ping.php:308 -msgid "added your channel" -msgstr "añadió este canal a sus conexiones" - -#: ../../mod/ping.php:350 -msgid "posted an event" -msgstr "publicó un evento" - -#: ../../mod/help.php:147 -msgid "Documentation Search" -msgstr "Búsqueda de Documentación" - -#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 -msgid "Help:" -msgstr "Ayuda:" - -#: ../../mod/help.php:211 ../../index.php:234 -msgid "Not Found" -msgstr "No encontrado" - -#: ../../mod/help.php:235 -msgid "$Projectname Documentation" -msgstr "Documentación de $Projectname" +"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " +"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," +" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " +"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " +"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " +"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." #: ../../mod/removeme.php:29 msgid "" @@ -4582,137 +4701,820 @@ msgid "" "removed from the network" msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red" -#: ../../mod/removeme.php:61 ../../mod/settings.php:1110 +#: ../../mod/removeme.php:61 ../../mod/settings.php:1112 msgid "Remove Channel" msgstr "Eliminar el canal" -#: ../../mod/filer.php:48 -msgid "- select -" -msgstr "- seleccionar -" +#: ../../mod/mood.php:132 +msgid "Set your current mood and tell your friends" +msgstr "Describir su estado de ánimo para comunicárselo a sus amigos" -#: ../../mod/mitem.php:24 ../../mod/menu.php:140 -msgid "Menu not found." -msgstr "Menú no encontrado" +#: ../../mod/new_channel.php:109 +msgid "Add a Channel" +msgstr "Añadir un canal" -#: ../../mod/mitem.php:48 -msgid "Unable to create element." -msgstr "Imposible crear el elemento." +#: ../../mod/new_channel.php:110 +msgid "" +"A channel is your own collection of related web pages. A channel can be used" +" to hold social network profiles, blogs, conversation groups and forums, " +"celebrity pages, and much more. You may create as many channels as your " +"service provider allows." +msgstr "Un canal está formado por su propia colección de páginas web relacionadas. Se puede utilizar para almacenar los perfiles sociales de la red, blogs, grupos de conversación y foros, páginas de famosos y mucho más. Puede crear tantos canales como su proveedor de servicio permita." -#: ../../mod/mitem.php:72 -msgid "Unable to update menu element." -msgstr "No es posible actualizar el elemento del menú." +#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 +#: ../../mod/sources.php:137 +msgid "Channel Name" +msgstr "Nombre del canal" -#: ../../mod/mitem.php:88 -msgid "Unable to add menu element." -msgstr "No es posible añadir el elemento al menú" +#: ../../mod/new_channel.php:113 +msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " +msgstr "Ejemplos: \"Juan García\", \"Isabel y sus caballos\", \"Fútbol\", \"Grupo de parapente\" " -#: ../../mod/mitem.php:116 ../../mod/menu.php:162 ../../mod/xchan.php:37 -msgid "Not found." -msgstr "No encontrado." +#: ../../mod/new_channel.php:114 +msgid "Choose a short nickname" +msgstr "Elija un alias corto" -#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 -msgid "Menu Item Permissions" -msgstr "Permisos del elemento del menú" +#: ../../mod/new_channel.php:115 +msgid "" +"Your nickname will be used to create an easily remembered channel address " +"(like an email address) which you can share with others." +msgstr "Su alias podrá usarse para crear una dirección de canal fácilmente memorizable (como una dirección de correo electrónico) que puede ser compartido con otros." -#: ../../mod/mitem.php:150 ../../mod/mitem.php:223 ../../mod/settings.php:1054 -msgid "(click to open/close)" -msgstr "(pulsar para abrir o cerrar)" +#: ../../mod/new_channel.php:116 +msgid "Or <a href=\"import\">import an existing channel</a> from another location" +msgstr "O <a href=\"import\">importar un canal existente</a> de otro lugar" -#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 -msgid "Link Name" -msgstr "Nombre del enlace" +#: ../../mod/new_channel.php:118 +msgid "" +"Please choose a channel type (such as social networking or community forum) " +"and privacy requirements so we can select the best permissions for you" +msgstr "Elija el tipo de canal (como red social o foro de discusión) y la privacidad que requiera, así podremos seleccionar el mejor conjunto de permisos para usted" -#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 -msgid "Link or Submenu Target" -msgstr "Destino del enlace o submenú" +#: ../../mod/new_channel.php:119 +msgid "Channel Type" +msgstr "Tipo de canal" -#: ../../mod/mitem.php:153 -msgid "Enter URL of the link or select a menu name to create a submenu" -msgstr "Introducir la dirección del enlace o seleccionar el nombre de un submenú" +#: ../../mod/new_channel.php:119 +msgid "Read more about roles" +msgstr "Leer más sobre los roles" -#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 -msgid "Use magic-auth if available" -msgstr "Usar la autenticación mágica si está disponible" +#: ../../mod/ratings.php:69 +msgid "No ratings" +msgstr "Ninguna valoración" -#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 -msgid "Open link in new window" -msgstr "Abrir el enlace en una nueva ventana" +#: ../../mod/ratings.php:82 ../../mod/search.php:13 ../../mod/directory.php:59 +#: ../../mod/photos.php:490 ../../mod/display.php:13 +#: ../../mod/viewconnections.php:17 +msgid "Public access denied." +msgstr "Acceso público denegado." -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Order in list" -msgstr "Orden en la lista" +#: ../../mod/ratings.php:99 +msgid "Ratings" +msgstr "Valoraciones" -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Higher numbers will sink to bottom of listing" -msgstr "Los números más altos irán al final de la lista" +#: ../../mod/ratings.php:100 +msgid "Rating: " +msgstr "Valoración:" -#: ../../mod/mitem.php:157 -msgid "Submit and finish" -msgstr "Enviar y terminar" +#: ../../mod/ratings.php:101 +msgid "Website: " +msgstr "Sitio web:" -#: ../../mod/mitem.php:158 -msgid "Submit and continue" -msgstr "Enviar y continuar" +#: ../../mod/ratings.php:103 +msgid "Description: " +msgstr "Descripción:" -#: ../../mod/mitem.php:166 -msgid "Menu:" -msgstr "Menú:" +#: ../../mod/setup.php:191 +msgid "$Projectname Server - Setup" +msgstr "Servidor $Projectname - Instalación" -#: ../../mod/mitem.php:169 -msgid "Link Target" -msgstr "Destino del enlace" +#: ../../mod/setup.php:195 +msgid "Could not connect to database." +msgstr "No se ha podido conectar a la base de datos." -#: ../../mod/mitem.php:172 -msgid "Edit menu" -msgstr "Editar menú" +#: ../../mod/setup.php:199 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." +msgstr "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS." -#: ../../mod/mitem.php:175 -msgid "Edit element" -msgstr "Editar el elemento" +#: ../../mod/setup.php:206 +msgid "Could not create table." +msgstr "No se puede crear la tabla." -#: ../../mod/mitem.php:176 -msgid "Drop element" -msgstr "Eliminar el elemento" +#: ../../mod/setup.php:211 +msgid "Your site database has been installed." +msgstr "La base de datos del sitio ha sido instalada." -#: ../../mod/mitem.php:177 -msgid "New element" -msgstr "Nuevo elemento" +#: ../../mod/setup.php:215 +msgid "" +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." +msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos." -#: ../../mod/mitem.php:178 -msgid "Edit this menu container" -msgstr "Modificar el contenedor del menú" +#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"." -#: ../../mod/mitem.php:179 -msgid "Add menu element" -msgstr "Añadir un elemento al menú" +#: ../../mod/setup.php:281 +msgid "System check" +msgstr "Verificación del sistema" -#: ../../mod/mitem.php:180 -msgid "Delete this menu item" -msgstr "Eliminar este elemento del menú" +#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:668 +#: ../../mod/events.php:675 +msgid "Next" +msgstr "Siguiente" -#: ../../mod/mitem.php:181 -msgid "Edit this menu item" -msgstr "Modificar este elemento del menú" +#: ../../mod/setup.php:286 +msgid "Check again" +msgstr "Verificar de nuevo" -#: ../../mod/mitem.php:198 -msgid "Menu item not found." -msgstr "Este elemento del menú no se ha encontrado" +#: ../../mod/setup.php:308 +msgid "Database connection" +msgstr "Conexión a la base de datos" -#: ../../mod/mitem.php:211 -msgid "Menu item deleted." -msgstr "Este elemento del menú ha sido borrado" +#: ../../mod/setup.php:309 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." +msgstr "Para instalar $Projectname es necesario saber cómo conectar con su base de datos." -#: ../../mod/mitem.php:213 -msgid "Menu item could not be deleted." -msgstr "Este elemento del menú no puede ser borrado." +#: ../../mod/setup.php:310 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes." -#: ../../mod/mitem.php:220 -msgid "Edit Menu Element" -msgstr "Editar elemento del menú" +#: ../../mod/setup.php:311 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir." -#: ../../mod/mitem.php:226 -msgid "Link text" -msgstr "Texto del enlace" +#: ../../mod/setup.php:315 +msgid "Database Server Name" +msgstr "Nombre del servidor de base de datos" + +#: ../../mod/setup.php:315 +msgid "Default is 127.0.0.1" +msgstr "De forma predeterminada es 127.0.0.1" + +#: ../../mod/setup.php:316 +msgid "Database Port" +msgstr "Puerto de la base de datos" + +#: ../../mod/setup.php:316 +msgid "Communication port number - use 0 for default" +msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto" + +#: ../../mod/setup.php:317 +msgid "Database Login Name" +msgstr "Usuario de la base de datos" + +#: ../../mod/setup.php:318 +msgid "Database Login Password" +msgstr "Contraseña de acceso a la base de datos" + +#: ../../mod/setup.php:319 +msgid "Database Name" +msgstr "Nombre de la base de datos" + +#: ../../mod/setup.php:320 +msgid "Database Type" +msgstr "Tipo de base de datos" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "Site administrator email address" +msgstr "Dirección de correo electrónico del administrador del sitio" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web." + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Website URL" +msgstr "Dirección del sitio web" + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Please use SSL (https) URL if available." +msgstr "Por favor, use SSL (https) si está disponible." + +#: ../../mod/setup.php:325 ../../mod/setup.php:367 +msgid "Please select a default timezone for your website" +msgstr "Por favor, selecciones la zona horaria por defecto de su sitio web" + +#: ../../mod/setup.php:352 +msgid "Site settings" +msgstr "Ajustes del sitio" + +#: ../../mod/setup.php:417 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web." + +#: ../../mod/setup.php:418 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron." +msgstr "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá ejecutar sondeos en segundo plano mediante cron." + +#: ../../mod/setup.php:422 +msgid "PHP executable path" +msgstr "Ruta del ejecutable PHP" + +#: ../../mod/setup.php:422 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación." + +#: ../../mod/setup.php:427 +msgid "Command line PHP" +msgstr "PHP en línea de comandos" + +#: ../../mod/setup.php:436 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"." + +#: ../../mod/setup.php:437 +msgid "This is required for message delivery to work." +msgstr "Esto es necesario para que funcione la transmisión de mensajes." + +#: ../../mod/setup.php:440 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../mod/setup.php:458 +#, php-format +msgid "" +"Your max allowed total upload size is set to %s. Maximum size of one file to" +" upload is set to %s. You are allowed to upload up to %d files at once." +msgstr "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez." + +#: ../../mod/setup.php:463 +msgid "You can adjust these settings in the servers php.ini." +msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor." + +#: ../../mod/setup.php:465 +msgid "PHP upload limits" +msgstr "Límites PHP de subida" + +#: ../../mod/setup.php:488 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado." + +#: ../../mod/setup.php:489 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: ../../mod/setup.php:492 +msgid "Generate encryption keys" +msgstr "Generar claves de cifrado" + +#: ../../mod/setup.php:504 +msgid "libCurl PHP module" +msgstr "módulo libCurl PHP" + +#: ../../mod/setup.php:505 +msgid "GD graphics PHP module" +msgstr "módulo PHP GD graphics" + +#: ../../mod/setup.php:506 +msgid "OpenSSL PHP module" +msgstr "módulo PHP OpenSSL" + +#: ../../mod/setup.php:507 +msgid "mysqli or postgres PHP module" +msgstr "módulo PHP mysqli o postgres" + +#: ../../mod/setup.php:508 +msgid "mb_string PHP module" +msgstr "módulo PHP mb_string" + +#: ../../mod/setup.php:509 +msgid "mcrypt PHP module" +msgstr "módulo PHP mcrypt " + +#: ../../mod/setup.php:510 +msgid "xml PHP module" +msgstr "módulo PHP xml" + +#: ../../mod/setup.php:514 ../../mod/setup.php:516 +msgid "Apache mod_rewrite module" +msgstr "módulo Apache mod_rewrite " + +#: ../../mod/setup.php:514 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado." + +#: ../../mod/setup.php:520 ../../mod/setup.php:523 +msgid "proc_open" +msgstr "proc_open" + +#: ../../mod/setup.php:520 +msgid "" +"Error: proc_open is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini" + +#: ../../mod/setup.php:528 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado." + +#: ../../mod/setup.php:532 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Error: el módulo PHP GD graphics es necesario, pero no está instalado." + +#: ../../mod/setup.php:536 +msgid "Error: openssl PHP module required but not installed." +msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado." + +#: ../../mod/setup.php:540 +msgid "" +"Error: mysqli or postgres PHP module required but neither are installed." +msgstr "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado." + +#: ../../mod/setup.php:544 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado." + +#: ../../mod/setup.php:548 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Error: el módulo PHP mcrypt es necesario, pero no está instalado." + +#: ../../mod/setup.php:552 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado." + +#: ../../mod/setup.php:570 +msgid "" +"The web installer needs to be able to create a file called \".htconfig.php\"" +" in the top folder of your web server and it is unable to do so." +msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor." + +#: ../../mod/setup.php:571 +msgid "" +"This is most often a permission setting, as the web server may not be able " +"to write files in your folder - even if you can." +msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos." + +#: ../../mod/setup.php:572 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Red top folder." +msgstr "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla." + +#: ../../mod/setup.php:573 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones." + +#: ../../mod/setup.php:576 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php tiene permisos de escritura" + +#: ../../mod/setup.php:590 +msgid "" +"Red uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP." + +#: ../../mod/setup.php:591 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the Red top level folder." +msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al subdirectorio %s en el directorio de instalación de Hubzilla." + +#: ../../mod/setup.php:592 ../../mod/setup.php:613 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)." + +#: ../../mod/setup.php:593 +#, php-format +msgid "" +"Note: as a security measure, you should give the web server write access to " +"%s only--not the template files (.tpl) that it contains." +msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene." + +#: ../../mod/setup.php:596 +#, php-format +msgid "%s is writable" +msgstr "%s tiene permisos de escritura" + +#: ../../mod/setup.php:612 +msgid "" +"Red uses the store directory to save uploaded files. The web server needs to" +" have write access to the store directory under the Red top level folder" +msgstr "Red guarda los ficheros descargados en la carpeta \"store\". El servidor web necesita tener permisos de escritura sobre esa carpeta, en el directorio de instalación." + +#: ../../mod/setup.php:616 +msgid "store is writable" +msgstr "\"store\" tiene permisos de escritura" + +#: ../../mod/setup.php:649 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access" +" to this site." +msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio." + +#: ../../mod/setup.php:650 +msgid "" +"If you have https access to your website or allow connections to TCP port " +"443 (the https: port), you MUST use a browser-valid certificate. You MUST " +"NOT use self-signed certificates!" +msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo." + +#: ../../mod/setup.php:651 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." +msgstr "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor." + +#: ../../mod/setup.php:652 +msgid "" +"If your certificate is not recognized, members of other sites (who may " +"themselves have valid certificates) will get a warning message on their own " +"site complaining about security issues." +msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web." + +#: ../../mod/setup.php:653 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." +msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos." + +#: ../../mod/setup.php:654 +msgid "" +"Providers are available that issue free certificates which are browser-" +"valid." +msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos." + +#: ../../mod/setup.php:656 +msgid "SSL certificate validation" +msgstr "validación del certificado SSL" + +#: ../../mod/setup.php:662 +msgid "" +"Url rewrite in .htaccess is not working. Check your server " +"configuration.Test: " +msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:" + +#: ../../mod/setup.php:665 +msgid "Url rewrite is working" +msgstr "La reescritura de las direcciones funciona correctamente" + +#: ../../mod/setup.php:674 +msgid "" +"The database configuration file \".htconfig.php\" could not be written. " +"Please use the enclosed text to create a configuration file in your web " +"server root." +msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor." + +#: ../../mod/setup.php:698 +msgid "Errors encountered creating database tables." +msgstr "Se han encontrado errores al crear las tablas de la base de datos." + +#: ../../mod/setup.php:732 +msgid "<h1>What next</h1>" +msgstr "<h1>Siguiente paso</h1>" + +#: ../../mod/setup.php:733 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"." + +#: ../../mod/bookmarks.php:40 +msgid "Bookmark added" +msgstr "Marcador añadido" + +#: ../../mod/bookmarks.php:62 +msgid "My Bookmarks" +msgstr "Mis marcadores" + +#: ../../mod/bookmarks.php:73 +msgid "My Connections Bookmarks" +msgstr "Marcadores de mis conexiones" + +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 +msgid "$Projectname" +msgstr "$Projectname" + +#: ../../mod/home.php:75 +#, php-format +msgid "Welcome to %s" +msgstr "Bienvenido a %s" + +#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 +msgid "This setting requires special processing and editing has been blocked." +msgstr "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada." + +#: ../../mod/pconfig.php:49 +msgid "Configuration Editor" +msgstr "Editor de configuración" + +#: ../../mod/pconfig.php:50 +msgid "" +"Warning: Changing some settings could render your channel inoperable. Please" +" leave this page unless you are comfortable with and knowledgeable about how" +" to correctly use this feature." +msgstr "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica." + +#: ../../mod/poke.php:164 +msgid "Poke/Prod" +msgstr "Toque/Incitación" + +#: ../../mod/poke.php:165 +msgid "poke, prod or do other things to somebody" +msgstr "dar un toque, incitar u otras cosas a alguien" + +#: ../../mod/poke.php:166 +msgid "Recipient" +msgstr "Destinatario" + +#: ../../mod/poke.php:167 +msgid "Choose what you wish to do to recipient" +msgstr "Elegir qué desea enviar al destinatario" + +#: ../../mod/poke.php:170 +msgid "Make this post private" +msgstr "Convertir en privado este envío" + +#: ../../mod/profiles.php:19 ../../mod/profiles.php:184 +#: ../../mod/profiles.php:241 ../../mod/profiles.php:608 +msgid "Profile not found." +msgstr "Perfil no encontrado." + +#: ../../mod/profiles.php:39 +msgid "Profile deleted." +msgstr "Perfil eliminado." + +#: ../../mod/profiles.php:63 ../../mod/profiles.php:99 +msgid "Profile-" +msgstr "Perfil-" + +#: ../../mod/profiles.php:84 ../../mod/profiles.php:127 +msgid "New profile created." +msgstr "El nuevo perfil ha sido creado." + +#: ../../mod/profiles.php:105 +msgid "Profile unavailable to clone." +msgstr "Perfil no disponible para clonar." + +#: ../../mod/profiles.php:146 +msgid "Profile unavailable to export." +msgstr "Perfil no disponible para exportar." + +#: ../../mod/profiles.php:251 +msgid "Profile Name is required." +msgstr "Se necesita el nombre del perfil." + +#: ../../mod/profiles.php:414 +msgid "Marital Status" +msgstr "Estado civil" + +#: ../../mod/profiles.php:418 +msgid "Romantic Partner" +msgstr "Pareja sentimental" + +#: ../../mod/profiles.php:422 +msgid "Likes" +msgstr "Me gusta" + +#: ../../mod/profiles.php:426 +msgid "Dislikes" +msgstr "No me gusta" + +#: ../../mod/profiles.php:430 +msgid "Work/Employment" +msgstr "Trabajo:" + +#: ../../mod/profiles.php:433 +msgid "Religion" +msgstr "Religión" + +#: ../../mod/profiles.php:437 +msgid "Political Views" +msgstr "Ideas políticas" + +#: ../../mod/profiles.php:445 +msgid "Sexual Preference" +msgstr "Preferencia sexual" + +#: ../../mod/profiles.php:449 +msgid "Homepage" +msgstr "Página personal" + +#: ../../mod/profiles.php:453 +msgid "Interests" +msgstr "Intereses" + +#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +msgid "Address" +msgstr "Dirección" + +#: ../../mod/profiles.php:547 +msgid "Profile updated." +msgstr "Perfil actualizado." + +#: ../../mod/profiles.php:634 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "¿Ocultar su lista de contactos a los visitantes de este perfil?" + +#: ../../mod/profiles.php:674 +msgid "Edit Profile Details" +msgstr "Modificar los detalles de este perfil" + +#: ../../mod/profiles.php:676 +msgid "View this profile" +msgstr "Ver este perfil" + +#: ../../mod/profiles.php:678 +msgid "Change Profile Photo" +msgstr "Cambiar la foto del perfil" + +#: ../../mod/profiles.php:679 +msgid "Create a new profile using these settings" +msgstr "Crear un nuevo perfil usando estos ajustes" + +#: ../../mod/profiles.php:680 +msgid "Clone this profile" +msgstr "Clonar este perfil" + +#: ../../mod/profiles.php:681 +msgid "Delete this profile" +msgstr "Eliminar este perfil" + +#: ../../mod/profiles.php:683 +msgid "Import profile from file" +msgstr "Importar perfil desde un fichero" + +#: ../../mod/profiles.php:684 +msgid "Export profile to file" +msgstr "Exportar perfil a un fichero" + +#: ../../mod/profiles.php:685 +msgid "Profile Name:" +msgstr "Nombre del perfil:" + +#: ../../mod/profiles.php:686 +msgid "Your Full Name:" +msgstr "Su nombre completo:" + +#: ../../mod/profiles.php:687 +msgid "Title/Description:" +msgstr "Título/Descripción:" + +#: ../../mod/profiles.php:688 +msgid "Your Gender:" +msgstr "Su género:" + +#: ../../mod/profiles.php:689 +msgid "Birthday :" +msgstr "Cumpleaños:" + +#: ../../mod/profiles.php:690 +msgid "Street Address:" +msgstr "Calle:" + +#: ../../mod/profiles.php:691 +msgid "Locality/City:" +msgstr "Ciudad:" + +#: ../../mod/profiles.php:692 +msgid "Postal/Zip Code:" +msgstr "Código postal:" + +#: ../../mod/profiles.php:693 +msgid "Country:" +msgstr "País:" + +#: ../../mod/profiles.php:694 +msgid "Region/State:" +msgstr "Región/Estado:" + +#: ../../mod/profiles.php:695 +msgid "<span class=\"heart\">♥</span> Marital Status:" +msgstr "<span class=\"heart\">♥</span> Estado sentimental:" + +#: ../../mod/profiles.php:696 +msgid "Who: (if applicable)" +msgstr "Quién: (si es aplicable)" + +#: ../../mod/profiles.php:697 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com" + +#: ../../mod/profiles.php:698 +msgid "Since [date]:" +msgstr "Desde [fecha]:" + +#: ../../mod/profiles.php:700 +msgid "Homepage URL:" +msgstr "Dirección de la página personal:" + +#: ../../mod/profiles.php:703 +msgid "Religious Views:" +msgstr "Creencias religiosas:" + +#: ../../mod/profiles.php:704 +msgid "Keywords:" +msgstr "Palabras clave:" + +#: ../../mod/profiles.php:707 +msgid "Example: fishing photography software" +msgstr "Por ejemplo: software de fotografía submarina" + +#: ../../mod/profiles.php:708 +msgid "Used in directory listings" +msgstr "Visible en el directorio público del canal" + +#: ../../mod/profiles.php:709 +msgid "Tell us about yourself..." +msgstr "Háblenos de usted..." + +#: ../../mod/profiles.php:710 +msgid "Hobbies/Interests" +msgstr "Aficiones/Intereses" + +#: ../../mod/profiles.php:711 +msgid "Contact information and Social Networks" +msgstr "Información de contacto y redes sociales" + +#: ../../mod/profiles.php:712 +msgid "My other channels" +msgstr "Mis otros canales" + +#: ../../mod/profiles.php:713 +msgid "Musical interests" +msgstr "Preferencias musicales" + +#: ../../mod/profiles.php:714 +msgid "Books, literature" +msgstr "Libros, literatura" + +#: ../../mod/profiles.php:715 +msgid "Television" +msgstr "Televisión" + +#: ../../mod/profiles.php:716 +msgid "Film/dance/culture/entertainment" +msgstr "Cine/danza/cultura/entretenimiento" + +#: ../../mod/profiles.php:717 +msgid "Love/romance" +msgstr "Vida sentimental/amorosa" + +#: ../../mod/profiles.php:718 +msgid "Work/employment" +msgstr "Trabajo" + +#: ../../mod/profiles.php:719 +msgid "School/education" +msgstr "Estudios" + +#: ../../mod/profiles.php:725 +msgid "This is your default profile." +msgstr "Este es su perfil principal." + +#: ../../mod/profiles.php:736 +msgid "Age: " +msgstr "Edad:" + +#: ../../mod/profiles.php:779 +msgid "Edit/Manage Profiles" +msgstr "Modificar/gestionar perfiles" + +#: ../../mod/profiles.php:780 +msgid "Add profile things" +msgstr "Añadir cosas al perfil" + +#: ../../mod/profiles.php:781 +msgid "Include desirable objects in your profile" +msgstr "Añadir objetos interesantes en su perfil" + +#: ../../mod/search.php:212 +#, php-format +msgid "Items tagged with: %s" +msgstr "elementos etiquetados con: %s" + +#: ../../mod/search.php:214 +#, php-format +msgid "Search results for: %s" +msgstr "Resultados de la búsqueda para: %s" #: ../../mod/connedit.php:75 msgid "Could not access contact record." @@ -4722,249 +5524,249 @@ msgstr "No se ha podido acceder al registro de contacto." msgid "Could not locate selected profile." msgstr "No se ha podido localizar el perfil seleccionado." -#: ../../mod/connedit.php:218 +#: ../../mod/connedit.php:223 msgid "Connection updated." msgstr "Conexión actualizada." -#: ../../mod/connedit.php:220 +#: ../../mod/connedit.php:225 msgid "Failed to update connection record." msgstr "Error al actualizar el registro de la conexión." -#: ../../mod/connedit.php:267 +#: ../../mod/connedit.php:272 msgid "is now connected to" msgstr "ahora está conectado/a" -#: ../../mod/connedit.php:390 +#: ../../mod/connedit.php:395 msgid "Could not access address book record." msgstr "No se pudo acceder a la entrada en su libreta de direcciones." -#: ../../mod/connedit.php:404 +#: ../../mod/connedit.php:409 msgid "Refresh failed - channel is currently unavailable." msgstr "Recarga fallida - no se puede encontrar el canal en este momento." -#: ../../mod/connedit.php:413 ../../mod/connedit.php:422 -#: ../../mod/connedit.php:431 ../../mod/connedit.php:440 -#: ../../mod/connedit.php:453 +#: ../../mod/connedit.php:418 ../../mod/connedit.php:427 +#: ../../mod/connedit.php:436 ../../mod/connedit.php:445 +#: ../../mod/connedit.php:458 msgid "Unable to set address book parameters." msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones." -#: ../../mod/connedit.php:477 +#: ../../mod/connedit.php:482 msgid "Connection has been removed." msgstr "La conexión ha sido eliminada." -#: ../../mod/connedit.php:496 +#: ../../mod/connedit.php:501 #, php-format msgid "View %s's profile" msgstr "Ver el perfil de %s" -#: ../../mod/connedit.php:500 +#: ../../mod/connedit.php:505 msgid "Refresh Permissions" msgstr "Recargar los permisos" -#: ../../mod/connedit.php:503 +#: ../../mod/connedit.php:508 msgid "Fetch updated permissions" msgstr "Obtener los permisos actualizados" -#: ../../mod/connedit.php:507 +#: ../../mod/connedit.php:512 msgid "Recent Activity" msgstr "Actividad reciente" -#: ../../mod/connedit.php:510 +#: ../../mod/connedit.php:515 msgid "View recent posts and comments" msgstr "Ver publicaciones y comentarios recientes" -#: ../../mod/connedit.php:514 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "Desbloquear" -#: ../../mod/connedit.php:514 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "Bloquear" -#: ../../mod/connedit.php:517 +#: ../../mod/connedit.php:522 msgid "Block (or Unblock) all communications with this connection" msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión" -#: ../../mod/connedit.php:518 +#: ../../mod/connedit.php:523 msgid "This connection is blocked!" msgstr "¡Esta conexión está bloqueada!" -#: ../../mod/connedit.php:522 +#: ../../mod/connedit.php:527 msgid "Unignore" msgstr "Dejar de ignorar" -#: ../../mod/connedit.php:522 ../../mod/notifications.php:51 +#: ../../mod/connedit.php:527 ../../mod/notifications.php:51 msgid "Ignore" msgstr "Ignorar" -#: ../../mod/connedit.php:525 +#: ../../mod/connedit.php:530 msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión" -#: ../../mod/connedit.php:526 +#: ../../mod/connedit.php:531 msgid "This connection is ignored!" msgstr "¡Esta conexión es ignorada!" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Unarchive" msgstr "Desarchivar" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Archive" msgstr "Archivar" -#: ../../mod/connedit.php:533 +#: ../../mod/connedit.php:538 msgid "" "Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos" -#: ../../mod/connedit.php:534 +#: ../../mod/connedit.php:539 msgid "This connection is archived!" msgstr "¡Esta conexión esta archivada!" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Unhide" msgstr "Mostrar" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Hide" msgstr "Ocultar" -#: ../../mod/connedit.php:541 +#: ../../mod/connedit.php:546 msgid "Hide or Unhide this connection from your other connections" msgstr "Ocultar o mostrar esta conexión a sus otras conexiones" -#: ../../mod/connedit.php:542 +#: ../../mod/connedit.php:547 msgid "This connection is hidden!" msgstr "¡Esta conexión está oculta!" -#: ../../mod/connedit.php:549 +#: ../../mod/connedit.php:554 msgid "Delete this connection" msgstr "Eliminar esta conexión" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Approve this connection" msgstr "Aprobar esta conexión" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Accept connection to allow communication" msgstr "Aceptar la conexión para permitir la comunicación" -#: ../../mod/connedit.php:635 +#: ../../mod/connedit.php:640 msgid "Set Affinity" msgstr "Ajustar la afinidad" -#: ../../mod/connedit.php:638 +#: ../../mod/connedit.php:643 msgid "Set Profile" msgstr "Ajustar el perfil" -#: ../../mod/connedit.php:641 +#: ../../mod/connedit.php:646 msgid "Set Affinity & Profile" msgstr "Ajustar la afinidad y el perfil" -#: ../../mod/connedit.php:670 +#: ../../mod/connedit.php:679 msgid "none" msgstr "-" -#: ../../mod/connedit.php:675 +#: ../../mod/connedit.php:684 msgid "Apply these permissions automatically" msgstr "Aplicar estos permisos automaticamente" -#: ../../mod/connedit.php:677 +#: ../../mod/connedit.php:686 msgid "This connection's primary address is" msgstr "La dirección primaria de esta conexión es" -#: ../../mod/connedit.php:678 +#: ../../mod/connedit.php:687 msgid "Available locations:" msgstr "Ubicaciones disponibles:" -#: ../../mod/connedit.php:682 +#: ../../mod/connedit.php:691 msgid "" "The permissions indicated on this page will be applied to all new " "connections." msgstr "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones." -#: ../../mod/connedit.php:684 +#: ../../mod/connedit.php:693 msgid "Slide to adjust your degree of friendship" msgstr "Deslizar para ajustar el grado de amistad" -#: ../../mod/connedit.php:686 +#: ../../mod/connedit.php:695 msgid "Slide to adjust your rating" msgstr "Deslizar para ajustar su valoración" -#: ../../mod/connedit.php:687 ../../mod/connedit.php:692 +#: ../../mod/connedit.php:696 ../../mod/connedit.php:701 msgid "Optionally explain your rating" msgstr "Opcionalmente, puede explicar su valoración" -#: ../../mod/connedit.php:689 +#: ../../mod/connedit.php:698 msgid "Custom Filter" msgstr "Filtro personalizado" -#: ../../mod/connedit.php:690 +#: ../../mod/connedit.php:699 msgid "Only import posts with this text" msgstr "Importar solo entradas que contengan este texto" -#: ../../mod/connedit.php:690 ../../mod/connedit.php:691 +#: ../../mod/connedit.php:699 ../../mod/connedit.php:700 msgid "" "words one per line or #tags or /patterns/ or lang=xx, leave blank to import " "all posts" msgstr "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo" -#: ../../mod/connedit.php:691 +#: ../../mod/connedit.php:700 msgid "Do not import posts with this text" msgstr "No importar entradas que contengan este texto" -#: ../../mod/connedit.php:693 +#: ../../mod/connedit.php:702 msgid "This information is public!" msgstr "¡Esta información es pública!" -#: ../../mod/connedit.php:698 +#: ../../mod/connedit.php:707 msgid "Connection Pending Approval" msgstr "Conexión pendiente de aprobación" -#: ../../mod/connedit.php:699 +#: ../../mod/connedit.php:708 msgid "Connection Request" msgstr "Solicitud de conexión" -#: ../../mod/connedit.php:700 +#: ../../mod/connedit.php:709 #, php-format msgid "" "(%s) would like to connect with you. Please approve this connection to allow" " communication." msgstr "(%s) desearía conectar con usted. por favor, apruebe esta conexión para permitir la comunicación." -#: ../../mod/connedit.php:701 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "Aprobar" -#: ../../mod/connedit.php:702 +#: ../../mod/connedit.php:711 msgid "Approve Later" msgstr "Aprobar más tarde" -#: ../../mod/connedit.php:705 +#: ../../mod/connedit.php:714 msgid "inherited" msgstr "heredado" -#: ../../mod/connedit.php:707 +#: ../../mod/connedit.php:716 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura." -#: ../../mod/connedit.php:709 +#: ../../mod/connedit.php:718 msgid "Their Settings" msgstr "Sus ajustes" -#: ../../mod/connedit.php:710 +#: ../../mod/connedit.php:719 msgid "My Settings" msgstr "Mis ajustes" -#: ../../mod/connedit.php:712 +#: ../../mod/connedit.php:721 msgid "Individual Permissions" msgstr "Permisos individuales" -#: ../../mod/connedit.php:713 +#: ../../mod/connedit.php:722 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4972,7 +5774,7 @@ msgid "" " settings here." msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí." -#: ../../mod/connedit.php:714 +#: ../../mod/connedit.php:723 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4980,221 +5782,541 @@ msgid "" "they wont have any impact unless the inherited setting changes." msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados." -#: ../../mod/connedit.php:715 +#: ../../mod/connedit.php:724 msgid "Last update:" msgstr "Última actualización:" -#: ../../mod/mood.php:132 -msgid "Set your current mood and tell your friends" -msgstr "Describir su estado de ánimo para comunicárselo a sus amigos" +#: ../../mod/acl.php:222 +msgid "network" +msgstr "red" -#: ../../mod/magic.php:69 -msgid "Hub not found." -msgstr "Servidor no encontrado" +#: ../../mod/acl.php:232 +msgid "RSS" +msgstr "RSS" -#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 -msgid "This setting requires special processing and editing has been blocked." -msgstr "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada." +#: ../../mod/dav.php:121 +msgid "$Projectname channel" +msgstr "Canal $Projectname" -#: ../../mod/pconfig.php:49 -msgid "Configuration Editor" -msgstr "Editor de configuración" +#: ../../mod/dreport.php:23 +msgid "Invalid message" +msgstr "Mensaje no válido" -#: ../../mod/pconfig.php:50 +#: ../../mod/dreport.php:55 +msgid "no results" +msgstr "sin resultados" + +#: ../../mod/dreport.php:60 +#, php-format +msgid "Delivery report for %1$s" +msgstr "Informe de entrega para %1$s" + +#: ../../mod/dreport.php:74 +msgid "channel sync processed" +msgstr "se ha realizado la sincronización del canal" + +#: ../../mod/dreport.php:78 +msgid "queued" +msgstr "encolado" + +#: ../../mod/dreport.php:82 +msgid "posted" +msgstr "enviado" + +#: ../../mod/dreport.php:86 +msgid "accepted for delivery" +msgstr "aceptado para el envío" + +#: ../../mod/dreport.php:90 +msgid "updated" +msgstr "actualizado" + +#: ../../mod/dreport.php:93 +msgid "update ignored" +msgstr "actualización ignorada" + +#: ../../mod/dreport.php:96 +msgid "permission denied" +msgstr "permiso denegado" + +#: ../../mod/dreport.php:100 +msgid "recipient not found" +msgstr "destinatario no encontrado" + +#: ../../mod/dreport.php:103 +msgid "mail recalled" +msgstr "mensaje de correo revocado" + +#: ../../mod/dreport.php:106 +msgid "duplicate mail received" +msgstr "se ha recibido mensaje duplicado" + +#: ../../mod/dreport.php:109 +msgid "mail delivered" +msgstr "correo enviado" + +#: ../../mod/editwebpage.php:77 ../../mod/editblock.php:78 +#: ../../mod/editblock.php:94 ../../mod/editlayout.php:76 +#: ../../mod/editpost.php:20 +msgid "Item not found" +msgstr "Elemento no encontrado" + +#: ../../mod/editwebpage.php:153 +msgid "Delete webpage?" +msgstr "¿Eliminar la página web?" + +#: ../../mod/editwebpage.php:172 +msgid "Page link title" +msgstr "Título del enlace de la página" + +#: ../../mod/editwebpage.php:185 ../../mod/editblock.php:145 +#: ../../mod/editlayout.php:143 ../../mod/editpost.php:121 +msgid "Insert YouTube video" +msgstr "Insertar vídeo de YouTube" + +#: ../../mod/editwebpage.php:186 ../../mod/editblock.php:146 +#: ../../mod/editlayout.php:144 ../../mod/editpost.php:122 +msgid "Insert Vorbis [.ogg] video" +msgstr "Insertar vídeo Vorbis [.ogg]" + +#: ../../mod/editwebpage.php:187 ../../mod/editblock.php:147 +#: ../../mod/editlayout.php:145 ../../mod/editpost.php:123 +msgid "Insert Vorbis [.ogg] audio" +msgstr "Insertar audio Vorbis [.ogg]" + +#: ../../mod/editwebpage.php:222 +msgid "Edit Webpage" +msgstr "Editar la página web" + +#: ../../mod/oexchange.php:23 +msgid "Unable to find your hub." +msgstr "No se puede encontrar su servidor." + +#: ../../mod/oexchange.php:37 +msgid "Post successful." +msgstr "Enviado con éxito." + +#: ../../mod/ping.php:260 +msgid "sent you a private message" +msgstr "le ha enviado un mensaje privado" + +#: ../../mod/ping.php:308 +msgid "added your channel" +msgstr "añadió este canal a sus conexiones" + +#: ../../mod/ping.php:350 +msgid "posted an event" +msgstr "publicó un evento" + +#: ../../mod/api.php:76 ../../mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autorizar una conexión de aplicación" + +#: ../../mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Volver a su aplicación e introducir este código de seguridad:" + +#: ../../mod/api.php:89 +msgid "Please login to continue." +msgstr "Por favor inicia sesión para continuar." + +#: ../../mod/api.php:104 msgid "" -"Warning: Changing some settings could render your channel inoperable. Please" -" leave this page unless you are comfortable with and knowledgeable about how" -" to correctly use this feature." -msgstr "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica." +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?" -#: ../../mod/filestorage.php:82 -msgid "Permission Denied." -msgstr "Permiso denegado" +#: ../../mod/notify.php:53 ../../mod/notifications.php:94 +msgid "No more system notifications." +msgstr "No hay más notificaciones del sistema" -#: ../../mod/filestorage.php:98 -msgid "File not found." -msgstr "Fichero no encontrado." +#: ../../mod/notify.php:57 ../../mod/notifications.php:98 +msgid "System Notifications" +msgstr "Notificaciones de sistema" -#: ../../mod/filestorage.php:141 -msgid "Edit file permissions" -msgstr "Modificar los permisos del fichero" +#: ../../mod/rbmark.php:90 +msgid "Select a bookmark folder" +msgstr "Seleccionar una carpeta de marcadores" -#: ../../mod/filestorage.php:150 -msgid "Set/edit permissions" -msgstr "Establecer/editar los permisos" +#: ../../mod/rbmark.php:95 +msgid "Save Bookmark" +msgstr "Guardar marcador" -#: ../../mod/filestorage.php:151 -msgid "Include all files and sub folders" -msgstr "Incluir todos los ficheros y subcarpetas" +#: ../../mod/rbmark.php:96 +msgid "URL of bookmark" +msgstr "Dirección del marcador" -#: ../../mod/filestorage.php:152 -msgid "Return to file list" -msgstr "Volver a la lista de ficheros" +#: ../../mod/rbmark.php:97 ../../mod/appman.php:93 ../../mod/events.php:465 +msgid "Description" +msgstr "Descripción" -#: ../../mod/filestorage.php:154 -msgid "Copy/paste this code to attach file to a post" -msgstr "Copiar/pegar este código para adjuntar el fichero al envío" +#: ../../mod/rbmark.php:101 +msgid "Or enter new bookmark folder name" +msgstr "O introduzca un nuevo nombre para la carpeta de marcadores" -#: ../../mod/filestorage.php:155 -msgid "Copy/paste this URL to link file from a web page" -msgstr "Copiar/pegar esta dirección para enlazar el fichero desde una página web" +#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "Contacto no encontrado" -#: ../../mod/filestorage.php:157 -msgid "Share this file" -msgstr "Compartir este fichero" +#: ../../mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Enviar sugerencia a un amigo." -#: ../../mod/filestorage.php:158 -msgid "Show URL to this file" -msgstr "Mostrar la dirección de este fichero" +#: ../../mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Sugerir amigos" -#: ../../mod/filestorage.php:159 -msgid "Notify your contacts about this file" -msgstr "Avisar a sus contactos sobre este fichero" +#: ../../mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Sugerir un amigo a %s" -#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 -msgid "This site is not a directory server" -msgstr "Este sitio no es un servidor de directorio" +#: ../../mod/sources.php:32 +msgid "Failed to create source. No channel selected." +msgstr "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado." -#: ../../mod/layouts.php:121 ../../mod/layouts.php:179 -#: ../../mod/editlayout.php:161 -msgid "Layout Name" -msgstr "Nombre del formato" +#: ../../mod/sources.php:45 +msgid "Source created." +msgstr "Fuente creada." -#: ../../mod/layouts.php:124 ../../mod/editlayout.php:159 -msgid "Layout Description (Optional)" -msgstr "Descripción del formato gráfico (opcional)" +#: ../../mod/sources.php:57 +msgid "Source updated." +msgstr "Fuente actualizada." -#: ../../mod/layouts.php:176 -msgid "Comanche page description language help" -msgstr "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche" +#: ../../mod/sources.php:82 +msgid "*" +msgstr "*" -#: ../../mod/layouts.php:180 -msgid "Layout Description" -msgstr "Descripción del formato" +#: ../../mod/sources.php:89 +msgid "Manage remote sources of content for your channel." +msgstr "Gestionar contenido de origen remoto para su canal." -#: ../../mod/layouts.php:185 -msgid "Download PDL file" -msgstr "Descargar el fichero PDL" +#: ../../mod/sources.php:90 ../../mod/sources.php:100 +msgid "New Source" +msgstr "Nueva fuente" -#: ../../mod/poke.php:164 -msgid "Poke/Prod" -msgstr "Toque/Incitación" +#: ../../mod/sources.php:101 ../../mod/sources.php:133 +msgid "" +"Import all or selected content from the following channel into this channel " +"and distribute it according to your channel settings." +msgstr "Importar todo el contenido o una selección de los siguientes canales en este canal y distribuirlo de acuerdo con sus ajustes." -#: ../../mod/poke.php:165 -msgid "poke, prod or do other things to somebody" -msgstr "dar un toque, incitar u otras cosas a alguien" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Only import content with these words (one per line)" +msgstr "Importar solo contenido que contenga estas palabras (una por línea)" -#: ../../mod/poke.php:166 -msgid "Recipient" -msgstr "Destinatario" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Leave blank to import all public content" +msgstr "Dejar en blanco para importar todo el contenido público" -#: ../../mod/poke.php:167 -msgid "Choose what you wish to do to recipient" -msgstr "Elegir qué desea enviar al destinatario" +#: ../../mod/sources.php:123 ../../mod/sources.php:150 +msgid "Source not found." +msgstr "Fuente no encontrada" -#: ../../mod/poke.php:170 -msgid "Make this post private" -msgstr "Convertir en privado este envío" +#: ../../mod/sources.php:130 +msgid "Edit Source" +msgstr "Editar fuente" -#: ../../mod/network.php:91 -msgid "No such group" -msgstr "No se encuentra el grupo" +#: ../../mod/sources.php:131 +msgid "Delete Source" +msgstr "Eliminar fuente" -#: ../../mod/network.php:131 -msgid "No such channel" -msgstr "No se encuentra el canal" +#: ../../mod/sources.php:158 +msgid "Source removed" +msgstr "Fuente eliminada" -#: ../../mod/network.php:136 -msgid "forum" -msgstr "foro" +#: ../../mod/sources.php:160 +msgid "Unable to remove source." +msgstr "Imposible eliminar la fuente." -#: ../../mod/network.php:148 -msgid "Search Results For:" -msgstr "Buscar resultados para:" +#: ../../mod/notifications.php:26 +msgid "Invalid request identifier." +msgstr "Petición inválida del identificador." -#: ../../mod/network.php:207 -msgid "Collection is empty" -msgstr "La colección está vacía" +#: ../../mod/notifications.php:35 +msgid "Discard" +msgstr "Descartar" -#: ../../mod/network.php:216 -msgid "Collection: " -msgstr "Colección:" +#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 +msgid "Tag removed" +msgstr "Etiqueta eliminada." -#: ../../mod/network.php:242 -msgid "Invalid connection." -msgstr "Conexión no válida." +#: ../../mod/tagrm.php:119 +msgid "Remove Item Tag" +msgstr "Eliminar etiqueta del elemento." -#: ../../mod/chat.php:19 ../../mod/channel.php:25 -msgid "You must be logged in to see this page." -msgstr "Debe haber iniciado sesión para poder ver esta página." +#: ../../mod/tagrm.php:121 +msgid "Select a tag to remove: " +msgstr "Seleccionar una etiqueta para eliminar:" -#: ../../mod/chat.php:174 -msgid "Room not found" -msgstr "Sala no encontrada" +#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +msgid "Remove" +msgstr "Eliminar" -#: ../../mod/chat.php:185 -msgid "Leave Room" -msgstr "Abandonar la sala" +#: ../../mod/directory.php:236 +#, php-format +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d valoración" +msgstr[1] "%d valoraciones" -#: ../../mod/chat.php:186 -msgid "Delete This Room" -msgstr "Eliminar esta sala" +#: ../../mod/directory.php:247 +msgid "Gender: " +msgstr "Género:" -#: ../../mod/chat.php:187 -msgid "I am away right now" -msgstr "Estoy ausente momentáneamente" +#: ../../mod/directory.php:249 +msgid "Status: " +msgstr "Estado:" -#: ../../mod/chat.php:188 -msgid "I am online" -msgstr "Estoy conectado/a" +#: ../../mod/directory.php:251 +msgid "Homepage: " +msgstr "Página personal:" -#: ../../mod/chat.php:190 -msgid "Bookmark this room" -msgstr "Añadir esta sala a Marcadores" +#: ../../mod/directory.php:310 +msgid "Description:" +msgstr "Descripción:" -#: ../../mod/chat.php:208 ../../mod/chat.php:231 -msgid "New Chatroom" -msgstr "Nueva sala de chat" +#: ../../mod/directory.php:319 +msgid "Public Forum:" +msgstr "Foro público:" -#: ../../mod/chat.php:209 -msgid "Chatroom Name" -msgstr "Nombre de la sala de chat" +#: ../../mod/directory.php:322 +msgid "Keywords: " +msgstr "Palabras clave:" -#: ../../mod/chat.php:210 -msgid "Expiration of chats (minutes)" -msgstr "Tiempo de expiración de los mensajes en los chats (en minutos)" +#: ../../mod/directory.php:325 +msgid "Don't suggest" +msgstr "No sugerir:" -#: ../../mod/chat.php:227 +#: ../../mod/directory.php:327 +msgid "Common connections:" +msgstr "Conexiones comunes:" + +#: ../../mod/directory.php:376 +msgid "Global Directory" +msgstr "Directorio global:" + +#: ../../mod/directory.php:376 +msgid "Local Directory" +msgstr "Directorio local:" + +#: ../../mod/directory.php:382 +msgid "Finding:" +msgstr "Encontrar:" + +#: ../../mod/directory.php:387 +msgid "next page" +msgstr "siguiente página" + +#: ../../mod/directory.php:387 +msgid "previous page" +msgstr "página anterior" + +#: ../../mod/directory.php:388 +msgid "Sort options" +msgstr "Ordenar opciones" + +#: ../../mod/directory.php:389 +msgid "Alphabetic" +msgstr "Alfabético" + +#: ../../mod/directory.php:390 +msgid "Reverse Alphabetic" +msgstr "Alfabético inverso" + +#: ../../mod/directory.php:391 +msgid "Newest to Oldest" +msgstr "De más nuevo a más antiguo" + +#: ../../mod/directory.php:392 +msgid "Oldest to Newest" +msgstr "De más antiguo a más nuevo" + +#: ../../mod/directory.php:409 +msgid "No entries (some entries may be hidden)." +msgstr "Sin entradas (algunas entradas pueden estar ocultas)." + +#: ../../mod/lostpass.php:15 +msgid "No valid account found." +msgstr "No se ha encontrado una cuenta válida." + +#: ../../mod/lostpass.php:29 +msgid "Password reset request issued. Check your email." +msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico." + +#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 #, php-format -msgid "%1$s's Chatrooms" -msgstr "Salas de chat de %1$s" +msgid "Site Member (%s)" +msgstr "Usuario del sitio (%s)" -#: ../../mod/search.php:211 +#: ../../mod/lostpass.php:40 #, php-format -msgid "Items tagged with: %s" -msgstr "elementos etiquetados con: %s" +msgid "Password reset requested at %s" +msgstr "Se ha solicitado restablecer la contraseña en %s" + +#: ../../mod/lostpass.php:63 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"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:1494 +msgid "Password Reset" +msgstr "Restablecer la contraseña" + +#: ../../mod/lostpass.php:87 +msgid "Your password has been reset as requested." +msgstr "Su contraseña ha sido restablecida según lo solicitó." + +#: ../../mod/lostpass.php:88 +msgid "Your new password is" +msgstr "Su nueva contraseña es" + +#: ../../mod/lostpass.php:89 +msgid "Save or copy your new password - and then" +msgstr "Guarde o copie su nueva contraseña - y después" -#: ../../mod/search.php:213 +#: ../../mod/lostpass.php:90 +msgid "click here to login" +msgstr "pulse aquí para conectarse" + +#: ../../mod/lostpass.php:91 +msgid "" +"Your password may be changed from the <em>Settings</em> page after " +"successful login." +msgstr "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión." + +#: ../../mod/lostpass.php:108 #, php-format -msgid "Search results for: %s" -msgstr "Resultados de la búsqueda para: %s" +msgid "Your password has changed at %s" +msgstr "Su contraseña en %s ha sido cambiada" -#: ../../mod/rate.php:158 -msgid "Website:" -msgstr "Sitio web:" +#: ../../mod/lostpass.php:123 +msgid "Forgot your Password?" +msgstr "¿Ha olvidado su contraseña?" -#: ../../mod/rate.php:161 +#: ../../mod/lostpass.php:124 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones." + +#: ../../mod/lostpass.php:125 +msgid "Email Address" +msgstr "Dirección de correo electrónico" + +#: ../../mod/lostpass.php:126 +msgid "Reset" +msgstr "Reiniciar" + +#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 +msgid "This site is not a directory server" +msgstr "Este sitio no es un servidor de directorio" + +#: ../../mod/impel.php:192 #, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Canal remoto [%s] (aún no es conocido en este sitio)" +msgid "%s element installed" +msgstr "%s elemento instalado" -#: ../../mod/rate.php:162 -msgid "Rating (this information is public)" -msgstr "Valoración (esta información es pública)" +#: ../../mod/impel.php:195 +#, php-format +msgid "%s element installation failed" +msgstr "Elemento con instalación fallida: %s" -#: ../../mod/rate.php:163 -msgid "Optionally explain your rating (this information is public)" -msgstr "Opcionalmente puede explicar su valoración (esta información es pública)" +#: ../../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: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" + +#: ../../mod/import.php:28 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Su paquete de servicios solo permite %d canales." + +#: ../../mod/import.php:66 ../../mod/import_items.php:38 +msgid "Nothing to import." +msgstr "No hay nada para importar." + +#: ../../mod/import.php:90 ../../mod/import_items.php:62 +msgid "Unable to download data from old server" +msgstr "No se han podido descargar datos de su antiguo servidor" + +#: ../../mod/import.php:96 ../../mod/import_items.php:68 +msgid "Imported file is empty." +msgstr "El fichero importado está vacío." + +#: ../../mod/import.php:116 ../../mod/import_items.php:82 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." +msgstr "Atención: Las versiones de la base de datos difieren en %1$d actualizaciones." + +#: ../../mod/import.php:149 +msgid "No channel. Import failed." +msgstr "No hay canal. La importación ha fallado" + +#: ../../mod/import.php:509 +msgid "You must be logged in to use this feature." +msgstr "Debe estar registrado para poder usar esta funcionalidad." + +#: ../../mod/import.php:514 +msgid "Import Channel" +msgstr "Importar canal" + +#: ../../mod/import.php:515 +msgid "" +"Use this form to import an existing channel from a different server/hub. You" +" may retrieve the channel identity from the old server/hub via the network " +"or provide an export file." +msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación." + +#: ../../mod/import.php:516 ../../mod/import_items.php:121 +msgid "File to Upload" +msgstr "Fichero para subir" + +#: ../../mod/import.php:517 +msgid "Or provide the old server/hub details" +msgstr "O proporcione los detalles de su antiguo servidor/hub" + +#: ../../mod/import.php:518 +msgid "Your old identity address (xyz@example.com)" +msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)" + +#: ../../mod/import.php:519 +msgid "Your old login email address" +msgstr "Su antigua dirección de correo electrónico" + +#: ../../mod/import.php:520 +msgid "Your old login password" +msgstr "Su antigua contraseña" + +#: ../../mod/import.php:521 +msgid "" +"For either option, please choose whether to make this hub your new primary " +"address, or whether your old location should continue this role. You will be" +" able to post from either location, but only one can be marked as the " +"primary location for files, photos, and media." +msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua ubicación debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos." + +#: ../../mod/import.php:522 +msgid "Make this hub my primary location" +msgstr "Convertir este servidor en mi ubicación primaria" + +#: ../../mod/import.php:523 +msgid "" +"Import existing posts if possible (experimental - limited by available " +"memory" +msgstr "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible" + +#: ../../mod/import.php:524 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." +msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine." #: ../../mod/photos.php:79 msgid "Page owner information could not be retrieved." @@ -5271,14 +6393,6 @@ msgstr "Mostrar lo más reciente primero" msgid "Show Oldest First" msgstr "Mostrar lo más antiguo primero" -#: ../../mod/photos.php:753 ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "Ver foto" - -#: ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "Editar álbum" - #: ../../mod/photos.php:827 msgid "Permission denied. Access to this item may be restricted." msgstr "Permiso denegado. El acceso a este elemento puede estar restringido." @@ -5295,7 +6409,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:667 ../../mod/events.php:674 msgid "Previous" msgstr "Anterior" @@ -5303,14 +6417,6 @@ msgstr "Anterior" msgid "View Full Size" msgstr "Ver tamaño completo" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 -msgid "Next" -msgstr "Siguiente" - -#: ../../mod/photos.php:954 ../../mod/tagrm.php:133 -msgid "Remove" -msgstr "Eliminar" - #: ../../mod/photos.php:988 msgid "Edit photo" msgstr "Editar foto" @@ -5363,115 +6469,340 @@ msgstr "Ver álbum" msgid "Recent Photos" msgstr "Fotos recientes" -#: ../../mod/dreport.php:23 -msgid "Invalid message" -msgstr "Mensaje no válido" +#: ../../mod/probe.php:24 ../../mod/probe.php:30 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "Al intentar obtener la dirección, retorna el error: %1$s" -#: ../../mod/dreport.php:55 -msgid "no results" -msgstr "sin resultados" +#: ../../mod/profile_photo.php:112 +msgid "Image uploaded but image cropping failed." +msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. " -#: ../../mod/dreport.php:60 +#: ../../mod/profile_photo.php:166 +msgid "Image resize failed." +msgstr "El ajuste del tamaño de la imagen ha fallado." + +#: ../../mod/profile_photo.php:212 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente." + +#: ../../mod/profile_photo.php:250 +msgid "Image upload failed." +msgstr "Subida de imagen fallida." + +#: ../../mod/profile_photo.php:269 +msgid "Unable to process image." +msgstr "No ha sido posible procesar la imagen." + +#: ../../mod/profile_photo.php:297 +msgid "female" +msgstr "mujer" + +#: ../../mod/profile_photo.php:298 #, php-format -msgid "Delivery report for %1$s" -msgstr "Informe de entrega para %1$s" +msgid "%1$s updated her %2$s" +msgstr "%1$s ha actualizado su %2$s" -#: ../../mod/dreport.php:74 -msgid "channel sync processed" -msgstr "se ha realizado la sincronización del canal" +#: ../../mod/profile_photo.php:299 +msgid "male" +msgstr "hombre" -#: ../../mod/dreport.php:78 -msgid "queued" -msgstr "encolado" +#: ../../mod/profile_photo.php:300 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "%1$s ha actualizado su %2$s" -#: ../../mod/dreport.php:82 -msgid "posted" -msgstr "enviado" +#: ../../mod/profile_photo.php:302 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "%1$s ha actualizado sus %2$s" -#: ../../mod/dreport.php:86 -msgid "accepted for delivery" -msgstr "aceptado para el envío" +#: ../../mod/profile_photo.php:304 +msgid "profile photo" +msgstr "foto del perfil" -#: ../../mod/dreport.php:90 -msgid "updated" -msgstr "actualizado" +#: ../../mod/profile_photo.php:368 ../../mod/profile_photo.php:409 +msgid "Photo not available." +msgstr "Foto no disponible." -#: ../../mod/dreport.php:93 -msgid "update ignored" -msgstr "actualización ignorada" +#: ../../mod/profile_photo.php:450 +msgid "Upload File:" +msgstr "Subir fichero:" -#: ../../mod/dreport.php:96 -msgid "permission denied" -msgstr "permiso denegado" +#: ../../mod/profile_photo.php:451 +msgid "Select a profile:" +msgstr "Seleccionar un perfil:" -#: ../../mod/dreport.php:100 -msgid "recipient not found" -msgstr "destinatario no encontrado" +#: ../../mod/profile_photo.php:452 +msgid "Upload Profile Photo" +msgstr "Subir foto del perfil" -#: ../../mod/dreport.php:103 -msgid "mail recalled" -msgstr "mensaje de correo revocado" +#: ../../mod/profile_photo.php:457 ../../mod/settings.php:975 +msgid "or" +msgstr "o" -#: ../../mod/dreport.php:106 -msgid "duplicate mail received" -msgstr "se ha recibido mensaje duplicado" +#: ../../mod/profile_photo.php:457 +msgid "skip this step" +msgstr "Omitir este paso" -#: ../../mod/dreport.php:109 -msgid "mail delivered" -msgstr "correo enviado" +#: ../../mod/profile_photo.php:457 +msgid "select a photo from your photo albums" +msgstr "Seleccione una foto de sus álbumes de fotos" -#: ../../mod/editblock.php:78 ../../mod/editblock.php:94 -#: ../../mod/editpost.php:20 ../../mod/editlayout.php:76 -#: ../../mod/editwebpage.php:77 -msgid "Item not found" -msgstr "Elemento no encontrado" +#: ../../mod/profile_photo.php:473 +msgid "Crop Image" +msgstr "Recortar imagen" -#: ../../mod/editblock.php:118 -msgid "Delete block?" -msgstr "¿Borrar bloque?" +#: ../../mod/profile_photo.php:474 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Por favor ajuste el recorte de la imagen para una visión óptima." -#: ../../mod/editblock.php:145 ../../mod/editpost.php:121 -#: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:185 -msgid "Insert YouTube video" -msgstr "Insertar vídeo de YouTube" +#: ../../mod/profile_photo.php:476 +msgid "Done Editing" +msgstr "Edición completada" -#: ../../mod/editblock.php:146 ../../mod/editpost.php:122 -#: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:186 -msgid "Insert Vorbis [.ogg] video" -msgstr "Insertar vídeo Vorbis [.ogg]" +#: ../../mod/thing.php:111 +msgid "Thing updated" +msgstr "Elemento actualizado." -#: ../../mod/editblock.php:147 ../../mod/editpost.php:123 -#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:187 -msgid "Insert Vorbis [.ogg] audio" -msgstr "Insertar audio Vorbis [.ogg]" +#: ../../mod/thing.php:163 +msgid "Object store: failed" +msgstr "Guardar objeto: ha fallado" -#: ../../mod/editblock.php:180 -msgid "Edit Block" -msgstr "Modificar este bloque" +#: ../../mod/thing.php:167 +msgid "Thing added" +msgstr "Elemento añadido" + +#: ../../mod/thing.php:193 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../mod/thing.php:256 +msgid "Show Thing" +msgstr "Mostrar elemento" + +#: ../../mod/thing.php:263 +msgid "item not found." +msgstr "elemento no encontrado." + +#: ../../mod/thing.php:296 +msgid "Edit Thing" +msgstr "Editar elemento" + +#: ../../mod/thing.php:298 ../../mod/thing.php:348 +msgid "Select a profile" +msgstr "Seleccionar un perfil" + +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Post an activity" +msgstr "Publicar una actividad" + +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Only sends to viewers of the applicable profile" +msgstr "Sólo enviar a espectadores del perfil pertinente." + +#: ../../mod/thing.php:304 ../../mod/thing.php:353 +msgid "Name of thing e.g. something" +msgstr "Nombre del elemento, p. ej.:. \"algo\"" + +#: ../../mod/thing.php:306 ../../mod/thing.php:354 +msgid "URL of thing (optional)" +msgstr "Dirección del elemento (opcional)" + +#: ../../mod/thing.php:308 ../../mod/thing.php:355 +msgid "URL for photo of thing (optional)" +msgstr "Dirección para la foto o elemento (opcional)" + +#: ../../mod/thing.php:346 +msgid "Add Thing to your Profile" +msgstr "Añadir alguna cosa a su perfil" #: ../../mod/dirsearch.php:29 msgid "This directory server requires an access token" msgstr "El servidor de este directorio necesita un \"token\" de acceso" -#: ../../mod/editpost.php:31 -msgid "Item is not editable" -msgstr "El elemento no es editable" +#: ../../mod/editblock.php:118 +msgid "Delete block?" +msgstr "¿Borrar bloque?" -#: ../../mod/editpost.php:55 -msgid "Delete item?" -msgstr "¿Borrar elemento?" +#: ../../mod/editblock.php:180 +msgid "Edit Block" +msgstr "Modificar este bloque" -#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 -msgid "Edit post" -msgstr "Editar la entrada" +#: ../../mod/removeaccount.php:30 +msgid "" +"Account removals are not allowed within 48 hours of changing the account " +"password." +msgstr "La eliminación de cuentas no está permitida hasta después de que hayan transcurrido 48 horas desde el último cambio de contraseña." -#: ../../mod/oexchange.php:23 -msgid "Unable to find your hub." -msgstr "No se puede encontrar su servidor." +#: ../../mod/removeaccount.php:57 +msgid "Remove This Account" +msgstr "Eliminar esta cuenta" -#: ../../mod/oexchange.php:37 -msgid "Post successful." -msgstr "Enviado con éxito." +#: ../../mod/removeaccount.php:58 +msgid "" +"This account and all its channels will be completely removed from the " +"network. " +msgstr "Esta cuenta y todos sus canales van a ser eliminados de la red." + +#: ../../mod/removeaccount.php:60 +msgid "" +"Remove this account, all its channels and all its channel clones from the " +"network" +msgstr "Remover esta cuenta, todos sus canales y clones de la red" + +#: ../../mod/removeaccount.php:60 +msgid "" +"By default only the instances of the channels located on this hub will be " +"removed from the network" +msgstr "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red" + +#: ../../mod/removeaccount.php:61 ../../mod/settings.php:700 +msgid "Remove Account" +msgstr "Eliminar cuenta" + +#: ../../mod/import_items.php:101 +msgid "Import completed" +msgstr "Importación completada" + +#: ../../mod/import_items.php:119 +msgid "Import Items" +msgstr "Importar elementos" + +#: ../../mod/import_items.php:120 +msgid "" +"Use this form to import existing posts and content from an export file." +msgstr "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación." + +#: ../../mod/network.php:91 +msgid "No such group" +msgstr "No se encuentra el grupo" + +#: ../../mod/network.php:131 +msgid "No such channel" +msgstr "No se encuentra el canal" + +#: ../../mod/network.php:136 +msgid "forum" +msgstr "foro" + +#: ../../mod/network.php:148 +msgid "Search Results For:" +msgstr "Buscar resultados para:" + +#: ../../mod/network.php:207 +msgid "Collection is empty" +msgstr "La colección está vacía" + +#: ../../mod/network.php:216 +msgid "Collection: " +msgstr "Colección:" + +#: ../../mod/network.php:242 +msgid "Invalid connection." +msgstr "Conexión no válida." + +#: ../../mod/pdledit.php:13 +msgid "Layout updated." +msgstr "Formato actualizado" + +#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 +msgid "Edit System Page Description" +msgstr "Editor del Sistema de Descripción de Páginas" + +#: ../../mod/pdledit.php:48 +msgid "Layout not found." +msgstr "Formato no encontrado" + +#: ../../mod/pdledit.php:54 +msgid "Module Name:" +msgstr "Nombre del módulo:" + +#: ../../mod/pdledit.php:55 +msgid "Layout Help" +msgstr "Ayuda para el diseño de la página" + +#: ../../mod/register.php:44 +msgid "Maximum daily site registrations exceeded. Please try again tomorrow." +msgstr "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana." + +#: ../../mod/register.php:50 +msgid "" +"Please indicate acceptance of the Terms of Service. Registration failed." +msgstr "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado." + +#: ../../mod/register.php:84 +msgid "Passwords do not match." +msgstr "Las contraseñas no coinciden." + +#: ../../mod/register.php:117 +msgid "" +"Registration successful. Please check your email for validation " +"instructions." +msgstr "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo." + +#: ../../mod/register.php:123 +msgid "Your registration is pending approval by the site owner." +msgstr "Su registro está pendiente de aprobación por el propietario del sitio." + +#: ../../mod/register.php:126 +msgid "Your registration can not be processed." +msgstr "Su registro no puede ser procesado." + +#: ../../mod/register.php:163 +msgid "Registration on this site/hub is by approval only." +msgstr "El registro en este servidor/hub está sometido a aprobación previa." + +#: ../../mod/register.php:164 +msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" +msgstr "<a href=\"pubsites\">Inscribirse en un servidor/hub afiliado</a>" + +#: ../../mod/register.php:174 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana." + +#: ../../mod/register.php:185 +msgid "Terms of Service" +msgstr "Términos del servicio" + +#: ../../mod/register.php:191 +#, php-format +msgid "I accept the %s for this website" +msgstr "Acepto los %s de este sitio" + +#: ../../mod/register.php:193 +#, php-format +msgid "I am over 13 years of age and accept the %s for this website" +msgstr "Tengo más de 13 años de edad y acepto los %s de este sitio" + +#: ../../mod/register.php:207 ../../mod/admin.php:436 +msgid "Registration" +msgstr "Registro" + +#: ../../mod/register.php:212 +msgid "Membership on this site is by invitation only." +msgstr "Para registrarse en este sitio es necesaria una invitación." + +#: ../../mod/register.php:213 +msgid "Please enter your invitation code" +msgstr "Por favor, introduzca el código de su invitación" + +#: ../../mod/register.php:216 +msgid "Your email address" +msgstr "Su dirección de correo electrónico" + +#: ../../mod/register.php:217 +msgid "Choose a password" +msgstr "Elija una contraseña" + +#: ../../mod/register.php:218 +msgid "Please re-enter your password" +msgstr "Por favor, vuelva a escribir su contraseña" #: ../../mod/admin.php:52 msgid "Theme settings updated." @@ -5509,10 +6840,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" @@ -5524,7 +6855,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" @@ -5532,7 +6863,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" @@ -5544,7 +6875,7 @@ msgstr "Versión" msgid "Site settings updated." msgstr "Ajustes del sitio actualizados." -#: ../../mod/admin.php:361 ../../mod/settings.php:791 +#: ../../mod/admin.php:361 ../../mod/settings.php:793 msgid "mobile" msgstr "móvil" @@ -5556,1935 +6887,677 @@ 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 -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 - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>" -#: ../../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 -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" -#: ../../mod/appman.php:28 ../../mod/appman.php:44 -msgid "App installed." -msgstr "Aplicación instalada." - -#: ../../mod/appman.php:37 -msgid "Malformed app." -msgstr "Aplicación con errores" - -#: ../../mod/appman.php:80 -msgid "Embed code" -msgstr "Código incorporado" - -#: ../../mod/appman.php:86 -msgid "Edit App" -msgstr "Modificar la aplicación" - -#: ../../mod/appman.php:86 -msgid "Create App" -msgstr "Crear una aplicación" - -#: ../../mod/appman.php:91 -msgid "Name of app" -msgstr "Nombre de la aplicación" - -#: ../../mod/appman.php:92 -msgid "Location (URL) of app" -msgstr "Ubicación (URL) de la aplicación" - -#: ../../mod/appman.php:93 ../../mod/rbmark.php:97 -msgid "Description" -msgstr "Descripción" - -#: ../../mod/appman.php:94 -msgid "Photo icon URL" -msgstr "Dirección del icono que se va a utilizar para esta foto" - -#: ../../mod/appman.php:94 -msgid "80 x 80 pixels - optional" -msgstr "80 x 80 pixels - opcional" - -#: ../../mod/appman.php:95 -msgid "Version ID" -msgstr "Versión" - -#: ../../mod/appman.php:96 -msgid "Price of app" -msgstr "Precio de la aplicación" - -#: ../../mod/appman.php:97 -msgid "Location (URL) to purchase app" -msgstr "Dirección (URL) donde adquirir la aplicación" - -#: ../../mod/menu.php:45 -msgid "Unable to update menu." -msgstr "No se puede actualizar el menú." - -#: ../../mod/menu.php:56 -msgid "Unable to create menu." -msgstr "No se puede crear el menú." - -#: ../../mod/menu.php:94 ../../mod/menu.php:106 -msgid "Menu Name" -msgstr "Nombre del menú" - -#: ../../mod/menu.php:94 -msgid "Unique name (not visible on webpage) - required" -msgstr "Nombre único (no será visible en la página web) - requerido" - -#: ../../mod/menu.php:95 ../../mod/menu.php:107 -msgid "Menu Title" -msgstr "Título del menú" - -#: ../../mod/menu.php:95 -msgid "Visible on webpage - leave empty for no title" -msgstr "Visible en la página web - no ponga nada si no desea un título" - -#: ../../mod/menu.php:96 -msgid "Allow Bookmarks" -msgstr "Permitir marcadores" - -#: ../../mod/menu.php:96 ../../mod/menu.php:153 -msgid "Menu may be used to store saved bookmarks" -msgstr "El menú se puede usar para guardar marcadores" - -#: ../../mod/menu.php:97 ../../mod/menu.php:155 -msgid "Submit and proceed" -msgstr "Enviar y proceder" - -#: ../../mod/menu.php:109 -msgid "Drop" -msgstr "Eliminar" - -#: ../../mod/menu.php:113 -msgid "Bookmarks allowed" -msgstr "Marcadores permitidos" - -#: ../../mod/menu.php:115 -msgid "Delete this menu" -msgstr "Borrar este menú" - -#: ../../mod/menu.php:116 ../../mod/menu.php:150 -msgid "Edit menu contents" -msgstr "Editar los contenidos del menú" - -#: ../../mod/menu.php:117 -msgid "Edit this menu" -msgstr "Modificar este menú" - -#: ../../mod/menu.php:132 -msgid "Menu could not be deleted." -msgstr "El menú no puede ser eliminado." - -#: ../../mod/menu.php:145 -msgid "Edit Menu" -msgstr "Modificar el menú" - -#: ../../mod/menu.php:149 -msgid "Add or remove entries to this menu" -msgstr "Añadir o quitar entradas en este menú" - -#: ../../mod/menu.php:151 -msgid "Menu name" -msgstr "Nombre del menú" - -#: ../../mod/menu.php:151 -msgid "Must be unique, only seen by you" -msgstr "Debe ser único, solo será visible para usted" - -#: ../../mod/menu.php:152 -msgid "Menu title" -msgstr "Título del menú" - -#: ../../mod/menu.php:152 -msgid "Menu title as seen by others" -msgstr "El título del menú tal como será visto por los demás" - -#: ../../mod/menu.php:153 -msgid "Allow bookmarks" -msgstr "Permitir marcadores" - -#: ../../mod/notify.php:53 ../../mod/notifications.php:94 -msgid "No more system notifications." -msgstr "No hay más notificaciones del sistema" - -#: ../../mod/notify.php:57 ../../mod/notifications.php:98 -msgid "System Notifications" -msgstr "Notificaciones de sistema" - -#: ../../mod/page.php:126 -msgid "" -"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " -"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," -" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " -"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " -"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " -"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." -msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - -#: ../../mod/new_channel.php:109 -msgid "Add a Channel" -msgstr "Añadir un canal" - -#: ../../mod/new_channel.php:110 -msgid "" -"A channel is your own collection of related web pages. A channel can be used" -" to hold social network profiles, blogs, conversation groups and forums, " -"celebrity pages, and much more. You may create as many channels as your " -"service provider allows." -msgstr "Un canal está formado por su propia colección de páginas web relacionadas. Se puede utilizar para almacenar los perfiles sociales de la red, blogs, grupos de conversación y foros, páginas de famosos y mucho más. Puede crear tantos canales como su proveedor de servicio permita." - -#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 -#: ../../mod/sources.php:137 -msgid "Channel Name" -msgstr "Nombre del canal" - -#: ../../mod/new_channel.php:113 -msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " -msgstr "Ejemplos: \"Juan García\", \"Isabel y sus caballos\", \"Fútbol\", \"Grupo de parapente\" " - -#: ../../mod/new_channel.php:114 -msgid "Choose a short nickname" -msgstr "Elija un alias corto" - -#: ../../mod/new_channel.php:115 -msgid "" -"Your nickname will be used to create an easily remembered channel address " -"(like an email address) which you can share with others." -msgstr "Su alias podrá usarse para crear una dirección de canal fácilmente memorizable (como una dirección de correo electrónico) que puede ser compartido con otros." - -#: ../../mod/new_channel.php:116 -msgid "Or <a href=\"import\">import an existing channel</a> from another location" -msgstr "O <a href=\"import\">importar un canal existente</a> de otro lugar" - -#: ../../mod/new_channel.php:118 -msgid "" -"Please choose a channel type (such as social networking or community forum) " -"and privacy requirements so we can select the best permissions for you" -msgstr "Elija el tipo de canal (como red social o foro de discusión) y la privacidad que requiera, así podremos seleccionar el mejor conjunto de permisos para usted" - -#: ../../mod/new_channel.php:119 -msgid "Channel Type" -msgstr "Tipo de canal" - -#: ../../mod/new_channel.php:119 -msgid "Read more about roles" -msgstr "Leer más sobre los roles" - -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." -msgstr "Petición inválida del identificador." - -#: ../../mod/notifications.php:35 -msgid "Discard" -msgstr "Descartar" - -#: ../../mod/pdledit.php:13 -msgid "Layout updated." -msgstr "Formato actualizado" - -#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 -msgid "Edit System Page Description" -msgstr "Editor del Sistema de Descripción de Páginas" - -#: ../../mod/pdledit.php:48 -msgid "Layout not found." -msgstr "Formato no encontrado" - -#: ../../mod/pdledit.php:54 -msgid "Module Name:" -msgstr "Nombre del módulo:" - -#: ../../mod/pdledit.php:55 -msgid "Layout Help" -msgstr "Ayuda para el diseño de la página" - -#: ../../mod/subthread.php:108 -#, 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 -#, php-format -msgid "%1$s stopped following %2$s's %3$s" -msgstr "%1$s ha dejado de seguir %3$s de %2$s" - -#: ../../mod/lostpass.php:15 -msgid "No valid account found." -msgstr "No se ha encontrado una cuenta válida." - -#: ../../mod/lostpass.php:29 -msgid "Password reset request issued. Check your email." -msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico." - -#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 -#, php-format -msgid "Site Member (%s)" -msgstr "Usuario del sitio (%s)" - -#: ../../mod/lostpass.php:40 -#, php-format -msgid "Password reset requested at %s" -msgstr "Se ha solicitado restablecer la contraseña en %s" - -#: ../../mod/lostpass.php:63 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"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:1511 -msgid "Password Reset" -msgstr "Restablecer la contraseña" - -#: ../../mod/lostpass.php:87 -msgid "Your password has been reset as requested." -msgstr "Su contraseña ha sido restablecida según lo solicitó." - -#: ../../mod/lostpass.php:88 -msgid "Your new password is" -msgstr "Su nueva contraseña es" - -#: ../../mod/lostpass.php:89 -msgid "Save or copy your new password - and then" -msgstr "Guarde o copie su nueva contraseña - y después" - -#: ../../mod/lostpass.php:90 -msgid "click here to login" -msgstr "pulse aquí para conectarse" - -#: ../../mod/lostpass.php:91 -msgid "" -"Your password may be changed from the <em>Settings</em> page after " -"successful login." -msgstr "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión." - -#: ../../mod/lostpass.php:108 -#, php-format -msgid "Your password has changed at %s" -msgstr "Su contraseña en %s ha sido cambiada" - -#: ../../mod/lostpass.php:123 -msgid "Forgot your Password?" -msgstr "¿Ha olvidado su contraseña?" - -#: ../../mod/lostpass.php:124 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones." - -#: ../../mod/lostpass.php:125 -msgid "Email Address" -msgstr "Dirección de correo electrónico" - -#: ../../mod/lostpass.php:126 -msgid "Reset" -msgstr "Reiniciar" - -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 -msgid "$Projectname" -msgstr "$Projectname" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "Bienvenido a %s" - -#: ../../mod/dav.php:121 -msgid "$Projectname channel" -msgstr "Canal $Projectname" - -#: ../../mod/events.php:21 -msgid "Calendar entries imported." -msgstr "Entradas de calendario importadas." - -#: ../../mod/events.php:23 -msgid "No calendar entries found." -msgstr "No se han encontrado entradas de calendario." - -#: ../../mod/events.php:96 -msgid "Event can not end before it has started." -msgstr "Un evento no puede terminar antes de que haya comenzado." - -#: ../../mod/events.php:98 ../../mod/events.php:107 ../../mod/events.php:127 -msgid "Unable to generate preview." -msgstr "No se puede crear la vista previa." - -#: ../../mod/events.php:105 -msgid "Event title and start time are required." -msgstr "Se requieren el título del evento y su hora de inicio." - -#: ../../mod/events.php:125 ../../mod/events.php:250 -msgid "Event not found." -msgstr "Evento no encontrado." - -#: ../../mod/events.php:448 -msgid "l, F j" -msgstr "l j F" - -#: ../../mod/events.php:470 -msgid "Edit event" -msgstr "Editar evento" - -#: ../../mod/events.php:472 -msgid "Delete event" -msgstr "Borrar evento" - -#: ../../mod/events.php:506 -msgid "calendar" -msgstr "calendario" - -#: ../../mod/events.php:527 -msgid "Create New Event" -msgstr "Crear un nuevo evento" - -#: ../../mod/events.php:530 -msgid "Export" -msgstr "Exportar" - -#: ../../mod/events.php:533 -msgid "Import" -msgstr "Importar" - -#: ../../mod/events.php:564 -msgid "Event removed" -msgstr "Evento borrado" - -#: ../../mod/events.php:567 -msgid "Failed to remove event" -msgstr "Error al eliminar el evento" - -#: ../../mod/events.php:681 -msgid "Event details" -msgstr "Detalles del evento" - -#: ../../mod/events.php:682 -msgid "Starting date and Title are required." -msgstr "Se requieren fecha y título." - -#: ../../mod/events.php:684 -msgid "Categories (comma-separated list)" -msgstr "Categorías (lista separada por comas)" - -#: ../../mod/events.php:686 -msgid "Event Starts:" -msgstr "Inicio del evento:" - -#: ../../mod/events.php:693 -msgid "Finish date/time is not known or not relevant" -msgstr "La fecha / hora de finalización no se conocen o no son relevantes" - -#: ../../mod/events.php:695 -msgid "Event Finishes:" -msgstr "Finalización del evento:" - -#: ../../mod/events.php:697 ../../mod/events.php:698 -msgid "Adjust for viewer timezone" -msgstr "Ajustar para obtener el visor de zona horaria" - -#: ../../mod/events.php:697 -msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." -msgstr "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales." - -#: ../../mod/events.php:703 -msgid "Title:" -msgstr "Título:" - -#: ../../mod/events.php:705 -msgid "Share this event" -msgstr "Compartir este evento" - -#: ../../mod/impel.php:192 -#, php-format -msgid "%s element installed" -msgstr "%s elemento instalado" - -#: ../../mod/impel.php:195 -#, php-format -msgid "%s element installation failed" -msgstr "Elemento con instalación fallida: %s" - -#: ../../mod/probe.php:24 ../../mod/probe.php:30 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "Al intentar obtener la dirección, retorna el error: %1$s" - -#: ../../mod/match.php:22 -msgid "Profile Match" -msgstr "Perfil compatible" - -#: ../../mod/match.php:31 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal." - -#: ../../mod/match.php:63 -msgid "is interested in:" -msgstr "está interesado en:" - -#: ../../mod/match.php:70 -msgid "No matches" -msgstr "No se han encontrado perfiles compatibles" - -#: ../../mod/profile_photo.php:111 -msgid "Image uploaded but image cropping failed." -msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. " - -#: ../../mod/profile_photo.php:165 -msgid "Image resize failed." -msgstr "El ajuste del tamaño de la imagen ha fallado." - -#: ../../mod/profile_photo.php:209 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente." - -#: ../../mod/profile_photo.php:247 -msgid "Image upload failed." -msgstr "Subida de imagen fallida." - -#: ../../mod/profile_photo.php:266 -msgid "Unable to process image." -msgstr "No ha sido posible procesar la imagen." - -#: ../../mod/profile_photo.php:294 -msgid "female" -msgstr "mujer" - -#: ../../mod/profile_photo.php:295 -#, php-format -msgid "%1$s updated her %2$s" -msgstr "%1$s ha actualizado su %2$s" - -#: ../../mod/profile_photo.php:296 -msgid "male" -msgstr "hombre" - -#: ../../mod/profile_photo.php:297 -#, php-format -msgid "%1$s updated his %2$s" -msgstr "%1$s ha actualizado su %2$s" - -#: ../../mod/profile_photo.php:299 -#, php-format -msgid "%1$s updated their %2$s" -msgstr "%1$s ha actualizado sus %2$s" - -#: ../../mod/profile_photo.php:301 -msgid "profile photo" -msgstr "foto del perfil" - -#: ../../mod/profile_photo.php:365 ../../mod/profile_photo.php:406 -msgid "Photo not available." -msgstr "Foto no disponible." - -#: ../../mod/profile_photo.php:447 -msgid "Upload File:" -msgstr "Subir fichero:" - -#: ../../mod/profile_photo.php:448 -msgid "Select a profile:" -msgstr "Seleccionar un perfil:" - -#: ../../mod/profile_photo.php:449 -msgid "Upload Profile Photo" -msgstr "Subir foto del perfil" - -#: ../../mod/profile_photo.php:454 ../../mod/settings.php:973 -msgid "or" -msgstr "o" - -#: ../../mod/profile_photo.php:454 -msgid "skip this step" -msgstr "Omitir este paso" - -#: ../../mod/profile_photo.php:454 -msgid "select a photo from your photo albums" -msgstr "Seleccione una foto de sus álbumes de fotos" - -#: ../../mod/profile_photo.php:470 -msgid "Crop Image" -msgstr "Recortar imagen" - -#: ../../mod/profile_photo.php:471 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Por favor ajuste el recorte de la imagen para una visión óptima." - -#: ../../mod/profile_photo.php:473 -msgid "Done Editing" -msgstr "Edición completada" - -#: ../../mod/follow.php:25 -msgid "Channel added." -msgstr "Canal añadido." - -#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 -msgid "Tag removed" -msgstr "Etiqueta eliminada." - -#: ../../mod/tagrm.php:119 -msgid "Remove Item Tag" -msgstr "Eliminar etiqueta del elemento." - -#: ../../mod/tagrm.php:121 -msgid "Select a tag to remove: " -msgstr "Seleccionar una etiqueta para eliminar:" - -#: ../../mod/ratings.php:69 -msgid "No ratings" -msgstr "Ninguna valoración" - -#: ../../mod/ratings.php:99 -msgid "Ratings" -msgstr "Valoraciones" - -#: ../../mod/ratings.php:100 -msgid "Rating: " -msgstr "Valoración:" - -#: ../../mod/ratings.php:101 -msgid "Website: " -msgstr "Sitio web:" - -#: ../../mod/ratings.php:103 -msgid "Description: " -msgstr "Descripción:" - -#: ../../mod/item.php:173 -msgid "Unable to locate original post." -msgstr "No ha sido posible encontrar la entrada original." - -#: ../../mod/item.php:417 -msgid "Empty post discarded." -msgstr "La entrada vacía ha sido desechada." - -#: ../../mod/item.php:457 -msgid "Executable content type not permitted to this channel." -msgstr "Contenido de tipo ejecutable no permitido en este canal." - -#: ../../mod/item.php:908 -msgid "System error. Post not saved." -msgstr "Error del sistema. La entrada no se ha podido salvar." - -#: ../../mod/item.php:1175 -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:1182 -#, 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:1189 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Ha alcanzado su límite de %1$.0f páginas web." - -#: ../../mod/webpages.php:191 -msgid "Page Title" -msgstr "Título de página" - -#: ../../mod/register.php:44 -msgid "Maximum daily site registrations exceeded. Please try again tomorrow." -msgstr "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana." - -#: ../../mod/register.php:50 -msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." -msgstr "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado." - -#: ../../mod/register.php:84 -msgid "Passwords do not match." -msgstr "Las contraseñas no coinciden." - -#: ../../mod/register.php:117 -msgid "" -"Registration successful. Please check your email for validation " -"instructions." -msgstr "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo." - -#: ../../mod/register.php:123 -msgid "Your registration is pending approval by the site owner." -msgstr "Su registro está pendiente de aprobación por el propietario del sitio." - -#: ../../mod/register.php:126 -msgid "Your registration can not be processed." -msgstr "Su registro no puede ser procesado." - -#: ../../mod/register.php:163 -msgid "Registration on this site/hub is by approval only." -msgstr "El registro en este servidor/hub está sometido a aprobación previa." - -#: ../../mod/register.php:164 -msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" -msgstr "<a href=\"pubsites\">Inscribirse en un servidor/hub afiliado</a>" - -#: ../../mod/register.php:174 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana." - -#: ../../mod/register.php:185 -msgid "Terms of Service" -msgstr "Términos del servicio" - -#: ../../mod/register.php:191 -#, php-format -msgid "I accept the %s for this website" -msgstr "Acepto los %s de este sitio" - -#: ../../mod/register.php:193 -#, php-format -msgid "I am over 13 years of age and accept the %s for this website" -msgstr "Tengo más de 13 años de edad y acepto los %s de este sitio" - -#: ../../mod/register.php:212 -msgid "Membership on this site is by invitation only." -msgstr "Para registrarse en este sitio es necesaria una invitación." - -#: ../../mod/register.php:213 -msgid "Please enter your invitation code" -msgstr "Por favor, introduzca el código de su invitación" - -#: ../../mod/register.php:216 -msgid "Your email address" -msgstr "Su dirección de correo electrónico" - -#: ../../mod/register.php:217 -msgid "Choose a password" -msgstr "Elija una contraseña" - -#: ../../mod/register.php:218 -msgid "Please re-enter your password" -msgstr "Por favor, vuelva a escribir su contraseña" - -#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 -msgid "Block Name" -msgstr "Nombre del bloque" - -#: ../../mod/blocks.php:149 -msgid "Block Title" -msgstr "Título del bloque" - -#: ../../mod/removeaccount.php:30 -msgid "" -"Account removals are not allowed within 48 hours of changing the account " -"password." -msgstr "La eliminación de cuentas no está permitida hasta después de que hayan transcurrido 48 horas desde el último cambio de contraseña." - -#: ../../mod/removeaccount.php:57 -msgid "Remove This Account" -msgstr "Eliminar esta cuenta" - -#: ../../mod/removeaccount.php:58 -msgid "" -"This account and all its channels will be completely removed from the " -"network. " -msgstr "Esta cuenta y todos sus canales van a ser eliminados de la red." - -#: ../../mod/removeaccount.php:60 -msgid "" -"Remove this account, all its channels and all its channel clones from the " -"network" -msgstr "Remover esta cuenta, todos sus canales y clones de la red" - -#: ../../mod/removeaccount.php:60 -msgid "" -"By default only the instances of the channels located on this hub will be " -"removed from the network" -msgstr "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red" - -#: ../../mod/removeaccount.php:61 ../../mod/settings.php:698 -msgid "Remove Account" -msgstr "Eliminar cuenta" - -#: ../../mod/service_limits.php:19 -msgid "No service class restrictions found." -msgstr "No se han encontrado restricciones sobre esta clase de servicio." - -#: ../../mod/attach.php:9 -msgid "Item not available." -msgstr "Elemento no disponible" - -#: ../../mod/pubsites.php:18 -msgid "Public Sites" -msgstr "Sitios públicos" - -#: ../../mod/pubsites.php:21 -msgid "" -"The listed sites allow public registration for the $Projectname network. All" -" sites in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some sites may require subscription or" -" provide tiered service plans. The provider links <strong>may</strong> " -"provide additional details." -msgstr "Los sitios listados permiten el registro público en la red $Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales." - -#: ../../mod/pubsites.php:27 -msgid "Rate this hub" -msgstr "Valorar este sitio" - -#: ../../mod/pubsites.php:28 -msgid "Site URL" -msgstr "Dirección del sitio" - -#: ../../mod/pubsites.php:28 -msgid "Access Type" -msgstr "Tipo de acceso" - -#: ../../mod/pubsites.php:28 -msgid "Registration Policy" -msgstr "Normas de registro" - -#: ../../mod/pubsites.php:28 ../../mod/profiles.php:454 -msgid "Location" -msgstr "Ubicación" - -#: ../../mod/pubsites.php:28 -msgid "Project" -msgstr "Proyecto" - -#: ../../mod/pubsites.php:28 -msgid "View hub ratings" -msgstr "Ver las valoraciones del sitio" - -#: ../../mod/pubsites.php:32 -msgid "Rate" -msgstr "Valorar" - -#: ../../mod/pubsites.php:33 -msgid "View ratings" -msgstr "Ver valoraciones" - -#: ../../mod/sources.php:32 -msgid "Failed to create source. No channel selected." -msgstr "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado." - -#: ../../mod/sources.php:45 -msgid "Source created." -msgstr "Fuente creada." - -#: ../../mod/sources.php:57 -msgid "Source updated." -msgstr "Fuente actualizada." - -#: ../../mod/sources.php:82 -msgid "*" -msgstr "*" - -#: ../../mod/sources.php:89 -msgid "Manage remote sources of content for your channel." -msgstr "Gestionar contenido de origen remoto para su canal." - -#: ../../mod/sources.php:90 ../../mod/sources.php:100 -msgid "New Source" -msgstr "Nueva fuente" - -#: ../../mod/sources.php:101 ../../mod/sources.php:133 -msgid "" -"Import all or selected content from the following channel into this channel " -"and distribute it according to your channel settings." -msgstr "Importar todo el contenido o una selección de los siguientes canales en este canal y distribuirlo de acuerdo con sus ajustes." - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Only import content with these words (one per line)" -msgstr "Importar solo contenido que contenga estas palabras (una por línea)" - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Leave blank to import all public content" -msgstr "Dejar en blanco para importar todo el contenido público" - -#: ../../mod/sources.php:123 ../../mod/sources.php:150 -msgid "Source not found." -msgstr "Fuente no encontrada" - -#: ../../mod/sources.php:130 -msgid "Edit Source" -msgstr "Editar fuente" - -#: ../../mod/sources.php:131 -msgid "Delete Source" -msgstr "Eliminar fuente" - -#: ../../mod/sources.php:158 -msgid "Source removed" -msgstr "Fuente eliminada" - -#: ../../mod/sources.php:160 -msgid "Unable to remove source." -msgstr "Imposible eliminar la fuente." - -#: ../../mod/lockview.php:37 -msgid "Remote privacy information not available." -msgstr "La información privada remota no está disponible." - -#: ../../mod/lockview.php:58 -msgid "Visible to:" -msgstr "Visible para:" - -#: ../../mod/acl.php:222 -msgid "network" -msgstr "red" - -#: ../../mod/acl.php:232 -msgid "RSS" -msgstr "RSS" - -#: ../../mod/regmod.php:11 -msgid "Please login." -msgstr "Por favor, inicie sesión." - -#: ../../mod/rmagic.php:40 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita." - -#: ../../mod/rmagic.php:40 -msgid "The error message was:" -msgstr "El mensaje de error fue:" - -#: ../../mod/rmagic.php:44 -msgid "Authentication failed." -msgstr "Falló la autenticación." - -#: ../../mod/rmagic.php:84 -msgid "Remote Authentication" -msgstr "Acceso desde su servidor" - -#: ../../mod/rmagic.php:85 -msgid "Enter your channel address (e.g. channel@example.com)" -msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)" - -#: ../../mod/rmagic.php:86 -msgid "Authenticate" -msgstr "Acceder" - -#: ../../mod/channel.php:97 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Permisos insuficientes. Petición redirigida a la página del perfil." - -#: ../../mod/siteinfo.php:111 -#, php-format -msgid "Version %s" -msgstr "Versión %s" - -#: ../../mod/siteinfo.php:132 -msgid "Installed plugins/addons/apps:" -msgstr "Extensiones/Aplicaciones instaladas:" - -#: ../../mod/siteinfo.php:145 -msgid "No installed plugins/addons/apps" -msgstr "Extensiones/Aplicaciones no instaladas:" - -#: ../../mod/siteinfo.php:158 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." -msgstr "Este es un sitio integrado en $Projectname - una red cooperativa mundial de sitios web descentralizados de privacidad mejorada." - -#: ../../mod/siteinfo.php:160 -msgid "Tag: " -msgstr "Etiqueta:" - -#: ../../mod/siteinfo.php:162 -msgid "Last background fetch: " -msgstr "Última actualización en segundo plano:" - -#: ../../mod/siteinfo.php:164 -msgid "Current load average: " -msgstr "Carga media actual:" - -#: ../../mod/siteinfo.php:167 -msgid "Running at web location" -msgstr "Corriendo en el sitio web" - -#: ../../mod/siteinfo.php:168 -msgid "" -"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " -"about $Projectname." -msgstr "Por favor, visite <a href=\"http://hubzilla.org\">hubzilla.org</a> para más información sobre $Projectname." - -#: ../../mod/siteinfo.php:169 -msgid "Bug reports and issues: please visit" -msgstr "Informes de errores e incidencias: por, favor visite" - -#: ../../mod/siteinfo.php:171 -msgid "$projectname issues" -msgstr "Problemas en $projectname" - -#: ../../mod/siteinfo.php:172 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " -"com" -msgstr "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com" - -#: ../../mod/siteinfo.php:174 -msgid "Site Administrators" -msgstr "Administradores del sitio" - -#: ../../mod/import.php:27 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "Su paquete de servicios solo permite %d canales." - -#: ../../mod/import.php:65 ../../mod/import_items.php:38 -msgid "Nothing to import." -msgstr "No hay nada para importar." - -#: ../../mod/import.php:89 ../../mod/import_items.php:62 -msgid "Unable to download data from old server" -msgstr "No se han podido descargar datos de su antiguo servidor" - -#: ../../mod/import.php:95 ../../mod/import_items.php:68 -msgid "Imported file is empty." -msgstr "El fichero importado está vacío." - -#: ../../mod/import.php:115 ../../mod/import_items.php:82 -#, php-format -msgid "Warning: Database versions differ by %1$d updates." -msgstr "Atención: Las versiones de la base de datos difieren en %1$d actualizaciones." - -#: ../../mod/import.php:148 -msgid "No channel. Import failed." -msgstr "No hay canal. La importación ha fallado" - -#: ../../mod/import.php:499 -msgid "You must be logged in to use this feature." -msgstr "Debe estar registrado para poder usar esta funcionalidad." - -#: ../../mod/import.php:504 -msgid "Import Channel" -msgstr "Importar canal" - -#: ../../mod/import.php:505 -msgid "" -"Use this form to import an existing channel from a different server/hub. You" -" may retrieve the channel identity from the old server/hub via the network " -"or provide an export file." -msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación." - -#: ../../mod/import.php:506 ../../mod/import_items.php:121 -msgid "File to Upload" -msgstr "Fichero para subir" - -#: ../../mod/import.php:507 -msgid "Or provide the old server/hub details" -msgstr "O proporcione los detalles de su antiguo servidor/hub" - -#: ../../mod/import.php:508 -msgid "Your old identity address (xyz@example.com)" -msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)" - -#: ../../mod/import.php:509 -msgid "Your old login email address" -msgstr "Su antigua dirección de correo electrónico" - -#: ../../mod/import.php:510 -msgid "Your old login password" -msgstr "Su antigua contraseña" - -#: ../../mod/import.php:511 -msgid "" -"For either option, please choose whether to make this hub your new primary " -"address, or whether your old location should continue this role. You will be" -" able to post from either location, but only one can be marked as the " -"primary location for files, photos, and media." -msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua ubicación debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos." - -#: ../../mod/import.php:512 -msgid "Make this hub my primary location" -msgstr "Convertir este servidor en mi ubicación primaria" - -#: ../../mod/import.php:513 -msgid "" -"Import existing posts if possible (experimental - limited by available " -"memory" -msgstr "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible" - -#: ../../mod/import.php:514 -msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine." - -#: ../../mod/thing.php:111 -msgid "Thing updated" -msgstr "Elemento actualizado." - -#: ../../mod/thing.php:163 -msgid "Object store: failed" -msgstr "Guardar objeto: ha fallado" - -#: ../../mod/thing.php:167 -msgid "Thing added" -msgstr "Elemento añadido" - -#: ../../mod/thing.php:193 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" - -#: ../../mod/thing.php:256 -msgid "Show Thing" -msgstr "Mostrar elemento" - -#: ../../mod/thing.php:263 -msgid "item not found." -msgstr "elemento no encontrado." - -#: ../../mod/thing.php:296 -msgid "Edit Thing" -msgstr "Editar elemento" - -#: ../../mod/thing.php:298 ../../mod/thing.php:348 -msgid "Select a profile" -msgstr "Seleccionar un perfil" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Post an activity" -msgstr "Publicar una actividad" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Only sends to viewers of the applicable profile" -msgstr "Sólo enviar a espectadores del perfil pertinente." - -#: ../../mod/thing.php:304 ../../mod/thing.php:353 -msgid "Name of thing e.g. something" -msgstr "Nombre del elemento, p. ej.:. \"algo\"" - -#: ../../mod/thing.php:306 ../../mod/thing.php:354 -msgid "URL of thing (optional)" -msgstr "Dirección del elemento (opcional)" - -#: ../../mod/thing.php:308 ../../mod/thing.php:355 -msgid "URL for photo of thing (optional)" -msgstr "Dirección para la foto o elemento (opcional)" - -#: ../../mod/thing.php:346 -msgid "Add Thing to your Profile" -msgstr "Añadir alguna cosa a su perfil" - -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." -msgstr "Se ha superado el límite máximo de invitaciones." - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : No es una dirección de correo electrónico válida. " - -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" -msgstr "Únase a nosotros en $Projectname" - -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio." - -#: ../../mod/invite.php:92 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Falló el envío del mensaje." - -#: ../../mod/invite.php:96 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d mensajes enviados." -msgstr[1] "%d mensajes enviados." - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "No tiene más invitaciones disponibles" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "Enviar invitaciones" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" -msgstr "Introduzca las direcciones de correo electrónica, una por línea:" - -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" -msgstr "Su mensaje:" - -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." -msgstr "Por favor, únase a mi comunidad en $Projectname." - -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " -msgstr "Debe proporcionar este código de invitación:" - -#: ../../mod/invite.php:135 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Regístrese en cualquier sitio de $Projectname (están todos interconectados)" - -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Introduzca mi dirección $Projectname en la caja de búsqueda del sitio." - -#: ../../mod/invite.php:138 -msgid "or visit " -msgstr "o visite" - -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" -msgstr "3. Pulse [conectar]" - -#: ../../mod/mail.php:33 -msgid "Unable to lookup recipient." -msgstr "Imposible asociar a un destinatario." - -#: ../../mod/mail.php:41 -msgid "Unable to communicate with requested channel." -msgstr "Imposible comunicar con el canal solicitado." - -#: ../../mod/mail.php:48 -msgid "Cannot verify requested channel." -msgstr "No se puede verificar el canal solicitado." - -#: ../../mod/mail.php:74 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló." - -#: ../../mod/mail.php:132 -msgid "Messages" -msgstr "Mensajes" - -#: ../../mod/mail.php:167 -msgid "Message recalled." -msgstr "Mensaje revocado." - -#: ../../mod/mail.php:180 -msgid "Conversation removed." -msgstr "Conversación eliminada." - -#: ../../mod/mail.php:223 -msgid "Requested channel is not in this network" -msgstr "El canal solicitado no existe en esta red" - -#: ../../mod/mail.php:231 -msgid "Send Private Message" -msgstr "Enviar un mensaje privado" - -#: ../../mod/mail.php:232 ../../mod/mail.php:361 -msgid "To:" -msgstr "Para:" - -#: ../../mod/mail.php:235 ../../mod/mail.php:363 -msgid "Subject:" -msgstr "Asunto:" - -#: ../../mod/mail.php:242 -msgid "Send" -msgstr "Enviar" - -#: ../../mod/mail.php:333 -msgid "Delete message" -msgstr "Borrar mensaje" - -#: ../../mod/mail.php:334 -msgid "Delivery report" -msgstr "Informe de transmisión" - -#: ../../mod/mail.php:335 -msgid "Recall message" -msgstr "Revocar el mensaje" - -#: ../../mod/mail.php:337 -msgid "Message has been recalled." -msgstr "El mensaje ha sido revocado." - -#: ../../mod/mail.php:354 -msgid "Delete Conversation" -msgstr "Eliminar Conversación" - -#: ../../mod/mail.php:356 -msgid "" -"No secure communications available. You <strong>may</strong> be able to " -"respond from the sender's profile page." -msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente." - -#: ../../mod/mail.php:360 -msgid "Send Reply" -msgstr "Responder" +#: ../../mod/editlayout.php:112 +msgid "Delete layout?" +msgstr "¿Borrar el formato?" -#: ../../mod/mail.php:365 -#, php-format -msgid "Your message for %s (%s):" -msgstr "Su mensaje para %s (%s):" +#: ../../mod/editlayout.php:159 ../../mod/layouts.php:124 +msgid "Layout Description (Optional)" +msgstr "Descripción del formato gráfico (opcional)" -#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25 -#: ../../mod/update_home.php:21 ../../mod/update_network.php:23 -#: ../../mod/update_search.php:46 ../../mod/update_public.php:21 -msgid "[Embedded content - reload page to view]" -msgstr "[Contenido incorporado - recargue la página para poder verlo]" +#: ../../mod/editlayout.php:161 ../../mod/layouts.php:121 +#: ../../mod/layouts.php:179 +msgid "Layout Name" +msgstr "Nombre del formato" -#: ../../mod/viewsrc.php:40 -msgid "Source of Item" -msgstr "Origen del elemento" +#: ../../mod/editlayout.php:178 +msgid "Edit Layout" +msgstr "Modificar el formato" #: ../../mod/settings.php:76 msgid "Name is required" @@ -7522,797 +7595,611 @@ msgstr "Dirección de correo electrónico protegida. No se puede cambiar a ella. msgid "System failure storing new email. Please try again." msgstr "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo." -#: ../../mod/settings.php:519 +#: ../../mod/settings.php:521 msgid "Settings updated." msgstr "Ajustes actualizados." -#: ../../mod/settings.php:583 ../../mod/settings.php:609 -#: ../../mod/settings.php:645 +#: ../../mod/settings.php:585 ../../mod/settings.php:611 +#: ../../mod/settings.php:647 msgid "Add application" msgstr "Añadir aplicación" -#: ../../mod/settings.php:586 +#: ../../mod/settings.php:588 msgid "Name of application" msgstr "Nombre de la aplicación" -#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/settings.php:589 ../../mod/settings.php:615 msgid "Consumer Key" msgstr "Clave de consumidor" -#: ../../mod/settings.php:587 ../../mod/settings.php:588 +#: ../../mod/settings.php:589 ../../mod/settings.php:590 msgid "Automatically generated - change if desired. Max length 20" msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20" -#: ../../mod/settings.php:588 ../../mod/settings.php:614 +#: ../../mod/settings.php:590 ../../mod/settings.php:616 msgid "Consumer Secret" msgstr "Clave secreta de consumidor" -#: ../../mod/settings.php:589 ../../mod/settings.php:615 +#: ../../mod/settings.php:591 ../../mod/settings.php:617 msgid "Redirect" msgstr "Redirigir" -#: ../../mod/settings.php:589 +#: ../../mod/settings.php:591 msgid "" "Redirect URI - leave blank unless your application specifically requires " "this" msgstr "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera" -#: ../../mod/settings.php:590 ../../mod/settings.php:616 +#: ../../mod/settings.php:592 ../../mod/settings.php:618 msgid "Icon url" msgstr "Dirección del icono" -#: ../../mod/settings.php:590 +#: ../../mod/settings.php:592 msgid "Optional" msgstr "Opcional" -#: ../../mod/settings.php:601 +#: ../../mod/settings.php:603 msgid "You can't edit this application." msgstr "No puede modificar esta aplicación." -#: ../../mod/settings.php:644 +#: ../../mod/settings.php:646 msgid "Connected Apps" msgstr "Aplicaciones conectadas" -#: ../../mod/settings.php:648 +#: ../../mod/settings.php:650 msgid "Client key starts with" msgstr "La clave de cliente empieza por" -#: ../../mod/settings.php:649 +#: ../../mod/settings.php:651 msgid "No name" msgstr "Sin nombre" -#: ../../mod/settings.php:650 +#: ../../mod/settings.php:652 msgid "Remove authorization" msgstr "Eliminar autorización" -#: ../../mod/settings.php:663 +#: ../../mod/settings.php:665 msgid "No feature settings configured" msgstr "No se ha establecido la configuración de características" -#: ../../mod/settings.php:670 +#: ../../mod/settings.php:672 msgid "Feature/Addon Settings" msgstr "Ajustes de la característica o el complemento" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Account Settings" msgstr "Configuración de la cuenta" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Enter New Password:" msgstr "Introduzca la nueva contraseña:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Confirm New Password:" msgstr "Confirme la nueva contraseña:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Leave password fields blank unless changing" msgstr "Dejar en blanco los campos de contraseña a menos que cambie" -#: ../../mod/settings.php:697 ../../mod/settings.php:1028 +#: ../../mod/settings.php:699 ../../mod/settings.php:1030 msgid "Email Address:" msgstr "Dirección de correo electrónico:" -#: ../../mod/settings.php:699 +#: ../../mod/settings.php:701 msgid "Remove this account including all its channels" msgstr "Eliminar esta cuenta incluyendo todos sus canales" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "Off" msgstr "Desactivado" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "On" msgstr "Activado" -#: ../../mod/settings.php:722 +#: ../../mod/settings.php:724 msgid "Additional Features" msgstr "Características adicionales" -#: ../../mod/settings.php:746 +#: ../../mod/settings.php:748 msgid "Connector Settings" msgstr "Configuración del conector" -#: ../../mod/settings.php:785 +#: ../../mod/settings.php:787 msgid "No special theme for mobile devices" msgstr "Sin tema especial para dispositivos móviles" -#: ../../mod/settings.php:788 +#: ../../mod/settings.php:790 #, php-format msgid "%s - (Experimental)" msgstr "%s - (Experimental)" -#: ../../mod/settings.php:827 +#: ../../mod/settings.php:829 msgid "Display Settings" msgstr "Ajustes de visualización" -#: ../../mod/settings.php:828 +#: ../../mod/settings.php:830 msgid "Theme Settings" msgstr "Ajustes del tema" -#: ../../mod/settings.php:829 +#: ../../mod/settings.php:831 msgid "Custom Theme Settings" msgstr "Ajustes personalizados del tema" -#: ../../mod/settings.php:830 +#: ../../mod/settings.php:832 msgid "Content Settings" msgstr "Ajustes del contenido" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:838 msgid "Display Theme:" msgstr "Tema gráfico del perfil:" -#: ../../mod/settings.php:837 +#: ../../mod/settings.php:839 msgid "Mobile Theme:" msgstr "Tema para el móvil:" -#: ../../mod/settings.php:838 +#: ../../mod/settings.php:840 msgid "Enable user zoom on mobile devices" msgstr "Habilitar zoom de usuario en dispositivos móviles" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Update browser every xx seconds" msgstr "Actualizar navegador cada xx segundos" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Minimum of 10 seconds, no maximum" msgstr "Mínimo de 10 segundos, sin máximo" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum number of conversations to load at any time:" msgstr "Máximo número de conversaciones a cargar en cualquier momento:" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum of 100 items" msgstr "Máximo de 100 elementos" -#: ../../mod/settings.php:841 +#: ../../mod/settings.php:843 msgid "Show emoticons (smilies) as images" msgstr "Mostrar emoticonos (smilies) como imágenes" -#: ../../mod/settings.php:842 +#: ../../mod/settings.php:844 msgid "Link post titles to source" msgstr "Enlazar título de la publicación a la fuente original" -#: ../../mod/settings.php:843 +#: ../../mod/settings.php:845 msgid "System Page Layout Editor - (advanced)" msgstr "Editor de diseño de página del sistema - (avanzado)" -#: ../../mod/settings.php:846 +#: ../../mod/settings.php:848 msgid "Use blog/list mode on channel page" msgstr "Usar modo blog/lista en la página de inicio del canal" -#: ../../mod/settings.php:846 ../../mod/settings.php:847 +#: ../../mod/settings.php:848 ../../mod/settings.php:849 msgid "(comments displayed separately)" msgstr "(comentarios mostrados de forma separada)" -#: ../../mod/settings.php:847 +#: ../../mod/settings.php:849 msgid "Use blog/list mode on matrix page" msgstr "Mostrar la red en modo blog/lista" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:850 msgid "Channel page max height of content (in pixels)" msgstr "Altura máxima del contenido de la página del canal (en píxeles)" -#: ../../mod/settings.php:848 ../../mod/settings.php:849 +#: ../../mod/settings.php:850 ../../mod/settings.php:851 msgid "click to expand content exceeding this height" msgstr "Pulsar para expandir el contenido que exceda de esta altura" -#: ../../mod/settings.php:849 +#: ../../mod/settings.php:851 msgid "Matrix page max height of content (in pixels)" msgstr "Altura máxima del contenido de la página de su red (en píxeles)" -#: ../../mod/settings.php:883 +#: ../../mod/settings.php:885 msgid "Nobody except yourself" msgstr "Nadie excepto usted" -#: ../../mod/settings.php:884 +#: ../../mod/settings.php:886 msgid "Only those you specifically allow" msgstr "Solo aquellos a los que usted permita explícitamente" -#: ../../mod/settings.php:885 +#: ../../mod/settings.php:887 msgid "Approved connections" msgstr "Conexiones aprobadas" -#: ../../mod/settings.php:886 +#: ../../mod/settings.php:888 msgid "Any connections" msgstr "Cualquier conexión" -#: ../../mod/settings.php:887 +#: ../../mod/settings.php:889 msgid "Anybody on this website" msgstr "Cualquiera en este sitio web" -#: ../../mod/settings.php:888 +#: ../../mod/settings.php:890 msgid "Anybody in this network" msgstr "Cualquiera en esta red" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:891 msgid "Anybody authenticated" msgstr "Cualquiera que esté autenticado" -#: ../../mod/settings.php:890 +#: ../../mod/settings.php:892 msgid "Anybody on the internet" msgstr "Cualquiera en internet" -#: ../../mod/settings.php:964 +#: ../../mod/settings.php:966 msgid "Publish your default profile in the network directory" msgstr "Publicar su perfil principal en el directorio de la red" -#: ../../mod/settings.php:969 +#: ../../mod/settings.php:971 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:980 msgid "Your channel address is" msgstr "Su dirección de canal es" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1021 msgid "Channel Settings" msgstr "Ajustes del canal" -#: ../../mod/settings.php:1026 +#: ../../mod/settings.php:1028 msgid "Basic Settings" msgstr "Configuración básica" -#: ../../mod/settings.php:1029 +#: ../../mod/settings.php:1031 msgid "Your Timezone:" msgstr "Su zona horaria:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Default Post Location:" msgstr "Ubicación de publicación predeterminada:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Geographical location to display on your posts" msgstr "Ubicación geográfica que debe mostrarse en sus publicaciones" -#: ../../mod/settings.php:1031 +#: ../../mod/settings.php:1033 msgid "Use Browser Location:" msgstr "Usar la ubicación del navegador:" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "Adult Content" msgstr "Contenido solo para adultos" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "" "This channel frequently or regularly publishes adult content. (Please tag " "any adult material and/or nudity with #NSFW)" msgstr "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)" -#: ../../mod/settings.php:1035 +#: ../../mod/settings.php:1037 msgid "Security and Privacy Settings" msgstr "Configuración de seguridad y privacidad" -#: ../../mod/settings.php:1037 +#: ../../mod/settings.php:1039 msgid "Your permissions are already configured. Click to view/adjust" msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Hide my online presence" msgstr "Ocultar mi presencia en línea" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Prevents displaying in your profile that you are online" msgstr "Evitar mostrar en su perfil que está en línea" -#: ../../mod/settings.php:1041 +#: ../../mod/settings.php:1043 msgid "Simple Privacy Settings:" msgstr "Configuración de privacidad sencilla:" -#: ../../mod/settings.php:1042 +#: ../../mod/settings.php:1044 msgid "" "Very Public - <em>extremely permissive (should be used with caution)</em>" msgstr "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>" -#: ../../mod/settings.php:1043 +#: ../../mod/settings.php:1045 msgid "" "Typical - <em>default public, privacy when desired (similar to social " "network permissions but with improved privacy)</em>" msgstr "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>" -#: ../../mod/settings.php:1044 +#: ../../mod/settings.php:1046 msgid "Private - <em>default private, never open or public</em>" msgstr "Privado - <em>por defecto, privado, nunca abierto o público</em>" -#: ../../mod/settings.php:1045 +#: ../../mod/settings.php:1047 msgid "Blocked - <em>default blocked to/from everybody</em>" msgstr "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "Allow others to tag your posts" msgstr "Permitir a otros etiquetar sus publicaciones" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "" "Often used by the community to retro-actively flag inappropriate content" msgstr "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva." -#: ../../mod/settings.php:1049 +#: ../../mod/settings.php:1051 msgid "Advanced Privacy Settings" msgstr "Configuración de privacidad avanzada" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "Expire other channel content after this many days" msgstr "Caducar contenido de otros canales después de este número de días" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "0 or blank prevents expiration" msgstr "0 o en claro evitan la caducidad" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "Maximum Friend Requests/Day:" msgstr "Máximo de solicitudes de amistad por día:" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "May reduce spam activity" msgstr "Podría reducir la actividad de spam" -#: ../../mod/settings.php:1053 +#: ../../mod/settings.php:1055 msgid "Default Post Permissions" msgstr "Permisos de publicación predeterminados" -#: ../../mod/settings.php:1058 +#: ../../mod/settings.php:1056 ../../mod/mitem.php:150 ../../mod/mitem.php:223 +msgid "(click to open/close)" +msgstr "(pulsar para abrir o cerrar)" + +#: ../../mod/settings.php:1060 msgid "Channel permissions category:" msgstr "Categoría de permisos del canal:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Maximum private messages per day from unknown people:" msgstr "Máximo de mensajes privados por día de gente desconocida:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Useful to reduce spamming" msgstr "Útil para reducir el envío de correo no deseado" -#: ../../mod/settings.php:1067 +#: ../../mod/settings.php:1069 msgid "Notification Settings" msgstr "Configuración de notificaciones" -#: ../../mod/settings.php:1068 +#: ../../mod/settings.php:1070 msgid "By default post a status message when:" msgstr "Por defecto, enviar un mensaje de estado cuando:" -#: ../../mod/settings.php:1069 +#: ../../mod/settings.php:1071 msgid "accepting a friend request" msgstr "acepte una solicitud de amistad" -#: ../../mod/settings.php:1070 +#: ../../mod/settings.php:1072 msgid "joining a forum/community" msgstr "al unirse a un foro o comunidad" -#: ../../mod/settings.php:1071 +#: ../../mod/settings.php:1073 msgid "making an <em>interesting</em> profile change" msgstr "realice un cambio <em>interesante</em> en su perfil" -#: ../../mod/settings.php:1072 +#: ../../mod/settings.php:1074 msgid "Send a notification email when:" msgstr "Enviar una notificación por correo electrónico cuando:" -#: ../../mod/settings.php:1073 +#: ../../mod/settings.php:1075 msgid "You receive a connection request" msgstr "Reciba una solicitud de conexión" -#: ../../mod/settings.php:1074 +#: ../../mod/settings.php:1076 msgid "Your connections are confirmed" msgstr "Sus conexiones hayan sido confirmadas" -#: ../../mod/settings.php:1075 +#: ../../mod/settings.php:1077 msgid "Someone writes on your profile wall" msgstr "Alguien escriba en la página de su perfil (muro)" -#: ../../mod/settings.php:1076 +#: ../../mod/settings.php:1078 msgid "Someone writes a followup comment" msgstr "Alguien escriba un comentario sobre sus publicaciones" -#: ../../mod/settings.php:1077 +#: ../../mod/settings.php:1079 msgid "You receive a private message" msgstr "Reciba un mensaje privado" -#: ../../mod/settings.php:1078 +#: ../../mod/settings.php:1080 msgid "You receive a friend suggestion" msgstr "Reciba una sugerencia de amistad" -#: ../../mod/settings.php:1079 +#: ../../mod/settings.php:1081 msgid "You are tagged in a post" msgstr "Usted sea etiquetado en una publicación" -#: ../../mod/settings.php:1080 +#: ../../mod/settings.php:1082 msgid "You are poked/prodded/etc. in a post" msgstr "Reciba un toque o incitación en una entrada" -#: ../../mod/settings.php:1083 +#: ../../mod/settings.php:1085 msgid "Show visual notifications including:" msgstr "Mostrar notificaciones visuales que incluyan:" -#: ../../mod/settings.php:1085 +#: ../../mod/settings.php:1087 msgid "Unseen matrix activity" msgstr "Actividad no vista en la red" -#: ../../mod/settings.php:1086 +#: ../../mod/settings.php:1088 msgid "Unseen channel activity" msgstr "Actividad no vista en el canal" -#: ../../mod/settings.php:1087 +#: ../../mod/settings.php:1089 msgid "Unseen private messages" msgstr "Mensajes privados no leídos" -#: ../../mod/settings.php:1087 ../../mod/settings.php:1092 -#: ../../mod/settings.php:1093 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1089 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1095 ../../mod/settings.php:1096 msgid "Recommended" msgstr "Recomendado" -#: ../../mod/settings.php:1088 +#: ../../mod/settings.php:1090 msgid "Upcoming events" msgstr "Próximos eventos" -#: ../../mod/settings.php:1089 +#: ../../mod/settings.php:1091 msgid "Events today" msgstr "Eventos de hoy" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Upcoming birthdays" msgstr "Próximos cumpleaños" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Not available in all themes" msgstr "No disponible en todos los temas" -#: ../../mod/settings.php:1091 +#: ../../mod/settings.php:1093 msgid "System (personal) notifications" msgstr "Notificaciones del sistema (personales)" -#: ../../mod/settings.php:1092 +#: ../../mod/settings.php:1094 msgid "System info messages" msgstr "Mensajes de información del sistema" -#: ../../mod/settings.php:1093 +#: ../../mod/settings.php:1095 msgid "System critical alerts" msgstr "Alertas críticas del sistema" -#: ../../mod/settings.php:1094 +#: ../../mod/settings.php:1096 msgid "New connections" msgstr "Nuevas conexiones" -#: ../../mod/settings.php:1095 +#: ../../mod/settings.php:1097 msgid "System Registrations" msgstr "Registros del sistema" -#: ../../mod/settings.php:1096 +#: ../../mod/settings.php:1098 msgid "" "Also show new wall posts, private messages and connections under Notices" msgstr "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Notify me of events this many days in advance" msgstr "Avisarme de los eventos con algunos días de antelación" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Must be greater than 0" msgstr "Debe ser mayor que 0" -#: ../../mod/settings.php:1100 +#: ../../mod/settings.php:1102 msgid "Advanced Account/Page Type Settings" msgstr "Ajustes avanzados de la cuenta y de los tipos de página" -#: ../../mod/settings.php:1101 +#: ../../mod/settings.php:1103 msgid "Change the behaviour of this account for special situations" msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales" -#: ../../mod/settings.php:1104 +#: ../../mod/settings.php:1106 msgid "" "Please enable expert mode (in <a href=\"settings/features\">Settings > " "Additional features</a>) to adjust!" msgstr "Activar modo experto (en <a href=\"settings/features\">Ajustes > Características Adicionales</a>) para ajustar." -#: ../../mod/settings.php:1105 +#: ../../mod/settings.php:1107 msgid "Miscellaneous Settings" msgstr "Ajustes diversos" -#: ../../mod/settings.php:1106 +#: ../../mod/settings.php:1108 msgid "Default photo upload folder" msgstr "Carpeta por defecto de las fotos subidas" -#: ../../mod/settings.php:1106 ../../mod/settings.php:1107 +#: ../../mod/settings.php:1108 ../../mod/settings.php:1109 msgid "%Y - current year, %m - current month" msgstr "%Y - año en curso, %m - mes actual" -#: ../../mod/settings.php:1107 +#: ../../mod/settings.php:1109 msgid "Default file upload folder" msgstr "Carpeta por defecto de los archivos subidos" -#: ../../mod/settings.php:1109 +#: ../../mod/settings.php:1111 msgid "Personal menu to display in your channel pages" msgstr "Menú personal que debe mostrarse en las páginas de su canal" -#: ../../mod/settings.php:1111 +#: ../../mod/settings.php:1113 msgid "Remove this channel." msgstr "Eliminar este canal." -#: ../../mod/settings.php:1112 +#: ../../mod/settings.php:1114 msgid "Firefox Share $Projectname provider" msgstr "Servicio de compartición de Firefox: proveedor $Projectname" -#: ../../mod/xchan.php:6 -msgid "Xchan Lookup" -msgstr "Búsqueda de canales" - -#: ../../mod/xchan.php:9 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Buscar un canal (o un \"webbie\") que comience por:" - -#: ../../mod/manage.php:130 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Ha creado %1$.0f de %2$.0f canales permitidos." - -#: ../../mod/manage.php:138 -msgid "Create a new channel" -msgstr "Crear un nuevo canal" - -#: ../../mod/manage.php:161 -msgid "Current Channel" -msgstr "Canal actual" - -#: ../../mod/manage.php:163 -msgid "Switch to one of your channels by selecting it." -msgstr "Cambiar a uno de sus canales seleccionándolo." - -#: ../../mod/manage.php:164 -msgid "Default Channel" -msgstr "Canal principal" - -#: ../../mod/manage.php:165 -msgid "Make Default" -msgstr "Convertir en predeterminado" - -#: ../../mod/manage.php:168 -#, php-format -msgid "%d new messages" -msgstr "%d mensajes nuevos" - -#: ../../mod/manage.php:169 -#, php-format -msgid "%d new introductions" -msgstr "%d nuevas isolicitudes de conexión" - -#: ../../mod/manage.php:171 -msgid "Delegated Channels" -msgstr "Canales delegados" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autorizar una conexión de aplicación" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Volver a su aplicación e introducir este código de seguridad:" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Por favor inicia sesión para continuar." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?" - -#: ../../mod/connections.php:52 ../../mod/connections.php:150 -msgid "Blocked" -msgstr "Bloqueadas" - -#: ../../mod/connections.php:57 ../../mod/connections.php:157 -msgid "Ignored" -msgstr "Ignoradas" - -#: ../../mod/connections.php:62 ../../mod/connections.php:171 -msgid "Hidden" -msgstr "Ocultas" - -#: ../../mod/connections.php:67 ../../mod/connections.php:164 -msgid "Archived" -msgstr "Archivadas" - -#: ../../mod/connections.php:128 -msgid "Suggest new connections" -msgstr "Sugerir nuevas conexiones" - -#: ../../mod/connections.php:131 -msgid "New Connections" -msgstr "Nuevas conexiones" - -#: ../../mod/connections.php:134 -msgid "Show pending (new) connections" -msgstr "Mostrar conexiones (nuevas) pendientes" - -#: ../../mod/connections.php:137 ../../mod/profperm.php:139 -msgid "All Connections" -msgstr "Todas las conexiones" - -#: ../../mod/connections.php:140 -msgid "Show all connections" -msgstr "Mostrar todas las conexiones" - -#: ../../mod/connections.php:143 -msgid "Unblocked" -msgstr "Desbloqueadas" - -#: ../../mod/connections.php:146 -msgid "Only show unblocked connections" -msgstr "Mostrar solo las conexiones desbloqueadas" - -#: ../../mod/connections.php:153 -msgid "Only show blocked connections" -msgstr "Mostrar solo las conexiones bloqueadas" - -#: ../../mod/connections.php:160 -msgid "Only show ignored connections" -msgstr "Mostrar solo conexiones ignoradas" - -#: ../../mod/connections.php:167 -msgid "Only show archived connections" -msgstr "Mostrar solo las conexiones archivadas" - -#: ../../mod/connections.php:174 -msgid "Only show hidden connections" -msgstr "Mostrar solo las conexiones ocultas" - -#: ../../mod/connections.php:225 -#, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" - -#: ../../mod/connections.php:226 -msgid "Edit connection" -msgstr "Editar conexión" - -#: ../../mod/connections.php:264 -msgid "Search your connections" -msgstr "Buscar sus conexiones" - -#: ../../mod/connections.php:265 -msgid "Finding: " -msgstr "Búsqueda:" - -#: ../../mod/editlayout.php:112 -msgid "Delete layout?" -msgstr "¿Borrar el formato?" - -#: ../../mod/editlayout.php:178 -msgid "Edit Layout" -msgstr "Modificar el formato" - -#: ../../mod/editwebpage.php:153 -msgid "Delete webpage?" -msgstr "¿Eliminar la página web?" +#: ../../mod/settings.php:1115 +msgid "Start calendar week on monday" +msgstr "Comenzar el calendario semanal por el lunes" -#: ../../mod/editwebpage.php:172 -msgid "Page link title" -msgstr "Título del enlace de la página" - -#: ../../mod/editwebpage.php:222 -msgid "Edit Webpage" -msgstr "Editar la página web" - -#: ../../mod/group.php:20 -msgid "Collection created." -msgstr "La colección ha sido creada." - -#: ../../mod/group.php:26 -msgid "Could not create collection." -msgstr "No se puede crear la colección." - -#: ../../mod/group.php:54 -msgid "Collection updated." -msgstr "La colección ha sido actualizada." - -#: ../../mod/group.php:86 -msgid "Create a collection of channels." -msgstr "Crear una colección de canales." - -#: ../../mod/group.php:87 ../../mod/group.php:180 -msgid "Collection Name: " -msgstr "Nombre de la colección:" - -#: ../../mod/group.php:89 ../../mod/group.php:183 -msgid "Members are visible to other channels" -msgstr "Los miembros son visibles para otros canales" - -#: ../../mod/group.php:107 -msgid "Collection removed." -msgstr "La colección ha sido eliminada." +#: ../../mod/webpages.php:191 +msgid "Page Title" +msgstr "Título de página" -#: ../../mod/group.php:109 -msgid "Unable to remove collection." -msgstr "No ha sido posible de eliminar la colección." +#: ../../mod/appman.php:28 ../../mod/appman.php:44 +msgid "App installed." +msgstr "Aplicación instalada." -#: ../../mod/group.php:179 -msgid "Collection Editor" -msgstr "Editor de colecciones" +#: ../../mod/appman.php:37 +msgid "Malformed app." +msgstr "Aplicación con errores" -#: ../../mod/group.php:193 -msgid "Members" -msgstr "Miembros" +#: ../../mod/appman.php:80 +msgid "Embed code" +msgstr "Código incorporado" -#: ../../mod/group.php:195 -msgid "All Connected Channels" -msgstr "Todos los canales conectados" +#: ../../mod/appman.php:86 +msgid "Edit App" +msgstr "Modificar la aplicación" -#: ../../mod/group.php:227 -msgid "Click on a channel to add or remove." -msgstr "Haga clic en un canal para agregarlo o quitarlo." +#: ../../mod/appman.php:86 +msgid "Create App" +msgstr "Crear una aplicación" -#: ../../mod/connect.php:56 ../../mod/connect.php:104 -msgid "Continue" -msgstr "Continuar" +#: ../../mod/appman.php:91 +msgid "Name of app" +msgstr "Nombre de la aplicación" -#: ../../mod/connect.php:85 -msgid "Premium Channel Setup" -msgstr "Configuración del canal premium" +#: ../../mod/appman.php:92 +msgid "Location (URL) of app" +msgstr "Ubicación (URL) de la aplicación" -#: ../../mod/connect.php:87 -msgid "Enable premium channel connection restrictions" -msgstr "Habilitar restricciones de conexión del canal premium" +#: ../../mod/appman.php:94 +msgid "Photo icon URL" +msgstr "Dirección del icono que se va a utilizar para esta foto" -#: ../../mod/connect.php:88 -msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." -msgstr "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc." +#: ../../mod/appman.php:94 +msgid "80 x 80 pixels - optional" +msgstr "80 x 80 pixels - opcional" -#: ../../mod/connect.php:90 ../../mod/connect.php:110 -msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" -msgstr "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:" +#: ../../mod/appman.php:95 +msgid "Version ID" +msgstr "Versión" -#: ../../mod/connect.php:91 -msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:" +#: ../../mod/appman.php:96 +msgid "Price of app" +msgstr "Precio de la aplicación" -#: ../../mod/connect.php:92 ../../mod/connect.php:113 -msgid "" -"By continuing, I certify that I have complied with any instructions provided" -" on this page." -msgstr "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página." +#: ../../mod/appman.php:97 +msgid "Location (URL) to purchase app" +msgstr "Dirección (URL) donde adquirir la aplicación" -#: ../../mod/connect.php:101 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)" +#: ../../mod/filer.php:48 +msgid "- select -" +msgstr "- seleccionar -" -#: ../../mod/connect.php:109 -msgid "Restricted or Premium Channel" -msgstr "Canal premium o restringido" +#: ../../mod/layouts.php:176 +msgid "Comanche page description language help" +msgstr "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche" -#: ../../mod/viewconnections.php:59 -msgid "No connections." -msgstr "Sin conexiones." +#: ../../mod/layouts.php:180 +msgid "Layout Description" +msgstr "Descripción del formato" -#: ../../mod/viewconnections.php:72 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Visitar el perfil de %s [%s]" +#: ../../mod/layouts.php:185 +msgid "Download PDL file" +msgstr "Descargar el fichero PDL" #: ../../mod/locs.php:21 ../../mod/locs.php:50 msgid "Location not found." @@ -8370,698 +8257,748 @@ msgstr "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio msgid "Use this form to drop the location if the hub is no longer operating." msgstr "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo." -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please" -" logout and retry." -msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo." +#: ../../mod/mail.php:33 +msgid "Unable to lookup recipient." +msgstr "Imposible asociar a un destinatario." -#: ../../mod/ffsapi.php:8 -msgid "Share content from Firefox to $Projectname" -msgstr "Compartir contenido desde Firefox a $Projectname" +#: ../../mod/mail.php:41 +msgid "Unable to communicate with requested channel." +msgstr "Imposible comunicar con el canal solicitado." -#: ../../mod/ffsapi.php:11 -msgid "Activate the Firefox $Projectname provider" -msgstr "Servicio de compartición de Firefox: activar el proveedor $Projectname " +#: ../../mod/mail.php:48 +msgid "Cannot verify requested channel." +msgstr "No se puede verificar el canal solicitado." -#: ../../mod/setup.php:191 -msgid "$Projectname Server - Setup" -msgstr "Servidor $Projectname - Instalación" +#: ../../mod/mail.php:74 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló." -#: ../../mod/setup.php:195 -msgid "Could not connect to database." -msgstr "No se ha podido conectar a la base de datos." +#: ../../mod/mail.php:132 +msgid "Messages" +msgstr "Mensajes" -#: ../../mod/setup.php:199 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS." +#: ../../mod/mail.php:167 +msgid "Message recalled." +msgstr "Mensaje revocado." -#: ../../mod/setup.php:206 -msgid "Could not create table." -msgstr "No se puede crear la tabla." +#: ../../mod/mail.php:180 +msgid "Conversation removed." +msgstr "Conversación eliminada." -#: ../../mod/setup.php:211 -msgid "Your site database has been installed." -msgstr "La base de datos del sitio ha sido instalada." +#: ../../mod/mail.php:223 +msgid "Requested channel is not in this network" +msgstr "El canal solicitado no existe en esta red" -#: ../../mod/setup.php:215 -msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." -msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos." +#: ../../mod/mail.php:231 +msgid "Send Private Message" +msgstr "Enviar un mensaje privado" -#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"." +#: ../../mod/mail.php:232 ../../mod/mail.php:361 +msgid "To:" +msgstr "Para:" -#: ../../mod/setup.php:281 -msgid "System check" -msgstr "Verificación del sistema" +#: ../../mod/mail.php:235 ../../mod/mail.php:363 +msgid "Subject:" +msgstr "Asunto:" -#: ../../mod/setup.php:286 -msgid "Check again" -msgstr "Verificar de nuevo" +#: ../../mod/mail.php:238 ../../mod/invite.php:131 +msgid "Your message:" +msgstr "Su mensaje:" -#: ../../mod/setup.php:308 -msgid "Database connection" -msgstr "Conexión a la base de datos" +#: ../../mod/mail.php:242 +msgid "Send" +msgstr "Enviar" -#: ../../mod/setup.php:309 -msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." -msgstr "Para instalar $Projectname es necesario saber cómo conectar con su base de datos." +#: ../../mod/mail.php:333 +msgid "Delete message" +msgstr "Borrar mensaje" -#: ../../mod/setup.php:310 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes." +#: ../../mod/mail.php:334 +msgid "Delivery report" +msgstr "Informe de transmisión" -#: ../../mod/setup.php:311 +#: ../../mod/mail.php:335 +msgid "Recall message" +msgstr "Revocar el mensaje" + +#: ../../mod/mail.php:337 +msgid "Message has been recalled." +msgstr "El mensaje ha sido revocado." + +#: ../../mod/mail.php:354 +msgid "Delete Conversation" +msgstr "Eliminar conversación" + +#: ../../mod/mail.php:356 msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir." +"No secure communications available. You <strong>may</strong> be able to " +"respond from the sender's profile page." +msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente." -#: ../../mod/setup.php:315 -msgid "Database Server Name" -msgstr "Nombre del servidor de base de datos" +#: ../../mod/mail.php:360 +msgid "Send Reply" +msgstr "Responder" -#: ../../mod/setup.php:315 -msgid "Default is 127.0.0.1" -msgstr "De forma predeterminada es 127.0.0.1" +#: ../../mod/mail.php:365 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Su mensaje para %s (%s):" -#: ../../mod/setup.php:316 -msgid "Database Port" -msgstr "Puerto de la base de datos" +#: ../../mod/regmod.php:11 +msgid "Please login." +msgstr "Por favor, inicie sesión." -#: ../../mod/setup.php:316 -msgid "Communication port number - use 0 for default" -msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto" +#: ../../mod/xchan.php:6 +msgid "Xchan Lookup" +msgstr "Búsqueda de canales" -#: ../../mod/setup.php:317 -msgid "Database Login Name" -msgstr "Usuario de la base de datos" +#: ../../mod/xchan.php:9 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Buscar un canal (o un \"webbie\") que comience por:" -#: ../../mod/setup.php:318 -msgid "Database Login Password" -msgstr "Contraseña de acceso a la base de datos" +#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 +msgid "Not found." +msgstr "No encontrado." -#: ../../mod/setup.php:319 -msgid "Database Name" -msgstr "Nombre de la base de datos" +#: ../../mod/channel.php:25 ../../mod/chat.php:19 +msgid "You must be logged in to see this page." +msgstr "Debe haber iniciado sesión para poder ver esta página." -#: ../../mod/setup.php:320 -msgid "Database Type" -msgstr "Tipo de base de datos" +#: ../../mod/channel.php:97 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Permisos insuficientes. Petición redirigida a la página del perfil." -#: ../../mod/setup.php:322 ../../mod/setup.php:363 -msgid "Site administrator email address" -msgstr "Dirección de correo electrónico del administrador del sitio" +#: ../../mod/attach.php:9 +msgid "Item not available." +msgstr "Elemento no disponible" -#: ../../mod/setup.php:322 ../../mod/setup.php:363 +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." +msgstr "Se ha superado el límite máximo de invitaciones." + +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : No es una dirección de correo electrónico válida. " + +#: ../../mod/invite.php:76 +msgid "Please join us on $Projectname" +msgstr "Únase a nosotros en $Projectname" + +#: ../../mod/invite.php:87 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio." + +#: ../../mod/invite.php:92 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Falló el envío del mensaje." + +#: ../../mod/invite.php:96 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d mensajes enviados." +msgstr[1] "%d mensajes enviados." + +#: ../../mod/invite.php:115 +msgid "You have no more invitations available" +msgstr "No tiene más invitaciones disponibles" + +#: ../../mod/invite.php:129 +msgid "Send invitations" +msgstr "Enviar invitaciones" + +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" +msgstr "Introduzca las direcciones de correo electrónico, una por línea:" + +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." +msgstr "Por favor, únase a mi comunidad en $Projectname." + +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " +msgstr "Debe proporcionar este código de invitación:" + +#: ../../mod/invite.php:135 msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web." +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Regístrese en cualquier sitio de $Projectname (están todos interconectados)" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Website URL" -msgstr "Dirección del sitio web" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Introduzca mi dirección $Projectname en la caja de búsqueda del sitio." -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Please use SSL (https) URL if available." -msgstr "Por favor, use SSL (https) si está disponible." +#: ../../mod/invite.php:138 +msgid "or visit " +msgstr "o visite " -#: ../../mod/setup.php:325 ../../mod/setup.php:367 -msgid "Please select a default timezone for your website" -msgstr "Por favor, selecciones la zona horaria por defecto de su sitio web" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" +msgstr "3. Pulse [conectar]" -#: ../../mod/setup.php:352 -msgid "Site settings" -msgstr "Ajustes del sitio" +#: ../../mod/lockview.php:37 +msgid "Remote privacy information not available." +msgstr "La información privada remota no está disponible." -#: ../../mod/setup.php:417 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web." +#: ../../mod/lockview.php:58 +msgid "Visible to:" +msgstr "Visible para:" -#: ../../mod/setup.php:418 +#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 +msgid "Export Channel" +msgstr "Exportar el canal" + +#: ../../mod/uexport.php:53 msgid "" -"If you don't have a command line version of PHP installed on server, you " -"will not be able to run background polling via cron." -msgstr "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá ejecutar sondeos en segundo plano mediante cron." +"Export your basic channel information to a file. This acts as a backup of " +"your connections, permissions, profile and basic data, which can be used to " +"import your data to a new server hub, but does not contain your content." +msgstr "Exportar la información básica del canal a un fichero. Este equivale a una copia de seguridad de sus conexiones, el perfil y datos fundamentales, que puede usarse para importar sus datos a un nuevo servidor, pero no incluye su contenido." -#: ../../mod/setup.php:422 -msgid "PHP executable path" -msgstr "Ruta del ejecutable PHP" +#: ../../mod/uexport.php:54 +msgid "Export Content" +msgstr "Exportar contenidos" -#: ../../mod/setup.php:422 +#: ../../mod/uexport.php:55 msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación." +"Export your channel information and recent content to a JSON backup that can" +" be restored or imported to another server hub. This backs up all of your " +"connections, permissions, profile data and several months of posts. This " +"file may be VERY large. Please be patient - it may take several minutes for" +" this download to begin." +msgstr "Exportar la información sobre su canal y el contenido reciente a un fichero de respaldo JSON, que puede ser restaurado o importado a otro servidor. Este fichero incluye todas sus conexiones, permisos, datos del perfil y publicaciones de varios meses. Puede llegar a ser MUY grande. Por favor, sea paciente, la descarga puede tardar varios minutos en comenzar." -#: ../../mod/setup.php:427 -msgid "Command line PHP" -msgstr "PHP en línea de comandos" +#: ../../mod/uexport.php:56 +msgid "Export your posts from a given year." +msgstr "Exporta sus entradas de un año dado." -#: ../../mod/setup.php:436 +#: ../../mod/uexport.php:58 msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"." +"You may also export your posts and conversations for a particular year or " +"month. Adjust the date in your browser location bar to select other dates. " +"If the export fails (possibly due to memory exhaustion on your server hub), " +"please try again selecting a more limited date range." +msgstr "También puede exportar sus mensajes y conversaciones durante un año o mes en particular. Ajuste la fecha en la barra de direcciones del navegador para seleccionar otras fechas. Si la exportación falla (posiblemente debido al agotamiento de la memoria del servidor hub), por favor, intente de nuevo la selección de un rango de fechas más pequeño." -#: ../../mod/setup.php:437 -msgid "This is required for message delivery to work." -msgstr "Esto es necesario para que funcione la transmisión de mensajes." +#: ../../mod/uexport.php:59 +#, php-format +msgid "" +"To select all posts for a given year, such as this year, visit <a " +"href=\"%1$s\">%2$s</a>" +msgstr "Para seleccionar todos los mensajes de un año determinado, como este año, visite <a href=\"%1$s\">%2$s</a>" -#: ../../mod/setup.php:440 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" +#: ../../mod/uexport.php:60 +#, php-format +msgid "" +"To select all posts for a given month, such as January of this year, visit " +"<a href=\"%1$s\">%2$s</a>" +msgstr "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite <a href=\"%1$s\">%2$s</a>" -#: ../../mod/setup.php:458 +#: ../../mod/uexport.php:61 #, php-format msgid "" -"Your max allowed total upload size is set to %s. Maximum size of one file to" -" upload is set to %s. You are allowed to upload up to %d files at once." -msgstr "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez." +"These content files may be imported or restored by visiting <a " +"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" +" please import or restore these in date order (oldest first)." +msgstr "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1$s\">%2$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)." -#: ../../mod/setup.php:463 -msgid "You can adjust these settings in the servers php.ini." -msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor." +#: ../../mod/editpost.php:31 +msgid "Item is not editable" +msgstr "El elemento no es editable" -#: ../../mod/setup.php:465 -msgid "PHP upload limits" -msgstr "Límites PHP de subida" +#: ../../mod/editpost.php:57 +msgid "Delete item?" +msgstr "¿Borrar elemento?" -#: ../../mod/setup.php:488 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado." +#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 +msgid "Edit post" +msgstr "Editar la entrada" -#: ../../mod/setup.php:489 +#: ../../mod/follow.php:25 +msgid "Channel added." +msgstr "Canal añadido." + +#: ../../mod/rmagic.php:40 msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"." +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita." -#: ../../mod/setup.php:492 -msgid "Generate encryption keys" -msgstr "Generar claves de cifrado" +#: ../../mod/rmagic.php:40 +msgid "The error message was:" +msgstr "El mensaje de error fue:" -#: ../../mod/setup.php:504 -msgid "libCurl PHP module" -msgstr "módulo libCurl PHP" +#: ../../mod/rmagic.php:44 +msgid "Authentication failed." +msgstr "Falló la autenticación." -#: ../../mod/setup.php:505 -msgid "GD graphics PHP module" -msgstr "módulo PHP GD graphics" +#: ../../mod/rmagic.php:84 +msgid "Remote Authentication" +msgstr "Acceso desde su servidor" -#: ../../mod/setup.php:506 -msgid "OpenSSL PHP module" -msgstr "módulo PHP OpenSSL" +#: ../../mod/rmagic.php:85 +msgid "Enter your channel address (e.g. channel@example.com)" +msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)" -#: ../../mod/setup.php:507 -msgid "mysqli or postgres PHP module" -msgstr "módulo PHP mysqli o postgres" +#: ../../mod/rmagic.php:86 +msgid "Authenticate" +msgstr "Acceder" -#: ../../mod/setup.php:508 -msgid "mb_string PHP module" -msgstr "módulo PHP mb_string" +#: ../../mod/chat.php:174 +msgid "Room not found" +msgstr "Sala no encontrada" -#: ../../mod/setup.php:509 -msgid "mcrypt PHP module" -msgstr "módulo PHP mcrypt " +#: ../../mod/chat.php:185 +msgid "Leave Room" +msgstr "Abandonar la sala" -#: ../../mod/setup.php:510 -msgid "xml PHP module" -msgstr "módulo PHP xml" +#: ../../mod/chat.php:186 +msgid "Delete This Room" +msgstr "Eliminar esta sala" -#: ../../mod/setup.php:514 ../../mod/setup.php:516 -msgid "Apache mod_rewrite module" -msgstr "módulo Apache mod_rewrite " +#: ../../mod/chat.php:187 +msgid "I am away right now" +msgstr "Estoy ausente momentáneamente" -#: ../../mod/setup.php:514 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado." +#: ../../mod/chat.php:188 +msgid "I am online" +msgstr "Estoy conectado/a" -#: ../../mod/setup.php:520 ../../mod/setup.php:523 -msgid "proc_open" -msgstr "proc_open" +#: ../../mod/chat.php:190 +msgid "Bookmark this room" +msgstr "Añadir esta sala a Marcadores" -#: ../../mod/setup.php:520 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini" +#: ../../mod/chat.php:208 ../../mod/chat.php:231 +msgid "New Chatroom" +msgstr "Nueva sala de chat" -#: ../../mod/setup.php:528 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado." +#: ../../mod/chat.php:209 +msgid "Chatroom Name" +msgstr "Nombre de la sala de chat" -#: ../../mod/setup.php:532 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Error: el módulo PHP GD graphics es necesario, pero no está instalado." +#: ../../mod/chat.php:210 +msgid "Expiration of chats (minutes)" +msgstr "Tiempo de expiración de los mensajes en los chats (en minutos)" -#: ../../mod/setup.php:536 -msgid "Error: openssl PHP module required but not installed." -msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado." +#: ../../mod/chat.php:227 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "Salas de chat de %1$s" -#: ../../mod/setup.php:540 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado." +#: ../../mod/viewsrc.php:40 +msgid "Source of Item" +msgstr "Origen del elemento" -#: ../../mod/setup.php:544 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado." +#: ../../mod/ffsapi.php:8 +msgid "Share content from Firefox to $Projectname" +msgstr "Compartir contenido desde Firefox a $Projectname" -#: ../../mod/setup.php:548 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "Error: el módulo PHP mcrypt es necesario, pero no está instalado." +#: ../../mod/ffsapi.php:11 +msgid "Activate the Firefox $Projectname provider" +msgstr "Servicio de compartición de Firefox: activar el proveedor $Projectname " -#: ../../mod/setup.php:552 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado." +#: ../../mod/magic.php:69 +msgid "Hub not found." +msgstr "Servidor no encontrado" -#: ../../mod/setup.php:570 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\"" -" in the top folder of your web server and it is unable to do so." -msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor." +#: ../../mod/connections.php:52 ../../mod/connections.php:150 +msgid "Blocked" +msgstr "Bloqueadas" -#: ../../mod/setup.php:571 -msgid "" -"This is most often a permission setting, as the web server may not be able " -"to write files in your folder - even if you can." -msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos." +#: ../../mod/connections.php:57 ../../mod/connections.php:157 +msgid "Ignored" +msgstr "Ignoradas" -#: ../../mod/setup.php:572 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Red top folder." -msgstr "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla." +#: ../../mod/connections.php:62 ../../mod/connections.php:171 +msgid "Hidden" +msgstr "Ocultas" -#: ../../mod/setup.php:573 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones." +#: ../../mod/connections.php:67 ../../mod/connections.php:164 +msgid "Archived" +msgstr "Archivadas" -#: ../../mod/setup.php:576 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php tiene permisos de escritura" +#: ../../mod/connections.php:128 +msgid "Suggest new connections" +msgstr "Sugerir nuevas conexiones" -#: ../../mod/setup.php:590 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP." +#: ../../mod/connections.php:131 +msgid "New Connections" +msgstr "Nuevas conexiones" -#: ../../mod/setup.php:591 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the Red top level folder." -msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al subdirectorio %s en el directorio de instalación de Hubzilla." +#: ../../mod/connections.php:134 +msgid "Show pending (new) connections" +msgstr "Mostrar conexiones (nuevas) pendientes" -#: ../../mod/setup.php:592 ../../mod/setup.php:613 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)." +#: ../../mod/connections.php:137 ../../mod/profperm.php:139 +msgid "All Connections" +msgstr "Todas las conexiones" -#: ../../mod/setup.php:593 -#, php-format -msgid "" -"Note: as a security measure, you should give the web server write access to " -"%s only--not the template files (.tpl) that it contains." -msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene." +#: ../../mod/connections.php:140 +msgid "Show all connections" +msgstr "Mostrar todas las conexiones" -#: ../../mod/setup.php:596 -#, php-format -msgid "%s is writable" -msgstr "%s tiene permisos de escritura" +#: ../../mod/connections.php:143 +msgid "Unblocked" +msgstr "Desbloqueadas" -#: ../../mod/setup.php:612 -msgid "" -"Red uses the store directory to save uploaded files. The web server needs to" -" have write access to the store directory under the Red top level folder" -msgstr "Red guarda los ficheros descargados en la carpeta \"store\". El servidor web necesita tener permisos de escritura sobre esa carpeta, en el directorio de instalación." +#: ../../mod/connections.php:146 +msgid "Only show unblocked connections" +msgstr "Mostrar solo las conexiones desbloqueadas" -#: ../../mod/setup.php:616 -msgid "store is writable" -msgstr "\"store\" tiene permisos de escritura" +#: ../../mod/connections.php:153 +msgid "Only show blocked connections" +msgstr "Mostrar solo las conexiones bloqueadas" -#: ../../mod/setup.php:649 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access" -" to this site." -msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio." +#: ../../mod/connections.php:160 +msgid "Only show ignored connections" +msgstr "Mostrar solo conexiones ignoradas" -#: ../../mod/setup.php:650 -msgid "" -"If you have https access to your website or allow connections to TCP port " -"443 (the https: port), you MUST use a browser-valid certificate. You MUST " -"NOT use self-signed certificates!" -msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo." +#: ../../mod/connections.php:167 +msgid "Only show archived connections" +msgstr "Mostrar solo las conexiones archivadas" -#: ../../mod/setup.php:651 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." -msgstr "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor." +#: ../../mod/connections.php:174 +msgid "Only show hidden connections" +msgstr "Mostrar solo las conexiones ocultas" -#: ../../mod/setup.php:652 -msgid "" -"If your certificate is not recognized, members of other sites (who may " -"themselves have valid certificates) will get a warning message on their own " -"site complaining about security issues." -msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web." +#: ../../mod/connections.php:225 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" -#: ../../mod/setup.php:653 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." -msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos." +#: ../../mod/connections.php:226 +msgid "Edit connection" +msgstr "Editar conexión" -#: ../../mod/setup.php:654 -msgid "" -"Providers are available that issue free certificates which are browser-" -"valid." -msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos." +#: ../../mod/connections.php:264 +msgid "Search your connections" +msgstr "Buscar sus conexiones" -#: ../../mod/setup.php:656 -msgid "SSL certificate validation" -msgstr "validación del certificado SSL" +#: ../../mod/connections.php:265 +msgid "Finding: " +msgstr "Búsqueda:" -#: ../../mod/setup.php:662 -msgid "" -"Url rewrite in .htaccess is not working. Check your server " -"configuration.Test: " -msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:" +#: ../../mod/help.php:147 +msgid "Documentation Search" +msgstr "Búsqueda de Documentación" -#: ../../mod/setup.php:665 -msgid "Url rewrite is working" -msgstr "La reescritura de las direcciones funciona correctamente" +#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 +msgid "Help:" +msgstr "Ayuda:" -#: ../../mod/setup.php:674 -msgid "" -"The database configuration file \".htconfig.php\" could not be written. " -"Please use the enclosed text to create a configuration file in your web " -"server root." -msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor." +#: ../../mod/help.php:211 ../../index.php:238 +msgid "Not Found" +msgstr "No encontrado" -#: ../../mod/setup.php:698 -msgid "Errors encountered creating database tables." -msgstr "Se han encontrado errores al crear las tablas de la base de datos." +#: ../../mod/help.php:235 +msgid "$Projectname Documentation" +msgstr "Documentación de $Projectname" -#: ../../mod/setup.php:732 -msgid "<h1>What next</h1>" -msgstr "<h1>Siguiente paso</h1>" +#: ../../mod/manage.php:130 +#, php-format +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Ha creado %1$.0f de %2$.0f canales permitidos." -#: ../../mod/setup.php:733 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"." +#: ../../mod/manage.php:138 +msgid "Create a new channel" +msgstr "Crear un nuevo canal" -#: ../../mod/sharedwithme.php:94 -msgid "Files: shared with me" -msgstr "Ficheros: compartidos conmigo" +#: ../../mod/manage.php:161 +msgid "Current Channel" +msgstr "Canal actual" -#: ../../mod/sharedwithme.php:96 -msgid "NEW" -msgstr "NUEVO" +#: ../../mod/manage.php:163 +msgid "Switch to one of your channels by selecting it." +msgstr "Cambiar a uno de sus canales seleccionándolo." -#: ../../mod/sharedwithme.php:99 -msgid "Remove all files" -msgstr "Eliminar todos los ficheros" +#: ../../mod/manage.php:164 +msgid "Default Channel" +msgstr "Canal principal" -#: ../../mod/sharedwithme.php:100 -msgid "Remove this file" -msgstr "Eliminar este fichero" +#: ../../mod/manage.php:165 +msgid "Make Default" +msgstr "Convertir en predeterminado" -#: ../../mod/suggest.php:35 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y pruebe de nuevo." +#: ../../mod/manage.php:168 +#, php-format +msgid "%d new messages" +msgstr "%d mensajes nuevos" -#: ../../mod/profiles.php:18 ../../mod/profiles.php:174 -#: ../../mod/profiles.php:231 ../../mod/profiles.php:600 -msgid "Profile not found." -msgstr "Perfil no encontrado." +#: ../../mod/manage.php:169 +#, php-format +msgid "%d new introductions" +msgstr "%d nuevas isolicitudes de conexión" -#: ../../mod/profiles.php:38 -msgid "Profile deleted." -msgstr "Perfil eliminado." +#: ../../mod/manage.php:171 +msgid "Delegated Channels" +msgstr "Canales delegados" -#: ../../mod/profiles.php:56 ../../mod/profiles.php:92 -msgid "Profile-" -msgstr "Perfil-" +#: ../../mod/menu.php:45 +msgid "Unable to update menu." +msgstr "No se puede actualizar el menú." -#: ../../mod/profiles.php:77 ../../mod/profiles.php:120 -msgid "New profile created." -msgstr "El nuevo perfil ha sido creado." +#: ../../mod/menu.php:56 +msgid "Unable to create menu." +msgstr "No se puede crear el menú." -#: ../../mod/profiles.php:98 -msgid "Profile unavailable to clone." -msgstr "Perfil no disponible para clonar." +#: ../../mod/menu.php:94 ../../mod/menu.php:106 +msgid "Menu Name" +msgstr "Nombre del menú" -#: ../../mod/profiles.php:136 -msgid "Profile unavailable to export." -msgstr "Perfil no disponible para exportar." +#: ../../mod/menu.php:94 +msgid "Unique name (not visible on webpage) - required" +msgstr "Nombre único (no será visible en la página web) - requerido" -#: ../../mod/profiles.php:241 -msgid "Profile Name is required." -msgstr "Se necesita el nombre del perfil." +#: ../../mod/menu.php:95 ../../mod/menu.php:107 +msgid "Menu Title" +msgstr "Título del menú" -#: ../../mod/profiles.php:404 -msgid "Marital Status" -msgstr "Estado civil" +#: ../../mod/menu.php:95 +msgid "Visible on webpage - leave empty for no title" +msgstr "Visible en la página web - no ponga nada si no desea un título" -#: ../../mod/profiles.php:408 -msgid "Romantic Partner" -msgstr "Pareja sentimental" +#: ../../mod/menu.php:96 +msgid "Allow Bookmarks" +msgstr "Permitir marcadores" -#: ../../mod/profiles.php:412 -msgid "Likes" -msgstr "Me gusta" +#: ../../mod/menu.php:96 ../../mod/menu.php:153 +msgid "Menu may be used to store saved bookmarks" +msgstr "El menú se puede usar para guardar marcadores" -#: ../../mod/profiles.php:416 -msgid "Dislikes" -msgstr "No me gusta" +#: ../../mod/menu.php:97 ../../mod/menu.php:155 +msgid "Submit and proceed" +msgstr "Enviar y proceder" -#: ../../mod/profiles.php:420 -msgid "Work/Employment" -msgstr "Trabajo:" +#: ../../mod/menu.php:109 +msgid "Drop" +msgstr "Eliminar" -#: ../../mod/profiles.php:423 -msgid "Religion" -msgstr "Religión" +#: ../../mod/menu.php:113 +msgid "Bookmarks allowed" +msgstr "Marcadores permitidos" -#: ../../mod/profiles.php:427 -msgid "Political Views" -msgstr "Ideas políticas" +#: ../../mod/menu.php:115 +msgid "Delete this menu" +msgstr "Borrar este menú" -#: ../../mod/profiles.php:435 -msgid "Sexual Preference" -msgstr "Preferencia sexual" +#: ../../mod/menu.php:116 ../../mod/menu.php:150 +msgid "Edit menu contents" +msgstr "Editar los contenidos del menú" -#: ../../mod/profiles.php:439 -msgid "Homepage" -msgstr "Página personal" +#: ../../mod/menu.php:117 +msgid "Edit this menu" +msgstr "Modificar este menú" -#: ../../mod/profiles.php:443 -msgid "Interests" -msgstr "Intereses" +#: ../../mod/menu.php:132 +msgid "Menu could not be deleted." +msgstr "El menú no puede ser eliminado." -#: ../../mod/profiles.php:537 -msgid "Profile updated." -msgstr "Perfil actualizado." +#: ../../mod/menu.php:140 ../../mod/mitem.php:24 +msgid "Menu not found." +msgstr "Menú no encontrado" -#: ../../mod/profiles.php:626 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "¿Ocultar su lista de contactos a los visitantes de este perfil?" +#: ../../mod/menu.php:145 +msgid "Edit Menu" +msgstr "Modificar el menú" -#: ../../mod/profiles.php:666 -msgid "Edit Profile Details" -msgstr "Modificar los detalles de este perfil" +#: ../../mod/menu.php:149 +msgid "Add or remove entries to this menu" +msgstr "Añadir o quitar entradas en este menú" -#: ../../mod/profiles.php:668 -msgid "View this profile" -msgstr "Ver este perfil" +#: ../../mod/menu.php:151 +msgid "Menu name" +msgstr "Nombre del menú" -#: ../../mod/profiles.php:670 -msgid "Change Profile Photo" -msgstr "Cambiar la foto del perfil" +#: ../../mod/menu.php:151 +msgid "Must be unique, only seen by you" +msgstr "Debe ser único, solo será visible para usted" -#: ../../mod/profiles.php:671 -msgid "Create a new profile using these settings" -msgstr "Crear un nuevo perfil usando estos ajustes" +#: ../../mod/menu.php:152 +msgid "Menu title" +msgstr "Título del menú" -#: ../../mod/profiles.php:672 -msgid "Clone this profile" -msgstr "Clonar este perfil" +#: ../../mod/menu.php:152 +msgid "Menu title as seen by others" +msgstr "El título del menú tal como será visto por los demás" -#: ../../mod/profiles.php:673 -msgid "Delete this profile" -msgstr "Eliminar este perfil" +#: ../../mod/menu.php:153 +msgid "Allow bookmarks" +msgstr "Permitir marcadores" -#: ../../mod/profiles.php:675 -msgid "Import profile from file" -msgstr "Importar perfil desde un fichero" +#: ../../mod/post.php:234 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please" +" logout and retry." +msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo." -#: ../../mod/profiles.php:676 -msgid "Export profile to file" -msgstr "Exportar perfil a un fichero" +#: ../../mod/service_limits.php:19 +msgid "No service class restrictions found." +msgstr "No se han encontrado restricciones sobre esta clase de servicio." -#: ../../mod/profiles.php:677 -msgid "Profile Name:" -msgstr "Nombre del perfil:" +#: ../../mod/siteinfo.php:111 +#, php-format +msgid "Version %s" +msgstr "Versión %s" -#: ../../mod/profiles.php:678 -msgid "Your Full Name:" -msgstr "Su nombre completo:" +#: ../../mod/siteinfo.php:132 +msgid "Installed plugins/addons/apps:" +msgstr "Extensiones/Aplicaciones instaladas:" -#: ../../mod/profiles.php:679 -msgid "Title/Description:" -msgstr "Título/Descripción:" +#: ../../mod/siteinfo.php:145 +msgid "No installed plugins/addons/apps" +msgstr "Extensiones/Aplicaciones no instaladas:" -#: ../../mod/profiles.php:680 -msgid "Your Gender:" -msgstr "Su género:" +#: ../../mod/siteinfo.php:158 +msgid "" +"This is a hub of $Projectname - a global cooperative network of " +"decentralized privacy enhanced websites." +msgstr "Este es un sitio integrado en $Projectname - una red cooperativa mundial de sitios web descentralizados de privacidad mejorada." -#: ../../mod/profiles.php:681 -msgid "Birthday :" -msgstr "Cumpleaños:" +#: ../../mod/siteinfo.php:160 +msgid "Tag: " +msgstr "Etiqueta:" -#: ../../mod/profiles.php:682 -msgid "Street Address:" -msgstr "Calle:" +#: ../../mod/siteinfo.php:162 +msgid "Last background fetch: " +msgstr "Última actualización en segundo plano:" -#: ../../mod/profiles.php:683 -msgid "Locality/City:" -msgstr "Ciudad:" +#: ../../mod/siteinfo.php:164 +msgid "Current load average: " +msgstr "Carga media actual:" -#: ../../mod/profiles.php:684 -msgid "Postal/Zip Code:" -msgstr "Código postal:" +#: ../../mod/siteinfo.php:167 +msgid "Running at web location" +msgstr "Corriendo en el sitio web" -#: ../../mod/profiles.php:685 -msgid "Country:" -msgstr "País:" +#: ../../mod/siteinfo.php:168 +msgid "" +"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " +"about $Projectname." +msgstr "Por favor, visite <a href=\"http://hubzilla.org\">hubzilla.org</a> para más información sobre $Projectname." -#: ../../mod/profiles.php:686 -msgid "Region/State:" -msgstr "Región/Estado:" +#: ../../mod/siteinfo.php:169 +msgid "Bug reports and issues: please visit" +msgstr "Informes de errores e incidencias: por, favor visite" -#: ../../mod/profiles.php:687 -msgid "<span class=\"heart\">♥</span> Marital Status:" -msgstr "<span class=\"heart\">♥</span> Estado sentimental:" +#: ../../mod/siteinfo.php:171 +msgid "$projectname issues" +msgstr "Problemas en $projectname" -#: ../../mod/profiles.php:688 -msgid "Who: (if applicable)" -msgstr "Quién: (si es aplicable)" +#: ../../mod/siteinfo.php:172 +msgid "" +"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " +"com" +msgstr "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com" -#: ../../mod/profiles.php:689 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com" +#: ../../mod/siteinfo.php:174 +msgid "Site Administrators" +msgstr "Administradores del sitio" -#: ../../mod/profiles.php:690 -msgid "Since [date]:" -msgstr "Desde [fecha]:" +#: ../../mod/suggest.php:35 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y pruebe de nuevo." -#: ../../mod/profiles.php:692 -msgid "Homepage URL:" -msgstr "Dirección de la página personal:" +#: ../../mod/events.php:21 +msgid "Calendar entries imported." +msgstr "Entradas de calendario importadas." -#: ../../mod/profiles.php:695 -msgid "Religious Views:" -msgstr "Creencias religiosas:" +#: ../../mod/events.php:23 +msgid "No calendar entries found." +msgstr "No se han encontrado entradas de calendario." -#: ../../mod/profiles.php:696 -msgid "Keywords:" -msgstr "Palabras clave:" +#: ../../mod/events.php:100 +msgid "Event can not end before it has started." +msgstr "Un evento no puede terminar antes de que haya comenzado." -#: ../../mod/profiles.php:699 -msgid "Example: fishing photography software" -msgstr "Por ejemplo: software de fotografía submarina" +#: ../../mod/events.php:102 ../../mod/events.php:111 ../../mod/events.php:131 +msgid "Unable to generate preview." +msgstr "No se puede crear la vista previa." -#: ../../mod/profiles.php:700 -msgid "Used in directory listings" -msgstr "Visible en el directorio público del canal" +#: ../../mod/events.php:109 +msgid "Event title and start time are required." +msgstr "Se requieren el título del evento y su hora de inicio." -#: ../../mod/profiles.php:701 -msgid "Tell us about yourself..." -msgstr "Háblenos de usted..." +#: ../../mod/events.php:129 ../../mod/events.php:254 +msgid "Event not found." +msgstr "Evento no encontrado." -#: ../../mod/profiles.php:702 -msgid "Hobbies/Interests" -msgstr "Aficiones/Intereses" +#: ../../mod/events.php:452 +msgid "Event Title" +msgstr "Título del evento" -#: ../../mod/profiles.php:703 -msgid "Contact information and Social Networks" -msgstr "Información de contacto y redes sociales" +#: ../../mod/events.php:454 +msgid "Categories (comma-separated list)" +msgstr "Categorías (lista separada por comas)" -#: ../../mod/profiles.php:704 -msgid "My other channels" -msgstr "Mis otros canales" +#: ../../mod/events.php:455 +msgid "Category" +msgstr "Categoría" -#: ../../mod/profiles.php:705 -msgid "Musical interests" -msgstr "Preferencias musicales" +#: ../../mod/events.php:458 +msgid "Start date and time" +msgstr "Fecha y hora de comienzo" -#: ../../mod/profiles.php:706 -msgid "Books, literature" -msgstr "Libros, literatura" +#: ../../mod/events.php:459 ../../mod/events.php:462 +msgid "Finish date and time are not known or not relevant" +msgstr "La fecha y hora de terminación no se conocen o no son relevantes" -#: ../../mod/profiles.php:707 -msgid "Television" -msgstr "Televisión" +#: ../../mod/events.php:461 +msgid "Finish date and time" +msgstr "Fecha y hora de terminación" -#: ../../mod/profiles.php:708 -msgid "Film/dance/culture/entertainment" -msgstr "Cine/danza/cultura/entretenimiento" +#: ../../mod/events.php:463 ../../mod/events.php:464 +msgid "Adjust for viewer timezone" +msgstr "Ajustar para obtener el visor de zona horaria" -#: ../../mod/profiles.php:709 -msgid "Love/romance" -msgstr "Vida sentimental/amorosa" +#: ../../mod/events.php:463 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." +msgstr "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales." -#: ../../mod/profiles.php:710 -msgid "Work/employment" -msgstr "Trabajo" +#: ../../mod/events.php:470 ../../mod/events.php:472 +msgid "Share this event" +msgstr "Compartir este evento" -#: ../../mod/profiles.php:711 -msgid "School/education" -msgstr "Estudios" +#: ../../mod/events.php:477 +msgid "Advanced Options" +msgstr "Opciones avanzadas" -#: ../../mod/profiles.php:717 -msgid "This is your default profile." -msgstr "Este es su perfil principal." +#: ../../mod/events.php:589 +msgid "l, F j" +msgstr "l j F" -#: ../../mod/profiles.php:728 -msgid "Age: " -msgstr "Edad:" +#: ../../mod/events.php:611 +msgid "Edit event" +msgstr "Editar evento" -#: ../../mod/profiles.php:771 -msgid "Edit/Manage Profiles" -msgstr "Modificar/gestionar perfiles" +#: ../../mod/events.php:613 +msgid "Delete event" +msgstr "Borrar evento" -#: ../../mod/profiles.php:772 -msgid "Add profile things" -msgstr "Añadir cosas al perfil" +#: ../../mod/events.php:647 +msgid "calendar" +msgstr "calendario" -#: ../../mod/profiles.php:773 -msgid "Include desirable objects in your profile" -msgstr "Añadir objetos interesantes en su perfil" +#: ../../mod/events.php:666 +msgid "New Event" +msgstr "Nuevo evento" + +#: ../../mod/events.php:676 +msgid "Today" +msgstr "Hoy" + +#: ../../mod/events.php:707 +msgid "Event removed" +msgstr "Evento borrado" + +#: ../../mod/events.php:710 +msgid "Failed to remove event" +msgstr "Error al eliminar el evento" #: ../../mod/profperm.php:29 ../../mod/profperm.php:58 msgid "Invalid profile identifier." @@ -9079,39 +9016,147 @@ msgstr "Pulsar en un contacto para añadirlo o eliminarlo." msgid "Visible To" msgstr "Visible para" -#: ../../mod/rbmark.php:90 -msgid "Select a bookmark folder" -msgstr "Seleccionar una carpeta de marcadores" +#: ../../mod/mitem.php:48 +msgid "Unable to create element." +msgstr "Imposible crear el elemento." -#: ../../mod/rbmark.php:95 -msgid "Save Bookmark" -msgstr "Guardar marcador" +#: ../../mod/mitem.php:72 +msgid "Unable to update menu element." +msgstr "No es posible actualizar el elemento del menú." -#: ../../mod/rbmark.php:96 -msgid "URL of bookmark" -msgstr "Dirección del marcador" +#: ../../mod/mitem.php:88 +msgid "Unable to add menu element." +msgstr "No es posible añadir el elemento al menú" -#: ../../mod/rbmark.php:101 -msgid "Or enter new bookmark folder name" -msgstr "O introduzca un nuevo nombre para la carpeta de marcadores" +#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 +msgid "Menu Item Permissions" +msgstr "Permisos del elemento del menú" -#: ../../mod/import_items.php:101 -msgid "Import completed" -msgstr "Importación completada" +#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 +msgid "Link Name" +msgstr "Nombre del enlace" -#: ../../mod/import_items.php:119 -msgid "Import Items" -msgstr "Importar elementos" +#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 +msgid "Link or Submenu Target" +msgstr "Destino del enlace o submenú" -#: ../../mod/import_items.php:120 -msgid "" -"Use this form to import existing posts and content from an export file." -msgstr "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación." +#: ../../mod/mitem.php:153 +msgid "Enter URL of the link or select a menu name to create a submenu" +msgstr "Introducir la dirección del enlace o seleccionar el nombre de un submenú" + +#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 +msgid "Use magic-auth if available" +msgstr "Usar la autenticación mágica si está disponible" + +#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 +msgid "Open link in new window" +msgstr "Abrir el enlace en una nueva ventana" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Order in list" +msgstr "Orden en la lista" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Higher numbers will sink to bottom of listing" +msgstr "Los números más altos irán al final de la lista" + +#: ../../mod/mitem.php:157 +msgid "Submit and finish" +msgstr "Enviar y terminar" + +#: ../../mod/mitem.php:158 +msgid "Submit and continue" +msgstr "Enviar y continuar" + +#: ../../mod/mitem.php:166 +msgid "Menu:" +msgstr "Menú:" + +#: ../../mod/mitem.php:169 +msgid "Link Target" +msgstr "Destino del enlace" + +#: ../../mod/mitem.php:172 +msgid "Edit menu" +msgstr "Editar menú" + +#: ../../mod/mitem.php:175 +msgid "Edit element" +msgstr "Editar el elemento" + +#: ../../mod/mitem.php:176 +msgid "Drop element" +msgstr "Eliminar el elemento" + +#: ../../mod/mitem.php:177 +msgid "New element" +msgstr "Nuevo elemento" + +#: ../../mod/mitem.php:178 +msgid "Edit this menu container" +msgstr "Modificar el contenedor del menú" + +#: ../../mod/mitem.php:179 +msgid "Add menu element" +msgstr "Añadir un elemento al menú" + +#: ../../mod/mitem.php:180 +msgid "Delete this menu item" +msgstr "Eliminar este elemento del menú" + +#: ../../mod/mitem.php:181 +msgid "Edit this menu item" +msgstr "Modificar este elemento del menú" + +#: ../../mod/mitem.php:198 +msgid "Menu item not found." +msgstr "Este elemento del menú no se ha encontrado" + +#: ../../mod/mitem.php:211 +msgid "Menu item deleted." +msgstr "Este elemento del menú ha sido borrado" + +#: ../../mod/mitem.php:213 +msgid "Menu item could not be deleted." +msgstr "Este elemento del menú no puede ser borrado." + +#: ../../mod/mitem.php:220 +msgid "Edit Menu Element" +msgstr "Editar elemento del menú" + +#: ../../mod/mitem.php:226 +msgid "Link text" +msgstr "Texto del enlace" #: ../../mod/wholikesme.php:13 msgid "Who likes me?" msgstr "¿Quién me ha puesto \"Me gusta\"?" +#: ../../mod/sharedwithme.php:94 +msgid "Files: shared with me" +msgstr "Ficheros: compartidos conmigo" + +#: ../../mod/sharedwithme.php:96 +msgid "NEW" +msgstr "NUEVO" + +#: ../../mod/sharedwithme.php:99 +msgid "Remove all files" +msgstr "Eliminar todos los ficheros" + +#: ../../mod/sharedwithme.php:100 +msgid "Remove this file" +msgstr "Eliminar este fichero" + +#: ../../mod/viewconnections.php:59 +msgid "No connections." +msgstr "Sin conexiones." + +#: ../../mod/viewconnections.php:72 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Visitar el perfil de %s [%s]" + #: ../../view/theme/redbasic/php/config.php:82 msgid "Focus (Hubzilla default)" msgstr "Focus (predefinido)" @@ -9248,51 +9293,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:1308 +#: ../../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:1311 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "Error de actualización en %s" -#: ../../boot.php:1478 +#: ../../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:1506 +#: ../../boot.php:1489 msgid "Password" msgstr "Contraseña" -#: ../../boot.php:1507 +#: ../../boot.php:1490 msgid "Remember me" msgstr "Recordarme" -#: ../../boot.php:1510 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "¿Olvidó su contraseña?" -#: ../../boot.php:2136 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "cambiar a modo móvil" -#: ../../boot.php:2271 +#: ../../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:2274 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Error SSL del sitio web en %s" -#: ../../boot.php:2311 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "Las tareas del Planificador/Cron no están funcionando." -#: ../../boot.php:2315 +#: ../../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 cc1ffc05f..18cdf0a8a 100644 --- a/view/es/hstrings.php +++ b/view/es/hstrings.php @@ -5,176 +5,20 @@ 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["<span %1\$s>%2\$d people</span> like this."] = array( - 0 => "a <span %1\$s>%2\$d personas</span> le gusta esto.", - 1 => "a <span %1\$s>%2\$d personas</span> les gusta esto.", -); -$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( - 0 => "a <span %1\$s>%2\$d personas</span> no les gusta esto.", - 1 => "a <span %1\$s>%2\$d personas</span> 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 <strong>everybody</strong>"] = "Visible para <strong>cualquiera</strong>"; -$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 => "Participando", - 1 => "Participaré", -); -$a->strings["__ctx:noun__ Not Attending"] = array( - 0 => "No participando", - 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["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"; +$a->strings["Missing room name"] = "Sala de chat sin nombre"; +$a->strings["Duplicate room name"] = "Nombre de sala duplicado."; +$a->strings["Invalid room specifier."] = "Especificador de sala no válido."; +$a->strings["Room not found."] = "Sala no encontrada."; +$a->strings["Permission denied."] = "Acceso denegado."; +$a->strings["Room is full"] = "La sala está llena."; +$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["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."; +$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["parent"] = "padre"; $a->strings["Collection"] = "Colección"; $a->strings["Principal"] = "Principal"; @@ -182,6 +26,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,135 +37,12 @@ $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:"; $a->strings["Create new folder"] = "Crear nueva carpeta"; $a->strings["Upload file"] = "Subir fichero"; -$a->strings["Can view my normal stream and posts"] = "Pueden verse mi flujo de actividad y publicaciones normales"; -$a->strings["Can view my default channel profile"] = "Puede verse mi perfil de canal predeterminado."; -$a->strings["Can view my connections"] = "Pueden verse mis conexiones"; -$a->strings["Can view my file storage and photos"] = "Pueden verse mi repositorio de ficheros y mis fotos"; -$a->strings["Can view my webpages"] = "Pueden verse mis páginas web"; -$a->strings["Can send me their channel stream and posts"] = "Me pueden enviar sus entradas y flujo de actividad del canal"; -$a->strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muro”)"; -$a->strings["Can comment on or like my posts"] = "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'."; -$a->strings["Can send me private mail messages"] = "Se me pueden enviar mensajes privados"; -$a->strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta"; -$a->strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios"; -$a->strings["Can forward to all my channel contacts via post @mentions"] = "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención"; -$a->strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos"; -$a->strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)"; -$a->strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos"; -$a->strings["Can edit my webpages"] = "Pueden editarse mis páginas web"; -$a->strings["Can source my public posts in derived channels"] = "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados"; -$a->strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas"; -$a->strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal"; -$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo."; -$a->strings["Social Networking"] = "Redes sociales"; -$a->strings["Mostly Public"] = "Público en su mayor parte"; -$a->strings["Restricted"] = "Restringido"; -$a->strings["Private"] = "Privado"; -$a->strings["Community Forum"] = "Foro de discusión"; -$a->strings["Feed Republish"] = "Republicar un \"feed\""; -$a->strings["Special Purpose"] = "Propósito especial"; -$a->strings["Celebrity/Soapbox"] = "Página para fans"; -$a->strings["Group Repository"] = "Repositorio de grupo"; -$a->strings["Other"] = "Otro"; -$a->strings["Custom/Expert Mode"] = "Modo personalizado/experto"; -$a->strings["Missing room name"] = "Sala de chat sin nombre"; -$a->strings["Duplicate room name"] = "Nombre de sala duplicado."; -$a->strings["Invalid room specifier."] = "Especificador de sala no válido."; -$a->strings["Room not found."] = "Sala no encontrada."; -$a->strings["Permission denied."] = "Acceso denegado."; -$a->strings["Room is full"] = "La sala está llena."; -$a->strings["Miscellaneous"] = "Varios"; -$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD"; -$a->strings["Required"] = "Obligatorio"; -$a->strings["never"] = "nunca"; -$a->strings["less than a second ago"] = "hace un instante"; -$a->strings["year"] = "año"; -$a->strings["years"] = "años"; -$a->strings["month"] = "mes"; -$a->strings["months"] = "meses"; -$a->strings["week"] = "semana"; -$a->strings["weeks"] = "semanas"; -$a->strings["day"] = "día"; -$a->strings["days"] = "días"; -$a->strings["hour"] = "hora"; -$a->strings["hours"] = "horas"; -$a->strings["minute"] = "minuto"; -$a->strings["minutes"] = "minutos"; -$a->strings["second"] = "segundo"; -$a->strings["seconds"] = "segundos"; -$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s"; -$a->strings["%1\$s's birthday"] = "Cumpleaños de %1\$s"; -$a->strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s"; -$a->strings["General Features"] = "Características generales"; -$a->strings["Content Expiration"] = "Caducidad del contenido"; -$a->strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"; -$a->strings["Multiple Profiles"] = "Múltiples perfiles"; -$a->strings["Ability to create multiple profiles"] = "Capacidad de crear múltiples perfiles"; -$a->strings["Advanced Profiles"] = "Perfiles avanzados"; -$a->strings["Additional profile sections and selections"] = "Secciones y selecciones de perfil adicionales"; -$a->strings["Profile Import/Export"] = "Importar/Exportar perfil"; -$a->strings["Save and load profile details across sites/channels"] = "Guardar y cargar detalles del perfil a través de sitios/canales"; -$a->strings["Web Pages"] = "Páginas web"; -$a->strings["Provide managed web pages on your channel"] = "Proveer páginas web gestionadas en su canal"; -$a->strings["Private Notes"] = "Notas privadas"; -$a->strings["Enables a tool to store notes and reminders"] = "Activar una herramienta para almacenar notas y recordatorios"; -$a->strings["Navigation Channel Select"] = "Navegación por el selector de canales"; -$a->strings["Change channels directly from within the navigation dropdown menu"] = "Cambiar de canales directamente desde el menú de navegación desplegable"; -$a->strings["Photo Location"] = "Ubicación de las fotos"; -$a->strings["If location data is available on uploaded photos, link this to a map."] = "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."; -$a->strings["Expert Mode"] = "Modo de experto"; -$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Habilitar el modo de experto para acceder a opciones avanzadas de configuración"; -$a->strings["Premium Channel"] = "Canal premium"; -$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Les permite configurar restricciones y normas de uso a aquellos que conectan con su canal"; -$a->strings["Post Composition Features"] = "Características de composición de entradas"; -$a->strings["Use Markdown"] = "Usar Markdown"; -$a->strings["Allow use of \"Markdown\" to format posts"] = "Permitir el uso de \"Markdown\" para formatear publicaciones"; -$a->strings["Large Photos"] = "Fotos de gran tamaño"; -$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (6400px)"; -$a->strings["Channel Sources"] = "Orígenes de los contenidos del canal"; -$a->strings["Automatically import channel content from other channels or feeds"] = "Importar automáticamente contenido de otros canales o \"feeds\""; -$a->strings["Even More Encryption"] = "Más cifrado todavía"; -$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida."; -$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["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"; -$a->strings["Collections Filter"] = "Filtrado de colecciones"; -$a->strings["Enable widget to display Network posts only from selected collections"] = "Habilitar la muestra de entradas eligiendo colecciones"; -$a->strings["Saved Searches"] = "Búsquedas guardadas"; -$a->strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización"; -$a->strings["Network Personal Tab"] = "Actividad personal"; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado."; -$a->strings["Network New Tab"] = "Contenido nuevo"; -$a->strings["Enable tab to display all new Network activity"] = "Habilitar una pestaña en la que se muestre solo el contenido nuevo"; -$a->strings["Affinity Tool"] = "Herramienta de afinidad"; -$a->strings["Filter stream activity by depth of relationships"] = "Filtrar la actividad del flujo por profundidad de relaciones"; -$a->strings["Connection Filtering"] = "Filtrado de conexiones"; -$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"; -$a->strings["Suggest Channels"] = "Sugerir canales"; -$a->strings["Show channel suggestions"] = "Mostrar sugerencias de canales"; -$a->strings["Post/Comment Tools"] = "Herramientas de entradas/comentarios"; -$a->strings["Tagging"] = "Etiquetado"; -$a->strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes"; -$a->strings["Post Categories"] = "Categorías de entradas"; -$a->strings["Add categories to your posts"] = "Añadir categorías a sus publicaciones"; -$a->strings["Saved Folders"] = "Carpetas guardadas"; -$a->strings["Ability to file posts under folders"] = "Capacidad de archivar entradas en carpetas"; -$a->strings["Dislike Posts"] = "Desagrado de publicaciones"; -$a->strings["Ability to dislike posts/comments"] = "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios"; -$a->strings["Star Posts"] = "Entradas destacadas"; -$a->strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella"; -$a->strings["Tag Cloud"] = "Nube de etiquetas"; -$a->strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal"; -$a->strings["Default"] = "Predeterminado"; $a->strings["Delete this item?"] = "¿Borrar este elemento?"; $a->strings["Comment"] = "Comentar"; $a->strings["[+] show all"] = "[+] mostrar todo:"; @@ -340,6 +63,7 @@ $a->strings["Describe (optional)"] = "Describir (opcional)"; $a->strings["Submit"] = "Enviar"; $a->strings["Please enter a link URL"] = "Por favor, introduzca una dirección de enlace"; $a->strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Cambios no guardados. ¿Está seguro de que desea abandonar la página?"; +$a->strings["Location"] = "Ubicación"; $a->strings["timeago.prefixAgo"] = "timeago.prefixAgo"; $a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow"; $a->strings["ago"] = "antes"; @@ -369,18 +93,18 @@ $a->strings["September"] = "septiembre"; $a->strings["October"] = "octubre"; $a->strings["November"] = "noviembre"; $a->strings["December"] = "diciembre"; -$a->strings["Jan"] = "Ene"; -$a->strings["Feb"] = "Feb"; -$a->strings["Mar"] = "Mar"; -$a->strings["Apr"] = "Abr"; -$a->strings["__ctx:short__ May"] = "May"; -$a->strings["Jun"] = "Jun"; -$a->strings["Jul"] = "Jul"; -$a->strings["Aug"] = "Ago"; -$a->strings["Sep"] = "Sep"; -$a->strings["Oct"] = "Oct"; -$a->strings["Nov"] = "Nov"; -$a->strings["Dec"] = "Dic"; +$a->strings["Jan"] = "ene"; +$a->strings["Feb"] = "feb"; +$a->strings["Mar"] = "mar"; +$a->strings["Apr"] = "abr"; +$a->strings["__ctx:short__ May"] = "may"; +$a->strings["Jun"] = "jun"; +$a->strings["Jul"] = "jul"; +$a->strings["Aug"] = "ago"; +$a->strings["Sep"] = "sep"; +$a->strings["Oct"] = "oct"; +$a->strings["Nov"] = "nov"; +$a->strings["Dec"] = "dic"; $a->strings["Sunday"] = "domingo"; $a->strings["Monday"] = "lunes"; $a->strings["Tuesday"] = "martes"; @@ -388,43 +112,21 @@ $a->strings["Wednesday"] = "miércoles"; $a->strings["Thursday"] = "jueves"; $a->strings["Friday"] = "viernes"; $a->strings["Saturday"] = "sábado"; -$a->strings["Sun"] = "Dom"; -$a->strings["Mon"] = "Lun"; -$a->strings["Tue"] = "Mar"; -$a->strings["Wed"] = "Mié"; -$a->strings["Thu"] = "Jue"; -$a->strings["Fri"] = "Vie"; -$a->strings["Sat"] = "Sáb"; +$a->strings["Sun"] = "dom"; +$a->strings["Mon"] = "lun"; +$a->strings["Tue"] = "mar"; +$a->strings["Wed"] = "mié"; +$a->strings["Thu"] = "jue"; +$a->strings["Fri"] = "vie"; +$a->strings["Sat"] = "sáb"; $a->strings["__ctx:calendar__ today"] = "hoy"; $a->strings["__ctx:calendar__ month"] = "mes"; $a->strings["__ctx:calendar__ week"] = "semana"; $a->strings["__ctx:calendar__ day"] = "día"; $a->strings["__ctx:calendar__ All day"] = "Todos los días"; -$a->strings["Frequently"] = "Frecuentemente"; -$a->strings["Hourly"] = "Cada hora"; -$a->strings["Twice daily"] = "Dos veces al día"; -$a->strings["Daily"] = "Diariamente"; -$a->strings["Weekly"] = "Semanalmente"; -$a->strings["Monthly"] = "Mensualmente"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Email"] = "Correo electrónico"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Zot!"] = "Zot!"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/IM"; -$a->strings["MySpace"] = "MySpace"; -$a->strings[" and "] = "y"; -$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["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"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "No se ha podido localizar información de DNS para el servidor de base de datos “%s”"; +$a->strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero importado."; +$a->strings["Import completed."] = "Importación completada."; +$a->strings["Default"] = "Predeterminado"; $a->strings["Permission denied"] = "Permiso denegado"; $a->strings["(Unknown)"] = "(Desconocido)"; $a->strings["Visible to anybody on the internet."] = "Visible para cualquiera en internet."; @@ -441,6 +143,10 @@ $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["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. "; +$a->strings["Stored post could not be verified."] = "No se han podido verificar las entradas guardadas."; $a->strings["view full size"] = "Ver en el tamaño original"; $a->strings["\$Projectname Notification"] = "Notificación de \$Projectname"; $a->strings["\$projectname"] = "\$projectname"; @@ -448,279 +154,17 @@ $a->strings["Thank You,"] = "Gracias,"; $a->strings["%s Administrator"] = "%s Administrador"; $a->strings["Administrator"] = "Administrador"; $a->strings["No Subject"] = "Sin asunto"; -$a->strings["%1\$s's bookmarks"] = "Marcadores de %1\$s"; -$a->strings["Visible to your default audience"] = "Visible para su público predeterminado."; -$a->strings["Show"] = "Mostrar"; -$a->strings["Don't show"] = "No mostrar"; -$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"; -$a->strings["Photo storage failed."] = "La foto no ha podido ser guardada."; -$a->strings["Upload New Photos"] = "Subir nuevas fotos"; -$a->strings["created a new post"] = "ha creado una nueva entrada"; -$a->strings["commented on %s's post"] = "ha comentado la entrada de %s"; -$a->strings["New Page"] = "Nueva página"; -$a->strings["View"] = "Ver"; -$a->strings["Actions"] = "Acciones"; -$a->strings["Page Link"] = "Vínculo de la página"; -$a->strings["Title"] = "Título"; -$a->strings["Created"] = "Creado"; -$a->strings["Edited"] = "Editado"; -$a->strings["Profile Photos"] = "Fotos del perfil"; -$a->strings["Male"] = "Hombre"; -$a->strings["Female"] = "Mujer"; -$a->strings["Currently Male"] = "Actualmente hombre"; -$a->strings["Currently Female"] = "Actualmente mujer"; -$a->strings["Mostly Male"] = "Generalmente hombre"; -$a->strings["Mostly Female"] = "Generalmente mujer"; -$a->strings["Transgender"] = "Transgénero"; -$a->strings["Intersex"] = "Intersexual"; -$a->strings["Transsexual"] = "Transexual"; -$a->strings["Hermaphrodite"] = "Hermafrodita"; -$a->strings["Neuter"] = "Neutral"; -$a->strings["Non-specific"] = "No especificado"; -$a->strings["Undecided"] = "Indeciso/a"; -$a->strings["Males"] = "Hombres"; -$a->strings["Females"] = "Mujeres"; -$a->strings["Gay"] = "Homosexual"; -$a->strings["Lesbian"] = "Lesbiana"; -$a->strings["No Preference"] = "Sin preferencias"; -$a->strings["Bisexual"] = "Bisexual"; -$a->strings["Autosexual"] = "Autosexual"; -$a->strings["Abstinent"] = "Casto/a"; -$a->strings["Virgin"] = "Virgen"; -$a->strings["Deviant"] = "Fuera de lo común"; -$a->strings["Fetish"] = "Fetichista"; -$a->strings["Oodles"] = "Orgías"; -$a->strings["Nonsexual"] = "Asexual"; -$a->strings["Single"] = "Soltero/a"; -$a->strings["Lonely"] = "Solo/a"; -$a->strings["Available"] = "Disponible"; -$a->strings["Unavailable"] = "No disponible"; -$a->strings["Has crush"] = "Enamorado/a"; -$a->strings["Infatuated"] = "Apasionado/a"; -$a->strings["Dating"] = "Saliendo con alguien"; -$a->strings["Unfaithful"] = "Infiel"; -$a->strings["Sex Addict"] = "Con adicción al sexo"; -$a->strings["Friends"] = "Amigos"; -$a->strings["Friends/Benefits"] = "Amigos con algo extra"; -$a->strings["Casual"] = "Casual"; -$a->strings["Engaged"] = "Prometido/a"; -$a->strings["Married"] = "Casado/a"; -$a->strings["Imaginarily married"] = "Casado/a en sueños"; -$a->strings["Partners"] = "Pareja"; -$a->strings["Cohabiting"] = "Cohabitando"; -$a->strings["Common law"] = "Matrimonio tradicional"; -$a->strings["Happy"] = "Felíz"; -$a->strings["Not looking"] = "No estoy buscando"; -$a->strings["Swinger"] = "Libertino"; -$a->strings["Betrayed"] = "Engañado/a"; -$a->strings["Separated"] = "Separado/a"; -$a->strings["Unstable"] = "Inestable"; -$a->strings["Divorced"] = "Divorciado/a"; -$a->strings["Imaginarily divorced"] = "Divorciado/a en sueños"; -$a->strings["Widowed"] = "Viudo/a"; -$a->strings["Uncertain"] = "Indeterminado"; -$a->strings["It's complicated"] = "Es complicado"; -$a->strings["Don't care"] = "No me importa"; -$a->strings["Ask me"] = "Pregúnteme"; -$a->strings["Embedded content"] = "Contenido incorporado"; -$a->strings["Embedding disabled"] = "Incrustación deshabilitada"; $a->strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i"; $a->strings["Starts:"] = "Comienza:"; $a->strings["Finishes:"] = "Finaliza:"; $a->strings["Location:"] = "Ubicación:"; $a->strings["This event has been added to your calendar."] = "Este evento ha sido añadido a su calendario."; +$a->strings["event"] = "evento"; $a->strings["Not specified"] = "Sin especificar"; $a->strings["Needs Action"] = "Necesita de una intervención"; $a->strings["Completed"] = "Completado/a"; $a->strings["In Process"] = "En proceso"; $a->strings["Cancelled"] = "Cancelado/a"; -$a->strings["Site Admin"] = "Adminstrador del sitio"; -$a->strings["Address Book"] = "Libreta de direcciones"; -$a->strings["Login"] = "Iniciar sesión"; -$a->strings["Channel Manager"] = "Administración de canales"; -$a->strings["Grid"] = "Red"; -$a->strings["Settings"] = "Ajustes"; -$a->strings["Channel Home"] = "Mi canal"; -$a->strings["Profile"] = "Perfil"; -$a->strings["Events"] = "Eventos"; -$a->strings["Directory"] = "Directorio"; -$a->strings["Help"] = "Ayuda"; -$a->strings["Mail"] = "Correo"; -$a->strings["Mood"] = "Estado de ánimo"; -$a->strings["Chat"] = "Chat"; -$a->strings["Search"] = "Buscar"; -$a->strings["Probe"] = "Probar"; -$a->strings["Suggest"] = "Sugerir"; -$a->strings["Random Channel"] = "Canal aleatorio"; -$a->strings["Invite"] = "Invitar"; -$a->strings["Features"] = "Características"; -$a->strings["Language"] = "Idioma"; -$a->strings["Post"] = "Publicación"; -$a->strings["Profile Photo"] = "Foto del perfil"; -$a->strings["Update"] = "Actualizar"; -$a->strings["Install"] = "Instalar"; -$a->strings["Purchase"] = "Comprar"; -$a->strings["Logged out."] = "Desconectado/a."; -$a->strings["Failed authentication"] = "Autenticación fallida."; -$a->strings["Login failed."] = "El acceso ha fallado."; -$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; -$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."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s le envió %2\$s."; -$a->strings["a private message"] = "un mensaje privado"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Por favor visite %s para ver y/o responder a su mensaje privado."; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%5\$s de %4\$s[/zrl] "; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%4\$s creado por usted[/zrl]"; -$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Aviso] Nuevo comentario de %2\$s a la conversación #%1\$d"; -$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha comentado un elemento/conversación que ha estado siguiendo."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s"; -$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Aviso] %s ha publicado una entrada en su página de inicio del perfil"; -$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s publicó en su página del perfil en %3\$s"; -$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s publicó en [zrl=%3\$s]su página del perfil[/zrl]"; -$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Aviso] %s le ha etiquetado"; -$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le etiquetó en %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl]."; -$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Aviso] %1\$s le ha dado un toque"; -$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le dio un toque en %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le dio un toque[/zrl]."; -$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Aviso] %s ha etiquetado su publicación"; -$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación en %3\$s"; -$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s etiquetó [zrl=%3\$s]su publicación[/zrl]"; -$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Aviso] Ha recibido una solicitud de conexión"; -$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una nueva solicitud de conexión de '%2\$s' en %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una nueva solicitud de conexión[/zrl] de %3\$s."; -$a->strings["You may visit their profile at %s"] = "Puede visitar su perfil en %s"; -$a->strings["Please visit %s to approve or reject the connection request."] = "Por favor, visite %s para permitir o rechazar la solicitad de conexión."; -$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Aviso] Ha recibido una sugerencia de amistad"; -$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una sugerencia de conexión de '%2\$s' en %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una sugerencia de conexión[/zrl] para %3\$s de %4\$s."; -$a->strings["Name:"] = "Nombre:"; -$a->strings["Photo:"] = "Foto:"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia."; -$a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Aviso]"; -$a->strings["Save to Folder"] = "Guardar en carpeta"; -$a->strings["I will attend"] = "Participaré"; -$a->strings["I will not attend"] = "No participaré"; -$a->strings["I might attend"] = "Quizá participe"; -$a->strings["I agree"] = "Estoy de acuerdo"; -$a->strings["I disagree"] = "No estoy de acuerdo"; -$a->strings["I abstain"] = "Me abstengo"; -$a->strings["Add Star"] = "Destacar añadiendo una estrella"; -$a->strings["Remove Star"] = "Eliminar estrella"; -$a->strings["Toggle Star Status"] = "Activar o desactivar el estado de entrada preferida"; -$a->strings["starred"] = "preferidas"; -$a->strings["Add Tag"] = "Añadir etiqueta"; -$a->strings["I like this (toggle)"] = "me gusta (cambiar)"; -$a->strings["like"] = "me gusta"; -$a->strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; -$a->strings["dislike"] = "no me gusta"; -$a->strings["Share This"] = "Compartir esto"; -$a->strings["share"] = "compartir"; -$a->strings["%d comment"] = array( - 0 => "%d comentario", - 1 => "%d comentarios", -); -$a->strings["View %s's profile - %s"] = "Ver el perfil de %s - %s"; -$a->strings["to"] = "a"; -$a->strings["via"] = "mediante"; -$a->strings["Wall-to-Wall"] = "De página del perfil a página del perfil (de Muro a Muro)"; -$a->strings["via Wall-To-Wall:"] = "Mediante el procedimiento página del perfil a página del perfil (de Muro a Muro)"; -$a->strings["Delivery Report"] = "Informe de transmisión"; -$a->strings["Save Bookmarks"] = "Guardar en Marcadores"; -$a->strings["Add to Calendar"] = "Añadir al calendario"; -$a->strings["Mark all seen"] = "Marcar todo como visto"; -$a->strings["__ctx:noun__ Likes"] = "Me gusta"; -$a->strings["__ctx:noun__ Dislikes"] = "No me gusta"; -$a->strings["This is you"] = "Este es usted"; -$a->strings["Image"] = "Imagen"; -$a->strings["Insert Link"] = "Insertar enlace"; -$a->strings["Video"] = "Vídeo"; -$a->strings["Invalid data packet"] = "Paquete de datos no válido"; -$a->strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal"; -$a->strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s"; -$a->strings["invalid target signature"] = "La firma recibida no es válida"; -$a->strings["Public Timeline"] = "Cronología pública"; -$a->strings["Image/photo"] = "Imagen/foto"; -$a->strings["Encrypted content"] = "Contenido cifrado"; -$a->strings["Install %s element: "] = "Instalar el elemento %s:"; -$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio."; -$a->strings["webpage"] = "página web"; -$a->strings["layout"] = "disposición"; -$a->strings["block"] = "bloque"; -$a->strings["menu"] = "menú"; -$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió la siguiente %2\$s %3\$s"; -$a->strings["post"] = "entrada"; -$a->strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta"; -$a->strings["$1 spoiler"] = "$1 spoiler"; -$a->strings["$1 wrote:"] = "$1 escribió"; -$a->strings["Not a valid email address"] = "Dirección de correo no válida"; -$a->strings["Your email domain is not among those allowed on this site"] = "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio."; -$a->strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio."; -$a->strings["An invitation is required."] = "Es obligatorio que le inviten."; -$a->strings["Invitation could not be verified."] = "No se ha podido verificar su invitación."; -$a->strings["Please enter the required information."] = "Por favor introduzca la información requerida."; -$a->strings["Failed to store account information."] = "La información de la cuenta no se ha podido guardar."; -$a->strings["Registration confirmation for %s"] = "Confirmación de registro para %s"; -$a->strings["Registration request at %s"] = "Solicitud de registro en %s"; -$a->strings["your registration password"] = "su contraseña de registro"; -$a->strings["Registration details for %s"] = "Detalles del registro de %s"; -$a->strings["Account approved."] = "Cuenta aprobada."; -$a->strings["Registration revoked for %s"] = "Registro revocado para %s"; -$a->strings["Account verified. Please login."] = "Cuenta verificada. Por favor, inicie sesión."; -$a->strings["Click here to upgrade."] = "Pulse aquí para actualizar"; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción supera los límites establecidos por su plan de suscripción "; -$a->strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción."; -$a->strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio."; -$a->strings["Channel location missing."] = "Falta la dirección del canal."; -$a->strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal."; -$a->strings["Channel was deleted and no longer exists."] = "El canal ha sido eliminado y ya no existe."; -$a->strings["Protocol disabled."] = "Protocolo deshabilitado."; -$a->strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado."; -$a->strings["local account not found."] = "No se ha encontrado la cuenta local."; -$a->strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo."; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado"; -$a->strings["%d invitation available"] = array( - 0 => "%d invitación pendiente", - 1 => "%d invitaciones disponibles", -); -$a->strings["Advanced"] = "Avanzado"; -$a->strings["Find Channels"] = "Encontrar canales"; -$a->strings["Enter name or interest"] = "Introducir nombre o interés"; -$a->strings["Connect/Follow"] = "Conectar/Seguir"; -$a->strings["Examples: Robert Morgenstein, Fishing"] = "Ejemplos: José Fernández, Pesca"; -$a->strings["Find"] = "Encontrar"; -$a->strings["Channel Suggestions"] = "Sugerencias de canales"; -$a->strings["Random Profile"] = "Perfil aleatorio"; -$a->strings["Invite Friends"] = "Invitar a amigos"; -$a->strings["Advanced example: name=fred and country=iceland"] = "Ejemplo avanzado: nombre=juan y país=españa"; -$a->strings["Everything"] = "Todo"; -$a->strings["Categories"] = "Categorías"; -$a->strings["%d connection in common"] = array( - 0 => "%d conexión en común", - 1 => "%d conexiones en común", -); -$a->strings["show more"] = "mostrar más"; -$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."; -$a->strings["Add new connections to this collection (privacy group)"] = "Añadir nuevas conexiones a esta colección (privacidad del grupo)"; -$a->strings["All Channels"] = "Todos los canales"; -$a->strings["edit"] = "editar"; -$a->strings["Collections"] = "Colecciones"; -$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["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. "; -$a->strings["Stored post could not be verified."] = "No se han podido verificar las entradas guardadas."; $a->strings["Unable to obtain identity information from database"] = "No ha sido posible obtener información sobre la identidad desde la base de datos"; $a->strings["Empty name"] = "Nombre vacío"; $a->strings["Name too long"] = "Nombre demasiado largo"; @@ -730,6 +174,7 @@ $a->strings["Reserved nickname. Please choose another."] = "Sobrenombre en uso. $a->strings["Nickname has unsupported characters or is already being used on this site."] = "El alias contiene caracteres no admitidos o está ya en uso por otros usuarios de este sitio."; $a->strings["Unable to retrieve created identity"] = "No ha sido posible recuperar la identidad creada"; $a->strings["Default Profile"] = "Perfil principal"; +$a->strings["Friends"] = "Amigos"; $a->strings["Requested channel is not available."] = "El canal solicitado no está disponible."; $a->strings["Requested profile is not available."] = "El perfil solicitado no está disponible."; $a->strings["Change profile photo"] = "Cambiar la foto del perfil"; @@ -752,8 +197,13 @@ $a->strings["Birthdays this week:"] = "Cumpleaños de esta semana:"; $a->strings["[No description]"] = "[Sin descripción]"; $a->strings["Event Reminders"] = "Recordatorios de eventos"; $a->strings["Events this week:"] = "Eventos de esta semana:"; +$a->strings["Profile"] = "Perfil"; $a->strings["Full Name:"] = "Nombre completo:"; $a->strings["Like this channel"] = "Me gusta este canal"; +$a->strings["__ctx:noun__ Like"] = array( + 0 => "Me gusta", + 1 => "Me gusta", +); $a->strings["j F, Y"] = "j F Y"; $a->strings["j F"] = "j F"; $a->strings["Birthday:"] = "Cumpleaños:"; @@ -779,13 +229,27 @@ $a->strings["Work/employment:"] = "Trabajo:"; $a->strings["School/education:"] = "Estudios:"; $a->strings["Like this thing"] = "Me gusta esto"; $a->strings["Tags"] = "Etiquetas"; +$a->strings["Categories"] = "Categorías"; $a->strings["Keywords"] = "Palabras clave"; $a->strings["have"] = "tener"; $a->strings["has"] = "tiene"; $a->strings["want"] = "quiero"; $a->strings["wants"] = "quiere"; +$a->strings["like"] = "me gusta"; $a->strings["likes"] = "le gusta"; +$a->strings["dislike"] = "no me gusta"; $a->strings["dislikes"] = "no le gusta"; +$a->strings["Visible to your default audience"] = "Visible para su público predeterminado."; +$a->strings["Show"] = "Mostrar"; +$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[" and "] = "y"; +$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["Item was not found."] = "Elemento no encontrado."; $a->strings["No source file."] = "Ningún fichero de origen"; $a->strings["Cannot locate file to replace"] = "No se puede localizar el fichero que va a ser sustituido."; @@ -803,8 +267,11 @@ $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["created a new post"] = "ha creado una nueva entrada"; +$a->strings["commented on %s's post"] = "ha comentado la entrada de %s"; $a->strings["Apps"] = "Aplicaciones"; $a->strings["System"] = "Sistema"; +$a->strings["Personal"] = "Personales"; $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"; @@ -817,6 +284,10 @@ $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Ejemplo: $a->strings["Notes"] = "Notas"; $a->strings["Save"] = "Guardar"; $a->strings["Remove term"] = "Eliminar término"; +$a->strings["Saved Searches"] = "Búsquedas guardadas"; +$a->strings["add"] = "añadir"; +$a->strings["Saved Folders"] = "Carpetas guardadas"; +$a->strings["Everything"] = "Todo"; $a->strings["Archives"] = "Hemeroteca"; $a->strings["Me"] = "Yo"; $a->strings["Family"] = "Familia"; @@ -832,6 +303,8 @@ $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["Channel Sources"] = "Orígenes de los contenidos del canal"; +$a->strings["Settings"] = "Ajustes"; $a->strings["Private Mail Menu"] = "Menú de correo privado"; $a->strings["Combined View"] = "Vista combinada"; $a->strings["Inbox"] = "Bandeja de entrada"; @@ -842,6 +315,12 @@ $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"; @@ -868,6 +347,471 @@ $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["%1\$s's bookmarks"] = "Marcadores de %1\$s"; +$a->strings["General Features"] = "Características generales"; +$a->strings["Content Expiration"] = "Caducidad del contenido"; +$a->strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"; +$a->strings["Multiple Profiles"] = "Múltiples perfiles"; +$a->strings["Ability to create multiple profiles"] = "Capacidad de crear múltiples perfiles"; +$a->strings["Advanced Profiles"] = "Perfiles avanzados"; +$a->strings["Additional profile sections and selections"] = "Secciones y selecciones de perfil adicionales"; +$a->strings["Profile Import/Export"] = "Importar/Exportar perfil"; +$a->strings["Save and load profile details across sites/channels"] = "Guardar y cargar detalles del perfil a través de sitios/canales"; +$a->strings["Web Pages"] = "Páginas web"; +$a->strings["Provide managed web pages on your channel"] = "Proveer páginas web gestionadas en su canal"; +$a->strings["Private Notes"] = "Notas privadas"; +$a->strings["Enables a tool to store notes and reminders"] = "Activar una herramienta para almacenar notas y recordatorios"; +$a->strings["Navigation Channel Select"] = "Navegación por el selector de canales"; +$a->strings["Change channels directly from within the navigation dropdown menu"] = "Cambiar de canales directamente desde el menú de navegación desplegable"; +$a->strings["Photo Location"] = "Ubicación de las fotos"; +$a->strings["If location data is available on uploaded photos, link this to a map."] = "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."; +$a->strings["Expert Mode"] = "Modo de experto"; +$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Habilitar el modo de experto para acceder a opciones avanzadas de configuración"; +$a->strings["Premium Channel"] = "Canal premium"; +$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Les permite configurar restricciones y normas de uso a aquellos que conectan con su canal"; +$a->strings["Post Composition Features"] = "Características de composición de entradas"; +$a->strings["Use Markdown"] = "Usar Markdown"; +$a->strings["Allow use of \"Markdown\" to format posts"] = "Permitir el uso de \"Markdown\" para formatear publicaciones"; +$a->strings["Large Photos"] = "Fotos de gran tamaño"; +$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (6400px)"; +$a->strings["Automatically import channel content from other channels or feeds"] = "Importar automáticamente contenido de otros canales o \"feeds\""; +$a->strings["Even More Encryption"] = "Más cifrado todavía"; +$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida."; +$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"; +$a->strings["Collections Filter"] = "Filtrado de colecciones"; +$a->strings["Enable widget to display Network posts only from selected collections"] = "Habilitar la muestra de entradas eligiendo colecciones"; +$a->strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización"; +$a->strings["Network Personal Tab"] = "Actividad personal"; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado."; +$a->strings["Network New Tab"] = "Contenido nuevo"; +$a->strings["Enable tab to display all new Network activity"] = "Habilitar una pestaña en la que se muestre solo el contenido nuevo"; +$a->strings["Affinity Tool"] = "Herramienta de afinidad"; +$a->strings["Filter stream activity by depth of relationships"] = "Filtrar la actividad del flujo por profundidad de relaciones"; +$a->strings["Connection Filtering"] = "Filtrado de conexiones"; +$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"; +$a->strings["Suggest Channels"] = "Sugerir canales"; +$a->strings["Show channel suggestions"] = "Mostrar sugerencias de canales"; +$a->strings["Post/Comment Tools"] = "Herramientas de entradas/comentarios"; +$a->strings["Tagging"] = "Etiquetado"; +$a->strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes"; +$a->strings["Post Categories"] = "Categorías de entradas"; +$a->strings["Add categories to your posts"] = "Añadir categorías a sus publicaciones"; +$a->strings["Ability to file posts under folders"] = "Capacidad de archivar entradas en carpetas"; +$a->strings["Dislike Posts"] = "Desagrado de publicaciones"; +$a->strings["Ability to dislike posts/comments"] = "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios"; +$a->strings["Star Posts"] = "Entradas destacadas"; +$a->strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella"; +$a->strings["Tag Cloud"] = "Nube de etiquetas"; +$a->strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal"; +$a->strings["Male"] = "Hombre"; +$a->strings["Female"] = "Mujer"; +$a->strings["Currently Male"] = "Actualmente hombre"; +$a->strings["Currently Female"] = "Actualmente mujer"; +$a->strings["Mostly Male"] = "Generalmente hombre"; +$a->strings["Mostly Female"] = "Generalmente mujer"; +$a->strings["Transgender"] = "Transgénero"; +$a->strings["Intersex"] = "Intersexual"; +$a->strings["Transsexual"] = "Transexual"; +$a->strings["Hermaphrodite"] = "Hermafrodita"; +$a->strings["Neuter"] = "Neutral"; +$a->strings["Non-specific"] = "No especificado"; +$a->strings["Other"] = "Otro"; +$a->strings["Undecided"] = "Indeciso/a"; +$a->strings["Males"] = "Hombres"; +$a->strings["Females"] = "Mujeres"; +$a->strings["Gay"] = "Homosexual"; +$a->strings["Lesbian"] = "Lesbiana"; +$a->strings["No Preference"] = "Sin preferencias"; +$a->strings["Bisexual"] = "Bisexual"; +$a->strings["Autosexual"] = "Autosexual"; +$a->strings["Abstinent"] = "Casto/a"; +$a->strings["Virgin"] = "Virgen"; +$a->strings["Deviant"] = "Fuera de lo común"; +$a->strings["Fetish"] = "Fetichista"; +$a->strings["Oodles"] = "Orgías"; +$a->strings["Nonsexual"] = "Asexual"; +$a->strings["Single"] = "Soltero/a"; +$a->strings["Lonely"] = "Solo/a"; +$a->strings["Available"] = "Disponible"; +$a->strings["Unavailable"] = "No disponible"; +$a->strings["Has crush"] = "Enamorado/a"; +$a->strings["Infatuated"] = "Apasionado/a"; +$a->strings["Dating"] = "Saliendo con alguien"; +$a->strings["Unfaithful"] = "Infiel"; +$a->strings["Sex Addict"] = "Con adicción al sexo"; +$a->strings["Friends/Benefits"] = "Amigos con algo extra"; +$a->strings["Casual"] = "Casual"; +$a->strings["Engaged"] = "Prometido/a"; +$a->strings["Married"] = "Casado/a"; +$a->strings["Imaginarily married"] = "Casado/a en sueños"; +$a->strings["Partners"] = "Pareja"; +$a->strings["Cohabiting"] = "Cohabitando"; +$a->strings["Common law"] = "Matrimonio tradicional"; +$a->strings["Happy"] = "Felíz"; +$a->strings["Not looking"] = "No estoy buscando"; +$a->strings["Swinger"] = "Libertino"; +$a->strings["Betrayed"] = "Engañado/a"; +$a->strings["Separated"] = "Separado/a"; +$a->strings["Unstable"] = "Inestable"; +$a->strings["Divorced"] = "Divorciado/a"; +$a->strings["Imaginarily divorced"] = "Divorciado/a en sueños"; +$a->strings["Widowed"] = "Viudo/a"; +$a->strings["Uncertain"] = "Indeterminado"; +$a->strings["It's complicated"] = "Es complicado"; +$a->strings["Don't care"] = "No me importa"; +$a->strings["Ask me"] = "Pregúnteme"; +$a->strings["Miscellaneous"] = "Varios"; +$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD"; +$a->strings["Required"] = "Obligatorio"; +$a->strings["never"] = "nunca"; +$a->strings["less than a second ago"] = "hace un instante"; +$a->strings["year"] = "año"; +$a->strings["years"] = "años"; +$a->strings["month"] = "mes"; +$a->strings["months"] = "meses"; +$a->strings["week"] = "semana"; +$a->strings["weeks"] = "semanas"; +$a->strings["day"] = "día"; +$a->strings["days"] = "días"; +$a->strings["hour"] = "hora"; +$a->strings["hours"] = "horas"; +$a->strings["minute"] = "minuto"; +$a->strings["minutes"] = "minutos"; +$a->strings["second"] = "segundo"; +$a->strings["seconds"] = "segundos"; +$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s"; +$a->strings["%1\$s's birthday"] = "Cumpleaños de %1\$s"; +$a->strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s"; +$a->strings["Public Timeline"] = "Cronología pública"; +$a->strings["photo"] = "foto"; +$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 este 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["<span %1\$s>%2\$d people</span> like this."] = array( + 0 => "a <span %1\$s>%2\$d personas</span> le gusta esto.", + 1 => "a <span %1\$s>%2\$d personas</span> les gusta esto.", +); +$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( + 0 => "a <span %1\$s>%2\$d personas</span> no les gusta esto.", + 1 => "a <span %1\$s>%2\$d personas</span> 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 <strong>everybody</strong>"] = "Visible para <strong>cualquiera</strong>"; +$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["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__ 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 => "De acuerdo", + 1 => "De acuerdo", +); +$a->strings["__ctx:noun__ Disagree"] = array( + 0 => "En desacuerdo", + 1 => "En desacuerdo", +); +$a->strings["__ctx:noun__ Abstain"] = array( + 0 => "se abstiene", + 1 => "Se abstienen", +); +$a->strings["Logged out."] = "Desconectado/a."; +$a->strings["Failed authentication"] = "Autenticación fallida."; +$a->strings["Login failed."] = "El acceso ha fallado."; +$a->strings["Frequently"] = "Frecuentemente"; +$a->strings["Hourly"] = "Cada hora"; +$a->strings["Twice daily"] = "Dos veces al día"; +$a->strings["Daily"] = "Diariamente"; +$a->strings["Weekly"] = "Semanalmente"; +$a->strings["Monthly"] = "Mensualmente"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Correo electrónico"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zot!"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/IM"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Invalid data packet"] = "Paquete de datos no válido"; +$a->strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal"; +$a->strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s"; +$a->strings["invalid target signature"] = "La firma recibida no es válida"; +$a->strings["Image/photo"] = "Imagen/foto"; +$a->strings["Encrypted content"] = "Contenido cifrado"; +$a->strings["Install %s element: "] = "Instalar el elemento %s:"; +$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio."; +$a->strings["webpage"] = "página web"; +$a->strings["layout"] = "disposición"; +$a->strings["block"] = "bloque"; +$a->strings["menu"] = "menú"; +$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió la siguiente %2\$s %3\$s"; +$a->strings["post"] = "entrada"; +$a->strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta"; +$a->strings["$1 spoiler"] = "$1 spoiler"; +$a->strings["$1 wrote:"] = "$1 escribió"; +$a->strings["%d invitation available"] = array( + 0 => "%d invitación pendiente", + 1 => "%d invitaciones disponibles", +); +$a->strings["Advanced"] = "Avanzado"; +$a->strings["Find Channels"] = "Encontrar canales"; +$a->strings["Enter name or interest"] = "Introducir nombre o interés"; +$a->strings["Connect/Follow"] = "Conectar/Seguir"; +$a->strings["Examples: Robert Morgenstein, Fishing"] = "Ejemplos: José Fernández, Pesca"; +$a->strings["Find"] = "Encontrar"; +$a->strings["Channel Suggestions"] = "Sugerencias de canales"; +$a->strings["Random Profile"] = "Perfil aleatorio"; +$a->strings["Invite Friends"] = "Invitar a amigos"; +$a->strings["Advanced example: name=fred and country=iceland"] = "Ejemplo avanzado: nombre=juan y país=españa"; +$a->strings["%d connection in common"] = array( + 0 => "%d conexión en común", + 1 => "%d conexiones en común", +); +$a->strings["show more"] = "mostrar más"; +$a->strings["Directory Options"] = "Opciones del directorio"; +$a->strings["Safe Mode"] = "Modo seguro"; +$a->strings["No"] = "No"; +$a->strings["Yes"] = "Sí"; +$a->strings["Public Forums Only"] = "Solo foros públicos"; +$a->strings["This Website Only"] = "Solo este sitio web"; +$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; +$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."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s le envió %2\$s."; +$a->strings["a private message"] = "un mensaje privado"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Por favor visite %s para ver y/o responder a su mensaje privado."; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%5\$s de %4\$s[/zrl] "; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [zrl=%3\$s]%4\$s creado por usted[/zrl]"; +$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Aviso] Nuevo comentario de %2\$s a la conversación #%1\$d"; +$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha comentado un elemento/conversación que ha estado siguiendo."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s"; +$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Aviso] %s ha publicado una entrada en su página de inicio del perfil"; +$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s publicó en su página del perfil en %3\$s"; +$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s publicó en [zrl=%3\$s]su página del perfil[/zrl]"; +$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Aviso] %s le ha etiquetado"; +$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le etiquetó en %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl]."; +$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Aviso] %1\$s le ha dado un toque"; +$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le dio un toque en %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le dio un toque[/zrl]."; +$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Aviso] %s ha etiquetado su publicación"; +$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación en %3\$s"; +$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s etiquetó [zrl=%3\$s]su publicación[/zrl]"; +$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Aviso] Ha recibido una solicitud de conexión"; +$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una nueva solicitud de conexión de '%2\$s' en %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una nueva solicitud de conexión[/zrl] de %3\$s."; +$a->strings["You may visit their profile at %s"] = "Puede visitar su perfil en %s"; +$a->strings["Please visit %s to approve or reject the connection request."] = "Por favor, visite %s para permitir o rechazar la solicitad de conexión."; +$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Aviso] Ha recibido una sugerencia de amistad"; +$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una sugerencia de conexión de '%2\$s' en %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una sugerencia de conexión[/zrl] para %3\$s de %4\$s."; +$a->strings["Name:"] = "Nombre:"; +$a->strings["Photo:"] = "Foto:"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia."; +$a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Aviso]"; +$a->strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio."; +$a->strings["Channel location missing."] = "Falta la dirección del canal."; +$a->strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal."; +$a->strings["Channel was deleted and no longer exists."] = "El canal ha sido eliminado y ya no existe."; +$a->strings["Protocol disabled."] = "Protocolo deshabilitado."; +$a->strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado."; +$a->strings["local account not found."] = "No se ha encontrado la cuenta local."; +$a->strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo."; +$a->strings["Embedded content"] = "Contenido incorporado"; +$a->strings["Embedding disabled"] = "Incrustación deshabilitada"; +$a->strings["Logout"] = "Finalizar sesión"; +$a->strings["End this session"] = "Finalizar esta sesión"; +$a->strings["Home"] = "Inicio"; +$a->strings["Your posts and conversations"] = "Sus entradas y conversaciones"; +$a->strings["Your profile page"] = "Su página del perfil"; +$a->strings["Edit Profiles"] = "Editar perfiles"; +$a->strings["Manage/Edit profiles"] = "Administrar/editar perfiles"; +$a->strings["Edit your profile"] = "Editar su perfil"; +$a->strings["Your photos"] = "Sus fotos"; +$a->strings["Your files"] = "Sus ficheros"; +$a->strings["Chat"] = "Chat"; +$a->strings["Your chatrooms"] = "Sus salas de chat"; +$a->strings["Your bookmarks"] = "Sus marcadores"; +$a->strings["Your webpages"] = "Sus páginas web"; +$a->strings["Login"] = "Iniciar sesión"; +$a->strings["Sign in"] = "Acceder"; +$a->strings["%s - click to logout"] = "%s - pulsar para finalizar sesión"; +$a->strings["Remote authentication"] = "Acceder desde su servidor"; +$a->strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor de inicio"; +$a->strings["Home Page"] = "Página de inicio"; +$a->strings["Register"] = "Registrarse"; +$a->strings["Create an account"] = "Crear una cuenta"; +$a->strings["Help"] = "Ayuda"; +$a->strings["Help and documentation"] = "Ayuda y documentación"; +$a->strings["Applications, utilities, links, games"] = "Aplicaciones, utilidades, enlaces, juegos"; +$a->strings["Search"] = "Buscar"; +$a->strings["Search site @name, #tag, ?docs, content"] = "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido"; +$a->strings["Directory"] = "Directorio"; +$a->strings["Channel Directory"] = "Directorio de canales"; +$a->strings["Grid"] = "Red"; +$a->strings["Your grid"] = "Mi red"; +$a->strings["Mark all grid notifications seen"] = "Marcar todas las notificaciones de la red como vistas"; +$a->strings["Channel Home"] = "Mi canal"; +$a->strings["Channel home"] = "Mi canal"; +$a->strings["Mark all channel notifications seen"] = "Marcar todas las notificaciones del canal como leídas"; +$a->strings["Connections"] = "Conexiones"; +$a->strings["Notices"] = "Avisos"; +$a->strings["Notifications"] = "Notificaciones"; +$a->strings["See all notifications"] = "Ver todas las notificaciones"; +$a->strings["Mark all system notifications seen"] = "Marcar todas las notificaciones de sistema como leídas"; +$a->strings["Mail"] = "Correo"; +$a->strings["Private mail"] = "Correo privado"; +$a->strings["See all private messages"] = "Ver todas los mensajes privados"; +$a->strings["Mark all private messages seen"] = "Marcar todos los mensajes privados como leídos"; +$a->strings["Events"] = "Eventos"; +$a->strings["Event Calendar"] = "Calendario de eventos"; +$a->strings["See all events"] = "Ver todos los eventos"; +$a->strings["Mark all events seen"] = "Marcar todos los eventos como leidos"; +$a->strings["Channel Manager"] = "Administración de canales"; +$a->strings["Manage Your Channels"] = "Gestionar sus canales"; +$a->strings["Account/Channel Settings"] = "Ajustes de cuenta/canales"; +$a->strings["Site Setup and Configuration"] = "Ajustes y configuración del sitio"; +$a->strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido"; +$a->strings["Please wait..."] = "Espere por favor…"; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrido probablemente porque el formulario ha estado abierto demasiado tiempo (>3 horas) antes de ser enviado"; $a->strings["prev"] = "anterior"; $a->strings["first"] = "primera"; $a->strings["last"] = "última"; @@ -930,93 +874,193 @@ $a->strings["Blocks"] = "Bloques"; $a->strings["Menus"] = "Menús"; $a->strings["Layouts"] = "Formato gráfico"; $a->strings["Pages"] = "Páginas"; -$a->strings["Logout"] = "Finalizar sesión"; -$a->strings["End this session"] = "Finalizar esta sesión"; -$a->strings["Home"] = "Inicio"; -$a->strings["Your posts and conversations"] = "Sus entradas y conversaciones"; -$a->strings["Your profile page"] = "Su página del perfil"; -$a->strings["Edit Profiles"] = "Editar perfiles"; -$a->strings["Manage/Edit profiles"] = "Administrar/editar perfiles"; -$a->strings["Edit your profile"] = "Editar su perfil"; -$a->strings["Your photos"] = "Sus fotos"; -$a->strings["Your files"] = "Sus ficheros"; -$a->strings["Your chatrooms"] = "Sus salas de chat"; -$a->strings["Your bookmarks"] = "Sus marcadores"; -$a->strings["Your webpages"] = "Sus páginas web"; -$a->strings["Sign in"] = "Acceder"; -$a->strings["%s - click to logout"] = "%s - pulsar para finalizar sesión"; -$a->strings["Remote authentication"] = "Acceder desde su servidor"; -$a->strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor de inicio"; -$a->strings["Home Page"] = "Página de inicio"; -$a->strings["Register"] = "Registrarse"; -$a->strings["Create an account"] = "Crear una cuenta"; -$a->strings["Help and documentation"] = "Ayuda y documentación"; -$a->strings["Applications, utilities, links, games"] = "Aplicaciones, utilidades, enlaces, juegos"; -$a->strings["Search site @name, #tag, ?docs, content"] = "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido"; -$a->strings["Channel Directory"] = "Directorio de canales"; -$a->strings["Your grid"] = "Mi red"; -$a->strings["Mark all grid notifications seen"] = "Marcar todas las notificaciones de la red como vistas"; -$a->strings["Channel home"] = "Mi canal"; -$a->strings["Mark all channel notifications seen"] = "Marcar todas las notificaciones del canal como leídas"; -$a->strings["Connections"] = "Conexiones"; -$a->strings["Notices"] = "Avisos"; -$a->strings["Notifications"] = "Notificaciones"; -$a->strings["See all notifications"] = "Ver todas las notificaciones"; -$a->strings["Mark all system notifications seen"] = "Marcar todas las notificaciones de sistema como leídas"; -$a->strings["Private mail"] = "Correo privado"; -$a->strings["See all private messages"] = "Ver todas los mensajes privados"; -$a->strings["Mark all private messages seen"] = "Marcar todos los mensajes privados como leídos"; -$a->strings["Event Calendar"] = "Calendario de eventos"; -$a->strings["See all events"] = "Ver todos los eventos"; -$a->strings["Mark all events seen"] = "Marcar todos los eventos como leidos"; -$a->strings["Manage Your Channels"] = "Gestionar sus canales"; -$a->strings["Account/Channel Settings"] = "Ajustes de cuenta/canales"; -$a->strings["Site Setup and Configuration"] = "Ajustes y configuración del sitio"; -$a->strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido"; -$a->strings["Please wait..."] = "Espere por favor…"; -$a->strings["Directory Options"] = "Opciones del directorio"; -$a->strings["Safe Mode"] = "Modo seguro"; -$a->strings["No"] = "No"; -$a->strings["Yes"] = "Sí"; -$a->strings["Public Forums Only"] = "Solo foros públicos"; -$a->strings["This Website Only"] = "Solo este sitio web"; -$a->strings["Some blurb about what to do when you're new here"] = "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí"; -$a->strings["Contact not found."] = "Contacto no encontrado"; -$a->strings["Friend suggestion sent."] = "Enviar sugerencia a un amigo."; -$a->strings["Suggest Friends"] = "Sugerir amigos"; -$a->strings["Suggest a friend for %s"] = "Sugerir un amigo a %s"; -$a->strings["Public access denied."] = "Acceso público denegado."; -$a->strings["%d rating"] = array( - 0 => "%d valoración", - 1 => "%d valoraciones", +$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos existentes sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."; +$a->strings["Add new connections to this collection (privacy group)"] = "Añadir nuevas conexiones a esta colección (privacidad del grupo)"; +$a->strings["All Channels"] = "Todos los canales"; +$a->strings["edit"] = "editar"; +$a->strings["Collections"] = "Colecciones"; +$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["New Page"] = "Nueva página"; +$a->strings["View"] = "Ver"; +$a->strings["Actions"] = "Acciones"; +$a->strings["Page Link"] = "Vínculo de la página"; +$a->strings["Title"] = "Título"; +$a->strings["Created"] = "Creado"; +$a->strings["Edited"] = "Editado"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "No se ha podido localizar información de DNS para el servidor de base de datos “%s”"; +$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"; +$a->strings["Photo storage failed."] = "La foto no ha podido ser guardada."; +$a->strings["Upload New Photos"] = "Subir nuevas fotos"; +$a->strings["Save to Folder"] = "Guardar en carpeta"; +$a->strings["I will attend"] = "Participaré"; +$a->strings["I will not attend"] = "No participaré"; +$a->strings["I might attend"] = "Quizá participe"; +$a->strings["I agree"] = "Estoy de acuerdo"; +$a->strings["I disagree"] = "No estoy de acuerdo"; +$a->strings["I abstain"] = "Me abstengo"; +$a->strings["Add Star"] = "Destacar añadiendo una estrella"; +$a->strings["Remove Star"] = "Eliminar estrella"; +$a->strings["Toggle Star Status"] = "Activar o desactivar el estado de entrada preferida"; +$a->strings["starred"] = "preferidas"; +$a->strings["Add Tag"] = "Añadir etiqueta"; +$a->strings["I like this (toggle)"] = "me gusta (cambiar)"; +$a->strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; +$a->strings["Share This"] = "Compartir esto"; +$a->strings["share"] = "compartir"; +$a->strings["Delivery Report"] = "Informe de transmisión"; +$a->strings["%d comment"] = array( + 0 => "%d comentario", + 1 => "%d comentarios", ); -$a->strings["Gender: "] = "Género:"; -$a->strings["Status: "] = "Estado:"; -$a->strings["Homepage: "] = "Página personal:"; -$a->strings["Description:"] = "Descripción:"; -$a->strings["Public Forum:"] = "Foro público:"; -$a->strings["Keywords: "] = "Palabras clave:"; -$a->strings["Don't suggest"] = "No sugerir:"; -$a->strings["Common connections:"] = "Conexiones comunes:"; -$a->strings["Global Directory"] = "Directorio global:"; -$a->strings["Local Directory"] = "Directorio local:"; -$a->strings["Finding:"] = "Encontrar:"; -$a->strings["next page"] = "siguiente página"; -$a->strings["previous page"] = "página anterior"; -$a->strings["Sort options"] = "Ordenar opciones"; -$a->strings["Alphabetic"] = "Alfabético"; -$a->strings["Reverse Alphabetic"] = "Alfabético inverso"; -$a->strings["Newest to Oldest"] = "De más nuevo a más antiguo"; -$a->strings["Oldest to Newest"] = "De más antiguo a más nuevo"; -$a->strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas)."; -$a->strings["Bookmark added"] = "Marcador añadido"; -$a->strings["My Bookmarks"] = "Mis Marcadores"; -$a->strings["My Connections Bookmarks"] = "Marcadores de mis conexiones"; +$a->strings["View %s's profile - %s"] = "Ver el perfil de %s - %s"; +$a->strings["to"] = "a"; +$a->strings["via"] = "mediante"; +$a->strings["Wall-to-Wall"] = "De página del perfil a página del perfil (de Muro a Muro)"; +$a->strings["via Wall-To-Wall:"] = "Mediante el procedimiento página del perfil a página del perfil (de Muro a Muro)"; +$a->strings["Save Bookmarks"] = "Guardar en Marcadores"; +$a->strings["Add to Calendar"] = "Añadir al calendario"; +$a->strings["Mark all seen"] = "Marcar todo como visto"; +$a->strings["__ctx:noun__ Likes"] = "Me gusta"; +$a->strings["__ctx:noun__ Dislikes"] = "No me gusta"; +$a->strings["This is you"] = "Este es usted"; +$a->strings["Image"] = "Imagen"; +$a->strings["Insert Link"] = "Insertar enlace"; +$a->strings["Video"] = "Vídeo"; +$a->strings["Not a valid email address"] = "Dirección de correo no válida"; +$a->strings["Your email domain is not among those allowed on this site"] = "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio."; +$a->strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio."; +$a->strings["An invitation is required."] = "Es obligatorio que le inviten."; +$a->strings["Invitation could not be verified."] = "No se ha podido verificar su invitación."; +$a->strings["Please enter the required information."] = "Por favor introduzca la información requerida."; +$a->strings["Failed to store account information."] = "La información de la cuenta no se ha podido guardar."; +$a->strings["Registration confirmation for %s"] = "Confirmación de registro para %s"; +$a->strings["Registration request at %s"] = "Solicitud de registro en %s"; +$a->strings["your registration password"] = "su contraseña de registro"; +$a->strings["Registration details for %s"] = "Detalles del registro de %s"; +$a->strings["Account approved."] = "Cuenta aprobada."; +$a->strings["Registration revoked for %s"] = "Registro revocado para %s"; +$a->strings["Account verified. Please login."] = "Cuenta verificada. Por favor, inicie sesión."; +$a->strings["Click here to upgrade."] = "Pulse aquí para actualizar"; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Esta acción supera los límites establecidos por su plan de suscripción "; +$a->strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción."; +$a->strings["Site Admin"] = "Adminstrador del sitio"; +$a->strings["Address Book"] = "Libreta de direcciones"; +$a->strings["Mood"] = "Estado de ánimo"; +$a->strings["Probe"] = "Probar"; +$a->strings["Suggest"] = "Sugerir"; +$a->strings["Random Channel"] = "Canal aleatorio"; +$a->strings["Invite"] = "Invitar"; +$a->strings["Features"] = "Características"; +$a->strings["Language"] = "Idioma"; +$a->strings["Post"] = "Publicación"; +$a->strings["Profile Photo"] = "Foto del perfil"; +$a->strings["Update"] = "Actualizar"; +$a->strings["Install"] = "Instalar"; +$a->strings["Purchase"] = "Comprar"; +$a->strings["Can view my normal stream and posts"] = "Pueden verse mi flujo de actividad y publicaciones normales"; +$a->strings["Can view my default channel profile"] = "Puede verse mi perfil de canal predeterminado."; +$a->strings["Can view my connections"] = "Pueden verse mis conexiones"; +$a->strings["Can view my file storage and photos"] = "Pueden verse mi repositorio de ficheros y mis fotos"; +$a->strings["Can view my webpages"] = "Pueden verse mis páginas web"; +$a->strings["Can send me their channel stream and posts"] = "Me pueden enviar sus entradas y flujo de actividad del canal"; +$a->strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muro”)"; +$a->strings["Can comment on or like my posts"] = "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'."; +$a->strings["Can send me private mail messages"] = "Se me pueden enviar mensajes privados"; +$a->strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta"; +$a->strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios"; +$a->strings["Can forward to all my channel contacts via post @mentions"] = "Puede enviarse una entrada a todos mis contactos del canal mediante una @mención"; +$a->strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos"; +$a->strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)"; +$a->strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos"; +$a->strings["Can edit my webpages"] = "Pueden editarse mis páginas web"; +$a->strings["Can source my public posts in derived channels"] = "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados"; +$a->strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas"; +$a->strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal"; +$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Muy avanzado. Déjelo a no ser que sepa bien lo que está haciendo."; +$a->strings["Social Networking"] = "Redes sociales"; +$a->strings["Mostly Public"] = "Público en su mayor parte"; +$a->strings["Restricted"] = "Restringido"; +$a->strings["Private"] = "Privado"; +$a->strings["Community Forum"] = "Foro de discusión"; +$a->strings["Feed Republish"] = "Republicar un \"feed\""; +$a->strings["Special Purpose"] = "Propósito especial"; +$a->strings["Celebrity/Soapbox"] = "Página para fans"; +$a->strings["Group Repository"] = "Repositorio de grupo"; +$a->strings["Custom/Expert Mode"] = "Modo personalizado/experto"; +$a->strings["Profile Photos"] = "Fotos del perfil"; +$a->strings["Permission Denied."] = "Permiso denegado"; +$a->strings["File not found."] = "Fichero no encontrado."; +$a->strings["Edit file permissions"] = "Modificar los permisos del fichero"; +$a->strings["Set/edit permissions"] = "Establecer/editar los permisos"; +$a->strings["Include all files and sub folders"] = "Incluir todos los ficheros y subcarpetas"; +$a->strings["Return to file list"] = "Volver a la lista de ficheros"; +$a->strings["Copy/paste this code to attach file to a post"] = "Copiar/pegar este código para adjuntar el fichero al envío"; +$a->strings["Copy/paste this URL to link file from a web page"] = "Copiar/pegar esta dirección para enlazar el fichero desde una página web"; +$a->strings["Share this file"] = "Compartir este fichero"; +$a->strings["Show URL to this file"] = "Mostrar la dirección de este fichero"; +$a->strings["Notify your contacts about this file"] = "Avisar a sus contactos sobre este fichero"; +$a->strings["Collection created."] = "La colección ha sido creada."; +$a->strings["Could not create collection."] = "No se puede crear la colección."; +$a->strings["Collection updated."] = "La colección ha sido actualizada."; +$a->strings["Create a collection of channels."] = "Crear una colección de canales."; +$a->strings["Collection Name: "] = "Nombre de la colección:"; +$a->strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales"; +$a->strings["Collection removed."] = "La colección ha sido eliminada."; +$a->strings["Unable to remove collection."] = "No ha sido posible de eliminar la colección."; +$a->strings["Collection Editor"] = "Editor de colecciones"; +$a->strings["Members"] = "Miembros"; +$a->strings["All Connected Channels"] = "Todos los canales conectados"; +$a->strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo."; +$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."; +$a->strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web."; +$a->strings["No channel."] = "Ningún canal."; +$a->strings["Common connections"] = "Conexiones comunes"; +$a->strings["No connections in common."] = "Ninguna conexión en común."; +$a->strings["Continue"] = "Continuar"; +$a->strings["Premium Channel Setup"] = "Configuración del canal premium"; +$a->strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium"; +$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc."; +$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:"; +$a->strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"; +$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página."; +$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)"; +$a->strings["Restricted or Premium Channel"] = "Canal premium o restringido"; +$a->strings["Profile Match"] = "Perfil compatible"; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal."; +$a->strings["is interested in:"] = "está interesado en:"; +$a->strings["No matches"] = "No se han encontrado perfiles compatibles"; $a->strings["OpenID protocol error. No ID returned."] = "Error del protocolo OpenID. Ningún ID recibido como respuesta."; $a->strings["Welcome %s. Remote authentication successful."] = "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente."; -$a->strings["Invalid item."] = "Elemento no válido."; -$a->strings["Channel not found."] = "Canal no encontrado."; -$a->strings["Page not found."] = "Página no encontrada."; +$a->strings["Some blurb about what to do when you're new here"] = "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí"; +$a->strings["Away"] = "Ausente"; +$a->strings["Online"] = "Conectado/a"; +$a->strings["Public Sites"] = "Sitios públicos"; +$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público en la red \$Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales."; +$a->strings["Rate this hub"] = "Valorar este sitio"; +$a->strings["Site URL"] = "Dirección del sitio"; +$a->strings["Access Type"] = "Tipo de acceso"; +$a->strings["Registration Policy"] = "Normas de registro"; +$a->strings["Project"] = "Proyecto"; +$a->strings["View hub ratings"] = "Ver las valoraciones del sitio"; +$a->strings["Rate"] = "Valorar"; +$a->strings["View ratings"] = "Ver valoraciones"; +$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado la %3\$s de %2\$s con %4\$s"; +$a->strings["Website:"] = "Sitio web:"; +$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)"; +$a->strings["Rating (this information is public)"] = "Valoración (esta información es pública)"; +$a->strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)"; +$a->strings["Block Name"] = "Nombre del bloque"; +$a->strings["Block Title"] = "Título del bloque"; $a->strings["First Name"] = "Nombre"; $a->strings["Last Name"] = "Apellido"; $a->strings["Nickname"] = "Sobrenombre o Alias"; @@ -1049,28 +1093,10 @@ $a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no $a->strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe"; $a->strings["Action completed."] = "Acción completada."; $a->strings["Thank you."] = "Gracias."; -$a->strings["Export Channel"] = "Exportar el canal"; -$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exportar la información básica del canal a un fichero. Este equivale a una copia de seguridad de sus conexiones, el perfil y datos fundamentales, que puede usarse para importar sus datos a un nuevo servidor, pero no incluye su contenido."; -$a->strings["Export Content"] = "Exportar contenidos"; -$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exportar la información sobre su canal y el contenido reciente a un fichero de respaldo JSON, que puede ser restaurado o importado a otro servidor. Este fichero incluye todas sus conexiones, permisos, datos del perfil y publicaciones de varios meses. Puede llegar a ser MUY grande. Por favor, sea paciente, la descarga puede tardar varios minutos en comenzar."; -$a->strings["Export your posts from a given year."] = "Exporta sus entradas de un año dado."; -$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "También puede exportar sus mensajes y conversaciones durante un año o mes en particular. Ajuste la fecha en la barra de direcciones del navegador para seleccionar otras fechas. Si la exportación falla (posiblemente debido al agotamiento de la memoria del servidor hub), por favor, intente de nuevo la selección de un rango de fechas más pequeño."; -$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un año determinado, como este año, visite <a href=\"%1\$s\">%2\$s</a>"; -$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite <a href=\"%1\$s\">%2\$s</a>"; -$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1\$s\">%2\$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)."; -$a->strings["Away"] = "Ausente"; -$a->strings["Online"] = "Conectado/a"; -$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado la %3\$s de %2\$s con %4\$s"; -$a->strings["No channel."] = "Ningún canal."; -$a->strings["Common connections"] = "Conexiones comunes"; -$a->strings["No connections in common."] = "Ninguna conexión en común."; -$a->strings["sent you a private message"] = "le ha enviado un mensaje privado"; -$a->strings["added your channel"] = "añadió este canal a sus conexiones"; -$a->strings["posted an event"] = "publicó un evento"; -$a->strings["Documentation Search"] = "Búsqueda de Documentación"; -$a->strings["Help:"] = "Ayuda:"; -$a->strings["Not Found"] = "No encontrado"; -$a->strings["\$Projectname Documentation"] = "Documentación de \$Projectname"; +$a->strings["Invalid item."] = "Elemento no válido."; +$a->strings["Channel not found."] = "Canal no encontrado."; +$a->strings["Page not found."] = "Página no encontrada."; +$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; $a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "La eliminación de canales no está permitida hasta pasadas 48 horas desde el último cambio de contraseña."; $a->strings["Remove This Channel"] = "Eliminar este canal"; $a->strings["WARNING: "] = "ATENCIÓN:"; @@ -1080,38 +1106,186 @@ $a->strings["Please enter your password for verification:"] = "Por favor, introd $a->strings["Remove this channel and all its clones from the network"] = "Eliminar este canal y todos sus clones de la red"; $a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red"; $a->strings["Remove Channel"] = "Eliminar el canal"; -$a->strings["- select -"] = "- seleccionar -"; -$a->strings["Menu not found."] = "Menú no encontrado"; -$a->strings["Unable to create element."] = "Imposible crear el elemento."; -$a->strings["Unable to update menu element."] = "No es posible actualizar el elemento del menú."; -$a->strings["Unable to add menu element."] = "No es posible añadir el elemento al menú"; -$a->strings["Not found."] = "No encontrado."; -$a->strings["Menu Item Permissions"] = "Permisos del elemento del menú"; -$a->strings["(click to open/close)"] = "(pulsar para abrir o cerrar)"; -$a->strings["Link Name"] = "Nombre del enlace"; -$a->strings["Link or Submenu Target"] = "Destino del enlace o submenú"; -$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Introducir la dirección del enlace o seleccionar el nombre de un submenú"; -$a->strings["Use magic-auth if available"] = "Usar la autenticación mágica si está disponible"; -$a->strings["Open link in new window"] = "Abrir el enlace en una nueva ventana"; -$a->strings["Order in list"] = "Orden en la lista"; -$a->strings["Higher numbers will sink to bottom of listing"] = "Los números más altos irán al final de la lista"; -$a->strings["Submit and finish"] = "Enviar y terminar"; -$a->strings["Submit and continue"] = "Enviar y continuar"; -$a->strings["Menu:"] = "Menú:"; -$a->strings["Link Target"] = "Destino del enlace"; -$a->strings["Edit menu"] = "Editar menú"; -$a->strings["Edit element"] = "Editar el elemento"; -$a->strings["Drop element"] = "Eliminar el elemento"; -$a->strings["New element"] = "Nuevo elemento"; -$a->strings["Edit this menu container"] = "Modificar el contenedor del menú"; -$a->strings["Add menu element"] = "Añadir un elemento al menú"; -$a->strings["Delete this menu item"] = "Eliminar este elemento del menú"; -$a->strings["Edit this menu item"] = "Modificar este elemento del menú"; -$a->strings["Menu item not found."] = "Este elemento del menú no se ha encontrado"; -$a->strings["Menu item deleted."] = "Este elemento del menú ha sido borrado"; -$a->strings["Menu item could not be deleted."] = "Este elemento del menú no puede ser borrado."; -$a->strings["Edit Menu Element"] = "Editar elemento del menú"; -$a->strings["Link text"] = "Texto del enlace"; +$a->strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos"; +$a->strings["Add a Channel"] = "Añadir un canal"; +$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Un canal está formado por su propia colección de páginas web relacionadas. Se puede utilizar para almacenar los perfiles sociales de la red, blogs, grupos de conversación y foros, páginas de famosos y mucho más. Puede crear tantos canales como su proveedor de servicio permita."; +$a->strings["Channel Name"] = "Nombre del canal"; +$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Ejemplos: \"Juan García\", \"Isabel y sus caballos\", \"Fútbol\", \"Grupo de parapente\" "; +$a->strings["Choose a short nickname"] = "Elija un alias corto"; +$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Su alias podrá usarse para crear una dirección de canal fácilmente memorizable (como una dirección de correo electrónico) que puede ser compartido con otros."; +$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "O <a href=\"import\">importar un canal existente</a> de otro lugar"; +$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Elija el tipo de canal (como red social o foro de discusión) y la privacidad que requiera, así podremos seleccionar el mejor conjunto de permisos para usted"; +$a->strings["Channel Type"] = "Tipo de canal"; +$a->strings["Read more about roles"] = "Leer más sobre los roles"; +$a->strings["No ratings"] = "Ninguna valoración"; +$a->strings["Public access denied."] = "Acceso público denegado."; +$a->strings["Ratings"] = "Valoraciones"; +$a->strings["Rating: "] = "Valoración:"; +$a->strings["Website: "] = "Sitio web:"; +$a->strings["Description: "] = "Descripción:"; +$a->strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación"; +$a->strings["Could not connect to database."] = "No se ha podido conectar a la base de datos."; +$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS."; +$a->strings["Could not create table."] = "No se puede crear la tabla."; +$a->strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada."; +$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."; +$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\"."; +$a->strings["System check"] = "Verificación del sistema"; +$a->strings["Next"] = "Siguiente"; +$a->strings["Check again"] = "Verificar de nuevo"; +$a->strings["Database connection"] = "Conexión a la base de datos"; +$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "Para instalar \$Projectname es necesario saber cómo conectar con su base de datos."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir."; +$a->strings["Database Server Name"] = "Nombre del servidor de base de datos"; +$a->strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1"; +$a->strings["Database Port"] = "Puerto de la base de datos"; +$a->strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto"; +$a->strings["Database Login Name"] = "Usuario de la base de datos"; +$a->strings["Database Login Password"] = "Contraseña de acceso a la base de datos"; +$a->strings["Database Name"] = "Nombre de la base de datos"; +$a->strings["Database Type"] = "Tipo de base de datos"; +$a->strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web."; +$a->strings["Website URL"] = "Dirección del sitio web"; +$a->strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible."; +$a->strings["Please select a default timezone for your website"] = "Por favor, selecciones la zona horaria por defecto de su sitio web"; +$a->strings["Site settings"] = "Ajustes del sitio"; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá ejecutar sondeos en segundo plano mediante cron."; +$a->strings["PHP executable path"] = "Ruta del ejecutable PHP"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación."; +$a->strings["Command line PHP"] = "PHP en línea de comandos"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"."; +$a->strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez."; +$a->strings["You can adjust these settings in the servers php.ini."] = "Puede ajustar estos valores en el fichero php.ini de su servidor."; +$a->strings["PHP upload limits"] = "Límites PHP de subida"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado."; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Generar claves de cifrado"; +$a->strings["libCurl PHP module"] = "módulo libCurl PHP"; +$a->strings["GD graphics PHP module"] = "módulo PHP GD graphics"; +$a->strings["OpenSSL PHP module"] = "módulo PHP OpenSSL"; +$a->strings["mysqli or postgres PHP module"] = "módulo PHP mysqli o postgres"; +$a->strings["mb_string PHP module"] = "módulo PHP mb_string"; +$a->strings["mcrypt PHP module"] = "módulo PHP mcrypt "; +$a->strings["xml PHP module"] = "módulo PHP xml"; +$a->strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite "; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado."; +$a->strings["proc_open"] = "proc_open"; +$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini"; +$a->strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: el módulo PHP GD graphics es necesario, pero no está instalado."; +$a->strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado."; +$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado."; +$a->strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: el módulo PHP mcrypt es necesario, pero no está instalado."; +$a->strings["Error: xml PHP module required for DAV but not installed."] = "Error: el módulo PHP xml es necesario para DAV, pero no está instalado."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones."; +$a->strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura"; +$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al subdirectorio %s en el directorio de instalación de Hubzilla."; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."; +$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."; +$a->strings["%s is writable"] = "%s tiene permisos de escritura"; +$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red guarda los ficheros descargados en la carpeta \"store\". El servidor web necesita tener permisos de escritura sobre esa carpeta, en el directorio de instalación."; +$a->strings["store is writable"] = "\"store\" tiene permisos de escritura"; +$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."; +$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."; +$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor."; +$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."; +$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."; +$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."; +$a->strings["SSL certificate validation"] = "validación del certificado SSL"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"; +$a->strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente"; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."; +$a->strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos."; +$a->strings["<h1>What next</h1>"] = "<h1>Siguiente paso</h1>"; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."; +$a->strings["Bookmark added"] = "Marcador añadido"; +$a->strings["My Bookmarks"] = "Mis marcadores"; +$a->strings["My Connections Bookmarks"] = "Marcadores de mis conexiones"; +$a->strings["\$Projectname"] = "\$Projectname"; +$a->strings["Welcome to %s"] = "Bienvenido a %s"; +$a->strings["This setting requires special processing and editing has been blocked."] = "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada."; +$a->strings["Configuration Editor"] = "Editor de configuración"; +$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica."; +$a->strings["Poke/Prod"] = "Toque/Incitación"; +$a->strings["poke, prod or do other things to somebody"] = "dar un toque, incitar u otras cosas a alguien"; +$a->strings["Recipient"] = "Destinatario"; +$a->strings["Choose what you wish to do to recipient"] = "Elegir qué desea enviar al destinatario"; +$a->strings["Make this post private"] = "Convertir en privado este envío"; +$a->strings["Profile not found."] = "Perfil no encontrado."; +$a->strings["Profile deleted."] = "Perfil eliminado."; +$a->strings["Profile-"] = "Perfil-"; +$a->strings["New profile created."] = "El nuevo perfil ha sido creado."; +$a->strings["Profile unavailable to clone."] = "Perfil no disponible para clonar."; +$a->strings["Profile unavailable to export."] = "Perfil no disponible para exportar."; +$a->strings["Profile Name is required."] = "Se necesita el nombre del perfil."; +$a->strings["Marital Status"] = "Estado civil"; +$a->strings["Romantic Partner"] = "Pareja sentimental"; +$a->strings["Likes"] = "Me gusta"; +$a->strings["Dislikes"] = "No me gusta"; +$a->strings["Work/Employment"] = "Trabajo:"; +$a->strings["Religion"] = "Religión"; +$a->strings["Political Views"] = "Ideas políticas"; +$a->strings["Sexual Preference"] = "Preferencia sexual"; +$a->strings["Homepage"] = "Página personal"; +$a->strings["Interests"] = "Intereses"; +$a->strings["Address"] = "Dirección"; +$a->strings["Profile updated."] = "Perfil actualizado."; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "¿Ocultar su lista de contactos a los visitantes de este perfil?"; +$a->strings["Edit Profile Details"] = "Modificar los detalles de este perfil"; +$a->strings["View this profile"] = "Ver este perfil"; +$a->strings["Change Profile Photo"] = "Cambiar la foto del perfil"; +$a->strings["Create a new profile using these settings"] = "Crear un nuevo perfil usando estos ajustes"; +$a->strings["Clone this profile"] = "Clonar este perfil"; +$a->strings["Delete this profile"] = "Eliminar este perfil"; +$a->strings["Import profile from file"] = "Importar perfil desde un fichero"; +$a->strings["Export profile to file"] = "Exportar perfil a un fichero"; +$a->strings["Profile Name:"] = "Nombre del perfil:"; +$a->strings["Your Full Name:"] = "Su nombre completo:"; +$a->strings["Title/Description:"] = "Título/Descripción:"; +$a->strings["Your Gender:"] = "Su género:"; +$a->strings["Birthday :"] = "Cumpleaños:"; +$a->strings["Street Address:"] = "Calle:"; +$a->strings["Locality/City:"] = "Ciudad:"; +$a->strings["Postal/Zip Code:"] = "Código postal:"; +$a->strings["Country:"] = "País:"; +$a->strings["Region/State:"] = "Región/Estado:"; +$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Estado sentimental:"; +$a->strings["Who: (if applicable)"] = "Quién: (si es aplicable)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Por ejemplo: ana123, María González, sara@ejemplo.com"; +$a->strings["Since [date]:"] = "Desde [fecha]:"; +$a->strings["Homepage URL:"] = "Dirección de la página personal:"; +$a->strings["Religious Views:"] = "Creencias religiosas:"; +$a->strings["Keywords:"] = "Palabras clave:"; +$a->strings["Example: fishing photography software"] = "Por ejemplo: software de fotografía submarina"; +$a->strings["Used in directory listings"] = "Visible en el directorio público del canal"; +$a->strings["Tell us about yourself..."] = "Háblenos de usted..."; +$a->strings["Hobbies/Interests"] = "Aficiones/Intereses"; +$a->strings["Contact information and Social Networks"] = "Información de contacto y redes sociales"; +$a->strings["My other channels"] = "Mis otros canales"; +$a->strings["Musical interests"] = "Preferencias musicales"; +$a->strings["Books, literature"] = "Libros, literatura"; +$a->strings["Television"] = "Televisión"; +$a->strings["Film/dance/culture/entertainment"] = "Cine/danza/cultura/entretenimiento"; +$a->strings["Love/romance"] = "Vida sentimental/amorosa"; +$a->strings["Work/employment"] = "Trabajo"; +$a->strings["School/education"] = "Estudios"; +$a->strings["This is your default profile."] = "Este es su perfil principal."; +$a->strings["Age: "] = "Edad:"; +$a->strings["Edit/Manage Profiles"] = "Modificar/gestionar perfiles"; +$a->strings["Add profile things"] = "Añadir cosas al perfil"; +$a->strings["Include desirable objects in your profile"] = "Añadir objetos interesantes en su perfil"; +$a->strings["Items tagged with: %s"] = "elementos etiquetados con: %s"; +$a->strings["Search results for: %s"] = "Resultados de la búsqueda para: %s"; $a->strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto."; $a->strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado."; $a->strings["Connection updated."] = "Conexión actualizada."; @@ -1174,57 +1348,132 @@ $a->strings["Individual Permissions"] = "Permisos individuales"; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. <strong>No</strong> puede cambiar estos ajustes aquí."; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados."; $a->strings["Last update:"] = "Última actualización:"; -$a->strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos"; -$a->strings["Hub not found."] = "Servidor no encontrado"; -$a->strings["This setting requires special processing and editing has been blocked."] = "Este ajuste necesita de un proceso especial y la edición ha sido bloqueada."; -$a->strings["Configuration Editor"] = "Editor de configuración"; -$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Atención: El cambio de algunos ajustes puede volver inutilizable su canal. Por favor, abandone la página excepto que esté seguro y sepa cómo usar correctamente esta característica."; -$a->strings["Permission Denied."] = "Permiso denegado"; -$a->strings["File not found."] = "Fichero no encontrado."; -$a->strings["Edit file permissions"] = "Modificar los permisos del fichero"; -$a->strings["Set/edit permissions"] = "Establecer/editar los permisos"; -$a->strings["Include all files and sub folders"] = "Incluir todos los ficheros y subcarpetas"; -$a->strings["Return to file list"] = "Volver a la lista de ficheros"; -$a->strings["Copy/paste this code to attach file to a post"] = "Copiar/pegar este código para adjuntar el fichero al envío"; -$a->strings["Copy/paste this URL to link file from a web page"] = "Copiar/pegar esta dirección para enlazar el fichero desde una página web"; -$a->strings["Share this file"] = "Compartir este fichero"; -$a->strings["Show URL to this file"] = "Mostrar la dirección de este fichero"; -$a->strings["Notify your contacts about this file"] = "Avisar a sus contactos sobre este fichero"; +$a->strings["network"] = "red"; +$a->strings["RSS"] = "RSS"; +$a->strings["\$Projectname channel"] = "Canal \$Projectname"; +$a->strings["Invalid message"] = "Mensaje no válido"; +$a->strings["no results"] = "sin resultados"; +$a->strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s"; +$a->strings["channel sync processed"] = "se ha realizado la sincronización del canal"; +$a->strings["queued"] = "encolado"; +$a->strings["posted"] = "enviado"; +$a->strings["accepted for delivery"] = "aceptado para el envío"; +$a->strings["updated"] = "actualizado"; +$a->strings["update ignored"] = "actualización ignorada"; +$a->strings["permission denied"] = "permiso denegado"; +$a->strings["recipient not found"] = "destinatario no encontrado"; +$a->strings["mail recalled"] = "mensaje de correo revocado"; +$a->strings["duplicate mail received"] = "se ha recibido mensaje duplicado"; +$a->strings["mail delivered"] = "correo enviado"; +$a->strings["Item not found"] = "Elemento no encontrado"; +$a->strings["Delete webpage?"] = "¿Eliminar la página web?"; +$a->strings["Page link title"] = "Título del enlace de la página"; +$a->strings["Insert YouTube video"] = "Insertar vídeo de YouTube"; +$a->strings["Insert Vorbis [.ogg] video"] = "Insertar vídeo Vorbis [.ogg]"; +$a->strings["Insert Vorbis [.ogg] audio"] = "Insertar audio Vorbis [.ogg]"; +$a->strings["Edit Webpage"] = "Editar la página web"; +$a->strings["Unable to find your hub."] = "No se puede encontrar su servidor."; +$a->strings["Post successful."] = "Enviado con éxito."; +$a->strings["sent you a private message"] = "le ha enviado un mensaje privado"; +$a->strings["added your channel"] = "añadió este canal a sus conexiones"; +$a->strings["posted an event"] = "publicó un evento"; +$a->strings["Authorize application connection"] = "Autorizar una conexión de aplicación"; +$a->strings["Return to your app and insert this Securty Code:"] = "Volver a su aplicación e introducir este código de seguridad:"; +$a->strings["Please login to continue."] = "Por favor inicia sesión para continuar."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?"; +$a->strings["No more system notifications."] = "No hay más notificaciones del sistema"; +$a->strings["System Notifications"] = "Notificaciones de sistema"; +$a->strings["Select a bookmark folder"] = "Seleccionar una carpeta de marcadores"; +$a->strings["Save Bookmark"] = "Guardar marcador"; +$a->strings["URL of bookmark"] = "Dirección del marcador"; +$a->strings["Description"] = "Descripción"; +$a->strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores"; +$a->strings["Contact not found."] = "Contacto no encontrado"; +$a->strings["Friend suggestion sent."] = "Enviar sugerencia a un amigo."; +$a->strings["Suggest Friends"] = "Sugerir amigos"; +$a->strings["Suggest a friend for %s"] = "Sugerir un amigo a %s"; +$a->strings["Failed to create source. No channel selected."] = "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado."; +$a->strings["Source created."] = "Fuente creada."; +$a->strings["Source updated."] = "Fuente actualizada."; +$a->strings["*"] = "*"; +$a->strings["Manage remote sources of content for your channel."] = "Gestionar contenido de origen remoto para su canal."; +$a->strings["New Source"] = "Nueva fuente"; +$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importar todo el contenido o una selección de los siguientes canales en este canal y distribuirlo de acuerdo con sus ajustes."; +$a->strings["Only import content with these words (one per line)"] = "Importar solo contenido que contenga estas palabras (una por línea)"; +$a->strings["Leave blank to import all public content"] = "Dejar en blanco para importar todo el contenido público"; +$a->strings["Source not found."] = "Fuente no encontrada"; +$a->strings["Edit Source"] = "Editar fuente"; +$a->strings["Delete Source"] = "Eliminar fuente"; +$a->strings["Source removed"] = "Fuente eliminada"; +$a->strings["Unable to remove source."] = "Imposible eliminar la fuente."; +$a->strings["Invalid request identifier."] = "Petición inválida del identificador."; +$a->strings["Discard"] = "Descartar"; +$a->strings["Tag removed"] = "Etiqueta eliminada."; +$a->strings["Remove Item Tag"] = "Eliminar etiqueta del elemento."; +$a->strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:"; +$a->strings["Remove"] = "Eliminar"; +$a->strings["%d rating"] = array( + 0 => "%d valoración", + 1 => "%d valoraciones", +); +$a->strings["Gender: "] = "Género:"; +$a->strings["Status: "] = "Estado:"; +$a->strings["Homepage: "] = "Página personal:"; +$a->strings["Description:"] = "Descripción:"; +$a->strings["Public Forum:"] = "Foro público:"; +$a->strings["Keywords: "] = "Palabras clave:"; +$a->strings["Don't suggest"] = "No sugerir:"; +$a->strings["Common connections:"] = "Conexiones comunes:"; +$a->strings["Global Directory"] = "Directorio global:"; +$a->strings["Local Directory"] = "Directorio local:"; +$a->strings["Finding:"] = "Encontrar:"; +$a->strings["next page"] = "siguiente página"; +$a->strings["previous page"] = "página anterior"; +$a->strings["Sort options"] = "Ordenar opciones"; +$a->strings["Alphabetic"] = "Alfabético"; +$a->strings["Reverse Alphabetic"] = "Alfabético inverso"; +$a->strings["Newest to Oldest"] = "De más nuevo a más antiguo"; +$a->strings["Oldest to Newest"] = "De más antiguo a más nuevo"; +$a->strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas)."; +$a->strings["No valid account found."] = "No se ha encontrado una cuenta válida."; +$a->strings["Password reset request issued. Check your email."] = "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico."; +$a->strings["Site Member (%s)"] = "Usuario del sitio (%s)"; +$a->strings["Password reset requested at %s"] = "Se ha solicitado restablecer la contraseña en %s"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."; +$a->strings["Password Reset"] = "Restablecer la contraseña"; +$a->strings["Your password has been reset as requested."] = "Su contraseña ha sido restablecida según lo solicitó."; +$a->strings["Your new password is"] = "Su nueva contraseña es"; +$a->strings["Save or copy your new password - and then"] = "Guarde o copie su nueva contraseña - y después"; +$a->strings["click here to login"] = "pulse aquí para conectarse"; +$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión."; +$a->strings["Your password has changed at %s"] = "Su contraseña en %s ha sido cambiada"; +$a->strings["Forgot your Password?"] = "¿Ha olvidado su contraseña?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones."; +$a->strings["Email Address"] = "Dirección de correo electrónico"; +$a->strings["Reset"] = "Reiniciar"; $a->strings["This site is not a directory server"] = "Este sitio no es un servidor de directorio"; -$a->strings["Layout Name"] = "Nombre del formato"; -$a->strings["Layout Description (Optional)"] = "Descripción del formato gráfico (opcional)"; -$a->strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"; -$a->strings["Layout Description"] = "Descripción del formato"; -$a->strings["Download PDL file"] = "Descargar el fichero PDL"; -$a->strings["Poke/Prod"] = "Toque/Incitación"; -$a->strings["poke, prod or do other things to somebody"] = "dar un toque, incitar u otras cosas a alguien"; -$a->strings["Recipient"] = "Destinatario"; -$a->strings["Choose what you wish to do to recipient"] = "Elegir qué desea enviar al destinatario"; -$a->strings["Make this post private"] = "Convertir en privado este envío"; -$a->strings["No such group"] = "No se encuentra el grupo"; -$a->strings["No such channel"] = "No se encuentra el canal"; -$a->strings["forum"] = "foro"; -$a->strings["Search Results For:"] = "Buscar resultados para:"; -$a->strings["Collection is empty"] = "La colección está vacía"; -$a->strings["Collection: "] = "Colección:"; -$a->strings["Invalid connection."] = "Conexión no válida."; -$a->strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página."; -$a->strings["Room not found"] = "Sala no encontrada"; -$a->strings["Leave Room"] = "Abandonar la sala"; -$a->strings["Delete This Room"] = "Eliminar esta sala"; -$a->strings["I am away right now"] = "Estoy ausente momentáneamente"; -$a->strings["I am online"] = "Estoy conectado/a"; -$a->strings["Bookmark this room"] = "Añadir esta sala a Marcadores"; -$a->strings["New Chatroom"] = "Nueva sala de chat"; -$a->strings["Chatroom Name"] = "Nombre de la sala de chat"; -$a->strings["Expiration of chats (minutes)"] = "Tiempo de expiración de los mensajes en los chats (en minutos)"; -$a->strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s"; -$a->strings["Items tagged with: %s"] = "elementos etiquetados con: %s"; -$a->strings["Search results for: %s"] = "Resultados de la búsqueda para: %s"; -$a->strings["Website:"] = "Sitio web:"; -$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)"; -$a->strings["Rating (this information is public)"] = "Valoración (esta información es pública)"; -$a->strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)"; +$a->strings["%s element installed"] = "%s elemento instalado"; +$a->strings["%s element installation failed"] = "Elemento con instalación fallida: %s"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo %2\$s de %3\$s"; +$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s ha dejado de seguir %3\$s de %2\$s"; +$a->strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales."; +$a->strings["Nothing to import."] = "No hay nada para importar."; +$a->strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor"; +$a->strings["Imported file is empty."] = "El fichero importado está vacío."; +$a->strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones."; +$a->strings["No channel. Import failed."] = "No hay canal. La importación ha fallado"; +$a->strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad."; +$a->strings["Import Channel"] = "Importar canal"; +$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."; +$a->strings["File to Upload"] = "Fichero para subir"; +$a->strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub"; +$a->strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)"; +$a->strings["Your old login email address"] = "Su antigua dirección de correo electrónico"; +$a->strings["Your old login password"] = "Su antigua contraseña"; +$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua ubicación debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."; +$a->strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria"; +$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"; +$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."; $a->strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada."; $a->strings["Album not found."] = "Álbum no encontrado."; $a->strings["Delete Album"] = "Borrar álbum"; @@ -1243,16 +1492,12 @@ $a->strings["Album name could not be decoded"] = "El nombre del álbum no ha pod $a->strings["Contact Photos"] = "Fotos de contacto"; $a->strings["Show Newest First"] = "Mostrar lo más reciente primero"; $a->strings["Show Oldest First"] = "Mostrar lo más antiguo primero"; -$a->strings["View Photo"] = "Ver foto"; -$a->strings["Edit Album"] = "Editar álbum"; $a->strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido."; $a->strings["Photo not available"] = "Foto no disponible"; $a->strings["Use as profile photo"] = "Usar como foto del perfil"; $a->strings["Private Photo"] = "Foto privada"; $a->strings["Previous"] = "Anterior"; $a->strings["View Full Size"] = "Ver tamaño completo"; -$a->strings["Next"] = "Siguiente"; -$a->strings["Remove"] = "Eliminar"; $a->strings["Edit photo"] = "Editar foto"; $a->strings["Rotate CW (right)"] = "Girar CW (a la derecha)"; $a->strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)"; @@ -1266,32 +1511,84 @@ $a->strings["In This Photo:"] = "En esta foto:"; $a->strings["Map"] = "Mapa"; $a->strings["View Album"] = "Ver álbum"; $a->strings["Recent Photos"] = "Fotos recientes"; -$a->strings["Invalid message"] = "Mensaje no válido"; -$a->strings["no results"] = "sin resultados"; -$a->strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s"; -$a->strings["channel sync processed"] = "se ha realizado la sincronización del canal"; -$a->strings["queued"] = "encolado"; -$a->strings["posted"] = "enviado"; -$a->strings["accepted for delivery"] = "aceptado para el envío"; -$a->strings["updated"] = "actualizado"; -$a->strings["update ignored"] = "actualización ignorada"; -$a->strings["permission denied"] = "permiso denegado"; -$a->strings["recipient not found"] = "destinatario no encontrado"; -$a->strings["mail recalled"] = "mensaje de correo revocado"; -$a->strings["duplicate mail received"] = "se ha recibido mensaje duplicado"; -$a->strings["mail delivered"] = "correo enviado"; -$a->strings["Item not found"] = "Elemento no encontrado"; +$a->strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s"; +$a->strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. "; +$a->strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente."; +$a->strings["Image upload failed."] = "Subida de imagen fallida."; +$a->strings["Unable to process image."] = "No ha sido posible procesar la imagen."; +$a->strings["female"] = "mujer"; +$a->strings["%1\$s updated her %2\$s"] = "%1\$s ha actualizado su %2\$s"; +$a->strings["male"] = "hombre"; +$a->strings["%1\$s updated his %2\$s"] = "%1\$s ha actualizado su %2\$s"; +$a->strings["%1\$s updated their %2\$s"] = "%1\$s ha actualizado sus %2\$s"; +$a->strings["profile photo"] = "foto del perfil"; +$a->strings["Photo not available."] = "Foto no disponible."; +$a->strings["Upload File:"] = "Subir fichero:"; +$a->strings["Select a profile:"] = "Seleccionar un perfil:"; +$a->strings["Upload Profile Photo"] = "Subir foto del perfil"; +$a->strings["or"] = "o"; +$a->strings["skip this step"] = "Omitir este paso"; +$a->strings["select a photo from your photo albums"] = "Seleccione una foto de sus álbumes de fotos"; +$a->strings["Crop Image"] = "Recortar imagen"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visión óptima."; +$a->strings["Done Editing"] = "Edición completada"; +$a->strings["Thing updated"] = "Elemento actualizado."; +$a->strings["Object store: failed"] = "Guardar objeto: ha fallado"; +$a->strings["Thing added"] = "Elemento añadido"; +$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +$a->strings["Show Thing"] = "Mostrar elemento"; +$a->strings["item not found."] = "elemento no encontrado."; +$a->strings["Edit Thing"] = "Editar elemento"; +$a->strings["Select a profile"] = "Seleccionar un perfil"; +$a->strings["Post an activity"] = "Publicar una actividad"; +$a->strings["Only sends to viewers of the applicable profile"] = "Sólo enviar a espectadores del perfil pertinente."; +$a->strings["Name of thing e.g. something"] = "Nombre del elemento, p. ej.:. \"algo\""; +$a->strings["URL of thing (optional)"] = "Dirección del elemento (opcional)"; +$a->strings["URL for photo of thing (optional)"] = "Dirección para la foto o elemento (opcional)"; +$a->strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil"; +$a->strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso"; $a->strings["Delete block?"] = "¿Borrar bloque?"; -$a->strings["Insert YouTube video"] = "Insertar vídeo de YouTube"; -$a->strings["Insert Vorbis [.ogg] video"] = "Insertar vídeo Vorbis [.ogg]"; -$a->strings["Insert Vorbis [.ogg] audio"] = "Insertar audio Vorbis [.ogg]"; $a->strings["Edit Block"] = "Modificar este bloque"; -$a->strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso"; -$a->strings["Item is not editable"] = "El elemento no es editable"; -$a->strings["Delete item?"] = "¿Borrar elemento?"; -$a->strings["Edit post"] = "Editar la entrada"; -$a->strings["Unable to find your hub."] = "No se puede encontrar su servidor."; -$a->strings["Post successful."] = "Enviado con éxito."; +$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "La eliminación de cuentas no está permitida hasta después de que hayan transcurrido 48 horas desde el último cambio de contraseña."; +$a->strings["Remove This Account"] = "Eliminar esta cuenta"; +$a->strings["This account and all its channels will be completely removed from the network. "] = "Esta cuenta y todos sus canales van a ser eliminados de la red."; +$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Remover esta cuenta, todos sus canales y clones de la red"; +$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red"; +$a->strings["Remove Account"] = "Eliminar cuenta"; +$a->strings["Import completed"] = "Importación completada"; +$a->strings["Import Items"] = "Importar elementos"; +$a->strings["Use this form to import existing posts and content from an export file."] = "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación."; +$a->strings["No such group"] = "No se encuentra el grupo"; +$a->strings["No such channel"] = "No se encuentra el canal"; +$a->strings["forum"] = "foro"; +$a->strings["Search Results For:"] = "Buscar resultados para:"; +$a->strings["Collection is empty"] = "La colección está vacía"; +$a->strings["Collection: "] = "Colección:"; +$a->strings["Invalid connection."] = "Conexión no válida."; +$a->strings["Layout updated."] = "Formato actualizado"; +$a->strings["Edit System Page Description"] = "Editor del Sistema de Descripción de Páginas"; +$a->strings["Layout not found."] = "Formato no encontrado"; +$a->strings["Module Name:"] = "Nombre del módulo:"; +$a->strings["Layout Help"] = "Ayuda para el diseño de la página"; +$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana."; +$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado."; +$a->strings["Passwords do not match."] = "Las contraseñas no coinciden."; +$a->strings["Registration successful. Please check your email for validation instructions."] = "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo."; +$a->strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio."; +$a->strings["Your registration can not be processed."] = "Su registro no puede ser procesado."; +$a->strings["Registration on this site/hub is by approval only."] = "El registro en este servidor/hub está sometido a aprobación previa."; +$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Inscribirse en un servidor/hub afiliado</a>"; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana."; +$a->strings["Terms of Service"] = "Términos del servicio"; +$a->strings["I accept the %s for this website"] = "Acepto los %s de este sitio"; +$a->strings["I am over 13 years of age and accept the %s for this website"] = "Tengo más de 13 años de edad y acepto los %s de este sitio"; +$a->strings["Registration"] = "Registro"; +$a->strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación."; +$a->strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación"; +$a->strings["Your email address"] = "Su dirección de correo electrónico"; +$a->strings["Choose a password"] = "Elija una contraseña"; +$a->strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña"; $a->strings["Theme settings updated."] = "Ajustes del tema actualizados."; $a->strings["# Accounts"] = "# Cuentas"; $a->strings["# blocked accounts"] = "# cuentas bloqueadas"; @@ -1317,7 +1614,6 @@ $a->strings["My site is not a public server"] = "Mi sitio no es un servidor púb $a->strings["My site has paid access only"] = "Mi sitio es un servicio de pago"; $a->strings["My site has free access only"] = "Mi sitio es un servicio gratuito"; $a->strings["My site offers free accounts with optional paid upgrades"] = "Mi sitio ofrece cuentas gratuitas con opciones extra de pago"; -$a->strings["Registration"] = "Registro"; $a->strings["File upload"] = "Fichero subido"; $a->strings["Policies"] = "Políticas"; $a->strings["Site name"] = "Nombre del sitio"; @@ -1444,7 +1740,6 @@ $a->strings["Uncensor"] = "No censurar"; $a->strings["Allow Code"] = "Permitir código"; $a->strings["Disallow Code"] = "No permitir código"; $a->strings["UID"] = "UID"; -$a->strings["Address"] = "Dirección"; $a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "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?"; $a->strings["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?"] = "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?"; $a->strings["Plugin %s disabled."] = "Extensión %s desactivada."; @@ -1474,302 +1769,10 @@ $a->strings["Help text"] = "Texto de ayuda"; $a->strings["Additional info (optional)"] = "Información adicional (opcional)"; $a->strings["Field definition not found"] = "Definición del campo no encontrada"; $a->strings["Edit Profile Field"] = "Modificar el campo del perfil"; -$a->strings["App installed."] = "Aplicación instalada."; -$a->strings["Malformed app."] = "Aplicación con errores"; -$a->strings["Embed code"] = "Código incorporado"; -$a->strings["Edit App"] = "Modificar la aplicación"; -$a->strings["Create App"] = "Crear una aplicación"; -$a->strings["Name of app"] = "Nombre de la aplicación"; -$a->strings["Location (URL) of app"] = "Ubicación (URL) de la aplicación"; -$a->strings["Description"] = "Descripción"; -$a->strings["Photo icon URL"] = "Dirección del icono que se va a utilizar para esta foto"; -$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixels - opcional"; -$a->strings["Version ID"] = "Versión"; -$a->strings["Price of app"] = "Precio de la aplicación"; -$a->strings["Location (URL) to purchase app"] = "Dirección (URL) donde adquirir la aplicación"; -$a->strings["Unable to update menu."] = "No se puede actualizar el menú."; -$a->strings["Unable to create menu."] = "No se puede crear el menú."; -$a->strings["Menu Name"] = "Nombre del menú"; -$a->strings["Unique name (not visible on webpage) - required"] = "Nombre único (no será visible en la página web) - requerido"; -$a->strings["Menu Title"] = "Título del menú"; -$a->strings["Visible on webpage - leave empty for no title"] = "Visible en la página web - no ponga nada si no desea un título"; -$a->strings["Allow Bookmarks"] = "Permitir marcadores"; -$a->strings["Menu may be used to store saved bookmarks"] = "El menú se puede usar para guardar marcadores"; -$a->strings["Submit and proceed"] = "Enviar y proceder"; -$a->strings["Drop"] = "Eliminar"; -$a->strings["Bookmarks allowed"] = "Marcadores permitidos"; -$a->strings["Delete this menu"] = "Borrar este menú"; -$a->strings["Edit menu contents"] = "Editar los contenidos del menú"; -$a->strings["Edit this menu"] = "Modificar este menú"; -$a->strings["Menu could not be deleted."] = "El menú no puede ser eliminado."; -$a->strings["Edit Menu"] = "Modificar el menú"; -$a->strings["Add or remove entries to this menu"] = "Añadir o quitar entradas en este menú"; -$a->strings["Menu name"] = "Nombre del menú"; -$a->strings["Must be unique, only seen by you"] = "Debe ser único, solo será visible para usted"; -$a->strings["Menu title"] = "Título del menú"; -$a->strings["Menu title as seen by others"] = "El título del menú tal como será visto por los demás"; -$a->strings["Allow bookmarks"] = "Permitir marcadores"; -$a->strings["No more system notifications."] = "No hay más notificaciones del sistema"; -$a->strings["System Notifications"] = "Notificaciones de sistema"; -$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; -$a->strings["Add a Channel"] = "Añadir un canal"; -$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Un canal está formado por su propia colección de páginas web relacionadas. Se puede utilizar para almacenar los perfiles sociales de la red, blogs, grupos de conversación y foros, páginas de famosos y mucho más. Puede crear tantos canales como su proveedor de servicio permita."; -$a->strings["Channel Name"] = "Nombre del canal"; -$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Ejemplos: \"Juan García\", \"Isabel y sus caballos\", \"Fútbol\", \"Grupo de parapente\" "; -$a->strings["Choose a short nickname"] = "Elija un alias corto"; -$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Su alias podrá usarse para crear una dirección de canal fácilmente memorizable (como una dirección de correo electrónico) que puede ser compartido con otros."; -$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "O <a href=\"import\">importar un canal existente</a> de otro lugar"; -$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Elija el tipo de canal (como red social o foro de discusión) y la privacidad que requiera, así podremos seleccionar el mejor conjunto de permisos para usted"; -$a->strings["Channel Type"] = "Tipo de canal"; -$a->strings["Read more about roles"] = "Leer más sobre los roles"; -$a->strings["Invalid request identifier."] = "Petición inválida del identificador."; -$a->strings["Discard"] = "Descartar"; -$a->strings["Layout updated."] = "Formato actualizado"; -$a->strings["Edit System Page Description"] = "Editor del Sistema de Descripción de Páginas"; -$a->strings["Layout not found."] = "Formato no encontrado"; -$a->strings["Module Name:"] = "Nombre del módulo:"; -$a->strings["Layout Help"] = "Ayuda para el diseño de la página"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo %2\$s de %3\$s"; -$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s ha dejado de seguir %3\$s de %2\$s"; -$a->strings["No valid account found."] = "No se ha encontrado una cuenta válida."; -$a->strings["Password reset request issued. Check your email."] = "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico."; -$a->strings["Site Member (%s)"] = "Usuario del sitio (%s)"; -$a->strings["Password reset requested at %s"] = "Se ha solicitado restablecer la contraseña en %s"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."; -$a->strings["Password Reset"] = "Restablecer la contraseña"; -$a->strings["Your password has been reset as requested."] = "Su contraseña ha sido restablecida según lo solicitó."; -$a->strings["Your new password is"] = "Su nueva contraseña es"; -$a->strings["Save or copy your new password - and then"] = "Guarde o copie su nueva contraseña - y después"; -$a->strings["click here to login"] = "pulse aquí para conectarse"; -$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puede cambiar la contraseña en la página <em>Ajustes</em> una vez iniciada la sesión."; -$a->strings["Your password has changed at %s"] = "Su contraseña en %s ha sido cambiada"; -$a->strings["Forgot your Password?"] = "¿Ha olvidado su contraseña?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Introduzca y envíe su dirección de correo electrónico para el restablecimiento de su contraseña. Luego revise su correo para obtener más instrucciones."; -$a->strings["Email Address"] = "Dirección de correo electrónico"; -$a->strings["Reset"] = "Reiniciar"; -$a->strings["\$Projectname"] = "\$Projectname"; -$a->strings["Welcome to %s"] = "Bienvenido a %s"; -$a->strings["\$Projectname channel"] = "Canal \$Projectname"; -$a->strings["Calendar entries imported."] = "Entradas de calendario importadas."; -$a->strings["No calendar entries found."] = "No se han encontrado entradas de calendario."; -$a->strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado."; -$a->strings["Unable to generate preview."] = "No se puede crear la vista previa."; -$a->strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio."; -$a->strings["Event not found."] = "Evento no encontrado."; -$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["Event removed"] = "Evento borrado"; -$a->strings["Failed to remove event"] = "Error al eliminar el evento"; -$a->strings["Event details"] = "Detalles del evento"; -$a->strings["Starting date and Title are required."] = "Se requieren fecha y título."; -$a->strings["Categories (comma-separated list)"] = "Categorías (lista separada por comas)"; -$a->strings["Event Starts:"] = "Inicio del evento:"; -$a->strings["Finish date/time is not known or not relevant"] = "La fecha / hora de finalización no se conocen o no son relevantes"; -$a->strings["Event Finishes:"] = "Finalización del evento:"; -$a->strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de zona horaria"; -$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales."; -$a->strings["Title:"] = "Título:"; -$a->strings["Share this event"] = "Compartir este evento"; -$a->strings["%s element installed"] = "%s elemento instalado"; -$a->strings["%s element installation failed"] = "Elemento con instalación fallida: %s"; -$a->strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s"; -$a->strings["Profile Match"] = "Perfil compatible"; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "No hay palabras clave en el perfil principal para poder encontrar perfiles compatibles. Por favor, añada palabras clave a su perfil principal."; -$a->strings["is interested in:"] = "está interesado en:"; -$a->strings["No matches"] = "No se han encontrado perfiles compatibles"; -$a->strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. "; -$a->strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Recargue la página o limpie el caché del navegador si la nueva foto no se muestra inmediatamente."; -$a->strings["Image upload failed."] = "Subida de imagen fallida."; -$a->strings["Unable to process image."] = "No ha sido posible procesar la imagen."; -$a->strings["female"] = "mujer"; -$a->strings["%1\$s updated her %2\$s"] = "%1\$s ha actualizado su %2\$s"; -$a->strings["male"] = "hombre"; -$a->strings["%1\$s updated his %2\$s"] = "%1\$s ha actualizado su %2\$s"; -$a->strings["%1\$s updated their %2\$s"] = "%1\$s ha actualizado sus %2\$s"; -$a->strings["profile photo"] = "foto del perfil"; -$a->strings["Photo not available."] = "Foto no disponible."; -$a->strings["Upload File:"] = "Subir fichero:"; -$a->strings["Select a profile:"] = "Seleccionar un perfil:"; -$a->strings["Upload Profile Photo"] = "Subir foto del perfil"; -$a->strings["or"] = "o"; -$a->strings["skip this step"] = "Omitir este paso"; -$a->strings["select a photo from your photo albums"] = "Seleccione una foto de sus álbumes de fotos"; -$a->strings["Crop Image"] = "Recortar imagen"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visión óptima."; -$a->strings["Done Editing"] = "Edición completada"; -$a->strings["Channel added."] = "Canal añadido."; -$a->strings["Tag removed"] = "Etiqueta eliminada."; -$a->strings["Remove Item Tag"] = "Eliminar etiqueta del elemento."; -$a->strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:"; -$a->strings["No ratings"] = "Ninguna valoración"; -$a->strings["Ratings"] = "Valoraciones"; -$a->strings["Rating: "] = "Valoración:"; -$a->strings["Website: "] = "Sitio web:"; -$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["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."; -$a->strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web."; -$a->strings["Page Title"] = "Título de página"; -$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana."; -$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado."; -$a->strings["Passwords do not match."] = "Las contraseñas no coinciden."; -$a->strings["Registration successful. Please check your email for validation instructions."] = "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo."; -$a->strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio."; -$a->strings["Your registration can not be processed."] = "Su registro no puede ser procesado."; -$a->strings["Registration on this site/hub is by approval only."] = "El registro en este servidor/hub está sometido a aprobación previa."; -$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Inscribirse en un servidor/hub afiliado</a>"; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Este sitio ha excedido el límite de inscripción diaria de cuentas. Por favor, inténtelo de nuevo mañana."; -$a->strings["Terms of Service"] = "Términos del servicio"; -$a->strings["I accept the %s for this website"] = "Acepto los %s de este sitio"; -$a->strings["I am over 13 years of age and accept the %s for this website"] = "Tengo más de 13 años de edad y acepto los %s de este sitio"; -$a->strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación."; -$a->strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación"; -$a->strings["Your email address"] = "Su dirección de correo electrónico"; -$a->strings["Choose a password"] = "Elija una contraseña"; -$a->strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña"; -$a->strings["Block Name"] = "Nombre del bloque"; -$a->strings["Block Title"] = "Título del bloque"; -$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "La eliminación de cuentas no está permitida hasta después de que hayan transcurrido 48 horas desde el último cambio de contraseña."; -$a->strings["Remove This Account"] = "Eliminar esta cuenta"; -$a->strings["This account and all its channels will be completely removed from the network. "] = "Esta cuenta y todos sus canales van a ser eliminados de la red."; -$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Remover esta cuenta, todos sus canales y clones de la red"; -$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red"; -$a->strings["Remove Account"] = "Eliminar cuenta"; -$a->strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio."; -$a->strings["Item not available."] = "Elemento no disponible"; -$a->strings["Public Sites"] = "Sitios públicos"; -$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público en la red \$Projectname. Todos los sitios de la red están vinculados entre sí, por lo que sus miembros, en ninguno de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales."; -$a->strings["Rate this hub"] = "Valorar este sitio"; -$a->strings["Site URL"] = "Dirección del sitio"; -$a->strings["Access Type"] = "Tipo de acceso"; -$a->strings["Registration Policy"] = "Normas de registro"; -$a->strings["Location"] = "Ubicación"; -$a->strings["Project"] = "Proyecto"; -$a->strings["View hub ratings"] = "Ver las valoraciones del sitio"; -$a->strings["Rate"] = "Valorar"; -$a->strings["View ratings"] = "Ver valoraciones"; -$a->strings["Failed to create source. No channel selected."] = "Imposible crear el origen de los contenidos. Ningún canal ha sido seleccionado."; -$a->strings["Source created."] = "Fuente creada."; -$a->strings["Source updated."] = "Fuente actualizada."; -$a->strings["*"] = "*"; -$a->strings["Manage remote sources of content for your channel."] = "Gestionar contenido de origen remoto para su canal."; -$a->strings["New Source"] = "Nueva fuente"; -$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importar todo el contenido o una selección de los siguientes canales en este canal y distribuirlo de acuerdo con sus ajustes."; -$a->strings["Only import content with these words (one per line)"] = "Importar solo contenido que contenga estas palabras (una por línea)"; -$a->strings["Leave blank to import all public content"] = "Dejar en blanco para importar todo el contenido público"; -$a->strings["Source not found."] = "Fuente no encontrada"; -$a->strings["Edit Source"] = "Editar fuente"; -$a->strings["Delete Source"] = "Eliminar fuente"; -$a->strings["Source removed"] = "Fuente eliminada"; -$a->strings["Unable to remove source."] = "Imposible eliminar la fuente."; -$a->strings["Remote privacy information not available."] = "La información privada remota no está disponible."; -$a->strings["Visible to:"] = "Visible para:"; -$a->strings["network"] = "red"; -$a->strings["RSS"] = "RSS"; -$a->strings["Please login."] = "Por favor, inicie sesión."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita."; -$a->strings["The error message was:"] = "El mensaje de error fue:"; -$a->strings["Authentication failed."] = "Falló la autenticación."; -$a->strings["Remote Authentication"] = "Acceso desde su servidor"; -$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"; -$a->strings["Authenticate"] = "Acceder"; -$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil."; -$a->strings["Version %s"] = "Versión %s"; -$a->strings["Installed plugins/addons/apps:"] = "Extensiones/Aplicaciones instaladas:"; -$a->strings["No installed plugins/addons/apps"] = "Extensiones/Aplicaciones no instaladas:"; -$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Este es un sitio integrado en \$Projectname - una red cooperativa mundial de sitios web descentralizados de privacidad mejorada."; -$a->strings["Tag: "] = "Etiqueta:"; -$a->strings["Last background fetch: "] = "Última actualización en segundo plano:"; -$a->strings["Current load average: "] = "Carga media actual:"; -$a->strings["Running at web location"] = "Corriendo en el sitio web"; -$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Por favor, visite <a href=\"http://hubzilla.org\">hubzilla.org</a> para más información sobre \$Projectname."; -$a->strings["Bug reports and issues: please visit"] = "Informes de errores e incidencias: por, favor visite"; -$a->strings["\$projectname issues"] = "Problemas en \$projectname"; -$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com"; -$a->strings["Site Administrators"] = "Administradores del sitio"; -$a->strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales."; -$a->strings["Nothing to import."] = "No hay nada para importar."; -$a->strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor"; -$a->strings["Imported file is empty."] = "El fichero importado está vacío."; -$a->strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones."; -$a->strings["No channel. Import failed."] = "No hay canal. La importación ha fallado"; -$a->strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad."; -$a->strings["Import Channel"] = "Importar canal"; -$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."; -$a->strings["File to Upload"] = "Fichero para subir"; -$a->strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub"; -$a->strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)"; -$a->strings["Your old login email address"] = "Su antigua dirección de correo electrónico"; -$a->strings["Your old login password"] = "Su antigua contraseña"; -$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua ubicación debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."; -$a->strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria"; -$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"; -$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."; -$a->strings["Thing updated"] = "Elemento actualizado."; -$a->strings["Object store: failed"] = "Guardar objeto: ha fallado"; -$a->strings["Thing added"] = "Elemento añadido"; -$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -$a->strings["Show Thing"] = "Mostrar elemento"; -$a->strings["item not found."] = "elemento no encontrado."; -$a->strings["Edit Thing"] = "Editar elemento"; -$a->strings["Select a profile"] = "Seleccionar un perfil"; -$a->strings["Post an activity"] = "Publicar una actividad"; -$a->strings["Only sends to viewers of the applicable profile"] = "Sólo enviar a espectadores del perfil pertinente."; -$a->strings["Name of thing e.g. something"] = "Nombre del elemento, p. ej.:. \"algo\""; -$a->strings["URL of thing (optional)"] = "Dirección del elemento (opcional)"; -$a->strings["URL for photo of thing (optional)"] = "Dirección para la foto o elemento (opcional)"; -$a->strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil"; -$a->strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones."; -$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. "; -$a->strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio."; -$a->strings["%s : Message delivery failed."] = "%s : Falló el envío del mensaje."; -$a->strings["%d message sent."] = array( - 0 => "%d mensajes enviados.", - 1 => "%d mensajes enviados.", -); -$a->strings["You have no more invitations available"] = "No tiene más invitaciones disponibles"; -$a->strings["Send invitations"] = "Enviar invitaciones"; -$a->strings["Enter email addresses, one per line:"] = "Introduzca las direcciones de correo electrónica, una por línea:"; -$a->strings["Your message:"] = "Su mensaje:"; -$a->strings["Please join my community on \$Projectname."] = "Por favor, únase a mi comunidad en \$Projectname."; -$a->strings["You will need to supply this invitation code: "] = "Debe proporcionar este código de invitación:"; -$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Regístrese en cualquier sitio de \$Projectname (están todos interconectados)"; -$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Introduzca mi dirección \$Projectname en la caja de búsqueda del sitio."; -$a->strings["or visit "] = "o visite"; -$a->strings["3. Click [Connect]"] = "3. Pulse [conectar]"; -$a->strings["Unable to lookup recipient."] = "Imposible asociar a un destinatario."; -$a->strings["Unable to communicate with requested channel."] = "Imposible comunicar con el canal solicitado."; -$a->strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado."; -$a->strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."; -$a->strings["Messages"] = "Mensajes"; -$a->strings["Message recalled."] = "Mensaje revocado."; -$a->strings["Conversation removed."] = "Conversación eliminada."; -$a->strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red"; -$a->strings["Send Private Message"] = "Enviar un mensaje privado"; -$a->strings["To:"] = "Para:"; -$a->strings["Subject:"] = "Asunto:"; -$a->strings["Send"] = "Enviar"; -$a->strings["Delete message"] = "Borrar mensaje"; -$a->strings["Delivery report"] = "Informe de transmisión"; -$a->strings["Recall message"] = "Revocar el mensaje"; -$a->strings["Message has been recalled."] = "El mensaje ha sido revocado."; -$a->strings["Delete Conversation"] = "Eliminar Conversación"; -$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."; -$a->strings["Send Reply"] = "Responder"; -$a->strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):"; -$a->strings["[Embedded content - reload page to view]"] = "[Contenido incorporado - recargue la página para poder verlo]"; -$a->strings["Source of Item"] = "Origen del elemento"; +$a->strings["Delete layout?"] = "¿Borrar el formato?"; +$a->strings["Layout Description (Optional)"] = "Descripción del formato gráfico (opcional)"; +$a->strings["Layout Name"] = "Nombre del formato"; +$a->strings["Edit Layout"] = "Modificar el formato"; $a->strings["Name is required"] = "El nombre es obligatorio"; $a->strings["Key and Secret are required"] = "Clave y Secreto son obligatorios"; $a->strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no se ha cambiado."; @@ -1864,6 +1867,7 @@ $a->strings["0 or blank prevents expiration"] = "0 o en claro evitan la caducida $a->strings["Maximum Friend Requests/Day:"] = "Máximo de solicitudes de amistad por día:"; $a->strings["May reduce spam activity"] = "Podría reducir la actividad de spam"; $a->strings["Default Post Permissions"] = "Permisos de publicación predeterminados"; +$a->strings["(click to open/close)"] = "(pulsar para abrir o cerrar)"; $a->strings["Channel permissions category:"] = "Categoría de permisos del canal:"; $a->strings["Maximum private messages per day from unknown people:"] = "Máximo de mensajes privados por día de gente desconocida:"; $a->strings["Useful to reduce spamming"] = "Útil para reducir el envío de correo no deseado"; @@ -1908,21 +1912,118 @@ $a->strings["Default file upload folder"] = "Carpeta por defecto de los archivos $a->strings["Personal menu to display in your channel pages"] = "Menú personal que debe mostrarse en las páginas de su canal"; $a->strings["Remove this channel."] = "Eliminar este canal."; $a->strings["Firefox Share \$Projectname provider"] = "Servicio de compartición de Firefox: proveedor \$Projectname"; +$a->strings["Start calendar week on monday"] = "Comenzar el calendario semanal por el lunes"; +$a->strings["Page Title"] = "Título de página"; +$a->strings["App installed."] = "Aplicación instalada."; +$a->strings["Malformed app."] = "Aplicación con errores"; +$a->strings["Embed code"] = "Código incorporado"; +$a->strings["Edit App"] = "Modificar la aplicación"; +$a->strings["Create App"] = "Crear una aplicación"; +$a->strings["Name of app"] = "Nombre de la aplicación"; +$a->strings["Location (URL) of app"] = "Ubicación (URL) de la aplicación"; +$a->strings["Photo icon URL"] = "Dirección del icono que se va a utilizar para esta foto"; +$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixels - opcional"; +$a->strings["Version ID"] = "Versión"; +$a->strings["Price of app"] = "Precio de la aplicación"; +$a->strings["Location (URL) to purchase app"] = "Dirección (URL) donde adquirir la aplicación"; +$a->strings["- select -"] = "- seleccionar -"; +$a->strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"; +$a->strings["Layout Description"] = "Descripción del formato"; +$a->strings["Download PDL file"] = "Descargar el fichero PDL"; +$a->strings["Location not found."] = "Dirección no encontrada."; +$a->strings["Location lookup failed."] = "Ha fallado la búsqueda de la dirección."; +$a->strings["Please select another location to become primary before removing the primary location."] = "Por favor, seleccione una copia de su canal (un clon) para convertirlo en primario antes de eliminar su canal principal."; +$a->strings["Syncing locations"] = "Sincronización de ubicaciones"; +$a->strings["No locations found."] = "No encontrada ninguna dirección."; +$a->strings["Manage Channel Locations"] = "Gestionar las direcciones del canal"; +$a->strings["Location (address)"] = "Ubicación (dirección)"; +$a->strings["Primary Location"] = "Dirección primaria"; +$a->strings["Drop location"] = "Eliminar dirección"; +$a->strings["Sync now"] = "Sincronizar ahora"; +$a->strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas."; +$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal."; +$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo."; +$a->strings["Unable to lookup recipient."] = "Imposible asociar a un destinatario."; +$a->strings["Unable to communicate with requested channel."] = "Imposible comunicar con el canal solicitado."; +$a->strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado."; +$a->strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."; +$a->strings["Messages"] = "Mensajes"; +$a->strings["Message recalled."] = "Mensaje revocado."; +$a->strings["Conversation removed."] = "Conversación eliminada."; +$a->strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red"; +$a->strings["Send Private Message"] = "Enviar un mensaje privado"; +$a->strings["To:"] = "Para:"; +$a->strings["Subject:"] = "Asunto:"; +$a->strings["Your message:"] = "Su mensaje:"; +$a->strings["Send"] = "Enviar"; +$a->strings["Delete message"] = "Borrar mensaje"; +$a->strings["Delivery report"] = "Informe de transmisión"; +$a->strings["Recall message"] = "Revocar el mensaje"; +$a->strings["Message has been recalled."] = "El mensaje ha sido revocado."; +$a->strings["Delete Conversation"] = "Eliminar conversación"; +$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."; +$a->strings["Send Reply"] = "Responder"; +$a->strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):"; +$a->strings["Please login."] = "Por favor, inicie sesión."; $a->strings["Xchan Lookup"] = "Búsqueda de canales"; $a->strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:"; -$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos."; -$a->strings["Create a new channel"] = "Crear un nuevo canal"; -$a->strings["Current Channel"] = "Canal actual"; -$a->strings["Switch to one of your channels by selecting it."] = "Cambiar a uno de sus canales seleccionándolo."; -$a->strings["Default Channel"] = "Canal principal"; -$a->strings["Make Default"] = "Convertir en predeterminado"; -$a->strings["%d new messages"] = "%d mensajes nuevos"; -$a->strings["%d new introductions"] = "%d nuevas isolicitudes de conexión"; -$a->strings["Delegated Channels"] = "Canales delegados"; -$a->strings["Authorize application connection"] = "Autorizar una conexión de aplicación"; -$a->strings["Return to your app and insert this Securty Code:"] = "Volver a su aplicación e introducir este código de seguridad:"; -$a->strings["Please login to continue."] = "Por favor inicia sesión para continuar."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "¿Desea autorizar a esta aplicación a acceder a sus publicaciones y contactos, y/o crear nuevas publicaciones por usted?"; +$a->strings["Not found."] = "No encontrado."; +$a->strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página."; +$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil."; +$a->strings["Item not available."] = "Elemento no disponible"; +$a->strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones."; +$a->strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. "; +$a->strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Excedido el límite de invitaciones. Por favor, contacte con el Administrador de su sitio."; +$a->strings["%s : Message delivery failed."] = "%s : Falló el envío del mensaje."; +$a->strings["%d message sent."] = array( + 0 => "%d mensajes enviados.", + 1 => "%d mensajes enviados.", +); +$a->strings["You have no more invitations available"] = "No tiene más invitaciones disponibles"; +$a->strings["Send invitations"] = "Enviar invitaciones"; +$a->strings["Enter email addresses, one per line:"] = "Introduzca las direcciones de correo electrónico, una por línea:"; +$a->strings["Please join my community on \$Projectname."] = "Por favor, únase a mi comunidad en \$Projectname."; +$a->strings["You will need to supply this invitation code: "] = "Debe proporcionar este código de invitación:"; +$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Regístrese en cualquier sitio de \$Projectname (están todos interconectados)"; +$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Introduzca mi dirección \$Projectname en la caja de búsqueda del sitio."; +$a->strings["or visit "] = "o visite "; +$a->strings["3. Click [Connect]"] = "3. Pulse [conectar]"; +$a->strings["Remote privacy information not available."] = "La información privada remota no está disponible."; +$a->strings["Visible to:"] = "Visible para:"; +$a->strings["Export Channel"] = "Exportar el canal"; +$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exportar la información básica del canal a un fichero. Este equivale a una copia de seguridad de sus conexiones, el perfil y datos fundamentales, que puede usarse para importar sus datos a un nuevo servidor, pero no incluye su contenido."; +$a->strings["Export Content"] = "Exportar contenidos"; +$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exportar la información sobre su canal y el contenido reciente a un fichero de respaldo JSON, que puede ser restaurado o importado a otro servidor. Este fichero incluye todas sus conexiones, permisos, datos del perfil y publicaciones de varios meses. Puede llegar a ser MUY grande. Por favor, sea paciente, la descarga puede tardar varios minutos en comenzar."; +$a->strings["Export your posts from a given year."] = "Exporta sus entradas de un año dado."; +$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "También puede exportar sus mensajes y conversaciones durante un año o mes en particular. Ajuste la fecha en la barra de direcciones del navegador para seleccionar otras fechas. Si la exportación falla (posiblemente debido al agotamiento de la memoria del servidor hub), por favor, intente de nuevo la selección de un rango de fechas más pequeño."; +$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un año determinado, como este año, visite <a href=\"%1\$s\">%2\$s</a>"; +$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite <a href=\"%1\$s\">%2\$s</a>"; +$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1\$s\">%2\$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)."; +$a->strings["Item is not editable"] = "El elemento no es editable"; +$a->strings["Delete item?"] = "¿Borrar elemento?"; +$a->strings["Edit post"] = "Editar la entrada"; +$a->strings["Channel added."] = "Canal añadido."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionó. Por favor, compruebe que la ID está correctamente escrita."; +$a->strings["The error message was:"] = "El mensaje de error fue:"; +$a->strings["Authentication failed."] = "Falló la autenticación."; +$a->strings["Remote Authentication"] = "Acceso desde su servidor"; +$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"; +$a->strings["Authenticate"] = "Acceder"; +$a->strings["Room not found"] = "Sala no encontrada"; +$a->strings["Leave Room"] = "Abandonar la sala"; +$a->strings["Delete This Room"] = "Eliminar esta sala"; +$a->strings["I am away right now"] = "Estoy ausente momentáneamente"; +$a->strings["I am online"] = "Estoy conectado/a"; +$a->strings["Bookmark this room"] = "Añadir esta sala a Marcadores"; +$a->strings["New Chatroom"] = "Nueva sala de chat"; +$a->strings["Chatroom Name"] = "Nombre de la sala de chat"; +$a->strings["Expiration of chats (minutes)"] = "Tiempo de expiración de los mensajes en los chats (en minutos)"; +$a->strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s"; +$a->strings["Source of Item"] = "Origen del elemento"; +$a->strings["Share content from Firefox to \$Projectname"] = "Compartir contenido desde Firefox a \$Projectname"; +$a->strings["Activate the Firefox \$Projectname provider"] = "Servicio de compartición de Firefox: activar el proveedor \$Projectname "; +$a->strings["Hub not found."] = "Servidor no encontrado"; $a->strings["Blocked"] = "Bloqueadas"; $a->strings["Ignored"] = "Ignoradas"; $a->strings["Hidden"] = "Ocultas"; @@ -1942,213 +2043,121 @@ $a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; $a->strings["Edit connection"] = "Editar conexión"; $a->strings["Search your connections"] = "Buscar sus conexiones"; $a->strings["Finding: "] = "Búsqueda:"; -$a->strings["Delete layout?"] = "¿Borrar el formato?"; -$a->strings["Edit Layout"] = "Modificar el formato"; -$a->strings["Delete webpage?"] = "¿Eliminar la página web?"; -$a->strings["Page link title"] = "Título del enlace de la página"; -$a->strings["Edit Webpage"] = "Editar la página web"; -$a->strings["Collection created."] = "La colección ha sido creada."; -$a->strings["Could not create collection."] = "No se puede crear la colección."; -$a->strings["Collection updated."] = "La colección ha sido actualizada."; -$a->strings["Create a collection of channels."] = "Crear una colección de canales."; -$a->strings["Collection Name: "] = "Nombre de la colección:"; -$a->strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales"; -$a->strings["Collection removed."] = "La colección ha sido eliminada."; -$a->strings["Unable to remove collection."] = "No ha sido posible de eliminar la colección."; -$a->strings["Collection Editor"] = "Editor de colecciones"; -$a->strings["Members"] = "Miembros"; -$a->strings["All Connected Channels"] = "Todos los canales conectados"; -$a->strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo."; -$a->strings["Continue"] = "Continuar"; -$a->strings["Premium Channel Setup"] = "Configuración del canal premium"; -$a->strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium"; -$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc."; -$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:"; -$a->strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"; -$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página."; -$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)"; -$a->strings["Restricted or Premium Channel"] = "Canal premium o restringido"; -$a->strings["No connections."] = "Sin conexiones."; -$a->strings["Visit %s's profile [%s]"] = "Visitar el perfil de %s [%s]"; -$a->strings["Location not found."] = "Dirección no encontrada."; -$a->strings["Location lookup failed."] = "Ha fallado la búsqueda de la dirección."; -$a->strings["Please select another location to become primary before removing the primary location."] = "Por favor, seleccione una copia de su canal (un clon) para convertirlo en primario antes de eliminar su canal principal."; -$a->strings["Syncing locations"] = "Sincronización de ubicaciones"; -$a->strings["No locations found."] = "No encontrada ninguna dirección."; -$a->strings["Manage Channel Locations"] = "Gestionar las direcciones del canal"; -$a->strings["Location (address)"] = "Ubicación (dirección)"; -$a->strings["Primary Location"] = "Dirección primaria"; -$a->strings["Drop location"] = "Eliminar dirección"; -$a->strings["Sync now"] = "Sincronizar ahora"; -$a->strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas."; -$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal."; -$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Utilice este formulario para eliminar la dirección si el \"hub\" no está funcionando desde hace tiempo."; +$a->strings["Documentation Search"] = "Búsqueda de Documentación"; +$a->strings["Help:"] = "Ayuda:"; +$a->strings["Not Found"] = "No encontrado"; +$a->strings["\$Projectname Documentation"] = "Documentación de \$Projectname"; +$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos."; +$a->strings["Create a new channel"] = "Crear un nuevo canal"; +$a->strings["Current Channel"] = "Canal actual"; +$a->strings["Switch to one of your channels by selecting it."] = "Cambiar a uno de sus canales seleccionándolo."; +$a->strings["Default Channel"] = "Canal principal"; +$a->strings["Make Default"] = "Convertir en predeterminado"; +$a->strings["%d new messages"] = "%d mensajes nuevos"; +$a->strings["%d new introductions"] = "%d nuevas isolicitudes de conexión"; +$a->strings["Delegated Channels"] = "Canales delegados"; +$a->strings["Unable to update menu."] = "No se puede actualizar el menú."; +$a->strings["Unable to create menu."] = "No se puede crear el menú."; +$a->strings["Menu Name"] = "Nombre del menú"; +$a->strings["Unique name (not visible on webpage) - required"] = "Nombre único (no será visible en la página web) - requerido"; +$a->strings["Menu Title"] = "Título del menú"; +$a->strings["Visible on webpage - leave empty for no title"] = "Visible en la página web - no ponga nada si no desea un título"; +$a->strings["Allow Bookmarks"] = "Permitir marcadores"; +$a->strings["Menu may be used to store saved bookmarks"] = "El menú se puede usar para guardar marcadores"; +$a->strings["Submit and proceed"] = "Enviar y proceder"; +$a->strings["Drop"] = "Eliminar"; +$a->strings["Bookmarks allowed"] = "Marcadores permitidos"; +$a->strings["Delete this menu"] = "Borrar este menú"; +$a->strings["Edit menu contents"] = "Editar los contenidos del menú"; +$a->strings["Edit this menu"] = "Modificar este menú"; +$a->strings["Menu could not be deleted."] = "El menú no puede ser eliminado."; +$a->strings["Menu not found."] = "Menú no encontrado"; +$a->strings["Edit Menu"] = "Modificar el menú"; +$a->strings["Add or remove entries to this menu"] = "Añadir o quitar entradas en este menú"; +$a->strings["Menu name"] = "Nombre del menú"; +$a->strings["Must be unique, only seen by you"] = "Debe ser único, solo será visible para usted"; +$a->strings["Menu title"] = "Título del menú"; +$a->strings["Menu title as seen by others"] = "El título del menú tal como será visto por los demás"; +$a->strings["Allow bookmarks"] = "Permitir marcadores"; $a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."; -$a->strings["Share content from Firefox to \$Projectname"] = "Compartir contenido desde Firefox a \$Projectname"; -$a->strings["Activate the Firefox \$Projectname provider"] = "Servicio de compartición de Firefox: activar el proveedor \$Projectname "; -$a->strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación"; -$a->strings["Could not connect to database."] = "No se ha podido conectar a la base de datos."; -$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "No se puede conectar con la dirección del sitio indicada. Podría tratarse de un problema de SSL o DNS."; -$a->strings["Could not create table."] = "No se puede crear la tabla."; -$a->strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada."; -$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."; -$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\"."; -$a->strings["System check"] = "Verificación del sistema"; -$a->strings["Check again"] = "Verificar de nuevo"; -$a->strings["Database connection"] = "Conexión a la base de datos"; -$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "Para instalar \$Projectname es necesario saber cómo conectar con su base de datos."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Por favor, contacte con el proveedor de servicios o el administrador del sitio si tiene dudas sobre estos ajustes."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de datos que especifique a continuación debe existir ya. Si no es así, por favor, créela antes de seguir."; -$a->strings["Database Server Name"] = "Nombre del servidor de base de datos"; -$a->strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1"; -$a->strings["Database Port"] = "Puerto de la base de datos"; -$a->strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto"; -$a->strings["Database Login Name"] = "Usuario de la base de datos"; -$a->strings["Database Login Password"] = "Contraseña de acceso a la base de datos"; -$a->strings["Database Name"] = "Nombre de la base de datos"; -$a->strings["Database Type"] = "Tipo de base de datos"; -$a->strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Su cuenta deberá usar la misma dirección de correo electrónico para poder utilizar el panel de administración web."; -$a->strings["Website URL"] = "Dirección del sitio web"; -$a->strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible."; -$a->strings["Please select a default timezone for your website"] = "Por favor, selecciones la zona horaria por defecto de su sitio web"; -$a->strings["Site settings"] = "Ajustes del sitio"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "No se puede encontrar una versión en línea de comandos de PHP en la ruta del servidor web."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Si no tiene instalada la versión de línea de comandos de PHP en su servidor, no podrá ejecutar sondeos en segundo plano mediante cron."; -$a->strings["PHP executable path"] = "Ruta del ejecutable PHP"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Introducir la ruta completa del ejecutable PHP. Puede dejar la línea en blanco para continuar la instalación."; -$a->strings["Command line PHP"] = "PHP en línea de comandos"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La línea de comandos PHP de su sistema no tiene activado \"register_argc_argv\"."; -$a->strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La carga máxima que se le permite subir está establecida en %s. El tamaño máximo de un fichero está establecido en %s. Está permitido subir hasta un máximo de %d ficheros de una sola vez."; -$a->strings["You can adjust these settings in the servers php.ini."] = "Puede ajustar estos valores en el fichero php.ini de su servidor."; -$a->strings["PHP upload limits"] = "Límites PHP de subida"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: La función \"openssl_pkey_new\" en este sistema no es capaz de general claves de cifrado."; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si está en un servidor Windows, por favor, lea \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Generar claves de cifrado"; -$a->strings["libCurl PHP module"] = "módulo libCurl PHP"; -$a->strings["GD graphics PHP module"] = "módulo PHP GD graphics"; -$a->strings["OpenSSL PHP module"] = "módulo PHP OpenSSL"; -$a->strings["mysqli or postgres PHP module"] = "módulo PHP mysqli o postgres"; -$a->strings["mb_string PHP module"] = "módulo PHP mb_string"; -$a->strings["mcrypt PHP module"] = "módulo PHP mcrypt "; -$a->strings["xml PHP module"] = "módulo PHP xml"; -$a->strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite "; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: se necesita el módulo del servidor web Apache mod-rewrite pero no está instalado."; -$a->strings["proc_open"] = "proc_open"; -$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita proc_open pero o no está instalado o ha sido desactivado en el fichero php.ini"; -$a->strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: el módulo PHP GD graphics es necesario, pero no está instalado."; -$a->strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado."; -$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: el módulo PHP mysqli o postgres es necesario pero ninguno de los dos está instalado."; -$a->strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado."; -$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: el módulo PHP mcrypt es necesario, pero no está instalado."; -$a->strings["Error: xml PHP module required for DAV but not installed."] = "Error: el módulo PHP xml es necesario para DAV, pero no está instalado."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones."; -$a->strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura"; -$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 es más rápido porque compila las plantillas de páginas directamente en PHP."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al subdirectorio %s en el directorio de instalación de Hubzilla."; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."; -$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."; -$a->strings["%s is writable"] = "%s tiene permisos de escritura"; -$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red guarda los ficheros descargados en la carpeta \"store\". El servidor web necesita tener permisos de escritura sobre esa carpeta, en el directorio de instalación."; -$a->strings["store is writable"] = "\"store\" tiene permisos de escritura"; -$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."; -$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."; -$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Se ha incorporado esta restricción para evitar que sus publicaciones públicas hagan referencia a imágenes en su propio servidor."; -$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."; -$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."; -$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."; -$a->strings["SSL certificate validation"] = "validación del certificado SSL"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"; -$a->strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."; -$a->strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos."; -$a->strings["<h1>What next</h1>"] = "<h1>Siguiente paso</h1>"; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."; -$a->strings["Files: shared with me"] = "Ficheros: compartidos conmigo"; -$a->strings["NEW"] = "NUEVO"; -$a->strings["Remove all files"] = "Eliminar todos los ficheros"; -$a->strings["Remove this file"] = "Eliminar este fichero"; +$a->strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio."; +$a->strings["Version %s"] = "Versión %s"; +$a->strings["Installed plugins/addons/apps:"] = "Extensiones/Aplicaciones instaladas:"; +$a->strings["No installed plugins/addons/apps"] = "Extensiones/Aplicaciones no instaladas:"; +$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Este es un sitio integrado en \$Projectname - una red cooperativa mundial de sitios web descentralizados de privacidad mejorada."; +$a->strings["Tag: "] = "Etiqueta:"; +$a->strings["Last background fetch: "] = "Última actualización en segundo plano:"; +$a->strings["Current load average: "] = "Carga media actual:"; +$a->strings["Running at web location"] = "Corriendo en el sitio web"; +$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Por favor, visite <a href=\"http://hubzilla.org\">hubzilla.org</a> para más información sobre \$Projectname."; +$a->strings["Bug reports and issues: please visit"] = "Informes de errores e incidencias: por, favor visite"; +$a->strings["\$projectname issues"] = "Problemas en \$projectname"; +$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com"; +$a->strings["Site Administrators"] = "Administradores del sitio"; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y pruebe de nuevo."; -$a->strings["Profile not found."] = "Perfil no encontrado."; -$a->strings["Profile deleted."] = "Perfil eliminado."; -$a->strings["Profile-"] = "Perfil-"; -$a->strings["New profile created."] = "El nuevo perfil ha sido creado."; -$a->strings["Profile unavailable to clone."] = "Perfil no disponible para clonar."; -$a->strings["Profile unavailable to export."] = "Perfil no disponible para exportar."; -$a->strings["Profile Name is required."] = "Se necesita el nombre del perfil."; -$a->strings["Marital Status"] = "Estado civil"; -$a->strings["Romantic Partner"] = "Pareja sentimental"; -$a->strings["Likes"] = "Me gusta"; -$a->strings["Dislikes"] = "No me gusta"; -$a->strings["Work/Employment"] = "Trabajo:"; -$a->strings["Religion"] = "Religión"; -$a->strings["Political Views"] = "Ideas políticas"; -$a->strings["Sexual Preference"] = "Preferencia sexual"; -$a->strings["Homepage"] = "Página personal"; -$a->strings["Interests"] = "Intereses"; -$a->strings["Profile updated."] = "Perfil actualizado."; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "¿Ocultar su lista de contactos a los visitantes de este perfil?"; -$a->strings["Edit Profile Details"] = "Modificar los detalles de este perfil"; -$a->strings["View this profile"] = "Ver este perfil"; -$a->strings["Change Profile Photo"] = "Cambiar la foto del perfil"; -$a->strings["Create a new profile using these settings"] = "Crear un nuevo perfil usando estos ajustes"; -$a->strings["Clone this profile"] = "Clonar este perfil"; -$a->strings["Delete this profile"] = "Eliminar este perfil"; -$a->strings["Import profile from file"] = "Importar perfil desde un fichero"; -$a->strings["Export profile to file"] = "Exportar perfil a un fichero"; -$a->strings["Profile Name:"] = "Nombre del perfil:"; -$a->strings["Your Full Name:"] = "Su nombre completo:"; -$a->strings["Title/Description:"] = "Título/Descripción:"; -$a->strings["Your Gender:"] = "Su género:"; -$a->strings["Birthday :"] = "Cumpleaños:"; -$a->strings["Street Address:"] = "Calle:"; -$a->strings["Locality/City:"] = "Ciudad:"; -$a->strings["Postal/Zip Code:"] = "Código postal:"; -$a->strings["Country:"] = "País:"; -$a->strings["Region/State:"] = "Región/Estado:"; -$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Estado sentimental:"; -$a->strings["Who: (if applicable)"] = "Quién: (si es aplicable)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Por ejemplo: ana123, María González, sara@ejemplo.com"; -$a->strings["Since [date]:"] = "Desde [fecha]:"; -$a->strings["Homepage URL:"] = "Dirección de la página personal:"; -$a->strings["Religious Views:"] = "Creencias religiosas:"; -$a->strings["Keywords:"] = "Palabras clave:"; -$a->strings["Example: fishing photography software"] = "Por ejemplo: software de fotografía submarina"; -$a->strings["Used in directory listings"] = "Visible en el directorio público del canal"; -$a->strings["Tell us about yourself..."] = "Háblenos de usted..."; -$a->strings["Hobbies/Interests"] = "Aficiones/Intereses"; -$a->strings["Contact information and Social Networks"] = "Información de contacto y redes sociales"; -$a->strings["My other channels"] = "Mis otros canales"; -$a->strings["Musical interests"] = "Preferencias musicales"; -$a->strings["Books, literature"] = "Libros, literatura"; -$a->strings["Television"] = "Televisión"; -$a->strings["Film/dance/culture/entertainment"] = "Cine/danza/cultura/entretenimiento"; -$a->strings["Love/romance"] = "Vida sentimental/amorosa"; -$a->strings["Work/employment"] = "Trabajo"; -$a->strings["School/education"] = "Estudios"; -$a->strings["This is your default profile."] = "Este es su perfil principal."; -$a->strings["Age: "] = "Edad:"; -$a->strings["Edit/Manage Profiles"] = "Modificar/gestionar perfiles"; -$a->strings["Add profile things"] = "Añadir cosas al perfil"; -$a->strings["Include desirable objects in your profile"] = "Añadir objetos interesantes en su perfil"; +$a->strings["Calendar entries imported."] = "Entradas de calendario importadas."; +$a->strings["No calendar entries found."] = "No se han encontrado entradas de calendario."; +$a->strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado."; +$a->strings["Unable to generate preview."] = "No se puede crear la vista previa."; +$a->strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio."; +$a->strings["Event not found."] = "Evento no encontrado."; +$a->strings["Event Title"] = "Título del evento"; +$a->strings["Categories (comma-separated list)"] = "Categorías (lista separada por comas)"; +$a->strings["Category"] = "Categoría"; +$a->strings["Start date and time"] = "Fecha y hora de comienzo"; +$a->strings["Finish date and time are not known or not relevant"] = "La fecha y hora de terminación no se conocen o no son relevantes"; +$a->strings["Finish date and time"] = "Fecha y hora de terminación"; +$a->strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de zona horaria"; +$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante para los eventos que suceden en un lugar determinado. No es práctico para los globales."; +$a->strings["Share this event"] = "Compartir este evento"; +$a->strings["Advanced Options"] = "Opciones avanzadas"; +$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["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["Invalid profile identifier."] = "Identificador del perfil no válido"; $a->strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil"; $a->strings["Click on a contact to add or remove."] = "Pulsar en un contacto para añadirlo o eliminarlo."; $a->strings["Visible To"] = "Visible para"; -$a->strings["Select a bookmark folder"] = "Seleccionar una carpeta de marcadores"; -$a->strings["Save Bookmark"] = "Guardar marcador"; -$a->strings["URL of bookmark"] = "Dirección del marcador"; -$a->strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores"; -$a->strings["Import completed"] = "Importación completada"; -$a->strings["Import Items"] = "Importar elementos"; -$a->strings["Use this form to import existing posts and content from an export file."] = "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación."; +$a->strings["Unable to create element."] = "Imposible crear el elemento."; +$a->strings["Unable to update menu element."] = "No es posible actualizar el elemento del menú."; +$a->strings["Unable to add menu element."] = "No es posible añadir el elemento al menú"; +$a->strings["Menu Item Permissions"] = "Permisos del elemento del menú"; +$a->strings["Link Name"] = "Nombre del enlace"; +$a->strings["Link or Submenu Target"] = "Destino del enlace o submenú"; +$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Introducir la dirección del enlace o seleccionar el nombre de un submenú"; +$a->strings["Use magic-auth if available"] = "Usar la autenticación mágica si está disponible"; +$a->strings["Open link in new window"] = "Abrir el enlace en una nueva ventana"; +$a->strings["Order in list"] = "Orden en la lista"; +$a->strings["Higher numbers will sink to bottom of listing"] = "Los números más altos irán al final de la lista"; +$a->strings["Submit and finish"] = "Enviar y terminar"; +$a->strings["Submit and continue"] = "Enviar y continuar"; +$a->strings["Menu:"] = "Menú:"; +$a->strings["Link Target"] = "Destino del enlace"; +$a->strings["Edit menu"] = "Editar menú"; +$a->strings["Edit element"] = "Editar el elemento"; +$a->strings["Drop element"] = "Eliminar el elemento"; +$a->strings["New element"] = "Nuevo elemento"; +$a->strings["Edit this menu container"] = "Modificar el contenedor del menú"; +$a->strings["Add menu element"] = "Añadir un elemento al menú"; +$a->strings["Delete this menu item"] = "Eliminar este elemento del menú"; +$a->strings["Edit this menu item"] = "Modificar este elemento del menú"; +$a->strings["Menu item not found."] = "Este elemento del menú no se ha encontrado"; +$a->strings["Menu item deleted."] = "Este elemento del menú ha sido borrado"; +$a->strings["Menu item could not be deleted."] = "Este elemento del menú no puede ser borrado."; +$a->strings["Edit Menu Element"] = "Editar elemento del menú"; +$a->strings["Link text"] = "Texto del enlace"; $a->strings["Who likes me?"] = "¿Quién me ha puesto \"Me gusta\"?"; +$a->strings["Files: shared with me"] = "Ficheros: compartidos conmigo"; +$a->strings["NEW"] = "NUEVO"; +$a->strings["Remove all files"] = "Eliminar todos los ficheros"; +$a->strings["Remove this file"] = "Eliminar este fichero"; +$a->strings["No connections."] = "Sin conexiones."; +$a->strings["Visit %s's profile [%s]"] = "Visitar el perfil de %s [%s]"; $a->strings["Focus (Hubzilla default)"] = "Focus (predefinido)"; $a->strings["Theme settings"] = "Ajustes del tema"; $a->strings["Select scheme"] = "Elegir un esquema"; diff --git a/view/it/hmessages.po b/view/it/hmessages.po index e0509b758..a341ebe43 100644 --- a/view/it/hmessages.po +++ b/view/it/hmessages.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-11-06 00:02-0800\n" -"PO-Revision-Date: 2015-11-09 07:51+0000\n" +"POT-Creation-Date: 2015-11-27 00:03-0800\n" +"PO-Revision-Date: 2015-11-30 15:22+0000\n" "Last-Translator: tuscanhobbit <pynolo@tarine.net>\n" "Language-Team: Italian (http://www.transifex.com/Friendica/red-matrix/language/it/)\n" "MIME-Version: 1.0\n" @@ -19,690 +19,114 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/conversation.php:120 ../../include/text.php:1863 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 -msgid "photo" -msgstr "la foto" - -#: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1866 ../../mod/like.php:363 ../../mod/tagger.php:47 -#: ../../mod/events.php:245 -msgid "event" -msgstr "l'evento" - -#: ../../include/conversation.php:126 ../../mod/like.php:113 -msgid "channel" -msgstr "il canale" - -#: ../../include/conversation.php:148 ../../include/text.php:1869 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 -msgid "status" -msgstr "il messaggio di stato" - -#: ../../include/conversation.php:150 ../../include/text.php:1871 -#: ../../mod/tagger.php:53 -msgid "comment" -msgstr "il commento" - -#: ../../include/conversation.php:164 ../../mod/like.php:410 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "A %1$s piace %3$s di %2$s" - -#: ../../include/conversation.php:167 ../../mod/like.php:412 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "A %1$s non piace %3$s di %2$s" - -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s adesso è connesso con %2$s" - -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s ha mandato un poke a %2$s" - -#: ../../include/conversation.php:243 ../../include/text.php:942 -msgid "poked" -msgstr "ha ricevuto un poke" - -#: ../../include/conversation.php:260 ../../mod/mood.php:63 -#, php-format -msgctxt "mood" -msgid "%1$s is %2$s" -msgstr "%1$s è %2$s" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Likes" -msgstr "Mi piace" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Dislikes" -msgstr "Non mi piace" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Agree" -msgstr "D'accordo" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Disagree" -msgstr "Non d'accordo" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Abstain" -msgstr "Astenuti" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Attending" -msgstr "Partecipano" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Not attending" -msgstr "Non partecipano" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Might attend" -msgstr "Forse partecipano" - -#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 -msgid "Select" -msgstr "Scegli" - -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:546 ../../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 "Elimina" - -#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 -msgid "Private Message" -msgstr "Messaggio privato" - -#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 -msgid "Message signature validated" -msgstr "Messaggio con firma verificata" - -#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 -msgid "Message signature incorrect" -msgstr "Massaggio con firma non corretta" - -#: ../../include/conversation.php:691 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Vedi il profilo di %s @ %s" - -#: ../../include/conversation.php:709 -msgid "Categories:" -msgstr "Categorie:" - -#: ../../include/conversation.php:710 -msgid "Filed under:" -msgstr "Classificato come:" - -#: ../../include/conversation.php:718 ../../include/ItemObject.php:321 -#, php-format -msgid "from %s" -msgstr "da %s" - -#: ../../include/conversation.php:721 ../../include/ItemObject.php:324 -#, php-format -msgid "last edited: %s" -msgstr "ultima modifica: %s" - -#: ../../include/conversation.php:722 ../../include/ItemObject.php:325 -#, php-format -msgid "Expires: %s" -msgstr "Scadenza: %s" - -#: ../../include/conversation.php:737 -msgid "View in context" -msgstr "Vedi nel contesto" - -#: ../../include/conversation.php:739 ../../include/conversation.php:1221 -#: ../../include/ItemObject.php:375 ../../mod/photos.php:1029 -#: ../../mod/editblock.php:150 ../../mod/editpost.php:129 -#: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:190 -msgid "Please wait" -msgstr "Attendere" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "rimuovi" - -#: ../../include/conversation.php:853 ../../include/nav.php:241 -msgid "Loading..." -msgstr "Caricamento in corso..." - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "Elimina gli oggetti selezionati" - -#: ../../include/conversation.php:945 -msgid "View Source" -msgstr "Vedi il sorgente" - -#: ../../include/conversation.php:946 -msgid "Follow Thread" -msgstr "Segui la discussione" - -#: ../../include/conversation.php:947 -msgid "Stop Following" -msgstr "Non seguire più la discussione" - -#: ../../include/conversation.php:948 -msgid "View Status" -msgstr "Bacheca" - -#: ../../include/conversation.php:949 ../../include/nav.php:86 -#: ../../mod/connedit.php:493 -msgid "View Profile" -msgstr "Profilo" - -#: ../../include/conversation.php:950 -msgid "View Photos" -msgstr "Foto" - -#: ../../include/conversation.php:951 -msgid "Activity/Posts" -msgstr "Attività e Post" - -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:965 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:316 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 +#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/conversation.php:953 ../../mod/match.php:64 +#: ../../mod/directory.php:318 ../../mod/suggest.php:52 msgid "Connect" msgstr "Aggiungi" -#: ../../include/conversation.php:953 -msgid "Edit Connection" -msgstr "Modifica il contatto" - -#: ../../include/conversation.php:954 -msgid "Send PM" -msgstr "Messaggio privato" - -#: ../../include/conversation.php:955 ../../include/apps.php:145 -msgid "Poke" -msgstr "Poke" - -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../mod/photos.php:759 ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "Sconosciuto" - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s likes this." -msgstr "Piace a %s." - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s doesn't like this." -msgstr "Non piace a %s." - -#: ../../include/conversation.php:1073 -#, php-format -msgid "<span %1$s>%2$d people</span> like this." -msgid_plural "<span %1$s>%2$d people</span> like this." -msgstr[0] "" -msgstr[1] "Piace a <span %1$s>%2$d persone</span>." - -#: ../../include/conversation.php:1075 -#, php-format -msgid "<span %1$s>%2$d people</span> don't like this." -msgid_plural "<span %1$s>%2$d people</span> don't like this." -msgstr[0] "" -msgstr[1] "Non piace a <span %1$s>%2$d persone</span>." - -#: ../../include/conversation.php:1081 -msgid "and" -msgstr "e" - -#: ../../include/conversation.php:1084 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] "e altre %d persone" +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "Nuova finestra" -#: ../../include/conversation.php:1085 -#, php-format -msgid "%s like this." -msgstr "Piace a %s." +#: ../../include/Contact.php:119 +msgid "Open the selected location in a different window or browser tab" +msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra" -#: ../../include/conversation.php:1085 +#: ../../include/Contact.php:237 #, php-format -msgid "%s don't like this." -msgstr "Non piace a %s." - -#: ../../include/conversation.php:1148 -msgid "Visible to <strong>everybody</strong>" -msgstr "Visibile a <strong>tutti</strong>" - -#: ../../include/conversation.php:1149 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 -msgid "Please enter a link URL:" -msgstr "Inserisci l'indirizzo del link:" - -#: ../../include/conversation.php:1150 -msgid "Please enter a video link/URL:" -msgstr "Inserisci l'indirizzo del video:" - -#: ../../include/conversation.php:1151 -msgid "Please enter an audio link/URL:" -msgstr "Inserisci l'indirizzo dell'audio:" - -#: ../../include/conversation.php:1152 -msgid "Tag term:" -msgstr "Tag:" - -#: ../../include/conversation.php:1153 ../../mod/filer.php:48 -msgid "Save to Folder:" -msgstr "Salva nella cartella:" - -#: ../../include/conversation.php:1154 -msgid "Where are you right now?" -msgstr "Dove sei ora?" - -#: ../../include/conversation.php:1155 ../../mod/editpost.php:54 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Scade il YYYY-MM-DD HH:MM" - -#: ../../include/conversation.php:1163 ../../include/page_widgets.php:40 -#: ../../include/ItemObject.php:692 ../../mod/photos.php:1049 -#: ../../mod/editblock.php:171 ../../mod/editpost.php:149 -#: ../../mod/events.php:707 ../../mod/webpages.php:188 -#: ../../mod/editwebpage.php:212 -msgid "Preview" -msgstr "Anteprima" - -#: ../../include/conversation.php:1186 ../../mod/layouts.php:184 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/blocks.php:154 -msgid "Share" -msgstr "Condividi" - -#: ../../include/conversation.php:1188 -msgid "Page link name" -msgstr "Nome del link alla pagina" - -#: ../../include/conversation.php:1191 -msgid "Post as" -msgstr "Pubblica come " - -#: ../../include/conversation.php:1193 ../../include/ItemObject.php:684 -#: ../../mod/editblock.php:136 ../../mod/editpost.php:113 -#: ../../mod/editlayout.php:135 ../../mod/editwebpage.php:177 -msgid "Bold" -msgstr "Grassetto" - -#: ../../include/conversation.php:1194 ../../include/ItemObject.php:685 -#: ../../mod/editblock.php:137 ../../mod/editpost.php:114 -#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:178 -msgid "Italic" -msgstr "Corsivo" - -#: ../../include/conversation.php:1195 ../../include/ItemObject.php:686 -#: ../../mod/editblock.php:138 ../../mod/editpost.php:115 -#: ../../mod/editlayout.php:137 ../../mod/editwebpage.php:179 -msgid "Underline" -msgstr "Sottolineato" - -#: ../../include/conversation.php:1196 ../../include/ItemObject.php:687 -#: ../../mod/editblock.php:139 ../../mod/editpost.php:116 -#: ../../mod/editlayout.php:138 ../../mod/editwebpage.php:180 -msgid "Quote" -msgstr "Citazione" - -#: ../../include/conversation.php:1197 ../../include/ItemObject.php:688 -#: ../../mod/editblock.php:140 ../../mod/editpost.php:117 -#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:181 -msgid "Code" -msgstr "Codice" - -#: ../../include/conversation.php:1198 ../../mod/editblock.php:142 -#: ../../mod/editpost.php:118 ../../mod/editlayout.php:140 -#: ../../mod/editwebpage.php:182 -msgid "Upload photo" -msgstr "Carica foto" - -#: ../../include/conversation.php:1199 -msgid "upload photo" -msgstr "carica foto" - -#: ../../include/conversation.php:1200 ../../mod/editblock.php:143 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:369 -#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:183 -msgid "Attach file" -msgstr "Allega file" - -#: ../../include/conversation.php:1201 -msgid "attach file" -msgstr "allega file" - -#: ../../include/conversation.php:1202 ../../mod/editblock.php:144 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:370 -#: ../../mod/editlayout.php:142 ../../mod/editwebpage.php:184 -msgid "Insert web link" -msgstr "Inserisci un indirizzo web" - -#: ../../include/conversation.php:1203 -msgid "web link" -msgstr "link web" - -#: ../../include/conversation.php:1204 -msgid "Insert video link" -msgstr "Inserisci l'indirizzo del video" - -#: ../../include/conversation.php:1205 -msgid "video link" -msgstr "link video" - -#: ../../include/conversation.php:1206 -msgid "Insert audio link" -msgstr "Inserisci l'indirizzo dell'audio" - -#: ../../include/conversation.php:1207 -msgid "audio link" -msgstr "link audio" - -#: ../../include/conversation.php:1208 ../../mod/editblock.php:148 -#: ../../mod/editpost.php:124 ../../mod/editlayout.php:146 -#: ../../mod/editwebpage.php:188 -msgid "Set your location" -msgstr "La tua località" - -#: ../../include/conversation.php:1209 -msgid "set location" -msgstr "la tua località" - -#: ../../include/conversation.php:1210 ../../mod/editpost.php:126 -msgid "Toggle voting" -msgstr "Abilita/disabilita il voto" - -#: ../../include/conversation.php:1213 ../../mod/editblock.php:149 -#: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 -#: ../../mod/editwebpage.php:189 -msgid "Clear browser location" -msgstr "Rimuovi la località data dal browser" - -#: ../../include/conversation.php:1214 -msgid "clear location" -msgstr "rimuovi la località" - -#: ../../include/conversation.php:1216 ../../mod/editblock.php:162 -#: ../../mod/editpost.php:141 ../../mod/editwebpage.php:205 -msgid "Title (optional)" -msgstr "Titolo (facoltativo)" - -#: ../../include/conversation.php:1220 ../../mod/editblock.php:165 -#: ../../mod/editpost.php:143 ../../mod/editlayout.php:163 -#: ../../mod/editwebpage.php:207 -msgid "Categories (optional, comma-separated list)" -msgstr "Categorie (facoltative, lista separata da virgole)" - -#: ../../include/conversation.php:1222 ../../mod/editblock.php:151 -#: ../../mod/editpost.php:130 ../../mod/editlayout.php:149 -#: ../../mod/editwebpage.php:191 -msgid "Permission settings" -msgstr "Permessi dei tuoi contatti" - -#: ../../include/conversation.php:1223 -msgid "permissions" -msgstr "permessi" - -#: ../../include/conversation.php:1231 ../../mod/editblock.php:159 -#: ../../mod/editpost.php:138 ../../mod/editlayout.php:156 -#: ../../mod/editwebpage.php:200 -msgid "Public post" -msgstr "Post pubblico" - -#: ../../include/conversation.php:1233 ../../mod/editblock.php:166 -#: ../../mod/editpost.php:144 ../../mod/editlayout.php:164 -#: ../../mod/editwebpage.php:208 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Per esempio: mario@esempio.com, simona@esempio.com" - -#: ../../include/conversation.php:1246 ../../mod/editblock.php:176 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:374 -#: ../../mod/editlayout.php:173 ../../mod/editwebpage.php:217 -msgid "Set expiration date" -msgstr "Data di scadenza" - -#: ../../include/conversation.php:1249 -msgid "Set publish date" -msgstr "Data di uscita programmata" - -#: ../../include/conversation.php:1251 ../../include/ItemObject.php:695 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:376 -msgid "Encrypt text" -msgstr "Cifratura del messaggio" - -#: ../../include/conversation.php:1253 ../../mod/editpost.php:159 -#: ../../mod/events.php:691 -msgid "OK" -msgstr "OK" - -#: ../../include/conversation.php:1254 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:160 -#: ../../mod/events.php:690 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 -#: ../../mod/settings.php:585 ../../mod/settings.php:611 -msgid "Cancel" -msgstr "Annulla" - -#: ../../include/conversation.php:1497 -msgid "Discover" -msgstr "Scopri" - -#: ../../include/conversation.php:1500 -msgid "Imported public streams" -msgstr "Contenuti pubblici importati" - -#: ../../include/conversation.php:1505 -msgid "Commented Order" -msgstr "Ultimi commenti" - -#: ../../include/conversation.php:1508 -msgid "Sort by Comment Date" -msgstr "Per data del commento" - -#: ../../include/conversation.php:1512 -msgid "Posted Order" -msgstr "Ultimi post" - -#: ../../include/conversation.php:1515 -msgid "Sort by Post Date" -msgstr "Per data di creazione" - -#: ../../include/conversation.php:1520 ../../include/widgets.php:94 -msgid "Personal" -msgstr "Personali" - -#: ../../include/conversation.php:1523 -msgid "Posts that mention or involve you" -msgstr "Post che ti riguardano" - -#: ../../include/conversation.php:1529 ../../mod/menu.php:112 -#: ../../mod/connections.php:72 ../../mod/connections.php:82 -msgid "New" -msgstr "Novità" - -#: ../../include/conversation.php:1532 -msgid "Activity Stream - by date" -msgstr "Elenco attività - per data" - -#: ../../include/conversation.php:1538 -msgid "Starred" -msgstr "Preferiti" - -#: ../../include/conversation.php:1541 -msgid "Favourite Posts" -msgstr "Post preferiti" - -#: ../../include/conversation.php:1548 -msgid "Spam" -msgstr "Spam" - -#: ../../include/conversation.php:1551 -msgid "Posts flagged as SPAM" -msgstr "Post marcati come spam" - -#: ../../include/conversation.php:1595 ../../mod/admin.php:972 -msgid "Channel" -msgstr "Canale" - -#: ../../include/conversation.php:1598 -msgid "Status Messages and Posts" -msgstr "Post e messaggi di stato" - -#: ../../include/conversation.php:1607 -msgid "About" -msgstr "Informazioni" - -#: ../../include/conversation.php:1610 -msgid "Profile Details" -msgstr "Dettagli del profilo" - -#: ../../include/conversation.php:1616 ../../include/apps.php:139 -#: ../../include/nav.php:92 ../../mod/fbrowser.php:25 -msgid "Photos" -msgstr "Foto" - -#: ../../include/conversation.php:1619 ../../include/photos.php:483 -msgid "Photo Albums" -msgstr "Album foto" - -#: ../../include/conversation.php:1623 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Archivio file" - -#: ../../include/conversation.php:1626 -msgid "Files and Storage" -msgstr "Archivio file" - -#: ../../include/conversation.php:1636 ../../include/conversation.php:1639 -msgid "Chatrooms" -msgstr "Chat" - -#: ../../include/conversation.php:1649 ../../include/apps.php:129 -#: ../../include/nav.php:103 -msgid "Bookmarks" -msgstr "Segnalibri" - -#: ../../include/conversation.php:1652 -msgid "Saved Bookmarks" -msgstr "Segnalibri salvati" - -#: ../../include/conversation.php:1659 ../../include/apps.php:136 -#: ../../include/nav.php:107 ../../mod/webpages.php:178 -msgid "Webpages" -msgstr "Pagine web" - -#: ../../include/conversation.php:1662 -msgid "Manage Webpages" -msgstr "Gestisci le pagine web" - -#: ../../include/conversation.php:1691 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 -msgid "View all" -msgstr "Vedi tutto" - -#: ../../include/conversation.php:1715 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1276 ../../include/taxonomy.php:403 -#: ../../mod/photos.php:1086 -msgctxt "noun" -msgid "Like" -msgid_plural "Likes" -msgstr[0] "Mi piace" -msgstr[1] "Mi piace" - -#: ../../include/conversation.php:1718 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 -msgctxt "noun" -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "Non mi piace" -msgstr[1] "Non mi piace" +msgid "User '%s' deleted" +msgstr "Utente '%s' eliminato" -#: ../../include/conversation.php:1721 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "Partecipa" -msgstr[1] "Partecipano" +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "Chat senza nome" -#: ../../include/conversation.php:1724 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "Non partecipa" -msgstr[1] "Non partecipano" +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "Il nome della chat è duplicato" -#: ../../include/conversation.php:1727 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "Indeciso" -msgstr[1] "Indecisi" +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "Il nome della chat non è valido." -#: ../../include/conversation.php:1730 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "D'accordo" -msgstr[1] "D'accordo" +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "Chat non trovata." -#: ../../include/conversation.php:1733 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "Non d'accordo" -msgstr[1] "Non d'accordo" +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../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 +#: ../../include/photos.php:29 ../../mod/filestorage.php:18 +#: ../../mod/filestorage.php:73 ../../mod/filestorage.php:88 +#: ../../mod/filestorage.php:115 ../../mod/group.php:9 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/common.php:35 +#: ../../mod/achievements.php:30 ../../mod/rate.php:111 +#: ../../mod/blocks.php:69 ../../mod/blocks.php:76 ../../mod/id.php:71 +#: ../../mod/like.php:177 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/mood.php:112 ../../mod/new_channel.php:68 +#: ../../mod/new_channel.php:99 ../../mod/setup.php:227 +#: ../../mod/bookmarks.php:48 ../../mod/poke.php:133 +#: ../../mod/profiles.php:198 ../../mod/profiles.php:584 +#: ../../mod/connedit.php:352 ../../mod/editwebpage.php:64 +#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:101 +#: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 +#: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 +#: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 +#: ../../mod/notifications.php:66 ../../mod/photos.php:70 +#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 +#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 +#: ../../mod/editblock.php:65 ../../mod/network.php:12 +#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/settings.php:568 ../../mod/webpages.php:69 +#: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/mail.php:118 +#: ../../mod/regmod.php:17 ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/invite.php:13 ../../mod/invite.php:104 +#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 +#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 +#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 +msgid "Permission denied." +msgstr "Permesso negato." -#: ../../include/conversation.php:1736 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "Astenuto" -msgstr[1] "Astenuti" +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "La chat è al completo" -#: ../../include/Import/import_diaspora.php:17 -msgid "No username found in import file." -msgstr "Impossibile trovare il nome utente nel file da importare." +#: ../../include/import.php:23 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita." -#: ../../include/Import/import_diaspora.php:42 ../../include/import.php:44 +#: ../../include/import.php:44 ../../include/Import/import_diaspora.php:42 msgid "Unable to create a unique channel address. Import failed." msgstr "Impossibile creare un indirizzo univoco per il canale. L'import è fallito." -#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:486 -msgid "Import completed." -msgstr "L'importazione è terminata con successo." +#: ../../include/import.php:70 +msgid "Channel clone failed. Import failed." +msgstr "Impossibile clonare il canale. L'importazione è fallita." + +#: ../../include/import.php:80 ../../mod/import.php:139 +msgid "Cloned channel not found. Import failed." +msgstr "Impossibile trovare il canale clonato. L'importazione è fallita." #: ../../include/RedDAV/RedBrowser.php:107 #: ../../include/RedDAV/RedBrowser.php:239 msgid "parent" msgstr "cartella superiore" -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2529 +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2582 msgid "Collection" msgstr "Cartella" @@ -726,6 +150,19 @@ msgstr "Appuntamenti ricevuti" msgid "Schedule Outbox" msgstr "Appuntamenti inviati" +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1317 +#: ../../include/conversation.php:1027 ../../include/apps.php:360 +#: ../../include/apps.php:415 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "Sconosciuto" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 +#: ../../include/nav.php:93 ../../include/apps.php:135 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Archivio file" + #: ../../include/RedDAV/RedBrowser.php:227 msgid "Total" msgstr "Totale" @@ -735,20 +172,21 @@ msgid "Shared" msgstr "Condiviso" #: ../../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 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/blocks.php:152 +#: ../../mod/new_channel.php:121 ../../mod/webpages.php:180 +#: ../../mod/layouts.php:175 ../../mod/menu.php:114 msgid "Create" msgstr "Crea" #: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:784 -#: ../../mod/photos.php:1317 ../../mod/profile_photo.php:450 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:453 msgid "Upload" msgstr "Carica" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" msgstr "Nome" @@ -757,7 +195,7 @@ msgstr "Nome" msgid "Type" msgstr "Tipo" -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1236 +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1248 #: ../../mod/sharedwithme.php:97 msgid "Size" msgstr "Dimensione" @@ -768,16 +206,27 @@ msgstr "Ultima modifica" #: ../../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 +#: ../../include/ItemObject.php:100 ../../include/apps.php:259 +#: ../../mod/blocks.php:153 ../../mod/editwebpage.php:176 +#: ../../mod/thing.php:257 ../../mod/editblock.php:135 +#: ../../mod/editlayout.php:134 ../../mod/settings.php:648 +#: ../../mod/webpages.php:181 ../../mod/layouts.php:183 +#: ../../mod/editpost.php:112 ../../mod/connections.php:235 #: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +#: ../../mod/menu.php:108 msgid "Edit" msgstr "Modifica" +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/ItemObject.php:120 ../../include/apps.php:260 +#: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 +#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 +#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 +#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 +#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +msgid "Delete" +msgstr "Elimina" + #: ../../include/RedDAV/RedBrowser.php:282 #, php-format msgid "You are using %1$s of your available file storage." @@ -800,570 +249,16 @@ msgstr "Nuova cartella" msgid "Upload file" msgstr "Carica un file" -#: ../../include/permissions.php:26 -msgid "Can view my normal stream and posts" -msgstr "Può vedere i miei contenuti e i post normali" - -#: ../../include/permissions.php:27 -msgid "Can view my default channel profile" -msgstr "Può vedere il profilo predefinito del canale" - -#: ../../include/permissions.php:28 -msgid "Can view my connections" -msgstr "Può vedere i miei contatti" - -#: ../../include/permissions.php:29 -msgid "Can view my file storage and photos" -msgstr "Può vedere il mio archivio file e foto" - -#: ../../include/permissions.php:30 -msgid "Can view my webpages" -msgstr "Può vedere le mie pagine web" - -#: ../../include/permissions.php:33 -msgid "Can send me their channel stream and posts" -msgstr "È tra i canali che seguo" - -#: ../../include/permissions.php:34 -msgid "Can post on my channel page (\"wall\")" -msgstr "Può scrivere sulla bacheca del mio canale" - -#: ../../include/permissions.php:35 -msgid "Can comment on or like my posts" -msgstr "Può commentare o aggiungere \"mi piace\" ai miei post" - -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" -msgstr "Può inviarmi messaggi privati" - -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" -msgstr "Può aggiungere \"mi piace\" a tutto il resto" - -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" -msgstr "Può aggiungere \"mi piace\" a tutto ciò che non riguarda i post, come per esempio il profilo" - -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Può inoltrare post a tutti i contatti del canale tramite una @menzione" - -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" -msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione" - -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" -msgstr "Può aprire una chat con me (se disponibile)" - -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" -msgstr "Può modificare il mio archivio file e foto" - -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" -msgstr "Può modificare le mie pagine web" - -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" -msgstr "Può usare i miei post pubblici per creare canali derivati" - -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Piuttosto avanzato - molto utile nelle comunità aperte" - -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" -msgstr "Può amministrare i contenuti del mio canale" - -#: ../../include/permissions.php:46 -msgid "" -"Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri" - -#: ../../include/permissions.php:867 -msgid "Social Networking" -msgstr "Social network" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Mostly Public" -msgstr "Prevalentemente pubblico" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -#: ../../include/permissions.php:869 -msgid "Restricted" -msgstr "Con restrizioni" - -#: ../../include/permissions.php:867 ../../include/permissions.php:868 -msgid "Private" -msgstr "Privato" - -#: ../../include/permissions.php:868 -msgid "Community Forum" -msgstr "Forum di discussione" - -#: ../../include/permissions.php:869 -msgid "Feed Republish" -msgstr "Aggregatore di feed esterni" - -#: ../../include/permissions.php:870 -msgid "Special Purpose" -msgstr "Per finalità speciali" - -#: ../../include/permissions.php:870 -msgid "Celebrity/Soapbox" -msgstr "Pagina per fan" - -#: ../../include/permissions.php:870 -msgid "Group Repository" -msgstr "Repository di gruppo" - -#: ../../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 "Altro" - -#: ../../include/permissions.php:871 -msgid "Custom/Expert Mode" -msgstr "Personalizzazione per esperti" - -#: ../../include/chat.php:23 -msgid "Missing room name" -msgstr "Chat senza nome" - -#: ../../include/chat.php:32 -msgid "Duplicate room name" -msgstr "Il nome della chat è duplicato" - -#: ../../include/chat.php:82 ../../include/chat.php:90 -msgid "Invalid room specifier." -msgstr "Il nome della chat non è valido." - -#: ../../include/chat.php:122 -msgid "Room not found." -msgstr "Chat non trovata." - -#: ../../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:347 ../../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:1004 ../../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 "Permesso negato." - -#: ../../include/chat.php:143 -msgid "Room is full" -msgstr "La chat è al completo" - -#: ../../include/datetime.php:48 -msgid "Miscellaneous" -msgstr "Altro" - -#: ../../include/datetime.php:132 -msgid "YYYY-MM-DD or MM-DD" -msgstr "AAAA-MM-GG oppure MM-GG" - -#: ../../include/datetime.php:235 ../../mod/appman.php:91 -#: ../../mod/appman.php:92 ../../mod/events.php:689 -msgid "Required" -msgstr "Obbligatorio" - -#: ../../include/datetime.php:262 ../../boot.php:2312 -msgid "never" -msgstr "mai" - -#: ../../include/datetime.php:268 -msgid "less than a second ago" -msgstr "meno di un secondo fa" - -#: ../../include/datetime.php:271 -msgid "year" -msgstr "anno" - -#: ../../include/datetime.php:271 -msgid "years" -msgstr "anni" - -#: ../../include/datetime.php:272 -msgid "month" -msgstr "mese" - -#: ../../include/datetime.php:272 -msgid "months" -msgstr "mesi" - -#: ../../include/datetime.php:273 -msgid "week" -msgstr "settimana" - -#: ../../include/datetime.php:273 -msgid "weeks" -msgstr "settimane" - -#: ../../include/datetime.php:274 -msgid "day" -msgstr "giorno" - -#: ../../include/datetime.php:274 -msgid "days" -msgstr "giorni" - -#: ../../include/datetime.php:275 -msgid "hour" -msgstr "ora" - -#: ../../include/datetime.php:275 -msgid "hours" -msgstr "ore" - -#: ../../include/datetime.php:276 -msgid "minute" -msgstr "minuto" - -#: ../../include/datetime.php:276 -msgid "minutes" -msgstr "minuti" - -#: ../../include/datetime.php:277 -msgid "second" -msgstr "secondo" - -#: ../../include/datetime.php:277 -msgid "seconds" -msgstr "secondi" - -#: ../../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 fa" - -#: ../../include/datetime.php:519 -#, php-format -msgid "%1$s's birthday" -msgstr "Compleanno di %1$s" - -#: ../../include/datetime.php:520 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Buon compleanno %1$s" - -#: ../../include/features.php:38 -msgid "General Features" -msgstr "Funzionalità di base" - -#: ../../include/features.php:40 -msgid "Content Expiration" -msgstr "Scadenza" - -#: ../../include/features.php:40 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "Elimina i post, i commenti o i messaggi privati dopo un lasso di tempo" - -#: ../../include/features.php:41 -msgid "Multiple Profiles" -msgstr "Profili multipli" - -#: ../../include/features.php:41 -msgid "Ability to create multiple profiles" -msgstr "Abilitazione a creare profili multipli" - -#: ../../include/features.php:42 -msgid "Advanced Profiles" -msgstr "Profili avanzati" - -#: ../../include/features.php:42 -msgid "Additional profile sections and selections" -msgstr "Informazioni aggiuntive del profilo" - -#: ../../include/features.php:43 -msgid "Profile Import/Export" -msgstr "Importa/esporta il profilo" - -#: ../../include/features.php:43 -msgid "Save and load profile details across sites/channels" -msgstr "Salva o ripristina le informazioni del profilo su siti diversi" - -#: ../../include/features.php:44 -msgid "Web Pages" -msgstr "Pagine web" - -#: ../../include/features.php:44 -msgid "Provide managed web pages on your channel" -msgstr "Attiva la creazione di pagine web sul tuo canale" - -#: ../../include/features.php:45 -msgid "Private Notes" -msgstr "Note private" - -#: ../../include/features.php:45 -msgid "Enables a tool to store notes and reminders" -msgstr "Abilita il riquadro per scrivere le tue annotazioni" - -#: ../../include/features.php:46 -msgid "Navigation Channel Select" -msgstr "Scegli il canale attivo dal menu" - -#: ../../include/features.php:46 -msgid "Change channels directly from within the navigation dropdown menu" -msgstr "Scegli il canale attivo direttamente dal menu di navigazione" - -#: ../../include/features.php:47 -msgid "Photo Location" -msgstr "Posizione geografica" - -#: ../../include/features.php:47 -msgid "If location data is available on uploaded photos, link this to a map." -msgstr "Collega la foto a una mappa quando contiene indicazioni geografiche." - -#: ../../include/features.php:49 -msgid "Expert Mode" -msgstr "Modalità esperto" - -#: ../../include/features.php:49 -msgid "Enable Expert Mode to provide advanced configuration options" -msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate" - -#: ../../include/features.php:50 -msgid "Premium Channel" -msgstr "Canale premium" - -#: ../../include/features.php:50 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Ti permette di impostare restrizioni e termini d'uso per il canale" - -#: ../../include/features.php:55 -msgid "Post Composition Features" -msgstr "Modalità di scrittura post" - -#: ../../include/features.php:57 -msgid "Use Markdown" -msgstr "Usa il markdown" - -#: ../../include/features.php:57 -msgid "Allow use of \"Markdown\" to format posts" -msgstr "Consenti l'uso del markdown per formattare i post" - -#: ../../include/features.php:58 -msgid "Large Photos" -msgstr "Foto grandi" - -#: ../../include/features.php:58 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" -msgstr "Includi anteprime grandi per le foto dei tuoi post (1024px). Altrimenti saranno mostrate anteprime più piccole (640px)" - -#: ../../include/features.php:59 ../../include/widgets.php:545 -#: ../../mod/sources.php:88 -msgid "Channel Sources" -msgstr "Sorgenti del canale" - -#: ../../include/features.php:59 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Importa automaticamente il contenuto del canale da altri canali o feed" - -#: ../../include/features.php:60 -msgid "Even More Encryption" -msgstr "Cifratura addizionale" - -#: ../../include/features.php:60 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" -msgstr "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi" - -#: ../../include/features.php:61 -msgid "Enable Voting Tools" -msgstr "Permetti i post con votazione" - -#: ../../include/features.php:61 -msgid "Provide a class of post which others can vote on" -msgstr "Rende possibile la creazione di post in cui sarà possibile votare" - -#: ../../include/features.php:62 -msgid "Delayed Posting" -msgstr "Pubblicazione ritardata" - -#: ../../include/features.php:62 -msgid "Allow posts to be published at a later date" -msgstr "Per scegliere una data e un'ora a cui far uscire i post" - -#: ../../include/features.php:68 -msgid "Network and Stream Filtering" -msgstr "Filtraggio dei contenuti" - -#: ../../include/features.php:69 -msgid "Search by Date" -msgstr "Ricerca per data" - -#: ../../include/features.php:69 -msgid "Ability to select posts by date ranges" -msgstr "Per selezionare i post in un intervallo tra date" - -#: ../../include/features.php:70 -msgid "Collections Filter" -msgstr "Filtra per insiemi di canali" - -#: ../../include/features.php:70 -msgid "Enable widget to display Network posts only from selected collections" -msgstr "Mostra il riquadro per filtrare i post di certi insiemi di canali" - -#: ../../include/features.php:71 ../../include/widgets.php:273 -msgid "Saved Searches" -msgstr "Ricerche salvate" - -#: ../../include/features.php:71 -msgid "Save search terms for re-use" -msgstr "Salva i termini delle ricerche per poterle ripetere" - -#: ../../include/features.php:72 -msgid "Network Personal Tab" -msgstr "Attività personale" - -#: ../../include/features.php:72 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito" - -#: ../../include/features.php:73 -msgid "Network New Tab" -msgstr "Contenuti nuovi" - -#: ../../include/features.php:73 -msgid "Enable tab to display all new Network activity" -msgstr "Abilita il link per visualizzare solo i nuovi contenuti" - -#: ../../include/features.php:74 -msgid "Affinity Tool" -msgstr "Filtro per affinità" - -#: ../../include/features.php:74 -msgid "Filter stream activity by depth of relationships" -msgstr "Permette di selezionare i contenuti in base al livello di amicizia" - -#: ../../include/features.php:75 -msgid "Connection Filtering" -msgstr "Filtro sui contatti" - -#: ../../include/features.php:75 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "Filtra i post che ricevi con parole chiave" - -#: ../../include/features.php:76 -msgid "Suggest Channels" -msgstr "Suggerisci canali" - -#: ../../include/features.php:76 -msgid "Show channel suggestions" -msgstr "Mostra alcuni canali che potrebbero interessarti" - -#: ../../include/features.php:81 -msgid "Post/Comment Tools" -msgstr "Gestione post e commenti" - -#: ../../include/features.php:82 -msgid "Tagging" -msgstr "Tag" - -#: ../../include/features.php:82 -msgid "Ability to tag existing posts" -msgstr "Permetti l'aggiunta di tag su post già esistenti" - -#: ../../include/features.php:83 -msgid "Post Categories" -msgstr "Categorie dei post" - -#: ../../include/features.php:83 -msgid "Add categories to your posts" -msgstr "Abilita le categorie per i tuoi post" - -#: ../../include/features.php:84 ../../include/contact_widgets.php:57 -#: ../../include/widgets.php:303 -msgid "Saved Folders" -msgstr "Cartelle salvate" - -#: ../../include/features.php:84 -msgid "Ability to file posts under folders" -msgstr "Abilita la raccolta dei tuoi articoli in cartelle" - -#: ../../include/features.php:85 -msgid "Dislike Posts" -msgstr "Non mi piace" - -#: ../../include/features.php:85 -msgid "Ability to dislike posts/comments" -msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi post" - -#: ../../include/features.php:86 -msgid "Star Posts" -msgstr "Post con stella" - -#: ../../include/features.php:86 -msgid "Ability to mark special posts with a star indicator" -msgstr "Mostra la stella per segnare i post preferiti" - -#: ../../include/features.php:87 -msgid "Tag Cloud" -msgstr "Nuvola di tag" - -#: ../../include/features.php:87 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale" - -#: ../../include/comanche.php:34 ../../mod/admin.php:351 -msgid "Default" -msgstr "Predefinito" - #: ../../include/js_strings.php:5 msgid "Delete this item?" msgstr "Eliminare questo elemento?" -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:682 +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 #: ../../mod/photos.php:1047 ../../mod/photos.php:1165 msgid "Comment" msgstr "Commento" -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:413 msgid "[+] show all" msgstr "[+] mostra tutto" @@ -1415,8 +310,8 @@ msgstr "Niente di nuovo qui" msgid "Rate This Channel (this is public)" msgstr "Valuta questo canale (visibile a tutti)" -#: ../../include/js_strings.php:20 ../../mod/connedit.php:685 -#: ../../mod/rate.php:157 +#: ../../include/js_strings.php:20 ../../mod/rate.php:157 +#: ../../mod/connedit.php:694 msgid "Rating" msgstr "Valutazioni" @@ -1424,24 +319,25 @@ msgstr "Valutazioni" msgid "Describe (optional)" msgstr "Descrizione (facoltativa)" -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:683 -#: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:706 ../../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:517 ../../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 +#: ../../include/js_strings.php:22 ../../include/widgets.php:676 +#: ../../include/ItemObject.php:697 ../../mod/filestorage.php:156 +#: ../../mod/group.php:81 ../../mod/connect.php:93 ../../mod/rate.php:168 +#: ../../mod/mood.php:135 ../../mod/setup.php:331 ../../mod/setup.php:371 +#: ../../mod/pconfig.php:108 ../../mod/poke.php:171 ../../mod/profiles.php:675 +#: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/thing.php:359 ../../mod/import_items.php:122 +#: ../../mod/pdledit.php:58 ../../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/settings.php:586 +#: ../../mod/settings.php:698 ../../mod/settings.php:726 +#: ../../mod/settings.php:749 ../../mod/settings.php:834 +#: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 +#: ../../mod/mail.php:371 ../../mod/xchan.php:11 ../../mod/invite.php:142 +#: ../../mod/chat.php:184 ../../mod/chat.php:213 ../../mod/events.php:476 +#: ../../mod/events.php:673 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" msgstr "Salva" @@ -1454,369 +350,279 @@ msgstr "Inserisci l'URL di un link" msgid "Unsaved changes. Are you sure you wish to leave this page?" msgstr "Non hai salvato i cambiamenti. Vuoi davvero lasciare questa pagina?" -#: ../../include/js_strings.php:26 +#: ../../include/js_strings.php:25 ../../mod/pubsites.php:28 +#: ../../mod/profiles.php:464 ../../mod/events.php:467 +msgid "Location" +msgstr "Posizione geografica" + +#: ../../include/js_strings.php:27 msgid "timeago.prefixAgo" msgstr "timeago.prefixAgo" -#: ../../include/js_strings.php:27 +#: ../../include/js_strings.php:28 msgid "timeago.prefixFromNow" msgstr "timeago.prefixFromNow" -#: ../../include/js_strings.php:28 +#: ../../include/js_strings.php:29 msgid "ago" msgstr "fa" -#: ../../include/js_strings.php:29 +#: ../../include/js_strings.php:30 msgid "from now" msgstr "da adesso" -#: ../../include/js_strings.php:30 +#: ../../include/js_strings.php:31 msgid "less than a minute" msgstr "meno di un minuto" -#: ../../include/js_strings.php:31 +#: ../../include/js_strings.php:32 msgid "about a minute" msgstr "circa un minuto" -#: ../../include/js_strings.php:32 +#: ../../include/js_strings.php:33 #, php-format msgid "%d minutes" msgstr "%d minuti" -#: ../../include/js_strings.php:33 +#: ../../include/js_strings.php:34 msgid "about an hour" msgstr "circa un’ora" -#: ../../include/js_strings.php:34 +#: ../../include/js_strings.php:35 #, php-format msgid "about %d hours" msgstr "circa %d ore" -#: ../../include/js_strings.php:35 +#: ../../include/js_strings.php:36 msgid "a day" msgstr "un giorno" -#: ../../include/js_strings.php:36 +#: ../../include/js_strings.php:37 #, php-format msgid "%d days" msgstr "%d giorni" -#: ../../include/js_strings.php:37 +#: ../../include/js_strings.php:38 msgid "about a month" msgstr "circa un mese" -#: ../../include/js_strings.php:38 +#: ../../include/js_strings.php:39 #, php-format msgid "%d months" msgstr "%d mesi" -#: ../../include/js_strings.php:39 +#: ../../include/js_strings.php:40 msgid "about a year" msgstr "circa un anno" -#: ../../include/js_strings.php:40 +#: ../../include/js_strings.php:41 #, php-format msgid "%d years" msgstr "%d anni" -#: ../../include/js_strings.php:41 +#: ../../include/js_strings.php:42 msgid " " msgstr " " -#: ../../include/js_strings.php:42 +#: ../../include/js_strings.php:43 msgid "timeago.numbers" msgstr "timeago.numbers" -#: ../../include/js_strings.php:44 ../../include/text.php:1153 +#: ../../include/js_strings.php:45 ../../include/text.php:1165 msgid "January" msgstr "gennaio" -#: ../../include/js_strings.php:45 ../../include/text.php:1153 +#: ../../include/js_strings.php:46 ../../include/text.php:1165 msgid "February" msgstr "febbraio" -#: ../../include/js_strings.php:46 ../../include/text.php:1153 +#: ../../include/js_strings.php:47 ../../include/text.php:1165 msgid "March" msgstr "marzo" -#: ../../include/js_strings.php:47 ../../include/text.php:1153 +#: ../../include/js_strings.php:48 ../../include/text.php:1165 msgid "April" msgstr "aprile" -#: ../../include/js_strings.php:48 +#: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "maggio" -#: ../../include/js_strings.php:49 ../../include/text.php:1153 +#: ../../include/js_strings.php:50 ../../include/text.php:1165 msgid "June" msgstr "giugno" -#: ../../include/js_strings.php:50 ../../include/text.php:1153 +#: ../../include/js_strings.php:51 ../../include/text.php:1165 msgid "July" msgstr "luglio" -#: ../../include/js_strings.php:51 ../../include/text.php:1153 +#: ../../include/js_strings.php:52 ../../include/text.php:1165 msgid "August" msgstr "agosto" -#: ../../include/js_strings.php:52 ../../include/text.php:1153 +#: ../../include/js_strings.php:53 ../../include/text.php:1165 msgid "September" msgstr "settembre" -#: ../../include/js_strings.php:53 ../../include/text.php:1153 +#: ../../include/js_strings.php:54 ../../include/text.php:1165 msgid "October" msgstr "ottobre" -#: ../../include/js_strings.php:54 ../../include/text.php:1153 +#: ../../include/js_strings.php:55 ../../include/text.php:1165 msgid "November" msgstr "novembre" -#: ../../include/js_strings.php:55 ../../include/text.php:1153 +#: ../../include/js_strings.php:56 ../../include/text.php:1165 msgid "December" msgstr "dicembre" -#: ../../include/js_strings.php:56 +#: ../../include/js_strings.php:57 msgid "Jan" msgstr "Gen" -#: ../../include/js_strings.php:57 +#: ../../include/js_strings.php:58 msgid "Feb" msgstr "Feb" -#: ../../include/js_strings.php:58 +#: ../../include/js_strings.php:59 msgid "Mar" msgstr "Mar" -#: ../../include/js_strings.php:59 +#: ../../include/js_strings.php:60 msgid "Apr" msgstr "Apr" -#: ../../include/js_strings.php:60 +#: ../../include/js_strings.php:61 msgctxt "short" msgid "May" msgstr "maggio" -#: ../../include/js_strings.php:61 +#: ../../include/js_strings.php:62 msgid "Jun" msgstr "Mag" -#: ../../include/js_strings.php:62 +#: ../../include/js_strings.php:63 msgid "Jul" msgstr "Giu" -#: ../../include/js_strings.php:63 +#: ../../include/js_strings.php:64 msgid "Aug" msgstr "Ago" -#: ../../include/js_strings.php:64 +#: ../../include/js_strings.php:65 msgid "Sep" msgstr "Set" -#: ../../include/js_strings.php:65 +#: ../../include/js_strings.php:66 msgid "Oct" msgstr "Ott" -#: ../../include/js_strings.php:66 +#: ../../include/js_strings.php:67 msgid "Nov" msgstr "Nov" -#: ../../include/js_strings.php:67 +#: ../../include/js_strings.php:68 msgid "Dec" msgstr "Dic" -#: ../../include/js_strings.php:68 ../../include/text.php:1149 +#: ../../include/js_strings.php:69 ../../include/text.php:1161 msgid "Sunday" msgstr "domenica" -#: ../../include/js_strings.php:69 ../../include/text.php:1149 +#: ../../include/js_strings.php:70 ../../include/text.php:1161 msgid "Monday" msgstr "lunedì" -#: ../../include/js_strings.php:70 ../../include/text.php:1149 +#: ../../include/js_strings.php:71 ../../include/text.php:1161 msgid "Tuesday" msgstr "martedì" -#: ../../include/js_strings.php:71 ../../include/text.php:1149 +#: ../../include/js_strings.php:72 ../../include/text.php:1161 msgid "Wednesday" msgstr "mercoledì" -#: ../../include/js_strings.php:72 ../../include/text.php:1149 +#: ../../include/js_strings.php:73 ../../include/text.php:1161 msgid "Thursday" msgstr "giovedì" -#: ../../include/js_strings.php:73 ../../include/text.php:1149 +#: ../../include/js_strings.php:74 ../../include/text.php:1161 msgid "Friday" msgstr "venerdì" -#: ../../include/js_strings.php:74 ../../include/text.php:1149 +#: ../../include/js_strings.php:75 ../../include/text.php:1161 msgid "Saturday" msgstr "sabato" -#: ../../include/js_strings.php:75 +#: ../../include/js_strings.php:76 msgid "Sun" msgstr "Dom" -#: ../../include/js_strings.php:76 +#: ../../include/js_strings.php:77 msgid "Mon" msgstr "Lun" -#: ../../include/js_strings.php:77 +#: ../../include/js_strings.php:78 msgid "Tue" msgstr "Mar" -#: ../../include/js_strings.php:78 +#: ../../include/js_strings.php:79 msgid "Wed" msgstr "Mer" -#: ../../include/js_strings.php:79 +#: ../../include/js_strings.php:80 msgid "Thu" msgstr "Gio" -#: ../../include/js_strings.php:80 +#: ../../include/js_strings.php:81 msgid "Fri" msgstr "Ven" -#: ../../include/js_strings.php:81 +#: ../../include/js_strings.php:82 msgid "Sat" msgstr "Sab" -#: ../../include/js_strings.php:82 +#: ../../include/js_strings.php:83 msgctxt "calendar" msgid "today" msgstr "oggi" -#: ../../include/js_strings.php:83 +#: ../../include/js_strings.php:84 msgctxt "calendar" msgid "month" msgstr "mese" -#: ../../include/js_strings.php:84 +#: ../../include/js_strings.php:85 msgctxt "calendar" msgid "week" msgstr "settimana" -#: ../../include/js_strings.php:85 +#: ../../include/js_strings.php:86 msgctxt "calendar" msgid "day" msgstr "giorno" -#: ../../include/js_strings.php:86 +#: ../../include/js_strings.php:87 msgctxt "calendar" msgid "All day" msgstr "Tutto il giorno" -#: ../../include/contact_selectors.php:56 -msgid "Frequently" -msgstr "Frequentemente" - -#: ../../include/contact_selectors.php:57 -msgid "Hourly" -msgstr "Ogni ora" - -#: ../../include/contact_selectors.php:58 -msgid "Twice daily" -msgstr "Due volte al giorno" - -#: ../../include/contact_selectors.php:59 -msgid "Daily" -msgstr "Ogni giorno" - -#: ../../include/contact_selectors.php:60 -msgid "Weekly" -msgstr "Ogni settimana" - -#: ../../include/contact_selectors.php:61 -msgid "Monthly" -msgstr "Ogni mese" - -#: ../../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:1505 -msgid "Email" -msgstr "Email" - -#: ../../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 "e" - -#: ../../include/activities.php:50 -msgid "public profile" -msgstr "profilo pubblico" - -#: ../../include/activities.php:59 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s ha cambiato %2$s in “%3$s”" - -#: ../../include/activities.php:60 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Guarda %2$s di %1$s " - -#: ../../include/activities.php:63 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s ha aggiornato %2$s cambiando %3$s." - -#: ../../include/Contact.php:118 -msgid "New window" -msgstr "Nuova finestra" - -#: ../../include/Contact.php:119 -msgid "Open the selected location in a different window or browser tab" -msgstr "Apri l'indirizzo selezionato in una nuova scheda o finestra" +#: ../../include/Import/import_diaspora.php:17 +msgid "No username found in import file." +msgstr "Impossibile trovare il nome utente nel file da importare." -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "Utente '%s' eliminato" +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "L'importazione è terminata con successo." -#: ../../include/dba/dba_driver.php:141 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" -msgstr "Non trovo le informazioni DNS per il database server '%s'" +#: ../../include/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "Predefinito" -#: ../../include/items.php:423 ../../mod/like.php:280 ../../mod/dreport.php:6 -#: ../../mod/dreport.php:45 ../../mod/subthread.php:52 ../../mod/group.php:68 -#: ../../mod/profperm.php:23 ../../mod/import_items.php:114 -#: ../../index.php:360 +#: ../../include/items.php:423 ../../mod/group.php:68 ../../mod/like.php:280 +#: ../../mod/dreport.php:6 ../../mod/dreport.php:45 ../../mod/subthread.php:58 +#: ../../mod/import_items.php:114 ../../mod/profperm.php:23 +#: ../../index.php:364 msgid "Permission denied" msgstr "Permesso negato" @@ -1857,126 +663,557 @@ msgstr "Visibile ai contatti approvati." msgid "Visible to specific connections." msgstr "Visibile ad alcuni contatti scelti." -#: ../../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 +#: ../../include/items.php:4317 ../../mod/filestorage.php:27 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 +#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Elemento non trovato." -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 msgid "Collection not found." msgstr "Insieme di canali non trovato." -#: ../../include/items.php:4836 +#: ../../include/items.php:4842 msgid "Collection is empty." msgstr "L'insieme di canali è vuoto." -#: ../../include/items.php:4843 +#: ../../include/items.php:4849 #, php-format msgid "Collection: %s" msgstr "Insieme: %s" -#: ../../include/items.php:4853 ../../mod/connedit.php:674 +#: ../../include/items.php:4859 ../../mod/connedit.php:683 #, php-format msgid "Connection: %s" msgstr "Contatto: %s" -#: ../../include/items.php:4855 +#: ../../include/items.php:4861 msgid "Connection not found." msgstr "Contatto non trovato." -#: ../../include/network.php:635 +#: ../../include/message.php:18 +msgid "No recipient provided." +msgstr "Devi scegliere un destinatario." + +#: ../../include/message.php:23 +msgid "[no subject]" +msgstr "[nessun titolo]" + +#: ../../include/message.php:43 +msgid "Unable to determine sender." +msgstr "Impossibile determinare il mittente." + +#: ../../include/message.php:218 +msgid "Stored post could not be verified." +msgstr "Non è stato possibile verificare il post." + +#: ../../include/network.php:630 msgid "view full size" msgstr "guarda nelle dimensioni reali" -#: ../../include/network.php:1613 ../../include/enotify.php:57 +#: ../../include/network.php:1608 ../../include/enotify.php:57 msgid "$Projectname Notification" msgstr "Notifica $Projectname" -#: ../../include/network.php:1614 ../../include/enotify.php:58 +#: ../../include/network.php:1609 ../../include/enotify.php:58 msgid "$projectname" msgstr "$projectname" -#: ../../include/network.php:1616 ../../include/enotify.php:60 +#: ../../include/network.php:1611 ../../include/enotify.php:60 msgid "Thank You," msgstr "Grazie," -#: ../../include/network.php:1618 ../../include/enotify.php:62 +#: ../../include/network.php:1613 ../../include/enotify.php:62 #, php-format msgid "%s Administrator" msgstr "L'amministratore di %s" -#: ../../include/network.php:1660 ../../include/account.php:316 +#: ../../include/network.php:1655 ../../include/account.php:316 #: ../../include/account.php:343 ../../include/account.php:403 msgid "Administrator" msgstr "Amministratore" -#: ../../include/network.php:1674 +#: ../../include/network.php:1669 msgid "No Subject" msgstr "Nessun titolo" -#: ../../include/bookmarks.php:35 +#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 +#: ../../include/text.php:1392 +msgid "l F d, Y \\@ g:i A" +msgstr "l d F Y \\@ G:i" + +#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 +#: ../../include/text.php:1396 +msgid "Starts:" +msgstr "Inizio:" + +#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 +#: ../../include/text.php:1400 +msgid "Finishes:" +msgstr "Fine:" + +#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 +#: ../../mod/directory.php:304 +msgid "Location:" +msgstr "Luogo:" + +#: ../../include/event.php:768 +msgid "This event has been added to your calendar." +msgstr "Questo evento è stato aggiunto al tuo calendario" + +#: ../../include/event.php:904 ../../include/conversation.php:123 +#: ../../include/text.php:1919 ../../mod/tagger.php:47 ../../mod/like.php:363 +#: ../../mod/events.php:249 +msgid "event" +msgstr "l'evento" + +#: ../../include/event.php:967 +msgid "Not specified" +msgstr "Non specificato" + +#: ../../include/event.php:968 +msgid "Needs Action" +msgstr "Necessita di un intervento" + +#: ../../include/event.php:969 +msgid "Completed" +msgstr "Completato" + +#: ../../include/event.php:970 +msgid "In Process" +msgstr "In corso" + +#: ../../include/event.php:971 +msgid "Cancelled" +msgstr "Annullato" + +#: ../../include/identity.php:32 +msgid "Unable to obtain identity information from database" +msgstr "Impossibile ottenere le informazioni di identificazione dal database" + +#: ../../include/identity.php:66 +msgid "Empty name" +msgstr "Nome vuoto" + +#: ../../include/identity.php:69 +msgid "Name too long" +msgstr "Nome troppo lungo" + +#: ../../include/identity.php:181 +msgid "No account identifier" +msgstr "Account senza identificativo" + +#: ../../include/identity.php:193 +msgid "Nickname is required." +msgstr "Il nome dell'account è obbligatorio." + +#: ../../include/identity.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Nome utente riservato. Per favore scegline un altro." + +#: ../../include/identity.php:212 +msgid "" +"Nickname has unsupported characters or is already being used on this site." +msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati." + +#: ../../include/identity.php:288 +msgid "Unable to retrieve created identity" +msgstr "Impossibile caricare l'identità creata" + +#: ../../include/identity.php:346 +msgid "Default Profile" +msgstr "Profilo predefinito" + +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../include/widgets.php:430 +#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:573 +#: ../../mod/settings.php:338 ../../mod/settings.php:342 +#: ../../mod/settings.php:343 ../../mod/settings.php:346 +#: ../../mod/settings.php:357 +msgid "Friends" +msgstr "Amici" + +#: ../../include/identity.php:770 +msgid "Requested channel is not available." +msgstr "Il canale che cerchi non è disponibile." + +#: ../../include/identity.php:816 ../../mod/filestorage.php:54 +#: ../../mod/connect.php:13 ../../mod/achievements.php:11 +#: ../../mod/blocks.php:29 ../../mod/hcard.php:8 ../../mod/editwebpage.php:28 +#: ../../mod/profile.php:16 ../../mod/editblock.php:29 +#: ../../mod/editlayout.php:27 ../../mod/webpages.php:29 +#: ../../mod/layouts.php:29 +msgid "Requested profile is not available." +msgstr "Il profilo richiesto non è disponibile." + +#: ../../include/identity.php:966 ../../mod/profiles.php:782 +msgid "Change profile photo" +msgstr "Cambia la foto del profilo" + +#: ../../include/identity.php:972 +msgid "Profiles" +msgstr "Profili" + +#: ../../include/identity.php:972 +msgid "Manage/edit profiles" +msgstr "Gestisci/modifica i profili" + +#: ../../include/identity.php:973 ../../mod/profiles.php:783 +msgid "Create New Profile" +msgstr "Crea un nuovo profilo" + +#: ../../include/identity.php:976 ../../include/nav.php:90 +msgid "Edit Profile" +msgstr "Modifica il profilo" + +#: ../../include/identity.php:988 ../../mod/profiles.php:794 +msgid "Profile Image" +msgstr "Immagine del profilo" + +#: ../../include/identity.php:991 +msgid "visible to everybody" +msgstr "visibile a tutti" + +#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../mod/profiles.php:798 +msgid "Edit visibility" +msgstr "Cambia la visibilità" + +#: ../../include/identity.php:1008 ../../include/identity.php:1248 +msgid "Gender:" +msgstr "Sesso:" + +#: ../../include/identity.php:1009 ../../include/identity.php:1292 +msgid "Status:" +msgstr "Stato:" + +#: ../../include/identity.php:1010 ../../include/identity.php:1303 +msgid "Homepage:" +msgstr "Home page:" + +#: ../../include/identity.php:1011 +msgid "Online Now" +msgstr "Online adesso" + +#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../mod/ping.php:318 +msgid "g A l F d" +msgstr "g A l d F" + +#: ../../include/identity.php:1096 ../../include/identity.php:1174 +msgid "F d" +msgstr "d F" + +#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../mod/ping.php:341 +msgid "[today]" +msgstr "[oggi]" + +#: ../../include/identity.php:1152 +msgid "Birthday Reminders" +msgstr "Promemoria compleanni" + +#: ../../include/identity.php:1153 +msgid "Birthdays this week:" +msgstr "Compleanni questa settimana:" + +#: ../../include/identity.php:1206 +msgid "[No description]" +msgstr "[Nessuna descrizione]" + +#: ../../include/identity.php:1224 +msgid "Event Reminders" +msgstr "Promemoria" + +#: ../../include/identity.php:1225 +msgid "Events this week:" +msgstr "Eventi della settimana:" + +#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/apps.php:138 ../../mod/profperm.php:112 +msgid "Profile" +msgstr "Profilo" + +#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +msgid "Full Name:" +msgstr "Nome completo:" + +#: ../../include/identity.php:1253 +msgid "Like this channel" +msgstr "Mi piace questo canale" + +#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 +#: ../../mod/photos.php:1086 +msgctxt "noun" +msgid "Like" +msgid_plural "Likes" +msgstr[0] "Mi piace" +msgstr[1] "Mi piace" + +#: ../../include/identity.php:1277 +msgid "j F, Y" +msgstr "j F Y" + +#: ../../include/identity.php:1278 +msgid "j F" +msgstr "j F" + +#: ../../include/identity.php:1285 +msgid "Birthday:" +msgstr "Compleanno:" + +#: ../../include/identity.php:1289 ../../mod/directory.php:299 +msgid "Age:" +msgstr "Età:" + +#: ../../include/identity.php:1298 #, php-format -msgid "%1$s's bookmarks" -msgstr "I segnalibri di %1$s" +msgid "for %1$d %2$s" +msgstr "per %1$d %2$s" + +#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +msgid "Sexual Preference:" +msgstr "Preferenze sessuali:" + +#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../mod/directory.php:315 +msgid "Hometown:" +msgstr "Città dove vivo:" + +#: ../../include/identity.php:1307 +msgid "Tags:" +msgstr "Tag:" + +#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +msgid "Political Views:" +msgstr "Orientamento politico:" + +#: ../../include/identity.php:1311 +msgid "Religion:" +msgstr "Religione:" + +#: ../../include/identity.php:1313 ../../mod/directory.php:317 +msgid "About:" +msgstr "Informazioni:" + +#: ../../include/identity.php:1315 +msgid "Hobbies/Interests:" +msgstr "Interessi e hobby:" + +#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +msgid "Likes:" +msgstr "Mi piace:" + +#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +msgid "Dislikes:" +msgstr "Non mi piace:" + +#: ../../include/identity.php:1321 +msgid "Contact information and Social Networks:" +msgstr "Contatti e social network:" + +#: ../../include/identity.php:1323 +msgid "My other channels:" +msgstr "I miei altri canali:" + +#: ../../include/identity.php:1325 +msgid "Musical interests:" +msgstr "Gusti musicali:" + +#: ../../include/identity.php:1327 +msgid "Books, literature:" +msgstr "Libri, letteratura:" + +#: ../../include/identity.php:1329 +msgid "Television:" +msgstr "Televisione:" + +#: ../../include/identity.php:1331 +msgid "Film/dance/culture/entertainment:" +msgstr "Film, danza, cultura, intrattenimento:" + +#: ../../include/identity.php:1333 +msgid "Love/Romance:" +msgstr "Amore:" + +#: ../../include/identity.php:1335 +msgid "Work/employment:" +msgstr "Lavoro:" + +#: ../../include/identity.php:1337 +msgid "School/education:" +msgstr "Scuola:" + +#: ../../include/identity.php:1357 +msgid "Like this thing" +msgstr "Mi piace" + +#: ../../include/taxonomy.php:240 ../../include/taxonomy.php:261 +msgid "Tags" +msgstr "Tag" + +#: ../../include/taxonomy.php:282 ../../include/widgets.php:36 +#: ../../include/contact_widgets.php:95 +msgid "Categories" +msgstr "Categorie" + +#: ../../include/taxonomy.php:305 +msgid "Keywords" +msgstr "Parole chiave" + +#: ../../include/taxonomy.php:326 +msgid "have" +msgstr "ho" + +#: ../../include/taxonomy.php:326 +msgid "has" +msgstr "ha" + +#: ../../include/taxonomy.php:327 +msgid "want" +msgstr "voglio" + +#: ../../include/taxonomy.php:327 +msgid "wants" +msgstr "vuole" + +#: ../../include/taxonomy.php:328 ../../include/ItemObject.php:254 +msgid "like" +msgstr "mi piace" + +#: ../../include/taxonomy.php:328 +msgid "likes" +msgstr "gli piace" -#: ../../include/acl_selectors.php:239 +#: ../../include/taxonomy.php:329 ../../include/ItemObject.php:255 +msgid "dislike" +msgstr "non mi piace" + +#: ../../include/taxonomy.php:329 +msgid "dislikes" +msgstr "non gli piace" + +#: ../../include/acl_selectors.php:240 msgid "Visible to your default audience" msgstr "Visibile secondo le impostazioni predefinite" -#: ../../include/acl_selectors.php:240 +#: ../../include/acl_selectors.php:241 msgid "Show" msgstr "Mostra" -#: ../../include/acl_selectors.php:241 +#: ../../include/acl_selectors.php:242 msgid "Don't show" msgstr "Non mostrare" -#: ../../include/acl_selectors.php:247 ../../mod/filestorage.php:147 -#: ../../mod/chat.php:211 ../../mod/photos.php:631 ../../mod/photos.php:1001 -#: ../../mod/events.php:708 ../../mod/thing.php:310 ../../mod/thing.php:356 +#: ../../include/acl_selectors.php:247 +msgid "Other networks and post services" +msgstr "Invio ad altre reti o a siti esterni" + +#: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 +#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 +#: ../../mod/thing.php:356 ../../mod/chat.php:211 msgid "Permissions" msgstr "Permessi" -#: ../../include/acl_selectors.php:248 ../../include/ItemObject.php:370 +#: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 #: ../../mod/photos.php:1218 msgid "Close" msgstr "Chiudi" -#: ../../include/import.php:23 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita." +#: ../../include/activities.php:42 +msgid " and " +msgstr "e" -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." -msgstr "Impossibile clonare il canale. L'importazione è fallita." +#: ../../include/activities.php:50 +msgid "public profile" +msgstr "profilo pubblico" -#: ../../include/import.php:80 ../../mod/import.php:138 -msgid "Cloned channel not found. Import failed." -msgstr "Impossibile trovare il canale clonato. L'importazione è fallita." +#: ../../include/activities.php:59 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s ha cambiato %2$s in “%3$s”" -#: ../../include/photos.php:112 +#: ../../include/activities.php:60 #, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "L'immagine supera il limite massimo di %lu bytes" +msgid "Visit %1$s's %2$s" +msgstr "Guarda %2$s di %1$s " -#: ../../include/photos.php:119 -msgid "Image file is empty." -msgstr "Il file dell'immagine è vuoto." +#: ../../include/activities.php:63 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s ha aggiornato %2$s cambiando %3$s." -#: ../../include/photos.php:146 ../../mod/profile_photo.php:222 -msgid "Unable to process image" -msgstr "Impossibile elaborare l'immagine" +#: ../../include/attach.php:246 ../../include/attach.php:332 +msgid "Item was not found." +msgstr "Elemento non trovato." -#: ../../include/photos.php:257 -msgid "Photo storage failed." -msgstr "Impossibile salvare la foto." +#: ../../include/attach.php:496 +msgid "No source file." +msgstr "Nessun file di origine." -#: ../../include/photos.php:487 -msgid "Upload New Photos" -msgstr "Carica nuove foto" +#: ../../include/attach.php:514 +msgid "Cannot locate file to replace" +msgstr "Il file da sostituire non è stato trovato" + +#: ../../include/attach.php:532 +msgid "Cannot locate file to revise/update" +msgstr "Il file da aggiornare non è stato trovato" + +#: ../../include/attach.php:667 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Il file supera la dimensione massima di %d" + +#: ../../include/attach.php:681 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." + +#: ../../include/attach.php:837 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato." + +#: ../../include/attach.php:850 +msgid "Stored file could not be verified. Upload failed." +msgstr "Il file non può essere verificato. Caricamento fallito." + +#: ../../include/attach.php:898 ../../include/attach.php:914 +msgid "Path not available." +msgstr "Percorso non disponibile." + +#: ../../include/attach.php:960 ../../include/attach.php:1112 +msgid "Empty pathname" +msgstr "Il percorso del file è vuoto" + +#: ../../include/attach.php:986 +msgid "duplicate filename or path" +msgstr "il file o il percorso del file è duplicato" + +#: ../../include/attach.php:1008 +msgid "Path not found." +msgstr "Percorso del file non trovato." + +#: ../../include/attach.php:1066 +msgid "mkdir failed." +msgstr "mkdir fallito." + +#: ../../include/attach.php:1070 +msgid "database storage failed." +msgstr "scrittura su database fallita." + +#: ../../include/attach.php:1118 +msgid "Empty path" +msgstr "La posizione è vuota" + +#: ../../include/bb2diaspora.php:382 +msgid "Attachments:" +msgstr "Allegati:" + +#: ../../include/bb2diaspora.php:473 +msgid "$Projectname event notification:" +msgstr "Notifica evento $Projectname:" #: ../../include/notify.php:20 msgid "created a new post" @@ -1987,42 +1224,603 @@ msgstr "Ha creato un nuovo post" msgid "commented on %s's post" msgstr "ha commentato il post di %s" -#: ../../include/page_widgets.php:6 -msgid "New Page" -msgstr "Nuova pagina web" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "App" -#: ../../include/page_widgets.php:39 ../../mod/layouts.php:188 -#: ../../mod/webpages.php:187 ../../mod/blocks.php:159 -msgid "View" -msgstr "Guarda" +#: ../../include/widgets.php:93 +msgid "System" +msgstr "Sistema" -#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 -msgid "Actions" -msgstr "Azioni" +#: ../../include/widgets.php:95 ../../include/conversation.php:1526 +msgid "Personal" +msgstr "Personali" -#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 -msgid "Page Link" -msgstr "Link alla pagina" +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "Crea app personale" -#: ../../include/page_widgets.php:43 -msgid "Title" -msgstr "Titolo" +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "Modifica app personale" -#: ../../include/page_widgets.php:44 ../../mod/layouts.php:181 -#: ../../mod/menu.php:110 ../../mod/webpages.php:192 ../../mod/blocks.php:150 -msgid "Created" -msgstr "Creato" +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "Ignora/nascondi" -#: ../../include/page_widgets.php:45 ../../mod/layouts.php:182 -#: ../../mod/menu.php:111 ../../mod/webpages.php:193 ../../mod/blocks.php:151 -msgid "Edited" -msgstr "Modificato" +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "Suggerimenti" -#: ../../include/photo/photo_driver.php:708 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:146 -#: ../../mod/profile_photo.php:236 ../../mod/profile_photo.php:376 -msgid "Profile Photos" -msgstr "Foto del profilo" +#: ../../include/widgets.php:145 +msgid "See more..." +msgstr "Altro..." + +#: ../../include/widgets.php:166 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "Hai attivato %1$.0f delle %2$.0f connessioni permesse." + +#: ../../include/widgets.php:172 +msgid "Add New Connection" +msgstr "Aggiungi un contatto" + +#: ../../include/widgets.php:173 +msgid "Enter the channel address" +msgstr "Scrivi l'indirizzo del canale" + +#: ../../include/widgets.php:174 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Per esempio: mario@pippo.it oppure http://pluto.com/barbara" + +#: ../../include/widgets.php:190 +msgid "Notes" +msgstr "Note" + +#: ../../include/widgets.php:192 ../../include/text.php:868 +#: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +msgid "Save" +msgstr "Salva" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "Rimuovi termine" + +#: ../../include/widgets.php:274 ../../include/features.php:72 +msgid "Saved Searches" +msgstr "Ricerche salvate" + +#: ../../include/widgets.php:275 ../../include/group.php:300 +msgid "add" +msgstr "aggiungi" + +#: ../../include/widgets.php:304 ../../include/features.php:85 +#: ../../include/contact_widgets.php:57 +msgid "Saved Folders" +msgstr "Cartelle salvate" + +#: ../../include/widgets.php:307 ../../include/contact_widgets.php:60 +#: ../../include/contact_widgets.php:98 +msgid "Everything" +msgstr "Tutto" + +#: ../../include/widgets.php:349 +msgid "Archives" +msgstr "Archivi" + +#: ../../include/widgets.php:428 ../../mod/connedit.php:571 +msgid "Me" +msgstr "Me" + +#: ../../include/widgets.php:429 ../../mod/connedit.php:572 +msgid "Family" +msgstr "Famiglia" + +#: ../../include/widgets.php:431 ../../mod/connedit.php:574 +msgid "Acquaintances" +msgstr "Conoscenti" + +#: ../../include/widgets.php:432 ../../mod/connedit.php:575 +#: ../../mod/connections.php:88 ../../mod/connections.php:103 +msgid "All" +msgstr "Tutti" + +#: ../../include/widgets.php:451 +msgid "Refresh" +msgstr "Aggiorna" + +#: ../../include/widgets.php:485 +msgid "Account settings" +msgstr "Il tuo account" + +#: ../../include/widgets.php:491 +msgid "Channel settings" +msgstr "Impostazioni del canale" + +#: ../../include/widgets.php:497 +msgid "Additional features" +msgstr "Funzionalità opzionali" + +#: ../../include/widgets.php:503 +msgid "Feature/Addon settings" +msgstr "Componenti aggiuntivi" + +#: ../../include/widgets.php:509 +msgid "Display settings" +msgstr "Aspetto" + +#: ../../include/widgets.php:515 +msgid "Connected apps" +msgstr "App connesse" + +#: ../../include/widgets.php:521 +msgid "Export channel" +msgstr "Esporta il canale" + +#: ../../include/widgets.php:530 ../../mod/connedit.php:683 +msgid "Connection Default Permissions" +msgstr "Permessi predefiniti dei nuovi contatti" + +#: ../../include/widgets.php:538 +msgid "Premium Channel Settings" +msgstr "Canale premium - impostazioni" + +#: ../../include/widgets.php:546 ../../include/features.php:59 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "Sorgenti del canale" + +#: ../../include/widgets.php:554 ../../include/nav.php:202 +#: ../../include/apps.php:134 ../../mod/admin.php:1064 +#: ../../mod/admin.php:1264 +msgid "Settings" +msgstr "Impostazioni" + +#: ../../include/widgets.php:568 +msgid "Private Mail Menu" +msgstr "Menu messaggi privati" + +#: ../../include/widgets.php:570 +msgid "Combined View" +msgstr "Vista combinata" + +#: ../../include/widgets.php:575 ../../include/nav.php:191 +msgid "Inbox" +msgstr "In arrivo" + +#: ../../include/widgets.php:580 ../../include/nav.php:192 +msgid "Outbox" +msgstr "Inviati" + +#: ../../include/widgets.php:585 ../../include/nav.php:193 +msgid "New Message" +msgstr "Nuovo messaggio" + +#: ../../include/widgets.php:604 ../../include/widgets.php:616 +msgid "Conversations" +msgstr "Conversazioni" + +#: ../../include/widgets.php:608 +msgid "Received Messages" +msgstr "Ricevuti" + +#: ../../include/widgets.php:612 +msgid "Sent Messages" +msgstr "Inviati" + +#: ../../include/widgets.php:626 +msgid "No messages." +msgstr "Nessun messaggio." + +#: ../../include/widgets.php:644 +msgid "Delete conversation" +msgstr "Elimina la conversazione" + +#: ../../include/widgets.php:670 +msgid "Events Menu" +msgstr "Menu eventi" + +#: ../../include/widgets.php:671 +msgid "Day View" +msgstr "Eventi del giorno" + +#: ../../include/widgets.php:672 +msgid "Week View" +msgstr "Eventi della settimana" + +#: ../../include/widgets.php:673 +msgid "Month View" +msgstr "Eventi del mese" + +#: ../../include/widgets.php:674 ../../mod/events.php:669 +msgid "Export" +msgstr "Esporta" + +#: ../../include/widgets.php:675 ../../mod/events.php:672 +msgid "Import" +msgstr "Importa" + +#: ../../include/widgets.php:749 +msgid "Chat Rooms" +msgstr "Chat" + +#: ../../include/widgets.php:769 +msgid "Bookmarked Chatrooms" +msgstr "Chat nei segnalibri" + +#: ../../include/widgets.php:789 +msgid "Suggested Chatrooms" +msgstr "Chat suggerite" + +#: ../../include/widgets.php:916 ../../include/widgets.php:974 +msgid "photo/image" +msgstr "foto/immagine" + +#: ../../include/widgets.php:1069 ../../include/widgets.php:1071 +msgid "Rate Me" +msgstr "Valutami" + +#: ../../include/widgets.php:1075 +msgid "View Ratings" +msgstr "Vedi le valutazioni ricevute" + +#: ../../include/widgets.php:1086 +msgid "Public Hubs" +msgstr "Hub pubblici" + +#: ../../include/widgets.php:1134 +msgid "Forums" +msgstr "Forum" + +#: ../../include/widgets.php:1161 +msgid "Tasks" +msgstr "Attività" + +#: ../../include/widgets.php:1170 +msgid "Documentation" +msgstr "Guida" + +#: ../../include/widgets.php:1172 +msgid "Project/Site Information" +msgstr "Informazioni sul sito/progetto" + +#: ../../include/widgets.php:1173 +msgid "For Members" +msgstr "Per gli utenti" + +#: ../../include/widgets.php:1174 +msgid "For Administrators" +msgstr "Per gli amministratori" + +#: ../../include/widgets.php:1175 +msgid "For Developers" +msgstr "Per sviluppatori" + +#: ../../include/widgets.php:1200 ../../mod/admin.php:434 +msgid "Site" +msgstr "Sito" + +#: ../../include/widgets.php:1201 +msgid "Accounts" +msgstr "Account" + +#: ../../include/widgets.php:1202 ../../mod/admin.php:965 +msgid "Channels" +msgstr "Canali" + +#: ../../include/widgets.php:1203 ../../mod/admin.php:1062 +#: ../../mod/admin.php:1102 +msgid "Plugins" +msgstr "Plugin" + +#: ../../include/widgets.php:1204 ../../mod/admin.php:1262 +#: ../../mod/admin.php:1296 +msgid "Themes" +msgstr "Temi" + +#: ../../include/widgets.php:1205 +msgid "Inspect queue" +msgstr "Coda di attesa" + +#: ../../include/widgets.php:1206 +msgid "Profile Config" +msgstr "Configurazione del profilo" + +#: ../../include/widgets.php:1207 +msgid "DB updates" +msgstr "Aggiornamenti al DB" + +#: ../../include/widgets.php:1225 ../../include/widgets.php:1231 +#: ../../mod/admin.php:1381 +msgid "Logs" +msgstr "Log" + +#: ../../include/widgets.php:1229 ../../include/nav.php:210 +msgid "Admin" +msgstr "Amministrazione" + +#: ../../include/widgets.php:1230 +msgid "Plugin Features" +msgstr "Plugin" + +#: ../../include/widgets.php:1232 +msgid "User registrations waiting for confirmation" +msgstr "Registrazioni in attesa" + +#: ../../include/widgets.php:1311 ../../mod/photos.php:753 +#: ../../mod/photos.php:1286 +msgid "View Photo" +msgstr "Guarda la foto" + +#: ../../include/widgets.php:1327 ../../mod/photos.php:782 +msgid "Edit Album" +msgstr "Modifica album" + +#: ../../include/bookmarks.php:35 +#, php-format +msgid "%1$s's bookmarks" +msgstr "I segnalibri di %1$s" + +#: ../../include/features.php:38 +msgid "General Features" +msgstr "Funzionalità di base" + +#: ../../include/features.php:40 +msgid "Content Expiration" +msgstr "Scadenza" + +#: ../../include/features.php:40 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "Elimina i post, i commenti o i messaggi privati dopo un lasso di tempo" + +#: ../../include/features.php:41 +msgid "Multiple Profiles" +msgstr "Profili multipli" + +#: ../../include/features.php:41 +msgid "Ability to create multiple profiles" +msgstr "Abilitazione a creare profili multipli" + +#: ../../include/features.php:42 +msgid "Advanced Profiles" +msgstr "Profili avanzati" + +#: ../../include/features.php:42 +msgid "Additional profile sections and selections" +msgstr "Informazioni aggiuntive del profilo" + +#: ../../include/features.php:43 +msgid "Profile Import/Export" +msgstr "Importa/esporta il profilo" + +#: ../../include/features.php:43 +msgid "Save and load profile details across sites/channels" +msgstr "Salva o ripristina le informazioni del profilo su siti diversi" + +#: ../../include/features.php:44 +msgid "Web Pages" +msgstr "Pagine web" + +#: ../../include/features.php:44 +msgid "Provide managed web pages on your channel" +msgstr "Attiva la creazione di pagine web sul tuo canale" + +#: ../../include/features.php:45 +msgid "Private Notes" +msgstr "Note private" + +#: ../../include/features.php:45 +msgid "Enables a tool to store notes and reminders" +msgstr "Abilita il riquadro per scrivere le tue annotazioni" + +#: ../../include/features.php:46 +msgid "Navigation Channel Select" +msgstr "Scegli il canale attivo dal menu" + +#: ../../include/features.php:46 +msgid "Change channels directly from within the navigation dropdown menu" +msgstr "Scegli il canale attivo direttamente dal menu di navigazione" + +#: ../../include/features.php:47 +msgid "Photo Location" +msgstr "Posizione geografica" + +#: ../../include/features.php:47 +msgid "If location data is available on uploaded photos, link this to a map." +msgstr "Collega la foto a una mappa quando contiene indicazioni geografiche." + +#: ../../include/features.php:49 +msgid "Expert Mode" +msgstr "Modalità esperto" + +#: ../../include/features.php:49 +msgid "Enable Expert Mode to provide advanced configuration options" +msgstr "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate" + +#: ../../include/features.php:50 +msgid "Premium Channel" +msgstr "Canale premium" + +#: ../../include/features.php:50 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Ti permette di impostare restrizioni e termini d'uso per il canale" + +#: ../../include/features.php:55 +msgid "Post Composition Features" +msgstr "Modalità di scrittura post" + +#: ../../include/features.php:57 +msgid "Use Markdown" +msgstr "Usa il markdown" + +#: ../../include/features.php:57 +msgid "Allow use of \"Markdown\" to format posts" +msgstr "Consenti l'uso del markdown per formattare i post" + +#: ../../include/features.php:58 +msgid "Large Photos" +msgstr "Foto grandi" + +#: ../../include/features.php:58 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" +msgstr "Includi anteprime grandi per le foto dei tuoi post (1024px). Altrimenti saranno mostrate anteprime più piccole (640px)" + +#: ../../include/features.php:59 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Importa automaticamente il contenuto del canale da altri canali o feed" + +#: ../../include/features.php:60 +msgid "Even More Encryption" +msgstr "Cifratura addizionale" + +#: ../../include/features.php:60 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi" + +#: ../../include/features.php:61 +msgid "Enable Voting Tools" +msgstr "Permetti i post con votazione" + +#: ../../include/features.php:61 +msgid "Provide a class of post which others can vote on" +msgstr "Rende possibile la creazione di post in cui sarà possibile votare" + +#: ../../include/features.php:62 +msgid "Delayed Posting" +msgstr "Pubblicazione ritardata" + +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" +msgstr "Per scegliere una data e un'ora a cui far uscire i post" + +#: ../../include/features.php:63 +msgid "Suppress Duplicate Posts/Comments" +msgstr "Impedisci post e commenti duplicati" + +#: ../../include/features.php:63 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." +msgstr "Scarta post e commenti se sono identici ad altri inviati meno di due minuti prima." + +#: ../../include/features.php:69 +msgid "Network and Stream Filtering" +msgstr "Filtraggio dei contenuti" + +#: ../../include/features.php:70 +msgid "Search by Date" +msgstr "Ricerca per data" + +#: ../../include/features.php:70 +msgid "Ability to select posts by date ranges" +msgstr "Per selezionare i post in un intervallo tra date" + +#: ../../include/features.php:71 +msgid "Collections Filter" +msgstr "Filtra per insiemi di canali" + +#: ../../include/features.php:71 +msgid "Enable widget to display Network posts only from selected collections" +msgstr "Mostra il riquadro per filtrare i post di certi insiemi di canali" + +#: ../../include/features.php:72 +msgid "Save search terms for re-use" +msgstr "Salva i termini delle ricerche per poterle ripetere" + +#: ../../include/features.php:73 +msgid "Network Personal Tab" +msgstr "Attività personale" + +#: ../../include/features.php:73 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito" + +#: ../../include/features.php:74 +msgid "Network New Tab" +msgstr "Contenuti nuovi" + +#: ../../include/features.php:74 +msgid "Enable tab to display all new Network activity" +msgstr "Abilita il link per visualizzare solo i nuovi contenuti" + +#: ../../include/features.php:75 +msgid "Affinity Tool" +msgstr "Filtro per affinità" + +#: ../../include/features.php:75 +msgid "Filter stream activity by depth of relationships" +msgstr "Permette di selezionare i contenuti in base al livello di amicizia" + +#: ../../include/features.php:76 +msgid "Connection Filtering" +msgstr "Filtro sui contatti" + +#: ../../include/features.php:76 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "Filtra i post che ricevi con parole chiave" + +#: ../../include/features.php:77 +msgid "Suggest Channels" +msgstr "Suggerisci canali" + +#: ../../include/features.php:77 +msgid "Show channel suggestions" +msgstr "Mostra alcuni canali che potrebbero interessarti" + +#: ../../include/features.php:82 +msgid "Post/Comment Tools" +msgstr "Gestione post e commenti" + +#: ../../include/features.php:83 +msgid "Tagging" +msgstr "Tag" + +#: ../../include/features.php:83 +msgid "Ability to tag existing posts" +msgstr "Permetti l'aggiunta di tag su post già esistenti" + +#: ../../include/features.php:84 +msgid "Post Categories" +msgstr "Categorie dei post" + +#: ../../include/features.php:84 +msgid "Add categories to your posts" +msgstr "Abilita le categorie per i tuoi post" + +#: ../../include/features.php:85 +msgid "Ability to file posts under folders" +msgstr "Abilita la raccolta dei tuoi articoli in cartelle" + +#: ../../include/features.php:86 +msgid "Dislike Posts" +msgstr "Non mi piace" + +#: ../../include/features.php:86 +msgid "Ability to dislike posts/comments" +msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi post" + +#: ../../include/features.php:87 +msgid "Star Posts" +msgstr "Post con stella" + +#: ../../include/features.php:87 +msgid "Ability to mark special posts with a star indicator" +msgstr "Mostra la stella per segnare i post preferiti" + +#: ../../include/features.php:88 +msgid "Tag Cloud" +msgstr "Nuvola di tag" + +#: ../../include/features.php:88 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale" #: ../../include/profile_selectors.php:6 #: ../../include/profile_selectors.php:23 ../../mod/id.php:103 @@ -2075,6 +1873,13 @@ msgid "Non-specific" msgstr "Non specificato" #: ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 ../../include/permissions.php:871 +msgid "Other" +msgstr "Altro" + +#: ../../include/profile_selectors.php:6 msgid "Undecided" msgstr "Indeciso" @@ -2170,15 +1975,6 @@ msgstr "Infedele" msgid "Sex Addict" msgstr "Sesso-dipendente" -#: ../../include/profile_selectors.php:80 ../../include/identity.php:390 -#: ../../include/identity.php:391 ../../include/identity.php:398 -#: ../../include/widgets.php:429 ../../mod/connedit.php:568 -#: ../../mod/settings.php:338 ../../mod/settings.php:342 -#: ../../mod/settings.php:343 ../../mod/settings.php:346 -#: ../../mod/settings.php:357 -msgid "Friends" -msgstr "Amici" - #: ../../include/profile_selectors.php:80 msgid "Friends/Benefits" msgstr "Amici con qualcosa in più" @@ -2269,502 +2065,797 @@ msgstr "Chi se ne frega" msgid "Ask me" msgstr "Chiedimelo" -#: ../../include/oembed.php:213 -msgid "Embedded content" -msgstr "Contenuti incorporati" +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "Altro" -#: ../../include/oembed.php:222 -msgid "Embedding disabled" -msgstr "Disabilita la creazione di contenuti incorporati" +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-GG oppure MM-GG" -#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 -msgid "l F d, Y \\@ g:i A" -msgstr "l d F Y \\@ G:i" +#: ../../include/datetime.php:236 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:452 ../../mod/events.php:457 +msgid "Required" +msgstr "Obbligatorio" -#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 -msgid "Starts:" -msgstr "Inizio:" +#: ../../include/datetime.php:263 ../../boot.php:2289 +msgid "never" +msgstr "mai" -#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 -msgid "Finishes:" -msgstr "Fine:" +#: ../../include/datetime.php:269 +msgid "less than a second ago" +msgstr "meno di un secondo fa" -#: ../../include/event.php:50 ../../include/identity.php:1016 -#: ../../include/bb2diaspora.php:493 ../../mod/directory.php:302 -#: ../../mod/events.php:701 -msgid "Location:" -msgstr "Luogo:" +#: ../../include/datetime.php:272 +msgid "year" +msgstr "anno" -#: ../../include/event.php:766 -msgid "This event has been added to your calendar." -msgstr "Questo evento è stato aggiunto al tuo calendario" +#: ../../include/datetime.php:272 +msgid "years" +msgstr "anni" -#: ../../include/event.php:953 -msgid "Not specified" -msgstr "Non specificato" +#: ../../include/datetime.php:273 +msgid "month" +msgstr "mese" -#: ../../include/event.php:954 -msgid "Needs Action" -msgstr "Necessita di un intervento" +#: ../../include/datetime.php:273 +msgid "months" +msgstr "mesi" -#: ../../include/event.php:955 -msgid "Completed" -msgstr "Completato" +#: ../../include/datetime.php:274 +msgid "week" +msgstr "settimana" -#: ../../include/event.php:956 -msgid "In Process" -msgstr "In corso" +#: ../../include/datetime.php:274 +msgid "weeks" +msgstr "settimane" -#: ../../include/event.php:957 -msgid "Cancelled" -msgstr "Annullato" +#: ../../include/datetime.php:275 +msgid "day" +msgstr "giorno" -#: ../../include/apps.php:128 -msgid "Site Admin" -msgstr "Amministrazione sito" +#: ../../include/datetime.php:275 +msgid "days" +msgstr "giorni" -#: ../../include/apps.php:130 -msgid "Address Book" -msgstr "Rubrica" +#: ../../include/datetime.php:276 +msgid "hour" +msgstr "ora" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1503 -msgid "Login" -msgstr "Accedi" +#: ../../include/datetime.php:276 +msgid "hours" +msgstr "ore" -#: ../../include/apps.php:132 ../../include/nav.php:200 -#: ../../mod/manage.php:160 -msgid "Channel Manager" -msgstr "Gestione canali" +#: ../../include/datetime.php:277 +msgid "minute" +msgstr "minuto" -#: ../../include/apps.php:133 ../../include/nav.php:174 -msgid "Grid" -msgstr "Rete" +#: ../../include/datetime.php:277 +msgid "minutes" +msgstr "minuti" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 -msgid "Settings" -msgstr "Impostazioni" +#: ../../include/datetime.php:278 +msgid "second" +msgstr "secondo" -#: ../../include/apps.php:137 ../../include/nav.php:177 -msgid "Channel Home" -msgstr "Bacheca del canale" +#: ../../include/datetime.php:278 +msgid "seconds" +msgstr "secondi" -#: ../../include/apps.php:138 ../../include/identity.php:1250 -#: ../../include/identity.php:1367 ../../mod/profperm.php:112 -msgid "Profile" -msgstr "Profilo" +#: ../../include/datetime.php:286 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s fa" -#: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 -msgid "Events" -msgstr "Eventi" +#: ../../include/datetime.php:520 +#, php-format +msgid "%1$s's birthday" +msgstr "Compleanno di %1$s" -#: ../../include/apps.php:141 ../../include/nav.php:162 -msgid "Directory" -msgstr "Elenchi pubblici dei canali" +#: ../../include/datetime.php:521 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Buon compleanno %1$s" -#: ../../include/apps.php:142 ../../include/nav.php:154 ../../mod/help.php:202 -#: ../../mod/help.php:207 ../../mod/layouts.php:176 -msgid "Help" -msgstr "Guida" +#: ../../include/api.php:1302 +msgid "Public Timeline" +msgstr "Diario pubblico" -#: ../../include/apps.php:143 ../../include/nav.php:188 -msgid "Mail" -msgstr "Messaggi" +#: ../../include/conversation.php:120 ../../include/text.php:1916 +#: ../../mod/tagger.php:43 ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "photo" +msgstr "la foto" -#: ../../include/apps.php:144 ../../mod/mood.php:131 -msgid "Mood" -msgstr "Umore" +#: ../../include/conversation.php:126 ../../mod/like.php:113 +msgid "channel" +msgstr "il canale" -#: ../../include/apps.php:146 ../../include/nav.php:97 -msgid "Chat" -msgstr "Chat" +#: ../../include/conversation.php:148 ../../include/text.php:1922 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "status" +msgstr "il messaggio di stato" -#: ../../include/apps.php:147 ../../include/text.php:857 -#: ../../include/text.php:869 ../../include/nav.php:159 -#: ../../mod/search.php:40 -msgid "Search" -msgstr "Cerca" +#: ../../include/conversation.php:150 ../../include/text.php:1924 +#: ../../mod/tagger.php:53 +msgid "comment" +msgstr "il commento" -#: ../../include/apps.php:148 -msgid "Probe" -msgstr "Diagnostica" +#: ../../include/conversation.php:164 ../../mod/like.php:410 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "A %1$s piace %3$s di %2$s" -#: ../../include/apps.php:149 -msgid "Suggest" -msgstr "Suggerisci" +#: ../../include/conversation.php:167 ../../mod/like.php:412 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "A %1$s non piace %3$s di %2$s" -#: ../../include/apps.php:150 -msgid "Random Channel" -msgstr "Canale casuale" +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "%1$s adesso è connesso con %2$s" -#: ../../include/apps.php:151 -msgid "Invite" -msgstr "Invita" +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s ha mandato un poke a %2$s" -#: ../../include/apps.php:152 -msgid "Features" -msgstr "Funzionalità" +#: ../../include/conversation.php:243 ../../include/text.php:954 +msgid "poked" +msgstr "ha ricevuto un poke" -#: ../../include/apps.php:153 ../../mod/id.php:28 -msgid "Language" -msgstr "Lingua" +#: ../../include/conversation.php:260 ../../mod/mood.php:63 +#, php-format +msgctxt "mood" +msgid "%1$s is %2$s" +msgstr "%1$s è %2$s" -#: ../../include/apps.php:154 -msgid "Post" -msgstr "Post" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Likes" +msgstr "Mi piace" -#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 -#: ../../mod/id.php:19 -msgid "Profile Photo" -msgstr "Foto del profilo" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Dislikes" +msgstr "Non mi piace" -#: ../../include/apps.php:252 ../../mod/settings.php:84 -#: ../../mod/settings.php:610 -msgid "Update" -msgstr "Aggiorna" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Agree" +msgstr "D'accordo" -#: ../../include/apps.php:252 -msgid "Install" -msgstr "Installa" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Disagree" +msgstr "Non d'accordo" -#: ../../include/apps.php:257 -msgid "Purchase" -msgstr "Acquista" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Abstain" +msgstr "Astenuti" -#: ../../include/auth.php:131 -msgid "Logged out." -msgstr "Uscita effettuata." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Attending" +msgstr "Partecipano" -#: ../../include/auth.php:272 -msgid "Failed authentication" -msgstr "Autenticazione fallita" +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Not attending" +msgstr "Non partecipano" -#: ../../include/auth.php:286 ../../mod/openid.php:189 -msgid "Login failed." -msgstr "Accesso fallito." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Might attend" +msgstr "Forse partecipano" -#: ../../include/enotify.php:96 -#, php-format -msgid "%s <!item_type!>" -msgstr "%s <!item_type!>" +#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 +msgid "Select" +msgstr "Scegli" -#: ../../include/enotify.php:100 -#, php-format -msgid "[Hubzilla:Notify] New mail received at %s" -msgstr "[Hubzilla] Nuovo messaggio su %s" +#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 +msgid "Private Message" +msgstr "Messaggio privato" -#: ../../include/enotify.php:102 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." -msgstr "%1$s, %2$s ti ha mandato un messaggio privato su %3$s." +#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 +msgid "Message signature validated" +msgstr "Messaggio con firma verificata" -#: ../../include/enotify.php:103 +#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 +msgid "Message signature incorrect" +msgstr "Massaggio con firma non corretta" + +#: ../../include/conversation.php:691 #, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s ti ha mandato %2$s." +msgid "View %s's profile @ %s" +msgstr "Vedi il profilo di %s @ %s" -#: ../../include/enotify.php:103 -msgid "a private message" -msgstr "un messaggio privato" +#: ../../include/conversation.php:710 +msgid "Categories:" +msgstr "Categorie:" -#: ../../include/enotify.php:104 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "Visita %s per leggere i tuoi messaggi privati e rispondere." +#: ../../include/conversation.php:711 +msgid "Filed under:" +msgstr "Classificato come:" -#: ../../include/enotify.php:158 +#: ../../include/conversation.php:719 ../../include/ItemObject.php:334 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s[/zrl]" +msgid "from %s" +msgstr "da %s" -#: ../../include/enotify.php:166 +#: ../../include/conversation.php:722 ../../include/ItemObject.php:337 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%5$s di %4$s[/zrl]" +msgid "last edited: %s" +msgstr "ultima modifica: %s" -#: ../../include/enotify.php:175 +#: ../../include/conversation.php:723 ../../include/ItemObject.php:338 #, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" -msgstr "%1$s, %2$s ha commentato [zrl=%3$s]%4$s che hai creato[/zrl]" +msgid "Expires: %s" +msgstr "Scadenza: %s" -#: ../../include/enotify.php:186 -#, php-format -msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[Hubzilla] Nuovo commento di %2$s alla conversazione #%1$d" +#: ../../include/conversation.php:738 +msgid "View in context" +msgstr "Vedi nel contesto" -#: ../../include/enotify.php:187 -#, php-format -msgid "%1$s, %2$s commented on an item/conversation you have been following." -msgstr "%1$s, %2$s ha commentato un elemento che stavi seguendo." +#: ../../include/conversation.php:740 ../../include/conversation.php:1227 +#: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 +#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 +#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +msgid "Please wait" +msgstr "Attendere" -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Visita %s per leggere o commentare la conversazione." +#: ../../include/conversation.php:850 +msgid "remove" +msgstr "rimuovi" -#: ../../include/enotify.php:196 -#, php-format -msgid "[Hubzilla:Notify] %s posted to your profile wall" -msgstr "[Hubzilla] %s ha scritto sulla tua bacheca" +#: ../../include/conversation.php:854 ../../include/nav.php:241 +msgid "Loading..." +msgstr "Caricamento in corso..." -#: ../../include/enotify.php:198 -#, php-format -msgid "%1$s, %2$s posted to your profile wall at %3$s" -msgstr "%1$s, %2$s ha scritto sulla bacheca del tuo profilo su %3$s" +#: ../../include/conversation.php:855 +msgid "Delete Selected Items" +msgstr "Elimina gli oggetti selezionati" -#: ../../include/enotify.php:200 -#, php-format -msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" -msgstr "%1$s, %2$s ha scritto sulla [zrl=%3$s]tua bacheca[/zrl]" +#: ../../include/conversation.php:946 +msgid "View Source" +msgstr "Vedi il sorgente" -#: ../../include/enotify.php:224 -#, php-format -msgid "[Hubzilla:Notify] %s tagged you" -msgstr "[Hubzilla] %s ti ha taggato" +#: ../../include/conversation.php:947 +msgid "Follow Thread" +msgstr "Segui la discussione" -#: ../../include/enotify.php:225 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s ti ha taggato su %3$s" +#: ../../include/conversation.php:948 +msgid "Unfollow Thread" +msgstr "Non seguire la discussione" -#: ../../include/enotify.php:226 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." -msgstr "%1$s, %2$s [zrl=%3$s]ti ha taggato[/zrl]." +#: ../../include/conversation.php:949 +msgid "View Status" +msgstr "Bacheca" -#: ../../include/enotify.php:238 -#, php-format -msgid "[Hubzilla:Notify] %1$s poked you" -msgstr "[Hubzilla] %1$s ti ha mandato un poke" +#: ../../include/conversation.php:950 ../../include/nav.php:86 +#: ../../mod/connedit.php:498 +msgid "View Profile" +msgstr "Profilo" -#: ../../include/enotify.php:239 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s ti ha mandato un poke su %3$s" +#: ../../include/conversation.php:951 +msgid "View Photos" +msgstr "Foto" -#: ../../include/enotify.php:240 +#: ../../include/conversation.php:952 +msgid "Activity/Posts" +msgstr "Attività e Post" + +#: ../../include/conversation.php:954 +msgid "Edit Connection" +msgstr "Modifica il contatto" + +#: ../../include/conversation.php:955 +msgid "Send PM" +msgstr "Messaggio privato" + +#: ../../include/conversation.php:956 ../../include/apps.php:145 +msgid "Poke" +msgstr "Poke" + +#: ../../include/conversation.php:1070 #, php-format -msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." -msgstr "%1$s, %2$s [zrl=%2$s]ti ha mandato un poke[/zrl]." +msgid "%s likes this." +msgstr "Piace a %s." -#: ../../include/enotify.php:256 +#: ../../include/conversation.php:1070 #, php-format -msgid "[Hubzilla:Notify] %s tagged your post" -msgstr "[Hubzilla] %s ha taggato il tuo post" +msgid "%s doesn't like this." +msgstr "Non piace a %s." -#: ../../include/enotify.php:257 +#: ../../include/conversation.php:1074 #, php-format -msgid "%1$s, %2$s tagged your post at %3$s" -msgstr "%1$s, %2$s ha taggato il tuo post su %3$s" +msgid "<span %1$s>%2$d people</span> like this." +msgid_plural "<span %1$s>%2$d people</span> like this." +msgstr[0] "" +msgstr[1] "Piace a <span %1$s>%2$d persone</span>." -#: ../../include/enotify.php:258 +#: ../../include/conversation.php:1076 #, php-format -msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" -msgstr "%1$s, %2$s ha taggato [zrl=%3$s]il tuo post[/zrl]" +msgid "<span %1$s>%2$d people</span> don't like this." +msgid_plural "<span %1$s>%2$d people</span> don't like this." +msgstr[0] "" +msgstr[1] "Non piace a <span %1$s>%2$d persone</span>." -#: ../../include/enotify.php:270 -msgid "[Hubzilla:Notify] Introduction received" -msgstr "[Hubzilla] Hai una richiesta di amicizia" +#: ../../include/conversation.php:1082 +msgid "and" +msgstr "e" -#: ../../include/enotify.php:271 +#: ../../include/conversation.php:1085 #, php-format -msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" -msgstr "%1$s, hai ricevuto una richiesta di entrare in contatto da '%2$s' su %3$s" +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] "e altre %d persone" -#: ../../include/enotify.php:272 +#: ../../include/conversation.php:1086 #, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." -msgstr "%1$s, hai ricevuto una [zrl=%2$s]richiesta di entrare in contatto[/zrl] da %3$s." +msgid "%s like this." +msgstr "Piace a %s." -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/conversation.php:1086 #, php-format -msgid "You may visit their profile at %s" -msgstr "Puoi visitare il suo profilo su %s" +msgid "%s don't like this." +msgstr "Non piace a %s." -#: ../../include/enotify.php:278 -#, php-format -msgid "Please visit %s to approve or reject the connection request." -msgstr "Visita %s per approvare o rifiutare la richiesta di entrare in contatto." +#: ../../include/conversation.php:1154 +msgid "Visible to <strong>everybody</strong>" +msgstr "Visibile a <strong>tutti</strong>" -#: ../../include/enotify.php:285 -msgid "[Hubzilla:Notify] Friend suggestion received" -msgstr "[Hubzilla] Ti è stato suggerito un amico" +#: ../../include/conversation.php:1155 ../../mod/mail.php:194 +#: ../../mod/mail.php:308 +msgid "Please enter a link URL:" +msgstr "Inserisci l'indirizzo del link:" -#: ../../include/enotify.php:286 -#, php-format -msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" -msgstr "%1$s, ti è stato suggerito un amico da '%2$s' su %3$s" +#: ../../include/conversation.php:1156 +msgid "Please enter a video link/URL:" +msgstr "Inserisci l'indirizzo del video:" -#: ../../include/enotify.php:287 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " -"%4$s." -msgstr "%1$s, %4$s ti [zrl=%2$s]ha suggerito %3$s[/zrl] come amico." +#: ../../include/conversation.php:1157 +msgid "Please enter an audio link/URL:" +msgstr "Inserisci l'indirizzo dell'audio:" -#: ../../include/enotify.php:293 -msgid "Name:" -msgstr "Nome:" +#: ../../include/conversation.php:1158 +msgid "Tag term:" +msgstr "Tag:" -#: ../../include/enotify.php:294 -msgid "Photo:" -msgstr "Foto:" +#: ../../include/conversation.php:1159 ../../mod/filer.php:48 +msgid "Save to Folder:" +msgstr "Salva nella cartella:" -#: ../../include/enotify.php:297 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Visita %s per approvare o rifiutare il suggerimento." +#: ../../include/conversation.php:1160 +msgid "Where are you right now?" +msgstr "Dove sei ora?" -#: ../../include/enotify.php:511 -msgid "[Hubzilla:Notify]" -msgstr "[Hubzilla]" +#: ../../include/conversation.php:1161 ../../mod/mail.php:195 +#: ../../mod/mail.php:309 ../../mod/editpost.php:56 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Scade il YYYY-MM-DD HH:MM" -#: ../../include/ItemObject.php:130 -msgid "Save to Folder" -msgstr "Salva nella cartella" +#: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 +#: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 +#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 +#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/events.php:473 +msgid "Preview" +msgstr "Anteprima" -#: ../../include/ItemObject.php:151 -msgid "I will attend" -msgstr "Parteciperò" +#: ../../include/conversation.php:1192 ../../mod/blocks.php:154 +#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 +#: ../../mod/layouts.php:184 +msgid "Share" +msgstr "Condividi" -#: ../../include/ItemObject.php:151 -msgid "I will not attend" -msgstr "Non parteciperò" +#: ../../include/conversation.php:1194 +msgid "Page link name" +msgstr "Nome del link alla pagina" -#: ../../include/ItemObject.php:151 -msgid "I might attend" -msgstr "Forse parteciperò" +#: ../../include/conversation.php:1197 +msgid "Post as" +msgstr "Pubblica come " -#: ../../include/ItemObject.php:161 -msgid "I agree" -msgstr "Sono d'accordo" +#: ../../include/conversation.php:1199 ../../include/ItemObject.php:698 +#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:136 +#: ../../mod/editlayout.php:135 ../../mod/editpost.php:113 +msgid "Bold" +msgstr "Grassetto" -#: ../../include/ItemObject.php:161 -msgid "I disagree" -msgstr "Non sono d'accordo" +#: ../../include/conversation.php:1200 ../../include/ItemObject.php:699 +#: ../../mod/editwebpage.php:178 ../../mod/editblock.php:137 +#: ../../mod/editlayout.php:136 ../../mod/editpost.php:114 +msgid "Italic" +msgstr "Corsivo" -#: ../../include/ItemObject.php:161 -msgid "I abstain" -msgstr "Mi astengo" +#: ../../include/conversation.php:1201 ../../include/ItemObject.php:700 +#: ../../mod/editwebpage.php:179 ../../mod/editblock.php:138 +#: ../../mod/editlayout.php:137 ../../mod/editpost.php:115 +msgid "Underline" +msgstr "Sottolineato" -#: ../../include/ItemObject.php:212 -msgid "Add Star" -msgstr "Aggiungi ai preferiti" +#: ../../include/conversation.php:1202 ../../include/ItemObject.php:701 +#: ../../mod/editwebpage.php:180 ../../mod/editblock.php:139 +#: ../../mod/editlayout.php:138 ../../mod/editpost.php:116 +msgid "Quote" +msgstr "Citazione" -#: ../../include/ItemObject.php:213 -msgid "Remove Star" -msgstr "Rimuovi dai preferiti" +#: ../../include/conversation.php:1203 ../../include/ItemObject.php:702 +#: ../../mod/editwebpage.php:181 ../../mod/editblock.php:140 +#: ../../mod/editlayout.php:139 ../../mod/editpost.php:117 +msgid "Code" +msgstr "Codice" -#: ../../include/ItemObject.php:214 -msgid "Toggle Star Status" -msgstr "Attiva/disattiva preferito" +#: ../../include/conversation.php:1204 ../../mod/editwebpage.php:182 +#: ../../mod/editblock.php:142 ../../mod/editlayout.php:140 +#: ../../mod/editpost.php:118 +msgid "Upload photo" +msgstr "Carica foto" -#: ../../include/ItemObject.php:218 -msgid "starred" -msgstr "preferito" +#: ../../include/conversation.php:1205 +msgid "upload photo" +msgstr "carica foto" -#: ../../include/ItemObject.php:236 -msgid "Add Tag" -msgstr "Aggiungi un tag" +#: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 +#: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 +#: ../../mod/mail.php:240 ../../mod/mail.php:369 ../../mod/editpost.php:119 +msgid "Attach file" +msgstr "Allega file" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 -msgid "I like this (toggle)" -msgstr "Attiva/disattiva Mi piace" +#: ../../include/conversation.php:1207 +msgid "attach file" +msgstr "allega file" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 -msgid "like" -msgstr "mi piace" +#: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 +#: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 +#: ../../mod/mail.php:241 ../../mod/mail.php:370 ../../mod/editpost.php:120 +msgid "Insert web link" +msgstr "Inserisci un indirizzo web" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 -msgid "I don't like this (toggle)" -msgstr "Attiva/disattiva Non mi piace" +#: ../../include/conversation.php:1209 +msgid "web link" +msgstr "link web" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 -msgid "dislike" -msgstr "non mi piace" +#: ../../include/conversation.php:1210 +msgid "Insert video link" +msgstr "Inserisci l'indirizzo del video" -#: ../../include/ItemObject.php:259 -msgid "Share This" -msgstr "Condividi" +#: ../../include/conversation.php:1211 +msgid "video link" +msgstr "link video" -#: ../../include/ItemObject.php:259 -msgid "share" -msgstr "condividi" +#: ../../include/conversation.php:1212 +msgid "Insert audio link" +msgstr "Inserisci l'indirizzo dell'audio" -#: ../../include/ItemObject.php:277 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d commento" -msgstr[1] "%d commenti" +#: ../../include/conversation.php:1213 +msgid "audio link" +msgstr "link audio" -#: ../../include/ItemObject.php:302 ../../include/ItemObject.php:303 -#, php-format -msgid "View %s's profile - %s" -msgstr "Guarda il profilo di %s - %s" +#: ../../include/conversation.php:1214 ../../mod/editwebpage.php:188 +#: ../../mod/editblock.php:148 ../../mod/editlayout.php:146 +#: ../../mod/editpost.php:124 +msgid "Set your location" +msgstr "La tua località" -#: ../../include/ItemObject.php:306 -msgid "to" -msgstr "a" +#: ../../include/conversation.php:1215 +msgid "set location" +msgstr "la tua località" -#: ../../include/ItemObject.php:307 -msgid "via" -msgstr "via" +#: ../../include/conversation.php:1216 ../../mod/editpost.php:126 +msgid "Toggle voting" +msgstr "Abilita/disabilita il voto" -#: ../../include/ItemObject.php:308 -msgid "Wall-to-Wall" -msgstr "Da bacheca a bacheca" +#: ../../include/conversation.php:1219 ../../mod/editwebpage.php:189 +#: ../../mod/editblock.php:149 ../../mod/editlayout.php:147 +#: ../../mod/editpost.php:125 +msgid "Clear browser location" +msgstr "Rimuovi la località data dal browser" -#: ../../include/ItemObject.php:309 -msgid "via Wall-To-Wall:" -msgstr "da bacheca a bacheca:" +#: ../../include/conversation.php:1220 +msgid "clear location" +msgstr "rimuovi la località" -#: ../../include/ItemObject.php:312 -msgid "Delivery Report" -msgstr "Rapporto di trasmissione" +#: ../../include/conversation.php:1222 ../../mod/editwebpage.php:205 +#: ../../mod/editblock.php:162 ../../mod/editpost.php:141 +msgid "Title (optional)" +msgstr "Titolo (facoltativo)" -#: ../../include/ItemObject.php:348 -msgid "Save Bookmarks" -msgstr "Salva segnalibro" +#: ../../include/conversation.php:1226 ../../mod/editwebpage.php:207 +#: ../../mod/editblock.php:165 ../../mod/editlayout.php:163 +#: ../../mod/editpost.php:143 +msgid "Categories (optional, comma-separated list)" +msgstr "Categorie (facoltative, lista separata da virgole)" -#: ../../include/ItemObject.php:349 -msgid "Add to Calendar" -msgstr "Aggiungi al calendario" +#: ../../include/conversation.php:1228 ../../mod/editwebpage.php:191 +#: ../../mod/editblock.php:151 ../../mod/editlayout.php:149 +#: ../../mod/editpost.php:130 ../../mod/events.php:474 +msgid "Permission settings" +msgstr "Permessi dei tuoi contatti" -#: ../../include/ItemObject.php:358 -msgid "Mark all seen" -msgstr "Marca tutto come letto" +#: ../../include/conversation.php:1229 +msgid "permissions" +msgstr "permessi" + +#: ../../include/conversation.php:1237 ../../mod/editwebpage.php:200 +#: ../../mod/editblock.php:159 ../../mod/editlayout.php:156 +#: ../../mod/editpost.php:138 +msgid "Public post" +msgstr "Post pubblico" + +#: ../../include/conversation.php:1239 ../../mod/editwebpage.php:208 +#: ../../mod/editblock.php:166 ../../mod/editlayout.php:164 +#: ../../mod/editpost.php:144 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Per esempio: mario@esempio.com, simona@esempio.com" + +#: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 +#: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 +#: ../../mod/mail.php:245 ../../mod/mail.php:374 ../../mod/editpost.php:155 +msgid "Set expiration date" +msgstr "Data di scadenza" + +#: ../../include/conversation.php:1255 +msgid "Set publish date" +msgstr "Data di uscita programmata" + +#: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 +#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:157 +msgid "Encrypt text" +msgstr "Cifratura del messaggio" + +#: ../../include/conversation.php:1259 ../../mod/editpost.php:159 +msgid "OK" +msgstr "OK" + +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 +#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/editpost.php:160 +msgid "Cancel" +msgstr "Annulla" + +#: ../../include/conversation.php:1503 +msgid "Discover" +msgstr "Scopri" + +#: ../../include/conversation.php:1506 +msgid "Imported public streams" +msgstr "Contenuti pubblici importati" + +#: ../../include/conversation.php:1511 +msgid "Commented Order" +msgstr "Ultimi commenti" + +#: ../../include/conversation.php:1514 +msgid "Sort by Comment Date" +msgstr "Per data del commento" + +#: ../../include/conversation.php:1518 +msgid "Posted Order" +msgstr "Ultimi post" + +#: ../../include/conversation.php:1521 +msgid "Sort by Post Date" +msgstr "Per data di creazione" + +#: ../../include/conversation.php:1529 +msgid "Posts that mention or involve you" +msgstr "Post che ti riguardano" -#: ../../include/ItemObject.php:364 ../../mod/photos.php:1212 +#: ../../include/conversation.php:1535 ../../mod/connections.php:72 +#: ../../mod/connections.php:82 ../../mod/menu.php:112 +msgid "New" +msgstr "Novità" + +#: ../../include/conversation.php:1538 +msgid "Activity Stream - by date" +msgstr "Elenco attività - per data" + +#: ../../include/conversation.php:1544 +msgid "Starred" +msgstr "Preferiti" + +#: ../../include/conversation.php:1547 +msgid "Favourite Posts" +msgstr "Post preferiti" + +#: ../../include/conversation.php:1554 +msgid "Spam" +msgstr "Spam" + +#: ../../include/conversation.php:1557 +msgid "Posts flagged as SPAM" +msgstr "Post marcati come spam" + +#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +msgid "Channel" +msgstr "Canale" + +#: ../../include/conversation.php:1604 +msgid "Status Messages and Posts" +msgstr "Post e messaggi di stato" + +#: ../../include/conversation.php:1613 +msgid "About" +msgstr "Informazioni" + +#: ../../include/conversation.php:1616 +msgid "Profile Details" +msgstr "Dettagli del profilo" + +#: ../../include/conversation.php:1622 ../../include/nav.php:92 +#: ../../include/apps.php:139 ../../mod/fbrowser.php:25 +msgid "Photos" +msgstr "Foto" + +#: ../../include/conversation.php:1625 ../../include/photos.php:483 +msgid "Photo Albums" +msgstr "Album foto" + +#: ../../include/conversation.php:1632 +msgid "Files and Storage" +msgstr "Archivio file" + +#: ../../include/conversation.php:1642 ../../include/conversation.php:1645 +msgid "Chatrooms" +msgstr "Chat" + +#: ../../include/conversation.php:1655 ../../include/nav.php:103 +#: ../../include/apps.php:129 +msgid "Bookmarks" +msgstr "Segnalibri" + +#: ../../include/conversation.php:1658 +msgid "Saved Bookmarks" +msgstr "Segnalibri salvati" + +#: ../../include/conversation.php:1665 ../../include/nav.php:107 +#: ../../include/apps.php:136 ../../mod/webpages.php:178 +msgid "Webpages" +msgstr "Pagine web" + +#: ../../include/conversation.php:1668 +msgid "Manage Webpages" +msgstr "Gestisci le pagine web" + +#: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 +#: ../../mod/photos.php:1094 +msgid "View all" +msgstr "Vedi tutto" + +#: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 +#: ../../mod/photos.php:1091 msgctxt "noun" -msgid "Likes" -msgstr "Mi piace" +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "Non mi piace" +msgstr[1] "Non mi piace" -#: ../../include/ItemObject.php:365 ../../mod/photos.php:1213 +#: ../../include/conversation.php:1727 msgctxt "noun" -msgid "Dislikes" -msgstr "Non mi piace" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Partecipa" +msgstr[1] "Partecipano" -#: ../../include/ItemObject.php:680 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 -msgid "This is you" -msgstr "Questo sei tu" +#: ../../include/conversation.php:1730 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "Non partecipa" +msgstr[1] "Non partecipano" -#: ../../include/ItemObject.php:689 -msgid "Image" -msgstr "Immagine" +#: ../../include/conversation.php:1733 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "Indeciso" +msgstr[1] "Indecisi" -#: ../../include/ItemObject.php:690 -msgid "Insert Link" -msgstr "Collegamento" +#: ../../include/conversation.php:1736 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "D'accordo" +msgstr[1] "D'accordo" -#: ../../include/ItemObject.php:691 -msgid "Video" -msgstr "Video" +#: ../../include/conversation.php:1739 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "Non d'accordo" +msgstr[1] "Non d'accordo" + +#: ../../include/conversation.php:1742 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "Astenuto" +msgstr[1] "Astenuti" + +#: ../../include/auth.php:132 +msgid "Logged out." +msgstr "Uscita effettuata." + +#: ../../include/auth.php:273 +msgid "Failed authentication" +msgstr "Autenticazione fallita" + +#: ../../include/auth.php:287 ../../mod/openid.php:189 +msgid "Login failed." +msgstr "Accesso fallito." + +#: ../../include/contact_selectors.php:56 +msgid "Frequently" +msgstr "Frequentemente" + +#: ../../include/contact_selectors.php:57 +msgid "Hourly" +msgstr "Ogni ora" + +#: ../../include/contact_selectors.php:58 +msgid "Twice daily" +msgstr "Due volte al giorno" + +#: ../../include/contact_selectors.php:59 +msgid "Daily" +msgstr "Ogni giorno" + +#: ../../include/contact_selectors.php:60 +msgid "Weekly" +msgstr "Ogni settimana" + +#: ../../include/contact_selectors.php:61 +msgid "Monthly" +msgstr "Ogni mese" + +#: ../../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 "Email" + +#: ../../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/zot.php:685 msgid "Invalid data packet" @@ -2774,19 +2865,15 @@ msgstr "Dati ricevuti non validi" msgid "Unable to verify channel signature" msgstr "Impossibile verificare la firma elettronica del canale" -#: ../../include/zot.php:2264 +#: ../../include/zot.php:2265 #, php-format msgid "Unable to verify site signature for %s" msgstr "Impossibile verificare la firma elettronica del sito %s" -#: ../../include/zot.php:3591 +#: ../../include/zot.php:3592 msgid "invalid target signature" msgstr "la firma ricevuta non è valida" -#: ../../include/api.php:1389 -msgid "Public Timeline" -msgstr "Diario pubblico" - #: ../../include/bbcode.php:123 ../../include/bbcode.php:794 #: ../../include/bbcode.php:797 ../../include/bbcode.php:802 #: ../../include/bbcode.php:805 ../../include/bbcode.php:808 @@ -2850,116 +2937,6 @@ msgstr "$1 spoiler" msgid "$1 wrote:" msgstr "$1 ha scritto:" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "Email non valida" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "Il dominio della tua email attualmente non è permesso su questo sito" - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "La tua email è già registrata su questo sito." - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "È necessario un invito." - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "L'invito non può essere verificato." - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "Inserisci le informazioni richieste." - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "Non è stato possibile salvare le informazioni del tuo account." - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Registrazione di %s confermata" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "Richiesta di registrazione su %s" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "la password di registrazione" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "Dettagli della registrazione di %s" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "Account approvato." - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registrazione revocata per %s" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "Registrazione verificata. Adesso puoi effettuare login." - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "Clicca qui per aggiornare." - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Questa operazione supera i limiti del tuo abbonamento." - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "Questa operazione non è prevista dal tuo abbonamento." - -#: ../../include/follow.php:28 -msgid "Channel is blocked on this site." -msgstr "Il canale è bloccato per questo sito." - -#: ../../include/follow.php:33 -msgid "Channel location missing." -msgstr "Manca l'indirizzo del canale." - -#: ../../include/follow.php:82 -msgid "Response from remote channel was incomplete." -msgstr "La risposta dal canale non è completa." - -#: ../../include/follow.php:99 -msgid "Channel was deleted and no longer exists." -msgstr "Il canale è stato rimosso e non esiste più." - -#: ../../include/follow.php:152 ../../include/follow.php:180 -msgid "Protocol disabled." -msgstr "Protocollo disabilitato." - -#: ../../include/follow.php:170 -msgid "Channel discovery failed." -msgstr "La ricerca del canale non ha avuto successo." - -#: ../../include/follow.php:196 -msgid "local account not found." -msgstr "l'account locale non è stato trovato." - -#: ../../include/follow.php:220 -msgid "Cannot connect to yourself." -msgstr "Non puoi connetterti a te stesso." - -#: ../../include/security.php:381 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." -msgstr "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto." - #: ../../include/contact_widgets.php:14 #, php-format msgid "%d invitation available" @@ -2967,7 +2944,7 @@ msgid_plural "%d invitations available" msgstr[0] "%d invito disponibile" msgstr[1] "%d inviti disponibili" -#: ../../include/contact_widgets.php:19 ../../mod/admin.php:438 +#: ../../include/contact_widgets.php:19 ../../mod/admin.php:439 msgid "Advanced" msgstr "Avanzate" @@ -2987,12 +2964,12 @@ msgstr "Aggiungi" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Per esempio: Mario Rossi, Pesca" -#: ../../include/contact_widgets.php:26 ../../mod/directory.php:379 -#: ../../mod/directory.php:384 ../../mod/connections.php:266 +#: ../../include/contact_widgets.php:26 ../../mod/directory.php:381 +#: ../../mod/directory.php:386 ../../mod/connections.php:266 msgid "Find" msgstr "Cerca" -#: ../../include/contact_widgets.php:27 ../../mod/directory.php:383 +#: ../../include/contact_widgets.php:27 ../../mod/directory.php:385 #: ../../mod/suggest.php:60 msgid "Channel Suggestions" msgstr "Canali suggeriti" @@ -3009,16 +2986,6 @@ msgstr "Invita amici" msgid "Advanced example: name=fred and country=iceland" msgstr "Per esempio: name=mario e country=italy" -#: ../../include/contact_widgets.php:60 ../../include/contact_widgets.php:98 -#: ../../include/widgets.php:306 -msgid "Everything" -msgstr "Tutto" - -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 -msgid "Categories" -msgstr "Categorie" - #: ../../include/contact_widgets.php:128 #, php-format msgid "%d connection in common" @@ -3030,1248 +2997,1414 @@ msgstr[1] "%d contatti in comune" msgid "show more" msgstr "mostra tutto" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"<strong>may</strong> apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso." - -#: ../../include/group.php:232 -msgid "Add new connections to this collection (privacy group)" -msgstr "Aggiungi altri contatti a questo insieme (privacy di gruppo)" - -#: ../../include/group.php:251 ../../mod/admin.php:813 -msgid "All Channels" -msgstr "Tutti i canali" - -#: ../../include/group.php:273 -msgid "edit" -msgstr "modifica" - -#: ../../include/group.php:295 -msgid "Collections" -msgstr "Insiemi di canali" - -#: ../../include/group.php:296 -msgid "Edit collection" -msgstr "Modifica l'insieme di canali" - -#: ../../include/group.php:297 -msgid "Add new collection" -msgstr "Nuovo insieme" - -#: ../../include/group.php:298 -msgid "Channels not in any collection" -msgstr "Canali che non sono in un insieme" - -#: ../../include/group.php:300 ../../include/widgets.php:274 -msgid "add" -msgstr "aggiungi" - -#: ../../include/message.php:18 -msgid "No recipient provided." -msgstr "Devi scegliere un destinatario." - -#: ../../include/message.php:23 -msgid "[no subject]" -msgstr "[nessun titolo]" - -#: ../../include/message.php:43 -msgid "Unable to determine sender." -msgstr "Impossibile determinare il mittente." - -#: ../../include/message.php:218 -msgid "Stored post could not be verified." -msgstr "Non è stato possibile verificare il post." - -#: ../../include/identity.php:32 -msgid "Unable to obtain identity information from database" -msgstr "Impossibile ottenere le informazioni di identificazione dal database" - -#: ../../include/identity.php:66 -msgid "Empty name" -msgstr "Nome vuoto" - -#: ../../include/identity.php:69 -msgid "Name too long" -msgstr "Nome troppo lungo" - -#: ../../include/identity.php:181 -msgid "No account identifier" -msgstr "Account senza identificativo" - -#: ../../include/identity.php:193 -msgid "Nickname is required." -msgstr "Il nome dell'account è obbligatorio." - -#: ../../include/identity.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Nome utente riservato. Per favore scegline un altro." - -#: ../../include/identity.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supportati." - -#: ../../include/identity.php:288 -msgid "Unable to retrieve created identity" -msgstr "Impossibile caricare l'identità creata" - -#: ../../include/identity.php:346 -msgid "Default Profile" -msgstr "Profilo predefinito" - -#: ../../include/identity.php:769 -msgid "Requested channel is not available." -msgstr "Il canale che cerchi non è disponibile." - -#: ../../include/identity.php:815 ../../mod/achievements.php:11 -#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 -#: ../../mod/editblock.php:29 ../../mod/profile.php:16 -#: ../../mod/webpages.php:29 ../../mod/blocks.php:29 -#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 -#: ../../mod/connect.php:13 -msgid "Requested profile is not available." -msgstr "Il profilo richiesto non è disponibile." - -#: ../../include/identity.php:978 ../../mod/profiles.php:774 -msgid "Change profile photo" -msgstr "Cambia la foto del profilo" - -#: ../../include/identity.php:984 -msgid "Profiles" -msgstr "Profili" - -#: ../../include/identity.php:984 -msgid "Manage/edit profiles" -msgstr "Gestisci/modifica i profili" - -#: ../../include/identity.php:985 ../../mod/profiles.php:775 -msgid "Create New Profile" -msgstr "Crea un nuovo profilo" - -#: ../../include/identity.php:988 ../../include/nav.php:90 -msgid "Edit Profile" -msgstr "Modifica il profilo" - -#: ../../include/identity.php:1000 ../../mod/profiles.php:786 -msgid "Profile Image" -msgstr "Immagine del profilo" - -#: ../../include/identity.php:1003 -msgid "visible to everybody" -msgstr "visibile a tutti" - -#: ../../include/identity.php:1004 ../../mod/profiles.php:669 -#: ../../mod/profiles.php:790 -msgid "Edit visibility" -msgstr "Cambia la visibilità" - -#: ../../include/identity.php:1020 ../../include/identity.php:1260 -msgid "Gender:" -msgstr "Sesso:" - -#: ../../include/identity.php:1021 ../../include/identity.php:1304 -msgid "Status:" -msgstr "Stato:" - -#: ../../include/identity.php:1022 ../../include/identity.php:1315 -msgid "Homepage:" -msgstr "Home page:" - -#: ../../include/identity.php:1023 -msgid "Online Now" -msgstr "Online adesso" - -#: ../../include/identity.php:1107 ../../include/identity.php:1185 -#: ../../mod/ping.php:318 -msgid "g A l F d" -msgstr "g A l d F" - -#: ../../include/identity.php:1108 ../../include/identity.php:1186 -msgid "F d" -msgstr "d F" - -#: ../../include/identity.php:1153 ../../include/identity.php:1225 -#: ../../mod/ping.php:341 -msgid "[today]" -msgstr "[oggi]" - -#: ../../include/identity.php:1164 -msgid "Birthday Reminders" -msgstr "Promemoria compleanni" - -#: ../../include/identity.php:1165 -msgid "Birthdays this week:" -msgstr "Compleanni questa settimana:" - -#: ../../include/identity.php:1218 -msgid "[No description]" -msgstr "[Nessuna descrizione]" - -#: ../../include/identity.php:1236 -msgid "Event Reminders" -msgstr "Promemoria" - -#: ../../include/identity.php:1237 -msgid "Events this week:" -msgstr "Eventi della settimana:" - -#: ../../include/identity.php:1258 ../../mod/settings.php:1027 -msgid "Full Name:" -msgstr "Nome completo:" +#: ../../include/dir_fns.php:139 +msgid "Directory Options" +msgstr "Visibilità negli elenchi pubblici" -#: ../../include/identity.php:1265 -msgid "Like this channel" -msgstr "Mi piace questo canale" +#: ../../include/dir_fns.php:141 +msgid "Safe Mode" +msgstr "Modalità SafeSearch" -#: ../../include/identity.php:1289 -msgid "j F, Y" -msgstr "j F Y" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 +#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:462 +#: ../../mod/events.php:463 ../../mod/events.php:472 ../../mod/mitem.php:154 +#: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 +#: ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "No" +msgstr "No" -#: ../../include/identity.php:1290 -msgid "j F" -msgstr "j F" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 +#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/events.php:462 ../../mod/events.php:463 ../../mod/events.php:472 +#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 +#: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "Yes" +msgstr "Si" -#: ../../include/identity.php:1297 -msgid "Birthday:" -msgstr "Compleanno:" +#: ../../include/dir_fns.php:142 +msgid "Public Forums Only" +msgstr "Solo forum pubblici" -#: ../../include/identity.php:1301 ../../mod/directory.php:297 -msgid "Age:" -msgstr "Età:" +#: ../../include/dir_fns.php:143 +msgid "This Website Only" +msgstr "Solo in questo sito" -#: ../../include/identity.php:1310 +#: ../../include/enotify.php:96 #, php-format -msgid "for %1$d %2$s" -msgstr "per %1$d %2$s" - -#: ../../include/identity.php:1313 ../../mod/profiles.php:691 -msgid "Sexual Preference:" -msgstr "Preferenze sessuali:" - -#: ../../include/identity.php:1317 ../../mod/directory.php:313 -#: ../../mod/profiles.php:693 -msgid "Hometown:" -msgstr "Città dove vivo:" - -#: ../../include/identity.php:1319 -msgid "Tags:" -msgstr "Tag:" - -#: ../../include/identity.php:1321 ../../mod/profiles.php:694 -msgid "Political Views:" -msgstr "Orientamento politico:" - -#: ../../include/identity.php:1323 -msgid "Religion:" -msgstr "Religione:" - -#: ../../include/identity.php:1325 ../../mod/directory.php:315 -msgid "About:" -msgstr "Informazioni:" - -#: ../../include/identity.php:1327 -msgid "Hobbies/Interests:" -msgstr "Interessi e hobby:" +msgid "%s <!item_type!>" +msgstr "%s <!item_type!>" -#: ../../include/identity.php:1329 ../../mod/profiles.php:697 -msgid "Likes:" -msgstr "Mi piace:" +#: ../../include/enotify.php:100 +#, php-format +msgid "[Hubzilla:Notify] New mail received at %s" +msgstr "[Hubzilla] Nuovo messaggio su %s" -#: ../../include/identity.php:1331 ../../mod/profiles.php:698 -msgid "Dislikes:" -msgstr "Non mi piace:" +#: ../../include/enotify.php:102 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." +msgstr "%1$s, %2$s ti ha mandato un messaggio privato su %3$s." -#: ../../include/identity.php:1333 -msgid "Contact information and Social Networks:" -msgstr "Contatti e social network:" +#: ../../include/enotify.php:103 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s ti ha mandato %2$s." -#: ../../include/identity.php:1335 -msgid "My other channels:" -msgstr "I miei altri canali:" +#: ../../include/enotify.php:103 +msgid "a private message" +msgstr "un messaggio privato" -#: ../../include/identity.php:1337 -msgid "Musical interests:" -msgstr "Gusti musicali:" +#: ../../include/enotify.php:104 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "Visita %s per leggere i tuoi messaggi privati e rispondere." -#: ../../include/identity.php:1339 -msgid "Books, literature:" -msgstr "Libri, letteratura:" +#: ../../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 commentato [zrl=%3$s]%4$s[/zrl]" -#: ../../include/identity.php:1341 -msgid "Television:" -msgstr "Televisione:" +#: ../../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 commentato [zrl=%3$s]%5$s di %4$s[/zrl]" -#: ../../include/identity.php:1343 -msgid "Film/dance/culture/entertainment:" -msgstr "Film, danza, cultura, intrattenimento:" +#: ../../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 commentato [zrl=%3$s]%4$s che hai creato[/zrl]" -#: ../../include/identity.php:1345 -msgid "Love/Romance:" -msgstr "Amore:" +#: ../../include/enotify.php:188 +#, php-format +msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[Hubzilla] Nuovo commento di %2$s alla conversazione #%1$d" -#: ../../include/identity.php:1347 -msgid "Work/employment:" -msgstr "Lavoro:" +#: ../../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 commentato un elemento che stavi seguendo." -#: ../../include/identity.php:1349 -msgid "School/education:" -msgstr "Scuola:" +#: ../../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 "Visita %s per leggere o commentare la conversazione." -#: ../../include/identity.php:1369 -msgid "Like this thing" -msgstr "Mi piace" +#: ../../include/enotify.php:198 +#, php-format +msgid "[Hubzilla:Notify] %s posted to your profile wall" +msgstr "[Hubzilla] %s ha scritto sulla tua bacheca" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 -msgid "Tags" -msgstr "Tag" +#: ../../include/enotify.php:200 +#, php-format +msgid "%1$s, %2$s posted to your profile wall at %3$s" +msgstr "%1$s, %2$s ha scritto sulla bacheca del tuo profilo su %3$s" -#: ../../include/taxonomy.php:294 -msgid "Keywords" -msgstr "Parole chiave" +#: ../../include/enotify.php:202 +#, php-format +msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" +msgstr "%1$s, %2$s ha scritto sulla [zrl=%3$s]tua bacheca[/zrl]" -#: ../../include/taxonomy.php:315 -msgid "have" -msgstr "ho" +#: ../../include/enotify.php:226 +#, php-format +msgid "[Hubzilla:Notify] %s tagged you" +msgstr "[Hubzilla] %s ti ha taggato" -#: ../../include/taxonomy.php:315 -msgid "has" -msgstr "ha" +#: ../../include/enotify.php:227 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" +msgstr "%1$s, %2$s ti ha taggato su %3$s" -#: ../../include/taxonomy.php:316 -msgid "want" -msgstr "voglio" +#: ../../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]ti ha taggato[/zrl]." -#: ../../include/taxonomy.php:316 -msgid "wants" -msgstr "vuole" +#: ../../include/enotify.php:240 +#, php-format +msgid "[Hubzilla:Notify] %1$s poked you" +msgstr "[Hubzilla] %1$s ti ha mandato un poke" -#: ../../include/taxonomy.php:317 -msgid "likes" -msgstr "gli piace" +#: ../../include/enotify.php:241 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" +msgstr "%1$s, %2$s ti ha mandato un poke su %3$s" -#: ../../include/taxonomy.php:318 -msgid "dislikes" -msgstr "non gli piace" +#: ../../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]ti ha mandato un poke[/zrl]." -#: ../../include/attach.php:246 ../../include/attach.php:332 -msgid "Item was not found." -msgstr "Elemento non trovato." +#: ../../include/enotify.php:258 +#, php-format +msgid "[Hubzilla:Notify] %s tagged your post" +msgstr "[Hubzilla] %s ha taggato il tuo post" -#: ../../include/attach.php:496 -msgid "No source file." -msgstr "Nessun file di origine." +#: ../../include/enotify.php:259 +#, php-format +msgid "%1$s, %2$s tagged your post at %3$s" +msgstr "%1$s, %2$s ha taggato il tuo post su %3$s" -#: ../../include/attach.php:514 -msgid "Cannot locate file to replace" -msgstr "Il file da sostituire non è stato trovato" +#: ../../include/enotify.php:260 +#, php-format +msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" +msgstr "%1$s, %2$s ha taggato [zrl=%3$s]il tuo post[/zrl]" -#: ../../include/attach.php:532 -msgid "Cannot locate file to revise/update" -msgstr "Il file da aggiornare non è stato trovato" +#: ../../include/enotify.php:272 +msgid "[Hubzilla:Notify] Introduction received" +msgstr "[Hubzilla] Hai una richiesta di amicizia" -#: ../../include/attach.php:667 +#: ../../include/enotify.php:273 #, php-format -msgid "File exceeds size limit of %d" -msgstr "Il file supera la dimensione massima di %d" +msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" +msgstr "%1$s, hai ricevuto una richiesta di entrare in contatto da '%2$s' su %3$s" -#: ../../include/attach.php:681 +#: ../../include/enotify.php:274 #, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." - -#: ../../include/attach.php:837 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato." - -#: ../../include/attach.php:850 -msgid "Stored file could not be verified. Upload failed." -msgstr "Il file non può essere verificato. Caricamento fallito." +msgid "" +"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." +msgstr "%1$s, hai ricevuto una [zrl=%2$s]richiesta di entrare in contatto[/zrl] da %3$s." -#: ../../include/attach.php:898 ../../include/attach.php:914 -msgid "Path not available." -msgstr "Percorso non disponibile." +#: ../../include/enotify.php:278 ../../include/enotify.php:297 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Puoi visitare il suo profilo su %s" -#: ../../include/attach.php:960 ../../include/attach.php:1112 -msgid "Empty pathname" -msgstr "Il percorso del file è vuoto" +#: ../../include/enotify.php:280 +#, php-format +msgid "Please visit %s to approve or reject the connection request." +msgstr "Visita %s per approvare o rifiutare la richiesta di entrare in contatto." -#: ../../include/attach.php:986 -msgid "duplicate filename or path" -msgstr "il file o il percorso del file è duplicato" +#: ../../include/enotify.php:287 +msgid "[Hubzilla:Notify] Friend suggestion received" +msgstr "[Hubzilla] Ti è stato suggerito un amico" -#: ../../include/attach.php:1008 -msgid "Path not found." -msgstr "Percorso del file non trovato." +#: ../../include/enotify.php:288 +#, php-format +msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" +msgstr "%1$s, ti è stato suggerito un amico da '%2$s' su %3$s" -#: ../../include/attach.php:1066 -msgid "mkdir failed." -msgstr "mkdir fallito." +#: ../../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, %4$s ti [zrl=%2$s]ha suggerito %3$s[/zrl] come amico." -#: ../../include/attach.php:1070 -msgid "database storage failed." -msgstr "scrittura su database fallita." +#: ../../include/enotify.php:295 +msgid "Name:" +msgstr "Nome:" -#: ../../include/attach.php:1118 -msgid "Empty path" -msgstr "La posizione è vuota" +#: ../../include/enotify.php:296 +msgid "Photo:" +msgstr "Foto:" -#: ../../include/bb2diaspora.php:382 -msgid "Attachments:" -msgstr "Allegati:" +#: ../../include/enotify.php:299 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Visita %s per approvare o rifiutare il suggerimento." -#: ../../include/bb2diaspora.php:473 -msgid "$Projectname event notification:" -msgstr "Notifica evento $Projectname:" +#: ../../include/enotify.php:514 +msgid "[Hubzilla:Notify]" +msgstr "[Hubzilla]" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" -msgstr "App" +#: ../../include/follow.php:28 +msgid "Channel is blocked on this site." +msgstr "Il canale è bloccato per questo sito." -#: ../../include/widgets.php:92 -msgid "System" -msgstr "Sistema" +#: ../../include/follow.php:33 +msgid "Channel location missing." +msgstr "Manca l'indirizzo del canale." -#: ../../include/widgets.php:95 -msgid "Create Personal App" -msgstr "Crea app personale" +#: ../../include/follow.php:82 +msgid "Response from remote channel was incomplete." +msgstr "La risposta dal canale non è completa." -#: ../../include/widgets.php:96 -msgid "Edit Personal App" -msgstr "Modifica app personale" +#: ../../include/follow.php:99 +msgid "Channel was deleted and no longer exists." +msgstr "Il canale è stato rimosso e non esiste più." -#: ../../include/widgets.php:138 ../../mod/suggest.php:54 -msgid "Ignore/Hide" -msgstr "Ignora/nascondi" +#: ../../include/follow.php:152 ../../include/follow.php:180 +msgid "Protocol disabled." +msgstr "Protocollo disabilitato." -#: ../../include/widgets.php:143 ../../mod/connections.php:125 -msgid "Suggestions" -msgstr "Suggerimenti" +#: ../../include/follow.php:170 +msgid "Channel discovery failed." +msgstr "La ricerca del canale non ha avuto successo." -#: ../../include/widgets.php:144 -msgid "See more..." -msgstr "Altro..." +#: ../../include/follow.php:196 +msgid "local account not found." +msgstr "l'account locale non è stato trovato." -#: ../../include/widgets.php:165 -#, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." -msgstr "Hai attivato %1$.0f delle %2$.0f connessioni permesse." +#: ../../include/follow.php:220 +msgid "Cannot connect to yourself." +msgstr "Non puoi connetterti a te stesso." -#: ../../include/widgets.php:171 -msgid "Add New Connection" -msgstr "Aggiungi un contatto" +#: ../../include/oembed.php:213 +msgid "Embedded content" +msgstr "Contenuti incorporati" -#: ../../include/widgets.php:172 -msgid "Enter the channel address" -msgstr "Scrivi l'indirizzo del canale" +#: ../../include/oembed.php:222 +msgid "Embedding disabled" +msgstr "Disabilita la creazione di contenuti incorporati" -#: ../../include/widgets.php:173 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Per esempio: mario@pippo.it oppure http://pluto.com/barbara" +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 +msgid "Logout" +msgstr "Esci" -#: ../../include/widgets.php:189 -msgid "Notes" -msgstr "Note" +#: ../../include/nav.php:82 ../../include/nav.php:114 +msgid "End this session" +msgstr "Chiudi questa sessione" -#: ../../include/widgets.php:191 ../../include/text.php:858 -#: ../../include/text.php:870 ../../mod/filer.php:49 ../../mod/admin.php:1436 -#: ../../mod/admin.php:1456 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 -msgid "Save" -msgstr "Salva" +#: ../../include/nav.php:85 ../../include/nav.php:145 +msgid "Home" +msgstr "Bacheca" -#: ../../include/widgets.php:265 -msgid "Remove term" -msgstr "Rimuovi termine" +#: ../../include/nav.php:85 +msgid "Your posts and conversations" +msgstr "I tuoi post e conversazioni" -#: ../../include/widgets.php:348 -msgid "Archives" -msgstr "Archivi" +#: ../../include/nav.php:86 +msgid "Your profile page" +msgstr "Il tuo profilo" -#: ../../include/widgets.php:427 ../../mod/connedit.php:566 -msgid "Me" -msgstr "Me" +#: ../../include/nav.php:88 +msgid "Edit Profiles" +msgstr "Modifica i tuoi profili" -#: ../../include/widgets.php:428 ../../mod/connedit.php:567 -msgid "Family" -msgstr "Famiglia" +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" +msgstr "Gestisci i tuoi profili" -#: ../../include/widgets.php:430 ../../mod/connedit.php:569 -msgid "Acquaintances" -msgstr "Conoscenti" +#: ../../include/nav.php:90 +msgid "Edit your profile" +msgstr "Modifica il tuo profilo" -#: ../../include/widgets.php:431 ../../mod/connedit.php:570 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "Tutti" +#: ../../include/nav.php:92 +msgid "Your photos" +msgstr "Le tue foto" -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "Aggiorna" +#: ../../include/nav.php:93 +msgid "Your files" +msgstr "I tuoi file" -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "Il tuo account" +#: ../../include/nav.php:97 ../../include/apps.php:146 +msgid "Chat" +msgstr "Chat" -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "Impostazioni del canale" +#: ../../include/nav.php:97 +msgid "Your chatrooms" +msgstr "Le tue chat" -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "Funzionalità opzionali" +#: ../../include/nav.php:103 +msgid "Your bookmarks" +msgstr "I tuoi segnalibri" -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "Componenti aggiuntivi" +#: ../../include/nav.php:107 +msgid "Your webpages" +msgstr "Le tue pagine web" -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "Aspetto" +#: ../../include/nav.php:111 ../../include/apps.php:131 ../../boot.php:1486 +msgid "Login" +msgstr "Accedi" -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "App connesse" +#: ../../include/nav.php:111 +msgid "Sign in" +msgstr "Accedi" -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "Esporta il canale" +#: ../../include/nav.php:128 +#, php-format +msgid "%s - click to logout" +msgstr "%s - clicca per uscire" -#: ../../include/widgets.php:529 ../../mod/connedit.php:674 -msgid "Connection Default Permissions" -msgstr "Permessi predefiniti dei nuovi contatti" +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "Accedi dal tuo hub" -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "Canale premium - impostazioni" +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "Clicca per farti riconoscere dal tuo hub principale" -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" -msgstr "Menu messaggi privati" +#: ../../include/nav.php:145 +msgid "Home Page" +msgstr "Bacheca" -#: ../../include/widgets.php:569 -msgid "Combined View" -msgstr "Vista combinata" +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 +msgid "Register" +msgstr "Registrati" -#: ../../include/widgets.php:574 ../../include/nav.php:191 -msgid "Inbox" -msgstr "In arrivo" +#: ../../include/nav.php:149 +msgid "Create an account" +msgstr "Crea un account" -#: ../../include/widgets.php:579 ../../include/nav.php:192 -msgid "Outbox" -msgstr "Inviati" +#: ../../include/nav.php:154 ../../include/apps.php:142 +#: ../../mod/layouts.php:176 ../../mod/help.php:202 ../../mod/help.php:207 +msgid "Help" +msgstr "Guida" -#: ../../include/widgets.php:584 ../../include/nav.php:193 -msgid "New Message" -msgstr "Nuovo messaggio" +#: ../../include/nav.php:154 +msgid "Help and documentation" +msgstr "Guida e documentazione" -#: ../../include/widgets.php:603 ../../include/widgets.php:615 -msgid "Conversations" -msgstr "Conversazioni" +#: ../../include/nav.php:157 +msgid "Applications, utilities, links, games" +msgstr "Applicazioni, utilità, link, giochi" -#: ../../include/widgets.php:607 -msgid "Received Messages" -msgstr "Ricevuti" +#: ../../include/nav.php:159 ../../include/text.php:867 +#: ../../include/text.php:879 ../../include/apps.php:147 +#: ../../mod/search.php:40 +msgid "Search" +msgstr "Cerca" -#: ../../include/widgets.php:611 -msgid "Sent Messages" -msgstr "Inviati" +#: ../../include/nav.php:159 +msgid "Search site @name, #tag, ?docs, content" +msgstr "Cerca nel sito per @nome, #tag, ?guida o per contenuto" -#: ../../include/widgets.php:625 -msgid "No messages." -msgstr "Nessun messaggio." +#: ../../include/nav.php:162 ../../include/apps.php:141 +msgid "Directory" +msgstr "Elenchi pubblici dei canali" -#: ../../include/widgets.php:643 -msgid "Delete conversation" -msgstr "Elimina la conversazione" +#: ../../include/nav.php:162 +msgid "Channel Directory" +msgstr "Elenchi pubblici dei canali" -#: ../../include/widgets.php:734 -msgid "Chat Rooms" -msgstr "Chat" +#: ../../include/nav.php:174 ../../include/apps.php:133 +msgid "Grid" +msgstr "Rete" -#: ../../include/widgets.php:754 -msgid "Bookmarked Chatrooms" -msgstr "Chat nei segnalibri" +#: ../../include/nav.php:174 +msgid "Your grid" +msgstr "La tua rete" -#: ../../include/widgets.php:774 -msgid "Suggested Chatrooms" -msgstr "Chat suggerite" +#: ../../include/nav.php:175 +msgid "Mark all grid notifications seen" +msgstr "Segna come lette le notifiche della tua rete" -#: ../../include/widgets.php:901 ../../include/widgets.php:959 -msgid "photo/image" -msgstr "foto/immagine" +#: ../../include/nav.php:177 ../../include/apps.php:137 +msgid "Channel Home" +msgstr "Bacheca del canale" -#: ../../include/widgets.php:1054 ../../include/widgets.php:1056 -msgid "Rate Me" -msgstr "Valutami" +#: ../../include/nav.php:177 +msgid "Channel home" +msgstr "Bacheca del canale" -#: ../../include/widgets.php:1060 -msgid "View Ratings" -msgstr "Vedi le valutazioni ricevute" +#: ../../include/nav.php:178 +msgid "Mark all channel notifications seen" +msgstr "Segna come lette le notifiche del canale" -#: ../../include/widgets.php:1071 -msgid "Public Hubs" -msgstr "Hub pubblici" +#: ../../include/nav.php:181 ../../mod/connections.php:260 +msgid "Connections" +msgstr "Contatti" -#: ../../include/widgets.php:1119 -msgid "Forums" -msgstr "Forum" +#: ../../include/nav.php:184 +msgid "Notices" +msgstr "Avvisi" -#: ../../include/widgets.php:1146 -msgid "Tasks" -msgstr "Attività" +#: ../../include/nav.php:184 +msgid "Notifications" +msgstr "Notifiche" -#: ../../include/widgets.php:1155 -msgid "Documentation" -msgstr "Guida" +#: ../../include/nav.php:185 +msgid "See all notifications" +msgstr "Vedi tutte le notifiche" -#: ../../include/widgets.php:1157 -msgid "Project/Site Information" -msgstr "Informazioni sul sito/progetto" +#: ../../include/nav.php:186 ../../mod/notifications.php:99 +msgid "Mark all system notifications seen" +msgstr "Segna come lette le notifiche di sistema" -#: ../../include/widgets.php:1158 -msgid "For Members" -msgstr "Per gli utenti" +#: ../../include/nav.php:188 ../../include/apps.php:143 +msgid "Mail" +msgstr "Messaggi" -#: ../../include/widgets.php:1159 -msgid "For Administrators" -msgstr "Per gli amministratori" +#: ../../include/nav.php:188 +msgid "Private mail" +msgstr "Messaggi privati" -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "Per sviluppatori" +#: ../../include/nav.php:189 +msgid "See all private messages" +msgstr "Guarda tutti i messaggi privati" -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "Sito" +#: ../../include/nav.php:190 +msgid "Mark all private messages seen" +msgstr "Segna come letti tutti i messaggi privati" -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "Account" +#: ../../include/nav.php:196 ../../include/apps.php:140 +msgid "Events" +msgstr "Eventi" -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "Canali" +#: ../../include/nav.php:196 +msgid "Event Calendar" +msgstr "Calendario" -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "Plugin" +#: ../../include/nav.php:197 +msgid "See all events" +msgstr "Guarda tutti gli eventi" -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "Temi" +#: ../../include/nav.php:198 +msgid "Mark all events seen" +msgstr "Marca come letti tutti gli eventi" -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "Coda di attesa" +#: ../../include/nav.php:200 ../../include/apps.php:132 +#: ../../mod/manage.php:160 +msgid "Channel Manager" +msgstr "Gestione canali" -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "Configurazione del profilo" +#: ../../include/nav.php:200 +msgid "Manage Your Channels" +msgstr "Gestisci i tuoi canali" -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "Aggiornamenti al DB" +#: ../../include/nav.php:202 +msgid "Account/Channel Settings" +msgstr "Impostazioni dell'account e del canale" -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "Log" +#: ../../include/nav.php:210 +msgid "Site Setup and Configuration" +msgstr "Installazione e configurazione del sito" -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "Amministrazione" +#: ../../include/nav.php:246 +msgid "@name, #tag, ?doc, content" +msgstr "@nome, #tag, ?guida, contenuto" -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "Plugin" +#: ../../include/nav.php:247 +msgid "Please wait..." +msgstr "Attendere..." -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "Registrazioni in attesa" +#: ../../include/security.php:381 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." +msgstr "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto." -#: ../../include/text.php:391 +#: ../../include/text.php:394 msgid "prev" msgstr "prec" -#: ../../include/text.php:393 +#: ../../include/text.php:396 msgid "first" msgstr "inizio" -#: ../../include/text.php:422 +#: ../../include/text.php:425 msgid "last" msgstr "fine" -#: ../../include/text.php:425 +#: ../../include/text.php:428 msgid "next" msgstr "succ" -#: ../../include/text.php:435 +#: ../../include/text.php:438 msgid "older" msgstr "più recenti" -#: ../../include/text.php:437 +#: ../../include/text.php:440 msgid "newer" msgstr "più nuovi" -#: ../../include/text.php:775 +#: ../../include/text.php:785 msgid "No connections" msgstr "Nessun contatto" -#: ../../include/text.php:787 +#: ../../include/text.php:797 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "%d contatto" msgstr[1] "%d contatti" -#: ../../include/text.php:800 ../../mod/viewconnections.php:101 +#: ../../include/text.php:810 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "Elenco contatti" -#: ../../include/text.php:942 +#: ../../include/text.php:954 msgid "poke" msgstr "poke" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "ping" msgstr "ping" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "pinged" msgstr "ha ricevuto un ping" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prod" msgstr "spintone" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prodded" msgstr "ha ricevuto uno spintone" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slap" msgstr "schiaffo" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slapped" msgstr "ha ricevuto uno schiaffo" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "finger" msgstr "finger" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "fingered" msgstr "ha ricevuto un finger" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuff" msgstr "rifiuto" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuffed" msgstr "ha ricevuto un rifiuto" -#: ../../include/text.php:957 +#: ../../include/text.php:969 msgid "happy" msgstr "felice" -#: ../../include/text.php:958 +#: ../../include/text.php:970 msgid "sad" msgstr "triste" -#: ../../include/text.php:959 +#: ../../include/text.php:971 msgid "mellow" msgstr "calmo" -#: ../../include/text.php:960 +#: ../../include/text.php:972 msgid "tired" msgstr "stanco" -#: ../../include/text.php:961 +#: ../../include/text.php:973 msgid "perky" msgstr "vivace" -#: ../../include/text.php:962 +#: ../../include/text.php:974 msgid "angry" msgstr "arrabbiato" -#: ../../include/text.php:963 +#: ../../include/text.php:975 msgid "stupified" msgstr "stordito" -#: ../../include/text.php:964 +#: ../../include/text.php:976 msgid "puzzled" msgstr "confuso" -#: ../../include/text.php:965 +#: ../../include/text.php:977 msgid "interested" msgstr "attento" -#: ../../include/text.php:966 +#: ../../include/text.php:978 msgid "bitter" msgstr "amaro" -#: ../../include/text.php:967 +#: ../../include/text.php:979 msgid "cheerful" msgstr "allegro" -#: ../../include/text.php:968 +#: ../../include/text.php:980 msgid "alive" msgstr "vivace" -#: ../../include/text.php:969 +#: ../../include/text.php:981 msgid "annoyed" msgstr "seccato" -#: ../../include/text.php:970 +#: ../../include/text.php:982 msgid "anxious" msgstr "ansioso" -#: ../../include/text.php:971 +#: ../../include/text.php:983 msgid "cranky" msgstr "irritabile" -#: ../../include/text.php:972 +#: ../../include/text.php:984 msgid "disturbed" msgstr "turbato" -#: ../../include/text.php:973 +#: ../../include/text.php:985 msgid "frustrated" msgstr "frustrato" -#: ../../include/text.php:974 +#: ../../include/text.php:986 msgid "depressed" msgstr "in depressione" -#: ../../include/text.php:975 +#: ../../include/text.php:987 msgid "motivated" msgstr "motivato" -#: ../../include/text.php:976 +#: ../../include/text.php:988 msgid "relaxed" msgstr "rilassato" -#: ../../include/text.php:977 +#: ../../include/text.php:989 msgid "surprised" msgstr "sorpreso" -#: ../../include/text.php:1153 +#: ../../include/text.php:1165 msgid "May" -msgstr "maggio" +msgstr "Mag" -#: ../../include/text.php:1230 ../../include/text.php:1234 +#: ../../include/text.php:1242 ../../include/text.php:1246 msgid "Unknown Attachment" msgstr "Allegato non riconoscuto" -#: ../../include/text.php:1236 +#: ../../include/text.php:1248 msgid "unknown" msgstr "sconosciuta" -#: ../../include/text.php:1272 +#: ../../include/text.php:1284 msgid "remove category" msgstr "rimuovi la categoria" -#: ../../include/text.php:1349 +#: ../../include/text.php:1361 msgid "remove from file" msgstr "rimuovi dal file" -#: ../../include/text.php:1461 ../../include/text.php:1472 +#: ../../include/text.php:1507 ../../include/text.php:1518 msgid "Click to open/close" msgstr "Clicca per aprire/chiudere" -#: ../../include/text.php:1640 ../../mod/events.php:497 +#: ../../include/text.php:1692 ../../mod/events.php:638 msgid "Link to Source" msgstr "Link al sito d'origine" -#: ../../include/text.php:1661 ../../include/text.php:1732 +#: ../../include/text.php:1713 ../../include/text.php:1785 msgid "default" msgstr "predefinito" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 msgid "Page layout" msgstr "Layout della pagina" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 msgid "You can create your own with the layouts tool" -msgstr "Con la configurazione del layout puoi crearne uno tuo" +msgstr "Puoi creare un tuo layout dalla configurazione delle pagine web" -#: ../../include/text.php:1710 +#: ../../include/text.php:1763 msgid "Page content type" msgstr "Tipo di contenuto della pagina" -#: ../../include/text.php:1744 +#: ../../include/text.php:1797 msgid "Select an alternate language" msgstr "Seleziona una lingua diversa" -#: ../../include/text.php:1876 +#: ../../include/text.php:1929 msgid "activity" msgstr "l'attività" -#: ../../include/text.php:2171 +#: ../../include/text.php:2224 msgid "Design Tools" msgstr "Strumenti di design" -#: ../../include/text.php:2174 ../../mod/blocks.php:147 +#: ../../include/text.php:2227 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Block" -#: ../../include/text.php:2175 ../../mod/menu.php:103 +#: ../../include/text.php:2228 ../../mod/menu.php:103 msgid "Menus" msgstr "Menù" -#: ../../include/text.php:2176 ../../mod/layouts.php:174 +#: ../../include/text.php:2229 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Layout" -#: ../../include/text.php:2177 +#: ../../include/text.php:2230 msgid "Pages" msgstr "Pagine" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1502 -msgid "Logout" -msgstr "Esci" +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"<strong>may</strong> apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso." -#: ../../include/nav.php:82 ../../include/nav.php:114 -msgid "End this session" -msgstr "Chiudi questa sessione" +#: ../../include/group.php:232 +msgid "Add new connections to this collection (privacy group)" +msgstr "Aggiungi altri contatti a questo insieme (privacy di gruppo)" -#: ../../include/nav.php:85 ../../include/nav.php:145 -msgid "Home" -msgstr "Bacheca" +#: ../../include/group.php:251 ../../mod/admin.php:814 +msgid "All Channels" +msgstr "Tutti i canali" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" -msgstr "I tuoi post e conversazioni" +#: ../../include/group.php:273 +msgid "edit" +msgstr "modifica" -#: ../../include/nav.php:86 -msgid "Your profile page" -msgstr "Il tuo profilo" +#: ../../include/group.php:295 +msgid "Collections" +msgstr "Insiemi di canali" -#: ../../include/nav.php:88 -msgid "Edit Profiles" -msgstr "Modifica i tuoi profili" +#: ../../include/group.php:296 +msgid "Edit collection" +msgstr "Modifica l'insieme di canali" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" -msgstr "Gestisci i tuoi profili" +#: ../../include/group.php:297 +msgid "Add new collection" +msgstr "Nuovo insieme" -#: ../../include/nav.php:90 -msgid "Edit your profile" -msgstr "Modifica il tuo profilo" +#: ../../include/group.php:298 +msgid "Channels not in any collection" +msgstr "Canali che non sono in un insieme" -#: ../../include/nav.php:92 -msgid "Your photos" -msgstr "Le tue foto" +#: ../../include/page_widgets.php:6 +msgid "New Page" +msgstr "Nuova pagina web" -#: ../../include/nav.php:93 -msgid "Your files" -msgstr "I tuoi file" +#: ../../include/page_widgets.php:39 ../../mod/blocks.php:159 +#: ../../mod/webpages.php:187 ../../mod/layouts.php:188 +msgid "View" +msgstr "Guarda" -#: ../../include/nav.php:97 -msgid "Your chatrooms" -msgstr "Le tue chat" +#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 +msgid "Actions" +msgstr "Azioni" -#: ../../include/nav.php:103 -msgid "Your bookmarks" -msgstr "I tuoi segnalibri" +#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 +msgid "Page Link" +msgstr "Link alla pagina" -#: ../../include/nav.php:107 -msgid "Your webpages" -msgstr "Le tue pagine web" +#: ../../include/page_widgets.php:43 +msgid "Title" +msgstr "Titolo" -#: ../../include/nav.php:111 -msgid "Sign in" -msgstr "Accedi" +#: ../../include/page_widgets.php:44 ../../mod/blocks.php:150 +#: ../../mod/webpages.php:192 ../../mod/layouts.php:181 ../../mod/menu.php:110 +msgid "Created" +msgstr "Creato" -#: ../../include/nav.php:128 +#: ../../include/page_widgets.php:45 ../../mod/blocks.php:151 +#: ../../mod/webpages.php:193 ../../mod/layouts.php:182 ../../mod/menu.php:111 +msgid "Edited" +msgstr "Modificato" + +#: ../../include/dba/dba_driver.php:141 #, php-format -msgid "%s - click to logout" -msgstr "%s - clicca per uscire" +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Non trovo le informazioni DNS per il database server '%s'" -#: ../../include/nav.php:131 -msgid "Remote authentication" -msgstr "Accedi dal tuo hub" +#: ../../include/photos.php:112 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" +msgstr "L'immagine supera il limite massimo di %lu bytes" -#: ../../include/nav.php:131 -msgid "Click to authenticate to your home hub" -msgstr "Clicca per farti riconoscere dal tuo hub principale" +#: ../../include/photos.php:119 +msgid "Image file is empty." +msgstr "Il file dell'immagine è vuoto." -#: ../../include/nav.php:145 -msgid "Home Page" -msgstr "Bacheca" +#: ../../include/photos.php:146 ../../mod/profile_photo.php:225 +msgid "Unable to process image" +msgstr "Impossibile elaborare l'immagine" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1479 -msgid "Register" -msgstr "Registrati" +#: ../../include/photos.php:257 +msgid "Photo storage failed." +msgstr "Impossibile salvare la foto." -#: ../../include/nav.php:149 -msgid "Create an account" -msgstr "Crea un account" +#: ../../include/photos.php:487 +msgid "Upload New Photos" +msgstr "Carica nuove foto" -#: ../../include/nav.php:154 -msgid "Help and documentation" -msgstr "Guida e documentazione" +#: ../../include/ItemObject.php:130 +msgid "Save to Folder" +msgstr "Salva nella cartella" -#: ../../include/nav.php:157 -msgid "Applications, utilities, links, games" -msgstr "Applicazioni, utilità, link, giochi" +#: ../../include/ItemObject.php:151 +msgid "I will attend" +msgstr "Parteciperò" -#: ../../include/nav.php:159 -msgid "Search site @name, #tag, ?docs, content" -msgstr "Cerca nel sito per @nome, #tag, ?guida o per contenuto" +#: ../../include/ItemObject.php:151 +msgid "I will not attend" +msgstr "Non parteciperò" -#: ../../include/nav.php:162 -msgid "Channel Directory" -msgstr "Elenchi pubblici dei canali" +#: ../../include/ItemObject.php:151 +msgid "I might attend" +msgstr "Forse parteciperò" -#: ../../include/nav.php:174 -msgid "Your grid" -msgstr "La tua rete" +#: ../../include/ItemObject.php:161 +msgid "I agree" +msgstr "Sono d'accordo" -#: ../../include/nav.php:175 -msgid "Mark all grid notifications seen" -msgstr "Segna come lette le notifiche della tua rete" +#: ../../include/ItemObject.php:161 +msgid "I disagree" +msgstr "Non sono d'accordo" -#: ../../include/nav.php:177 -msgid "Channel home" -msgstr "Bacheca del canale" +#: ../../include/ItemObject.php:161 +msgid "I abstain" +msgstr "Mi astengo" -#: ../../include/nav.php:178 -msgid "Mark all channel notifications seen" -msgstr "Segna come lette le notifiche del canale" +#: ../../include/ItemObject.php:212 +msgid "Add Star" +msgstr "Aggiungi ai preferiti" -#: ../../include/nav.php:181 ../../mod/connections.php:260 -msgid "Connections" -msgstr "Contatti" +#: ../../include/ItemObject.php:213 +msgid "Remove Star" +msgstr "Rimuovi dai preferiti" -#: ../../include/nav.php:184 -msgid "Notices" -msgstr "Avvisi" +#: ../../include/ItemObject.php:214 +msgid "Toggle Star Status" +msgstr "Attiva/disattiva preferito" -#: ../../include/nav.php:184 -msgid "Notifications" -msgstr "Notifiche" +#: ../../include/ItemObject.php:218 +msgid "starred" +msgstr "preferito" -#: ../../include/nav.php:185 -msgid "See all notifications" -msgstr "Vedi tutte le notifiche" +#: ../../include/ItemObject.php:236 +msgid "Add Tag" +msgstr "Aggiungi un tag" -#: ../../include/nav.php:186 ../../mod/notifications.php:99 -msgid "Mark all system notifications seen" -msgstr "Segna come lette le notifiche di sistema" +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +msgid "I like this (toggle)" +msgstr "Attiva/disattiva Mi piace" -#: ../../include/nav.php:188 -msgid "Private mail" -msgstr "Messaggi privati" +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +msgid "I don't like this (toggle)" +msgstr "Attiva/disattiva Non mi piace" -#: ../../include/nav.php:189 -msgid "See all private messages" -msgstr "Guarda tutti i messaggi privati" +#: ../../include/ItemObject.php:259 +msgid "Share This" +msgstr "Condividi" -#: ../../include/nav.php:190 -msgid "Mark all private messages seen" -msgstr "Segna come letti tutti i messaggi privati" +#: ../../include/ItemObject.php:259 +msgid "share" +msgstr "condividi" -#: ../../include/nav.php:196 -msgid "Event Calendar" -msgstr "Calendario" +#: ../../include/ItemObject.php:268 +msgid "Delivery Report" +msgstr "Rapporto di trasmissione" -#: ../../include/nav.php:197 -msgid "See all events" -msgstr "Guarda tutti gli eventi" +#: ../../include/ItemObject.php:286 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d commento" +msgstr[1] "%d commenti" -#: ../../include/nav.php:198 -msgid "Mark all events seen" -msgstr "Marca come letti tutti gli eventi" +#: ../../include/ItemObject.php:315 ../../include/ItemObject.php:316 +#, php-format +msgid "View %s's profile - %s" +msgstr "Guarda il profilo di %s - %s" -#: ../../include/nav.php:200 -msgid "Manage Your Channels" -msgstr "Gestisci i tuoi canali" +#: ../../include/ItemObject.php:319 +msgid "to" +msgstr "a" -#: ../../include/nav.php:202 -msgid "Account/Channel Settings" -msgstr "Impostazioni dell'account e del canale" +#: ../../include/ItemObject.php:320 +msgid "via" +msgstr "via" -#: ../../include/nav.php:210 -msgid "Site Setup and Configuration" -msgstr "Installazione e configurazione del sito" +#: ../../include/ItemObject.php:321 +msgid "Wall-to-Wall" +msgstr "Da bacheca a bacheca" -#: ../../include/nav.php:246 -msgid "@name, #tag, ?doc, content" -msgstr "@nome, #tag, ?guida, contenuto" +#: ../../include/ItemObject.php:322 +msgid "via Wall-To-Wall:" +msgstr "da bacheca a bacheca:" -#: ../../include/nav.php:247 -msgid "Please wait..." -msgstr "Attendere..." +#: ../../include/ItemObject.php:362 +msgid "Save Bookmarks" +msgstr "Salva segnalibro" -#: ../../include/dir_fns.php:126 -msgid "Directory Options" -msgstr "Visibilità negli elenchi pubblici" +#: ../../include/ItemObject.php:363 +msgid "Add to Calendar" +msgstr "Aggiungi al calendario" -#: ../../include/dir_fns.php:128 -msgid "Safe Mode" -msgstr "Modalità SafeSearch" +#: ../../include/ItemObject.php:372 +msgid "Mark all seen" +msgstr "Marca tutto come letto" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 -#: ../../mod/mitem.php:229 ../../mod/connedit.php:630 -#: ../../mod/connedit.php:675 ../../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/settings.php:575 ../../mod/api.php:106 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "No" -msgstr "No" +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +msgctxt "noun" +msgid "Likes" +msgstr "Mi piace" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../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/settings.php:575 ../../mod/api.php:105 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "Yes" -msgstr "Si" +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +msgctxt "noun" +msgid "Dislikes" +msgstr "Non mi piace" -#: ../../include/dir_fns.php:129 -msgid "Public Forums Only" -msgstr "Solo forum pubblici" +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 +#: ../../mod/photos.php:1163 +msgid "This is you" +msgstr "Questo sei tu" -#: ../../include/dir_fns.php:130 -msgid "This Website Only" -msgstr "Solo in questo sito" +#: ../../include/ItemObject.php:703 +msgid "Image" +msgstr "Immagine" -#: ../../mod/achievements.php:34 -msgid "Some blurb about what to do when you're new here" -msgstr "Qualche suggerimento per i nuovi utenti su cosa fare" +#: ../../include/ItemObject.php:704 +msgid "Insert Link" +msgstr "Collegamento" -#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 -msgid "Contact not found." -msgstr "Contatto non trovato." +#: ../../include/ItemObject.php:705 +msgid "Video" +msgstr "Video" -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Suggerimento di amicizia inviato." +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "Email non valida" -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Suggerisci amici" +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "Il dominio della tua email attualmente non è permesso su questo sito" -#: ../../mod/fsuggest.php:99 +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "La tua email è già registrata su questo sito." + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "È necessario un invito." + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "L'invito non può essere verificato." + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "Inserisci le informazioni richieste." + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "Non è stato possibile salvare le informazioni del tuo account." + +#: ../../include/account.php:248 #, php-format -msgid "Suggest a friend for %s" -msgstr "Suggerisci un amico a %s" +msgid "Registration confirmation for %s" +msgstr "Registrazione di %s confermata" -#: ../../mod/directory.php:59 ../../mod/display.php:13 ../../mod/search.php:13 -#: ../../mod/photos.php:490 ../../mod/ratings.php:82 -#: ../../mod/viewconnections.php:17 -msgid "Public access denied." -msgstr "Accesso pubblico negato." +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "Richiesta di registrazione su %s" -#: ../../mod/directory.php:234 +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "la password di registrazione" + +#: ../../include/account.php:341 ../../include/account.php:401 #, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d valutazione" -msgstr[1] "%d valutazioni" +msgid "Registration details for %s" +msgstr "Dettagli della registrazione di %s" -#: ../../mod/directory.php:245 -msgid "Gender: " -msgstr "Sesso:" +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "Account approvato." -#: ../../mod/directory.php:247 -msgid "Status: " -msgstr "Stato:" +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registrazione revocata per %s" -#: ../../mod/directory.php:249 -msgid "Homepage: " -msgstr "Homepage:" +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "Registrazione verificata. Adesso puoi effettuare login." -#: ../../mod/directory.php:308 ../../mod/events.php:699 -msgid "Description:" -msgstr "Descrizione:" +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "Clicca qui per aggiornare." -#: ../../mod/directory.php:317 -msgid "Public Forum:" -msgstr "Forum pubblico:" +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Questa operazione supera i limiti del tuo abbonamento." -#: ../../mod/directory.php:320 -msgid "Keywords: " -msgstr "Parole chiave:" +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "Questa operazione non è prevista dal tuo abbonamento." -#: ../../mod/directory.php:323 -msgid "Don't suggest" -msgstr "Non fornire suggerimenti" +#: ../../include/apps.php:128 +msgid "Site Admin" +msgstr "Amministrazione sito" -#: ../../mod/directory.php:325 -msgid "Common connections:" -msgstr "Contatti in comune:" +#: ../../include/apps.php:130 +msgid "Address Book" +msgstr "Rubrica" -#: ../../mod/directory.php:374 -msgid "Global Directory" -msgstr "Elenchi pubblici globali" +#: ../../include/apps.php:144 ../../mod/mood.php:131 +msgid "Mood" +msgstr "Umore" -#: ../../mod/directory.php:374 -msgid "Local Directory" -msgstr "Elenco canali su questo hub" +#: ../../include/apps.php:148 +msgid "Probe" +msgstr "Diagnostica" -#: ../../mod/directory.php:380 -msgid "Finding:" -msgstr "Ricerca:" +#: ../../include/apps.php:149 +msgid "Suggest" +msgstr "Suggerisci" -#: ../../mod/directory.php:385 -msgid "next page" -msgstr "pagina successiva" +#: ../../include/apps.php:150 +msgid "Random Channel" +msgstr "Canale casuale" -#: ../../mod/directory.php:385 -msgid "previous page" -msgstr "pagina precedente" +#: ../../include/apps.php:151 +msgid "Invite" +msgstr "Invita" -#: ../../mod/directory.php:386 -msgid "Sort options" -msgstr "Opzioni di ordinamento" +#: ../../include/apps.php:152 +msgid "Features" +msgstr "Funzionalità" -#: ../../mod/directory.php:387 -msgid "Alphabetic" -msgstr "Alfabetico" +#: ../../include/apps.php:153 ../../mod/id.php:28 +msgid "Language" +msgstr "Lingua" -#: ../../mod/directory.php:388 -msgid "Reverse Alphabetic" -msgstr "Alfabetico inverso" +#: ../../include/apps.php:154 +msgid "Post" +msgstr "Post" -#: ../../mod/directory.php:389 -msgid "Newest to Oldest" -msgstr "Prima i più recenti" +#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 +#: ../../mod/id.php:19 +msgid "Profile Photo" +msgstr "Foto del profilo" -#: ../../mod/directory.php:390 -msgid "Oldest to Newest" -msgstr "Prima i più vecchi" +#: ../../include/apps.php:252 ../../mod/settings.php:84 +#: ../../mod/settings.php:612 +msgid "Update" +msgstr "Aggiorna" -#: ../../mod/directory.php:407 -msgid "No entries (some entries may be hidden)." -msgstr "Nessun risultato (qualche elemento potrebbe essere nascosto)." +#: ../../include/apps.php:252 +msgid "Install" +msgstr "Installa" -#: ../../mod/bookmarks.php:40 -msgid "Bookmark added" -msgstr "Segnalibro aggiunto" +#: ../../include/apps.php:257 +msgid "Purchase" +msgstr "Acquista" -#: ../../mod/bookmarks.php:62 -msgid "My Bookmarks" -msgstr "I miei segnalibri" +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "Può vedere i miei contenuti e i post normali" -#: ../../mod/bookmarks.php:73 -msgid "My Connections Bookmarks" -msgstr "I segnalibri dei miei contatti" +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" +msgstr "Può vedere il profilo predefinito del canale" + +#: ../../include/permissions.php:28 +msgid "Can view my connections" +msgstr "Può vedere i miei contatti" + +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" +msgstr "Può vedere il mio archivio file e foto" + +#: ../../include/permissions.php:30 +msgid "Can view my webpages" +msgstr "Può vedere le mie pagine web" + +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" +msgstr "È tra i canali che seguo" + +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" +msgstr "Può scrivere sulla bacheca del mio canale" + +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" +msgstr "Può commentare o aggiungere \"mi piace\" ai miei post" + +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" +msgstr "Può inviarmi messaggi privati" + +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" +msgstr "Può aggiungere \"mi piace\" a tutto il resto" + +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" +msgstr "Può aggiungere \"mi piace\" a tutto ciò che non riguarda i post, come per esempio il profilo" + +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "Può inoltrare post a tutti i contatti del canale tramite una @menzione" + +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" +msgstr "Impostazione avanzata - utile per creare un canale-forum di discussione" + +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" +msgstr "Può aprire una chat con me (se disponibile)" + +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" +msgstr "Può modificare il mio archivio file e foto" + +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" +msgstr "Può modificare le mie pagine web" + +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" +msgstr "Può usare i miei post pubblici per creare canali derivati" + +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Piuttosto avanzato - molto utile nelle comunità aperte" + +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" +msgstr "Può amministrare i contenuti del mio canale" + +#: ../../include/permissions.php:46 +msgid "" +"Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri" + +#: ../../include/permissions.php:867 +msgid "Social Networking" +msgstr "Social network" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Mostly Public" +msgstr "Prevalentemente pubblico" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +#: ../../include/permissions.php:869 +msgid "Restricted" +msgstr "Con restrizioni" + +#: ../../include/permissions.php:867 ../../include/permissions.php:868 +msgid "Private" +msgstr "Privato" + +#: ../../include/permissions.php:868 +msgid "Community Forum" +msgstr "Forum di discussione" + +#: ../../include/permissions.php:869 +msgid "Feed Republish" +msgstr "Aggregatore di feed esterni" + +#: ../../include/permissions.php:870 +msgid "Special Purpose" +msgstr "Per finalità speciali" + +#: ../../include/permissions.php:870 +msgid "Celebrity/Soapbox" +msgstr "Pagina per fan" + +#: ../../include/permissions.php:870 +msgid "Group Repository" +msgstr "Repository di gruppo" + +#: ../../include/permissions.php:871 +msgid "Custom/Expert Mode" +msgstr "Personalizzazione per esperti" + +#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 +#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +msgid "Profile Photos" +msgstr "Foto del profilo" + +#: ../../mod/filestorage.php:82 +msgid "Permission Denied." +msgstr "Permesso negato." + +#: ../../mod/filestorage.php:98 +msgid "File not found." +msgstr "File non trovato." + +#: ../../mod/filestorage.php:141 +msgid "Edit file permissions" +msgstr "Modifica i permessi del file" + +#: ../../mod/filestorage.php:150 +msgid "Set/edit permissions" +msgstr "Modifica i permessi" + +#: ../../mod/filestorage.php:151 +msgid "Include all files and sub folders" +msgstr "Includi tutti i file e le sottocartelle" + +#: ../../mod/filestorage.php:152 +msgid "Return to file list" +msgstr "Torna all'elenco dei file" + +#: ../../mod/filestorage.php:154 +msgid "Copy/paste this code to attach file to a post" +msgstr "Copia/incolla questo codice per far comparire il file in un post" + +#: ../../mod/filestorage.php:155 +msgid "Copy/paste this URL to link file from a web page" +msgstr "Copia/incolla questo indirizzo in una pagina web per avere un link al file" + +#: ../../mod/filestorage.php:157 +msgid "Share this file" +msgstr "Condividi questo file" + +#: ../../mod/filestorage.php:158 +msgid "Show URL to this file" +msgstr "Mostra l'URL del file" + +#: ../../mod/filestorage.php:159 +msgid "Notify your contacts about this file" +msgstr "Notifica ai contatti che hai caricato questo file" + +#: ../../mod/group.php:20 +msgid "Collection created." +msgstr "L'insieme di canali è stato creato." + +#: ../../mod/group.php:26 +msgid "Could not create collection." +msgstr "Impossibile creare l'insieme." + +#: ../../mod/group.php:54 +msgid "Collection updated." +msgstr "Insieme aggiornato." + +#: ../../mod/group.php:86 +msgid "Create a collection of channels." +msgstr "Crea un insieme di canali." + +#: ../../mod/group.php:87 ../../mod/group.php:180 +msgid "Collection Name: " +msgstr "Nome dell'insieme:" + +#: ../../mod/group.php:89 ../../mod/group.php:183 +msgid "Members are visible to other channels" +msgstr "I membri potranno vedere gli altri canali dell'insieme" + +#: ../../mod/group.php:107 +msgid "Collection removed." +msgstr "Insieme rimosso." + +#: ../../mod/group.php:109 +msgid "Unable to remove collection." +msgstr "Impossibile rimuovere l'insieme." + +#: ../../mod/group.php:179 +msgid "Collection Editor" +msgstr "Modifica l'insieme" + +#: ../../mod/group.php:193 +msgid "Members" +msgstr "Membri" + +#: ../../mod/group.php:195 +msgid "All Connected Channels" +msgstr "Tutti i canali connessi" + +#: ../../mod/group.php:227 +msgid "Click on a channel to add or remove." +msgstr "Clicca su un canale per aggiungerlo o rimuoverlo." + +#: ../../mod/item.php:173 +msgid "Unable to locate original post." +msgstr "Impossibile trovare il messaggio originale." + +#: ../../mod/item.php:417 +msgid "Empty post discarded." +msgstr "Il post vuoto è stato ignorato." + +#: ../../mod/item.php:457 +msgid "Executable content type not permitted to this channel." +msgstr "I contenuti eseguibili non sono permessi su questo canale." + +#: ../../mod/item.php:822 +msgid "Duplicate post suppressed." +msgstr "I post duplicati sono scartati." + +#: ../../mod/item.php:953 +msgid "System error. Post not saved." +msgstr "Errore di sistema. Post non salvato." + +#: ../../mod/item.php:1220 +msgid "Unable to obtain post information from database." +msgstr "Impossibile caricare il post dal database." + +#: ../../mod/item.php:1227 +#, php-format +msgid "You have reached your limit of %1$.0f top level posts." +msgstr "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale." + +#: ../../mod/item.php:1234 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web." + +#: ../../mod/common.php:10 +msgid "No channel." +msgstr "Nessun canale." + +#: ../../mod/common.php:39 +msgid "Common connections" +msgstr "Contatti in comune" + +#: ../../mod/common.php:44 +msgid "No connections in common." +msgstr "Nessun contatto in comune." + +#: ../../mod/connect.php:56 ../../mod/connect.php:104 +msgid "Continue" +msgstr "Continua" + +#: ../../mod/connect.php:85 +msgid "Premium Channel Setup" +msgstr "Canale premium - configurazione" + +#: ../../mod/connect.php:87 +msgid "Enable premium channel connection restrictions" +msgstr "Abilita le restrizioni del canale premium" + +#: ../../mod/connect.php:88 +msgid "" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." +msgstr "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc." + +#: ../../mod/connect.php:90 ../../mod/connect.php:110 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" +msgstr "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:" + +#: ../../mod/connect.php:91 +msgid "" +"Potential connections will then see the following text before proceeding:" +msgstr "Il testo seguente comparirà a chi vorrà seguire il canale:" + +#: ../../mod/connect.php:92 ../../mod/connect.php:113 +msgid "" +"By continuing, I certify that I have complied with any instructions provided" +" on this page." +msgstr "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina." + +#: ../../mod/connect.php:101 +msgid "(No specific instructions have been provided by the channel owner.)" +msgstr "(Il gestore del canale non ha fornito istruzioni specifiche)" + +#: ../../mod/connect.php:109 +msgid "Restricted or Premium Channel" +msgstr "Canale premium - con restrizioni" + +#: ../../mod/match.php:22 +msgid "Profile Match" +msgstr "Profili corrispondenti" + +#: ../../mod/match.php:31 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche." + +#: ../../mod/match.php:63 +msgid "is interested in:" +msgstr "interessi personali:" + +#: ../../mod/match.php:70 +msgid "No matches" +msgstr "Nessun risultato" #: ../../mod/openid.php:26 msgid "OpenID protocol error. No ID returned." @@ -4282,18 +4415,92 @@ msgstr "Errore del protocollo OpenID. Nessun ID ricevuto in risposta." msgid "Welcome %s. Remote authentication successful." msgstr "Ciao %s. L'accesso tramite il tuo hub è avvenuto con successo." -#: ../../mod/block.php:27 ../../mod/page.php:36 -msgid "Invalid item." -msgstr "Elemento non valido." +#: ../../mod/achievements.php:34 +msgid "Some blurb about what to do when you're new here" +msgstr "Qualche suggerimento per i nuovi utenti su cosa fare" -#: ../../mod/block.php:39 ../../mod/page.php:52 ../../mod/wall_upload.php:29 -msgid "Channel not found." -msgstr "Canale non trovato." +#: ../../mod/chatsvc.php:111 +msgid "Away" +msgstr "Assente" -#: ../../mod/block.php:75 ../../mod/display.php:110 ../../mod/help.php:214 -#: ../../mod/page.php:89 ../../index.php:237 -msgid "Page not found." -msgstr "Pagina non trovata." +#: ../../mod/chatsvc.php:115 +msgid "Online" +msgstr "Online" + +#: ../../mod/pubsites.php:18 +msgid "Public Sites" +msgstr "Siti pubblici" + +#: ../../mod/pubsites.php:21 +msgid "" +"The listed sites allow public registration for the $Projectname network. All" +" sites in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some sites may require subscription or" +" provide tiered service plans. The provider links <strong>may</strong> " +"provide additional details." +msgstr "I siti elencati permettono la registrazione libera sulla rete $Projectname. Tutti questi hub sono interconnessi, quindi essere iscritti su uno equivale a una registrazione su tutta la rete. Alcuni siti potrebbero richiedere un abbonamento o dei servizi a pagamento. Per maggiori dettagli visita gli indirizzi nell'elenco." + +#: ../../mod/pubsites.php:27 +msgid "Rate this hub" +msgstr "Valuta questo hub" + +#: ../../mod/pubsites.php:28 +msgid "Site URL" +msgstr "URL del sito" + +#: ../../mod/pubsites.php:28 +msgid "Access Type" +msgstr "Tipo di accesso" + +#: ../../mod/pubsites.php:28 +msgid "Registration Policy" +msgstr "Politica di registrazione" + +#: ../../mod/pubsites.php:28 +msgid "Project" +msgstr "Progetto" + +#: ../../mod/pubsites.php:28 +msgid "View hub ratings" +msgstr "Vedi le valutazioni del hub" + +#: ../../mod/pubsites.php:32 +msgid "Rate" +msgstr "Valuta" + +#: ../../mod/pubsites.php:33 +msgid "View ratings" +msgstr "Vedi le valutazioni" + +#: ../../mod/tagger.php:96 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s ha taggato %3$s di %2$s con %4$s" + +#: ../../mod/rate.php:158 +msgid "Website:" +msgstr "Sito web:" + +#: ../../mod/rate.php:161 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Canale remoto [%s] (non ancora conosciuto da questo sito)" + +#: ../../mod/rate.php:162 +msgid "Rating (this information is public)" +msgstr "Valutazione (visibile a tutti)" + +#: ../../mod/rate.php:163 +msgid "Optionally explain your rating (this information is public)" +msgstr "Commento alla valutazione (facoltativo, visibile a tutti)" + +#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 +msgid "Block Name" +msgstr "Nome del block" + +#: ../../mod/blocks.php:149 +msgid "Block Title" +msgstr "Titolo del block" #: ../../mod/id.php:11 msgid "First Name" @@ -4359,7 +4566,7 @@ msgstr "Giorno di nascita" msgid "Birthdate" msgstr "Data di nascita" -#: ../../mod/id.php:33 ../../mod/profiles.php:431 +#: ../../mod/id.php:33 ../../mod/profiles.php:441 msgid "Gender" msgstr "Sesso" @@ -4431,116 +4638,28 @@ msgstr "Comando completato." msgid "Thank you." msgstr "Grazie." -#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 -msgid "Export Channel" -msgstr "Esporta il canale" - -#: ../../mod/uexport.php:53 -msgid "" -"Export your basic channel information to a file. This acts as a backup of " -"your connections, permissions, profile and basic data, which can be used to " -"import your data to a new server hub, but does not contain your content." -msgstr "Esporta le informazioni di base del canale in un file. In pratica è un salvataggio delle tue connessioni, dei permessi che hai assegnato e del tuo profilo che così potrà essere importato su un altro server/hub. Il file non includerà i tuoi post e altri contenuti che hai creato o caricato." - -#: ../../mod/uexport.php:54 -msgid "Export Content" -msgstr "Esporta i contenuti" - -#: ../../mod/uexport.php:55 -msgid "" -"Export your channel information and recent content to a JSON backup that can" -" be restored or imported to another server hub. This backs up all of your " -"connections, permissions, profile data and several months of posts. This " -"file may be VERY large. Please be patient - it may take several minutes for" -" this download to begin." -msgstr "Esporta il tuo canale e i contenuti recenti in un file di salvataggio che potrà essere importato su un altro server/hub. Sarà un backup dei tuoi contatti, dei permessi che hai assegnato, dei dati del profilo e dei post degli ultimi mesi. Il file potrebbe essere MOLTO grande. Sarà necessario attendere con pazienza - saranno necessari molti minuti prima che inizi lo scaricamento." - -#: ../../mod/uexport.php:56 -msgid "Export your posts from a given year." -msgstr "Esporta i tuoi post a partire dall'anno scelto." - -#: ../../mod/uexport.php:58 -msgid "" -"You may also export your posts and conversations for a particular year or " -"month. Adjust the date in your browser location bar to select other dates. " -"If the export fails (possibly due to memory exhaustion on your server hub), " -"please try again selecting a more limited date range." -msgstr "Puoi anche esportare post e conversazioni di un particolare anno o mese. Modifica la data nella barra dell'indirizzo del browser per scegliere date differenti. Se l'esportazione dovesse fallire (la memoria sul server potrebbe non bastare), riprova scegliendo un intervallo più breve tra le date." +#: ../../mod/page.php:36 ../../mod/block.php:27 +msgid "Invalid item." +msgstr "Elemento non valido." -#: ../../mod/uexport.php:59 -#, php-format -msgid "" -"To select all posts for a given year, such as this year, visit <a " -"href=\"%1$s\">%2$s</a>" -msgstr "Per selezionare tutti i post di un anno, come per esempio quello in corso, visita <a href=\"%1$s\">%2$s</a> " +#: ../../mod/page.php:52 ../../mod/wall_upload.php:29 ../../mod/block.php:39 +msgid "Channel not found." +msgstr "Canale non trovato." -#: ../../mod/uexport.php:60 -#, php-format -msgid "" -"To select all posts for a given month, such as January of this year, visit " -"<a href=\"%1$s\">%2$s</a>" -msgstr "Per selezionare tutti post di un dato mese, come per esempio gennaio di quest'anno, visita <a href=\"%1$s\">%2$s</a>" +#: ../../mod/page.php:89 ../../mod/display.php:110 ../../mod/help.php:214 +#: ../../mod/block.php:75 ../../index.php:241 +msgid "Page not found." +msgstr "Pagina non trovata." -#: ../../mod/uexport.php:61 -#, php-format +#: ../../mod/page.php:126 msgid "" -"These content files may be imported or restored by visiting <a " -"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" -" please import or restore these in date order (oldest first)." -msgstr "Questi contenuti potranno essere importati o ripristinati visitando <a href=\"%1$s\">%2$s</a> su qualsiasi sito/hub dove è presente il tuo canale. Per mantenere l'ordinamento originale fai attenzione ad importare i file secondo la data (prima il più vecchio)" - -#: ../../mod/chatsvc.php:111 -msgid "Away" -msgstr "Assente" - -#: ../../mod/chatsvc.php:115 -msgid "Online" -msgstr "Online" - -#: ../../mod/tagger.php:96 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s ha taggato %3$s di %2$s con %4$s" - -#: ../../mod/common.php:10 -msgid "No channel." -msgstr "Nessun canale." - -#: ../../mod/common.php:39 -msgid "Common connections" -msgstr "Contatti in comune" - -#: ../../mod/common.php:44 -msgid "No connections in common." -msgstr "Nessun contatto in comune." - -#: ../../mod/ping.php:260 -msgid "sent you a private message" -msgstr "ti ha inviato un messaggio privato" - -#: ../../mod/ping.php:308 -msgid "added your channel" -msgstr "ha aggiunto il tuo canale" - -#: ../../mod/ping.php:350 -msgid "posted an event" -msgstr "ha creato un evento" - -#: ../../mod/help.php:147 -msgid "Documentation Search" -msgstr "Ricerca nella guida" - -#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 -msgid "Help:" -msgstr "Guida:" - -#: ../../mod/help.php:211 ../../index.php:234 -msgid "Not Found" -msgstr "Non disponibile" - -#: ../../mod/help.php:235 -msgid "$Projectname Documentation" -msgstr "Guida di $Projectname" +"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " +"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," +" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " +"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " +"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " +"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." #: ../../mod/removeme.php:29 msgid "" @@ -4578,137 +4697,820 @@ msgid "" "removed from the network" msgstr "L'impostazione predefinita è che sia eliminata solo l'istanza del canale presente su questo hub, non gli eventuali cloni" -#: ../../mod/removeme.php:61 ../../mod/settings.php:1110 +#: ../../mod/removeme.php:61 ../../mod/settings.php:1112 msgid "Remove Channel" msgstr "Elimina questo canale" -#: ../../mod/filer.php:48 -msgid "- select -" -msgstr "- scegli -" +#: ../../mod/mood.php:132 +msgid "Set your current mood and tell your friends" +msgstr "Scegli il tuo umore attuale per mostrarlo agli amici" -#: ../../mod/mitem.php:24 ../../mod/menu.php:140 -msgid "Menu not found." -msgstr "Menù non trovato." +#: ../../mod/new_channel.php:109 +msgid "Add a Channel" +msgstr "Aggiungi un canale" -#: ../../mod/mitem.php:48 -msgid "Unable to create element." -msgstr "Impossibile creare l'elemento." +#: ../../mod/new_channel.php:110 +msgid "" +"A channel is your own collection of related web pages. A channel can be used" +" to hold social network profiles, blogs, conversation groups and forums, " +"celebrity pages, and much more. You may create as many channels as your " +"service provider allows." +msgstr "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti te ne permette il tuo sito." -#: ../../mod/mitem.php:72 -msgid "Unable to update menu element." -msgstr "Non è possibile aggiornare l'elemento del menù." +#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 +#: ../../mod/sources.php:137 +msgid "Channel Name" +msgstr "Nome del canale" -#: ../../mod/mitem.php:88 -msgid "Unable to add menu element." -msgstr "Impossibile aggiungere l'elemento al menù." +#: ../../mod/new_channel.php:113 +msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " +msgstr "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\"" -#: ../../mod/mitem.php:116 ../../mod/menu.php:162 ../../mod/xchan.php:37 -msgid "Not found." -msgstr "Non trovato." +#: ../../mod/new_channel.php:114 +msgid "Choose a short nickname" +msgstr "Scegli un nome breve" -#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 -msgid "Menu Item Permissions" -msgstr "Permessi del menu" +#: ../../mod/new_channel.php:115 +msgid "" +"Your nickname will be used to create an easily remembered channel address " +"(like an email address) which you can share with others." +msgstr "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti." -#: ../../mod/mitem.php:150 ../../mod/mitem.php:223 ../../mod/settings.php:1054 -msgid "(click to open/close)" -msgstr "(clicca per aprire/chiudere)" +#: ../../mod/new_channel.php:116 +msgid "Or <a href=\"import\">import an existing channel</a> from another location" +msgstr "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro hub" -#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 -msgid "Link Name" -msgstr "Nome link" +#: ../../mod/new_channel.php:118 +msgid "" +"Please choose a channel type (such as social networking or community forum) " +"and privacy requirements so we can select the best permissions for you" +msgstr "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. Hubzilla sceglierà per te i permessi più adatti." -#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 -msgid "Link or Submenu Target" -msgstr "Azione del link o del sottomenu" +#: ../../mod/new_channel.php:119 +msgid "Channel Type" +msgstr "Tipo di canale" -#: ../../mod/mitem.php:153 -msgid "Enter URL of the link or select a menu name to create a submenu" -msgstr "Inserisci l'indirizzo del link o scegli il nome di un sottomenu" +#: ../../mod/new_channel.php:119 +msgid "Read more about roles" +msgstr "Maggiori informazioni sui ruoli" -#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 -msgid "Use magic-auth if available" -msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile" +#: ../../mod/ratings.php:69 +msgid "No ratings" +msgstr "Nessuna valutazione" -#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 -msgid "Open link in new window" -msgstr "Apri il link in una nuova finestra" +#: ../../mod/ratings.php:82 ../../mod/search.php:13 ../../mod/directory.php:59 +#: ../../mod/photos.php:490 ../../mod/display.php:13 +#: ../../mod/viewconnections.php:17 +msgid "Public access denied." +msgstr "Accesso pubblico negato." -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Order in list" -msgstr "Ordine dell'elenco" +#: ../../mod/ratings.php:99 +msgid "Ratings" +msgstr "Valutazioni" -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Higher numbers will sink to bottom of listing" -msgstr "I numeri più alti andranno in fondo all'elenco" +#: ../../mod/ratings.php:100 +msgid "Rating: " +msgstr "Valutazione:" -#: ../../mod/mitem.php:157 -msgid "Submit and finish" -msgstr "Salva e termina" +#: ../../mod/ratings.php:101 +msgid "Website: " +msgstr "Sito web:" -#: ../../mod/mitem.php:158 -msgid "Submit and continue" -msgstr "Salva e continua" +#: ../../mod/ratings.php:103 +msgid "Description: " +msgstr "Descrizione:" -#: ../../mod/mitem.php:166 -msgid "Menu:" -msgstr "Menu:" +#: ../../mod/setup.php:191 +msgid "$Projectname Server - Setup" +msgstr "Server $Projectname - Installazione" -#: ../../mod/mitem.php:169 -msgid "Link Target" -msgstr "Destinazione link" +#: ../../mod/setup.php:195 +msgid "Could not connect to database." +msgstr " Impossibile connettersi al database." -#: ../../mod/mitem.php:172 -msgid "Edit menu" -msgstr "Modifica il menù" +#: ../../mod/setup.php:199 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." +msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS." -#: ../../mod/mitem.php:175 -msgid "Edit element" -msgstr "Modifica l'elemento" +#: ../../mod/setup.php:206 +msgid "Could not create table." +msgstr "Impossibile creare le tabelle." -#: ../../mod/mitem.php:176 -msgid "Drop element" -msgstr "Elimina l'elemento" +#: ../../mod/setup.php:211 +msgid "Your site database has been installed." +msgstr "Il database del sito è stato installato." -#: ../../mod/mitem.php:177 -msgid "New element" -msgstr "Nuovo elemento" +#: ../../mod/setup.php:215 +msgid "" +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." +msgstr "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db." -#: ../../mod/mitem.php:178 -msgid "Edit this menu container" -msgstr "Modifica il contenitore del menù" +#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Leggi il file 'install/INSTALL.txt'." -#: ../../mod/mitem.php:179 -msgid "Add menu element" -msgstr "Aggiungi un elemento al menù" +#: ../../mod/setup.php:281 +msgid "System check" +msgstr "Verifica del sistema" -#: ../../mod/mitem.php:180 -msgid "Delete this menu item" -msgstr "Elimina questo elemento del menù" +#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:668 +#: ../../mod/events.php:675 +msgid "Next" +msgstr "Successivo" -#: ../../mod/mitem.php:181 -msgid "Edit this menu item" -msgstr "Modifica questo elemento del menù" +#: ../../mod/setup.php:286 +msgid "Check again" +msgstr "Verifica di nuovo" -#: ../../mod/mitem.php:198 -msgid "Menu item not found." -msgstr "L'elemento del menù non è stato trovato." +#: ../../mod/setup.php:308 +msgid "Database connection" +msgstr "Connessione al database" -#: ../../mod/mitem.php:211 -msgid "Menu item deleted." -msgstr "L'elemento del menù è stato eliminato." +#: ../../mod/setup.php:309 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." +msgstr "Per poter installare $Projectname è necessario fornire i parametri di connessione al tuo database." -#: ../../mod/mitem.php:213 -msgid "Menu item could not be deleted." -msgstr "L'elemento del menù non può essere eliminato." +#: ../../mod/setup.php:310 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni." -#: ../../mod/mitem.php:220 -msgid "Edit Menu Element" -msgstr "Modifica l'elemento del menù" +#: ../../mod/setup.php:311 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare." -#: ../../mod/mitem.php:226 -msgid "Link text" -msgstr "Testo del link" +#: ../../mod/setup.php:315 +msgid "Database Server Name" +msgstr "Server del database" + +#: ../../mod/setup.php:315 +msgid "Default is 127.0.0.1" +msgstr "Il valore predefinito è 127.0.0.1" + +#: ../../mod/setup.php:316 +msgid "Database Port" +msgstr "Port del database" + +#: ../../mod/setup.php:316 +msgid "Communication port number - use 0 for default" +msgstr "Scrivi 0 per usare il valore standard" + +#: ../../mod/setup.php:317 +msgid "Database Login Name" +msgstr "Utente database" + +#: ../../mod/setup.php:318 +msgid "Database Login Password" +msgstr "Password database" + +#: ../../mod/setup.php:319 +msgid "Database Name" +msgstr "Nome database" + +#: ../../mod/setup.php:320 +msgid "Database Type" +msgstr "Tipo database" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "Site administrator email address" +msgstr "Indirizzo email dell'amministratore del hub" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione di Hubzilla." + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Website URL" +msgstr "URL completo del sito" + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Please use SSL (https) URL if available." +msgstr "Se disponibile, usa l'indirizzo SSL (https)." + +#: ../../mod/setup.php:325 ../../mod/setup.php:367 +msgid "Please select a default timezone for your website" +msgstr "Seleziona il fuso orario predefinito per il tuo hub" + +#: ../../mod/setup.php:352 +msgid "Site settings" +msgstr "Impostazioni del hub" + +#: ../../mod/setup.php:417 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web" + +#: ../../mod/setup.php:418 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron." +msgstr "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron." + +#: ../../mod/setup.php:422 +msgid "PHP executable path" +msgstr "Path del comando PHP" + +#: ../../mod/setup.php:422 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione." + +#: ../../mod/setup.php:427 +msgid "Command line PHP" +msgstr "PHP da riga di comando" + +#: ../../mod/setup.php:436 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"." + +#: ../../mod/setup.php:437 +msgid "This is required for message delivery to work." +msgstr "E' necessario perché funzioni la consegna dei messaggi." + +#: ../../mod/setup.php:440 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../mod/setup.php:458 +#, php-format +msgid "" +"Your max allowed total upload size is set to %s. Maximum size of one file to" +" upload is set to %s. You are allowed to upload up to %d files at once." +msgstr "La dimensione massima di un caricamento è impostata a %s. Il singolo file non può superare %s. Ti è permesso caricare max %d file per volta." + +#: ../../mod/setup.php:463 +msgid "You can adjust these settings in the servers php.ini." +msgstr "Puoi regolare queste impostazioni sul server in php.ini" + +#: ../../mod/setup.php:465 +msgid "PHP upload limits" +msgstr "Limiti PHP in upload" + +#: ../../mod/setup.php:488 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di cifratura" + +#: ../../mod/setup.php:489 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: ../../mod/setup.php:492 +msgid "Generate encryption keys" +msgstr "Genera chiavi di cifratura" + +#: ../../mod/setup.php:504 +msgid "libCurl PHP module" +msgstr "modulo PHP libCurl" + +#: ../../mod/setup.php:505 +msgid "GD graphics PHP module" +msgstr "modulo PHP GD graphics" + +#: ../../mod/setup.php:506 +msgid "OpenSSL PHP module" +msgstr "modulo PHP OpenSSL" + +#: ../../mod/setup.php:507 +msgid "mysqli or postgres PHP module" +msgstr "modulo PHP per mysqli oppure prostgres" + +#: ../../mod/setup.php:508 +msgid "mb_string PHP module" +msgstr "modulo PHP mb_string" + +#: ../../mod/setup.php:509 +msgid "mcrypt PHP module" +msgstr "modulo PHP mcrypt" + +#: ../../mod/setup.php:510 +msgid "xml PHP module" +msgstr "modulo xml PHP" + +#: ../../mod/setup.php:514 ../../mod/setup.php:516 +msgid "Apache mod_rewrite module" +msgstr "modulo Apache mod_rewrite" + +#: ../../mod/setup.php:514 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato" + +#: ../../mod/setup.php:520 ../../mod/setup.php:523 +msgid "proc_open" +msgstr "proc_open" + +#: ../../mod/setup.php:520 +msgid "" +"Error: proc_open is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini" + +#: ../../mod/setup.php:528 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato." + +#: ../../mod/setup.php:532 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato." + +#: ../../mod/setup.php:536 +msgid "Error: openssl PHP module required but not installed." +msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato." + +#: ../../mod/setup.php:540 +msgid "" +"Error: mysqli or postgres PHP module required but neither are installed." +msgstr "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato" + +#: ../../mod/setup.php:544 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato." + +#: ../../mod/setup.php:548 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato." + +#: ../../mod/setup.php:552 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "Errore: il modulo xml PHP è richiesto per DAV ma non è installato." + +#: ../../mod/setup.php:570 +msgid "" +"The web installer needs to be able to create a file called \".htconfig.php\"" +" in the top folder of your web server and it is unable to do so." +msgstr "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo." + +#: ../../mod/setup.php:571 +msgid "" +"This is most often a permission setting, as the web server may not be able " +"to write files in your folder - even if you can." +msgstr "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi." + +#: ../../mod/setup.php:572 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Red top folder." +msgstr "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla." + +#: ../../mod/setup.php:573 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni." + +#: ../../mod/setup.php:576 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php è scrivibile" + +#: ../../mod/setup.php:590 +msgid "" +"Red uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Hubzilla usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP." + +#: ../../mod/setup.php:591 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the Red top level folder." +msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di Hubzilla." + +#: ../../mod/setup.php:592 ../../mod/setup.php:613 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)." + +#: ../../mod/setup.php:593 +#, php-format +msgid "" +"Note: as a security measure, you should give the web server write access to " +"%s only--not the template files (.tpl) that it contains." +msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene." + +#: ../../mod/setup.php:596 +#, php-format +msgid "%s is writable" +msgstr "%s è scrivibile" + +#: ../../mod/setup.php:612 +msgid "" +"Red uses the store directory to save uploaded files. The web server needs to" +" have write access to the store directory under the Red top level folder" +msgstr "Hubzilla salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix" + +#: ../../mod/setup.php:616 +msgid "store is writable" +msgstr "l'archivio è scrivibile" + +#: ../../mod/setup.php:649 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access" +" to this site." +msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito." + +#: ../../mod/setup.php:650 +msgid "" +"If you have https access to your website or allow connections to TCP port " +"443 (the https: port), you MUST use a browser-valid certificate. You MUST " +"NOT use self-signed certificates!" +msgstr "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati self-signed generati da te!" + +#: ../../mod/setup.php:651 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." +msgstr "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server." + +#: ../../mod/setup.php:652 +msgid "" +"If your certificate is not recognized, members of other sites (who may " +"themselves have valid certificates) will get a warning message on their own " +"site complaining about security issues." +msgstr "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser." + +#: ../../mod/setup.php:653 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." +msgstr "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto." + +#: ../../mod/setup.php:654 +msgid "" +"Providers are available that issue free certificates which are browser-" +"valid." +msgstr "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser." + +#: ../../mod/setup.php:656 +msgid "SSL certificate validation" +msgstr "Validazione del certificato SSL" + +#: ../../mod/setup.php:662 +msgid "" +"Url rewrite in .htaccess is not working. Check your server " +"configuration.Test: " +msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:" + +#: ../../mod/setup.php:665 +msgid "Url rewrite is working" +msgstr "Url rewrite funziona correttamente" + +#: ../../mod/setup.php:674 +msgid "" +"The database configuration file \".htconfig.php\" could not be written. " +"Please use the enclosed text to create a configuration file in your web " +"server root." +msgstr "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito." + +#: ../../mod/setup.php:698 +msgid "Errors encountered creating database tables." +msgstr "La creazione delle tabelle del database ha generato errori." + +#: ../../mod/setup.php:732 +msgid "<h1>What next</h1>" +msgstr "<h1>I prossimi passi</h1>" + +#: ../../mod/setup.php:733 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling." + +#: ../../mod/bookmarks.php:40 +msgid "Bookmark added" +msgstr "Segnalibro aggiunto" + +#: ../../mod/bookmarks.php:62 +msgid "My Bookmarks" +msgstr "I miei segnalibri" + +#: ../../mod/bookmarks.php:73 +msgid "My Connections Bookmarks" +msgstr "I segnalibri dei miei contatti" + +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 +msgid "$Projectname" +msgstr "$Projectname" + +#: ../../mod/home.php:75 +#, php-format +msgid "Welcome to %s" +msgstr "%s ti dà il benvenuto" + +#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 +msgid "This setting requires special processing and editing has been blocked." +msgstr "Questa impostazione è bloccata, richiede criteri di modifica speciali" + +#: ../../mod/pconfig.php:49 +msgid "Configuration Editor" +msgstr "Editor di configurazione" + +#: ../../mod/pconfig.php:50 +msgid "" +"Warning: Changing some settings could render your channel inoperable. Please" +" leave this page unless you are comfortable with and knowledgeable about how" +" to correctly use this feature." +msgstr "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare." + +#: ../../mod/poke.php:164 +msgid "Poke/Prod" +msgstr "Poke/Prod" + +#: ../../mod/poke.php:165 +msgid "poke, prod or do other things to somebody" +msgstr "Manda un poke, un prod o altro" + +#: ../../mod/poke.php:166 +msgid "Recipient" +msgstr "Destinatario" + +#: ../../mod/poke.php:167 +msgid "Choose what you wish to do to recipient" +msgstr "Scegli cosa vuoi inviare al destinatario" + +#: ../../mod/poke.php:170 +msgid "Make this post private" +msgstr "Rendi privato questo post" + +#: ../../mod/profiles.php:19 ../../mod/profiles.php:184 +#: ../../mod/profiles.php:241 ../../mod/profiles.php:608 +msgid "Profile not found." +msgstr "Profilo non trovato." + +#: ../../mod/profiles.php:39 +msgid "Profile deleted." +msgstr "Profilo eliminato." + +#: ../../mod/profiles.php:63 ../../mod/profiles.php:99 +msgid "Profile-" +msgstr "Profilo-" + +#: ../../mod/profiles.php:84 ../../mod/profiles.php:127 +msgid "New profile created." +msgstr "Il nuovo profilo è stato creato." + +#: ../../mod/profiles.php:105 +msgid "Profile unavailable to clone." +msgstr "Impossibile duplicare il profilo." + +#: ../../mod/profiles.php:146 +msgid "Profile unavailable to export." +msgstr "Il profilo non è disponibile per l'export." + +#: ../../mod/profiles.php:251 +msgid "Profile Name is required." +msgstr "Il nome del profilo è obbligatorio." + +#: ../../mod/profiles.php:414 +msgid "Marital Status" +msgstr "Stato sentimentale" + +#: ../../mod/profiles.php:418 +msgid "Romantic Partner" +msgstr "Partner affettivo" + +#: ../../mod/profiles.php:422 +msgid "Likes" +msgstr "Mi piace" + +#: ../../mod/profiles.php:426 +msgid "Dislikes" +msgstr "Non mi piace" + +#: ../../mod/profiles.php:430 +msgid "Work/Employment" +msgstr "Lavoro/impiego" + +#: ../../mod/profiles.php:433 +msgid "Religion" +msgstr "Religione" + +#: ../../mod/profiles.php:437 +msgid "Political Views" +msgstr "Orientamento politico" + +#: ../../mod/profiles.php:445 +msgid "Sexual Preference" +msgstr "Preferenze sessuali" + +#: ../../mod/profiles.php:449 +msgid "Homepage" +msgstr "Home page" + +#: ../../mod/profiles.php:453 +msgid "Interests" +msgstr "Interessi" + +#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +msgid "Address" +msgstr "Indirizzo" + +#: ../../mod/profiles.php:547 +msgid "Profile updated." +msgstr "Profilo aggiornato." + +#: ../../mod/profiles.php:634 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?" + +#: ../../mod/profiles.php:674 +msgid "Edit Profile Details" +msgstr "Modifica i dettagli del profilo" + +#: ../../mod/profiles.php:676 +msgid "View this profile" +msgstr "Guarda questo profilo" + +#: ../../mod/profiles.php:678 +msgid "Change Profile Photo" +msgstr "Cambia la foto del profilo" + +#: ../../mod/profiles.php:679 +msgid "Create a new profile using these settings" +msgstr "Crea un nuovo profilo usando queste impostazioni" + +#: ../../mod/profiles.php:680 +msgid "Clone this profile" +msgstr "Clona questo profilo" + +#: ../../mod/profiles.php:681 +msgid "Delete this profile" +msgstr "Elimina questo profilo" + +#: ../../mod/profiles.php:683 +msgid "Import profile from file" +msgstr "Importa il profilo da un file" + +#: ../../mod/profiles.php:684 +msgid "Export profile to file" +msgstr "Esporta il profilo in un file" + +#: ../../mod/profiles.php:685 +msgid "Profile Name:" +msgstr "Nome del profilo:" + +#: ../../mod/profiles.php:686 +msgid "Your Full Name:" +msgstr "Il tuo nome completo:" + +#: ../../mod/profiles.php:687 +msgid "Title/Description:" +msgstr "Titolo/descrizione:" + +#: ../../mod/profiles.php:688 +msgid "Your Gender:" +msgstr "Sesso:" + +#: ../../mod/profiles.php:689 +msgid "Birthday :" +msgstr "Compleanno:" + +#: ../../mod/profiles.php:690 +msgid "Street Address:" +msgstr "Indirizzo (via/piazza):" + +#: ../../mod/profiles.php:691 +msgid "Locality/City:" +msgstr "Località:" + +#: ../../mod/profiles.php:692 +msgid "Postal/Zip Code:" +msgstr "CAP:" + +#: ../../mod/profiles.php:693 +msgid "Country:" +msgstr "Nazione:" + +#: ../../mod/profiles.php:694 +msgid "Region/State:" +msgstr "Regione/stato:" + +#: ../../mod/profiles.php:695 +msgid "<span class=\"heart\">♥</span> Marital Status:" +msgstr "<span class=\"heart\">♥</span> Stato sentimentale:" + +#: ../../mod/profiles.php:696 +msgid "Who: (if applicable)" +msgstr "Con chi: (se possibile)" + +#: ../../mod/profiles.php:697 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com" + +#: ../../mod/profiles.php:698 +msgid "Since [date]:" +msgstr "dal [data]:" + +#: ../../mod/profiles.php:700 +msgid "Homepage URL:" +msgstr "Indirizzo home page:" + +#: ../../mod/profiles.php:703 +msgid "Religious Views:" +msgstr "Orientamento religioso:" + +#: ../../mod/profiles.php:704 +msgid "Keywords:" +msgstr "Parole chiave, tag:" + +#: ../../mod/profiles.php:707 +msgid "Example: fishing photography software" +msgstr "Per esempio: pesca fotografia programmazione" + +#: ../../mod/profiles.php:708 +msgid "Used in directory listings" +msgstr "Visibile negli elenchi pubblici di canali" + +#: ../../mod/profiles.php:709 +msgid "Tell us about yourself..." +msgstr "Raccontaci di te..." + +#: ../../mod/profiles.php:710 +msgid "Hobbies/Interests" +msgstr "Hobby/interessi" + +#: ../../mod/profiles.php:711 +msgid "Contact information and Social Networks" +msgstr "Contatti personali e i tuoi social network" + +#: ../../mod/profiles.php:712 +msgid "My other channels" +msgstr "I miei altri canali" + +#: ../../mod/profiles.php:713 +msgid "Musical interests" +msgstr "Interessi musicali" + +#: ../../mod/profiles.php:714 +msgid "Books, literature" +msgstr "Libri, letteratura" + +#: ../../mod/profiles.php:715 +msgid "Television" +msgstr "Televisione" + +#: ../../mod/profiles.php:716 +msgid "Film/dance/culture/entertainment" +msgstr "Film/danza/cultura/intrattenimento" + +#: ../../mod/profiles.php:717 +msgid "Love/romance" +msgstr "Amore" + +#: ../../mod/profiles.php:718 +msgid "Work/employment" +msgstr "Lavoro/impiego" + +#: ../../mod/profiles.php:719 +msgid "School/education" +msgstr "Scuola/educazione" + +#: ../../mod/profiles.php:725 +msgid "This is your default profile." +msgstr "Questo è il tuo profilo predefinito." + +#: ../../mod/profiles.php:736 +msgid "Age: " +msgstr "Età:" + +#: ../../mod/profiles.php:779 +msgid "Edit/Manage Profiles" +msgstr "Modifica/gestisci i profili" + +#: ../../mod/profiles.php:780 +msgid "Add profile things" +msgstr "Aggiungi oggetti al profilo" + +#: ../../mod/profiles.php:781 +msgid "Include desirable objects in your profile" +msgstr "Aggiungi oggetti interessanti al tuo profilo" + +#: ../../mod/search.php:212 +#, php-format +msgid "Items tagged with: %s" +msgstr "Elementi taggati con: %s" + +#: ../../mod/search.php:214 +#, php-format +msgid "Search results for: %s" +msgstr "Risultati ricerca: %s" #: ../../mod/connedit.php:75 msgid "Could not access contact record." @@ -4718,249 +5520,249 @@ msgstr "Non è possibile accedere alle informazioni sul contatto." msgid "Could not locate selected profile." msgstr "Non riesco a trovare il profilo selezionato." -#: ../../mod/connedit.php:218 +#: ../../mod/connedit.php:223 msgid "Connection updated." msgstr "Contatto aggiornato." -#: ../../mod/connedit.php:220 +#: ../../mod/connedit.php:225 msgid "Failed to update connection record." msgstr "Impossibile aggiornare le informazioni del contatto." -#: ../../mod/connedit.php:267 +#: ../../mod/connedit.php:272 msgid "is now connected to" msgstr "ha come nuovo contatto" -#: ../../mod/connedit.php:390 +#: ../../mod/connedit.php:395 msgid "Could not access address book record." msgstr "Impossibile accedere alle informazioni della rubrica." -#: ../../mod/connedit.php:404 +#: ../../mod/connedit.php:409 msgid "Refresh failed - channel is currently unavailable." msgstr "Il canale non è disponibile - impossibile aggiornare." -#: ../../mod/connedit.php:413 ../../mod/connedit.php:422 -#: ../../mod/connedit.php:431 ../../mod/connedit.php:440 -#: ../../mod/connedit.php:453 +#: ../../mod/connedit.php:418 ../../mod/connedit.php:427 +#: ../../mod/connedit.php:436 ../../mod/connedit.php:445 +#: ../../mod/connedit.php:458 msgid "Unable to set address book parameters." msgstr "Impossibile impostare i parametri della rubrica." -#: ../../mod/connedit.php:477 +#: ../../mod/connedit.php:482 msgid "Connection has been removed." msgstr "Il contatto è stato rimosso." -#: ../../mod/connedit.php:496 +#: ../../mod/connedit.php:501 #, php-format msgid "View %s's profile" msgstr "Guarda il profilo di %s" -#: ../../mod/connedit.php:500 +#: ../../mod/connedit.php:505 msgid "Refresh Permissions" msgstr "Modifica i permessi" -#: ../../mod/connedit.php:503 +#: ../../mod/connedit.php:508 msgid "Fetch updated permissions" msgstr "Guarda e modifica i permessi assegnati" -#: ../../mod/connedit.php:507 +#: ../../mod/connedit.php:512 msgid "Recent Activity" msgstr "Attività recenti" -#: ../../mod/connedit.php:510 +#: ../../mod/connedit.php:515 msgid "View recent posts and comments" msgstr "Leggi i post recenti e i commenti" -#: ../../mod/connedit.php:514 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "Sblocca" -#: ../../mod/connedit.php:514 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "Blocca" -#: ../../mod/connedit.php:517 +#: ../../mod/connedit.php:522 msgid "Block (or Unblock) all communications with this connection" msgstr "Blocca ogni interazione con questo contatto (abilita/disabilita)" -#: ../../mod/connedit.php:518 +#: ../../mod/connedit.php:523 msgid "This connection is blocked!" msgstr "Questa connessione è tra quelle bloccate!" -#: ../../mod/connedit.php:522 +#: ../../mod/connedit.php:527 msgid "Unignore" msgstr "Non ignorare" -#: ../../mod/connedit.php:522 ../../mod/notifications.php:51 +#: ../../mod/connedit.php:527 ../../mod/notifications.php:51 msgid "Ignore" msgstr "Ignora" -#: ../../mod/connedit.php:525 +#: ../../mod/connedit.php:530 msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "Ignora tutte le comunicazioni in arrivo da questo contatto (abilita/disabilita)" -#: ../../mod/connedit.php:526 +#: ../../mod/connedit.php:531 msgid "This connection is ignored!" msgstr "Questa connessione è tra quelle ignorate!" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Unarchive" msgstr "Non archiviare" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Archive" msgstr "Archivia" -#: ../../mod/connedit.php:533 +#: ../../mod/connedit.php:538 msgid "" "Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "Archivia questo contatto (abilita/disabilita) - segna il canale come non più attivo ma ne conserva i contenuti" -#: ../../mod/connedit.php:534 +#: ../../mod/connedit.php:539 msgid "This connection is archived!" msgstr "Questa connessione è tra quelle archiviate!" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Unhide" msgstr "Non nascondere" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Hide" msgstr "Nascondi" -#: ../../mod/connedit.php:541 +#: ../../mod/connedit.php:546 msgid "Hide or Unhide this connection from your other connections" msgstr "Nascondi questo contatto a tutti gli altri (abilita/disabilita)" -#: ../../mod/connedit.php:542 +#: ../../mod/connedit.php:547 msgid "This connection is hidden!" msgstr "Questa connessione è tra quelle nascoste!" -#: ../../mod/connedit.php:549 +#: ../../mod/connedit.php:554 msgid "Delete this connection" msgstr "Elimina questo contatto" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Approve this connection" msgstr "Approva questo contatto" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Accept connection to allow communication" msgstr "Entra in contatto per poter comunicare" -#: ../../mod/connedit.php:635 +#: ../../mod/connedit.php:640 msgid "Set Affinity" msgstr "Scegli l'affinità" -#: ../../mod/connedit.php:638 +#: ../../mod/connedit.php:643 msgid "Set Profile" msgstr "Scegli il profilo da mostrare" -#: ../../mod/connedit.php:641 +#: ../../mod/connedit.php:646 msgid "Set Affinity & Profile" msgstr "Affinità e profilo" -#: ../../mod/connedit.php:670 +#: ../../mod/connedit.php:679 msgid "none" msgstr "--" -#: ../../mod/connedit.php:675 +#: ../../mod/connedit.php:684 msgid "Apply these permissions automatically" msgstr "Applica automaticamente questi permessi" -#: ../../mod/connedit.php:677 +#: ../../mod/connedit.php:686 msgid "This connection's primary address is" msgstr "Indirizzo primario di questo canale" -#: ../../mod/connedit.php:678 +#: ../../mod/connedit.php:687 msgid "Available locations:" msgstr "Indirizzi disponibili" -#: ../../mod/connedit.php:682 +#: ../../mod/connedit.php:691 msgid "" "The permissions indicated on this page will be applied to all new " "connections." msgstr "I permessi indicati su questa pagina saranno applicati a tutti i nuovi contatti da ora in poi." -#: ../../mod/connedit.php:684 +#: ../../mod/connedit.php:693 msgid "Slide to adjust your degree of friendship" msgstr "Trascina per restringere il grado di amicizia da mostrare" -#: ../../mod/connedit.php:686 +#: ../../mod/connedit.php:695 msgid "Slide to adjust your rating" msgstr "Trascina per cambiare la tua valutazione" -#: ../../mod/connedit.php:687 ../../mod/connedit.php:692 +#: ../../mod/connedit.php:696 ../../mod/connedit.php:701 msgid "Optionally explain your rating" msgstr "Commento facoltativo" -#: ../../mod/connedit.php:689 +#: ../../mod/connedit.php:698 msgid "Custom Filter" msgstr "Filtro personalizzato" -#: ../../mod/connedit.php:690 +#: ../../mod/connedit.php:699 msgid "Only import posts with this text" msgstr "Importa solo i post che contengono queste parole chiave" -#: ../../mod/connedit.php:690 ../../mod/connedit.php:691 +#: ../../mod/connedit.php:699 ../../mod/connedit.php:700 msgid "" "words one per line or #tags or /patterns/ or lang=xx, leave blank to import " "all posts" msgstr "per ogni riga: parole, #tag, /pattern/ o lang=xx , lascia vuoto per importare tutto" -#: ../../mod/connedit.php:691 +#: ../../mod/connedit.php:700 msgid "Do not import posts with this text" msgstr "Non importare i post con queste parole chiave" -#: ../../mod/connedit.php:693 +#: ../../mod/connedit.php:702 msgid "This information is public!" msgstr "Questa informazione è pubblica!" -#: ../../mod/connedit.php:698 +#: ../../mod/connedit.php:707 msgid "Connection Pending Approval" msgstr "Contatti in attesa di approvazione" -#: ../../mod/connedit.php:699 +#: ../../mod/connedit.php:708 msgid "Connection Request" msgstr "Richiesta di entrare in contatto" -#: ../../mod/connedit.php:700 +#: ../../mod/connedit.php:709 #, php-format msgid "" "(%s) would like to connect with you. Please approve this connection to allow" " communication." msgstr "(%s) vorrebbe entrare in contatto con te. Per permettere la comunicazione è necessario che tu approvi." -#: ../../mod/connedit.php:701 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "Approva" -#: ../../mod/connedit.php:702 +#: ../../mod/connedit.php:711 msgid "Approve Later" msgstr "Approva più tardi" -#: ../../mod/connedit.php:705 +#: ../../mod/connedit.php:714 msgid "inherited" msgstr "derivato" -#: ../../mod/connedit.php:707 +#: ../../mod/connedit.php:716 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Seleziona il profilo che vuoi mostrare a %s dopo che ha effettuato l'accesso." -#: ../../mod/connedit.php:709 +#: ../../mod/connedit.php:718 msgid "Their Settings" msgstr "Permessi concessi a te" -#: ../../mod/connedit.php:710 +#: ../../mod/connedit.php:719 msgid "My Settings" msgstr "Permessi che concedo" -#: ../../mod/connedit.php:712 +#: ../../mod/connedit.php:721 msgid "Individual Permissions" msgstr "Permessi individuali" -#: ../../mod/connedit.php:713 +#: ../../mod/connedit.php:722 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4968,7 +5770,7 @@ msgid "" " settings here." msgstr "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni di privacy</strong></a> del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Da questa pagina <strong>non</strong> puoi cambiarle." -#: ../../mod/connedit.php:714 +#: ../../mod/connedit.php:723 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4976,221 +5778,541 @@ msgid "" "they wont have any impact unless the inherited setting changes." msgstr "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni di privacy</strong></a> del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Le personalizzazioni che effettuerai qui potrebbero non essere effettive a meno che tu non cambi le impostazioni generali." -#: ../../mod/connedit.php:715 +#: ../../mod/connedit.php:724 msgid "Last update:" msgstr "Ultimo aggiornamento:" -#: ../../mod/mood.php:132 -msgid "Set your current mood and tell your friends" -msgstr "Scegli il tuo umore attuale per mostrarlo agli amici" +#: ../../mod/acl.php:222 +msgid "network" +msgstr "rete" -#: ../../mod/magic.php:69 -msgid "Hub not found." -msgstr "Hub non trovato." +#: ../../mod/acl.php:232 +msgid "RSS" +msgstr "RSS" -#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 -msgid "This setting requires special processing and editing has been blocked." -msgstr "Questa impostazione è bloccata, richiede criteri di modifica speciali" +#: ../../mod/dav.php:121 +msgid "$Projectname channel" +msgstr "Canale $Projectname" -#: ../../mod/pconfig.php:49 -msgid "Configuration Editor" -msgstr "Editor di configurazione" +#: ../../mod/dreport.php:23 +msgid "Invalid message" +msgstr "Messaggio non valido" -#: ../../mod/pconfig.php:50 +#: ../../mod/dreport.php:55 +msgid "no results" +msgstr "nessun risultato" + +#: ../../mod/dreport.php:60 +#, php-format +msgid "Delivery report for %1$s" +msgstr "Rapporto di consegna - %1$s" + +#: ../../mod/dreport.php:74 +msgid "channel sync processed" +msgstr "sincronizzazione del canale effettuata" + +#: ../../mod/dreport.php:78 +msgid "queued" +msgstr "in coda" + +#: ../../mod/dreport.php:82 +msgid "posted" +msgstr "inviato" + +#: ../../mod/dreport.php:86 +msgid "accepted for delivery" +msgstr "accettato per la spedizione" + +#: ../../mod/dreport.php:90 +msgid "updated" +msgstr "aggiornato" + +#: ../../mod/dreport.php:93 +msgid "update ignored" +msgstr "aggiornamento ignorato" + +#: ../../mod/dreport.php:96 +msgid "permission denied" +msgstr "permessi non sufficienti" + +#: ../../mod/dreport.php:100 +msgid "recipient not found" +msgstr "Destinatario non trovato" + +#: ../../mod/dreport.php:103 +msgid "mail recalled" +msgstr "messaggio richiamato dal mittente" + +#: ../../mod/dreport.php:106 +msgid "duplicate mail received" +msgstr "ricevuto messaggio duplicato" + +#: ../../mod/dreport.php:109 +msgid "mail delivered" +msgstr "messaggio recapitato" + +#: ../../mod/editwebpage.php:77 ../../mod/editblock.php:78 +#: ../../mod/editblock.php:94 ../../mod/editlayout.php:76 +#: ../../mod/editpost.php:20 +msgid "Item not found" +msgstr "Elemento non trovato" + +#: ../../mod/editwebpage.php:153 +msgid "Delete webpage?" +msgstr "Vuoi eliminare questa pagina web?" + +#: ../../mod/editwebpage.php:172 +msgid "Page link title" +msgstr "Link del titolo" + +#: ../../mod/editwebpage.php:185 ../../mod/editblock.php:145 +#: ../../mod/editlayout.php:143 ../../mod/editpost.php:121 +msgid "Insert YouTube video" +msgstr "Inserisci video da YouTube" + +#: ../../mod/editwebpage.php:186 ../../mod/editblock.php:146 +#: ../../mod/editlayout.php:144 ../../mod/editpost.php:122 +msgid "Insert Vorbis [.ogg] video" +msgstr "Inserisci video Vorbis [.ogg]" + +#: ../../mod/editwebpage.php:187 ../../mod/editblock.php:147 +#: ../../mod/editlayout.php:145 ../../mod/editpost.php:123 +msgid "Insert Vorbis [.ogg] audio" +msgstr "Inserisci audio Vorbis [.ogg]" + +#: ../../mod/editwebpage.php:222 +msgid "Edit Webpage" +msgstr "Modifica la pagina web" + +#: ../../mod/oexchange.php:23 +msgid "Unable to find your hub." +msgstr "Impossibile raggiungere il tuo hub." + +#: ../../mod/oexchange.php:37 +msgid "Post successful." +msgstr "Inviato!" + +#: ../../mod/ping.php:260 +msgid "sent you a private message" +msgstr "ti ha inviato un messaggio privato" + +#: ../../mod/ping.php:308 +msgid "added your channel" +msgstr "ha aggiunto il tuo canale" + +#: ../../mod/ping.php:350 +msgid "posted an event" +msgstr "ha creato un evento" + +#: ../../mod/api.php:76 ../../mod/api.php:102 +msgid "Authorize application connection" +msgstr "Autorizza la app" + +#: ../../mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Torna alla app e inserisci questo codice di sicurezza:" + +#: ../../mod/api.php:89 +msgid "Please login to continue." +msgstr "Accedi al sito per continuare." + +#: ../../mod/api.php:104 msgid "" -"Warning: Changing some settings could render your channel inoperable. Please" -" leave this page unless you are comfortable with and knowledgeable about how" -" to correctly use this feature." -msgstr "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare." +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?" -#: ../../mod/filestorage.php:82 -msgid "Permission Denied." -msgstr "Permesso negato." +#: ../../mod/notify.php:53 ../../mod/notifications.php:94 +msgid "No more system notifications." +msgstr "Non ci sono nuove notifiche di sistema." -#: ../../mod/filestorage.php:98 -msgid "File not found." -msgstr "File non trovato." +#: ../../mod/notify.php:57 ../../mod/notifications.php:98 +msgid "System Notifications" +msgstr "Notifiche di sistema" -#: ../../mod/filestorage.php:141 -msgid "Edit file permissions" -msgstr "Modifica i permessi del file" +#: ../../mod/rbmark.php:90 +msgid "Select a bookmark folder" +msgstr "Scegli una cartella di segnalibri" -#: ../../mod/filestorage.php:150 -msgid "Set/edit permissions" -msgstr "Modifica i permessi" +#: ../../mod/rbmark.php:95 +msgid "Save Bookmark" +msgstr "Salva segnalibro" -#: ../../mod/filestorage.php:151 -msgid "Include all files and sub folders" -msgstr "Includi tutti i file e le sottocartelle" +#: ../../mod/rbmark.php:96 +msgid "URL of bookmark" +msgstr "URL del segnalibro" -#: ../../mod/filestorage.php:152 -msgid "Return to file list" -msgstr "Torna all'elenco dei file" +#: ../../mod/rbmark.php:97 ../../mod/appman.php:93 ../../mod/events.php:465 +msgid "Description" +msgstr "Descrizione" -#: ../../mod/filestorage.php:154 -msgid "Copy/paste this code to attach file to a post" -msgstr "Copia/incolla questo codice per far comparire il file in un post" +#: ../../mod/rbmark.php:101 +msgid "Or enter new bookmark folder name" +msgstr "O inserisci il nome di una nuova cartella di segnalibri" -#: ../../mod/filestorage.php:155 -msgid "Copy/paste this URL to link file from a web page" -msgstr "Copia/incolla questo indirizzo in una pagina web per avere un link al file" +#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "Contatto non trovato." -#: ../../mod/filestorage.php:157 -msgid "Share this file" -msgstr "Condividi questo file" +#: ../../mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Suggerimento di amicizia inviato." -#: ../../mod/filestorage.php:158 -msgid "Show URL to this file" -msgstr "Mostra l'URL del file" +#: ../../mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Suggerisci amici" -#: ../../mod/filestorage.php:159 -msgid "Notify your contacts about this file" -msgstr "Notifica ai contatti che hai caricato questo file" +#: ../../mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Suggerisci un amico a %s" -#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 -msgid "This site is not a directory server" -msgstr "Questo non è un directory server" +#: ../../mod/sources.php:32 +msgid "Failed to create source. No channel selected." +msgstr "Impossibile creare la sorgente. Nessun canale selezionato." -#: ../../mod/layouts.php:121 ../../mod/layouts.php:179 -#: ../../mod/editlayout.php:161 -msgid "Layout Name" -msgstr "Nome layout" +#: ../../mod/sources.php:45 +msgid "Source created." +msgstr "Sorgente creata." -#: ../../mod/layouts.php:124 ../../mod/editlayout.php:159 -msgid "Layout Description (Optional)" -msgstr "Descrizione del layout (facoltativa)" +#: ../../mod/sources.php:57 +msgid "Source updated." +msgstr "Sorgente aggiornata." -#: ../../mod/layouts.php:176 -msgid "Comanche page description language help" -msgstr "Guida di Comanche Page Description Language" +#: ../../mod/sources.php:82 +msgid "*" +msgstr "*" -#: ../../mod/layouts.php:180 -msgid "Layout Description" -msgstr "Descrizione del layout" +#: ../../mod/sources.php:89 +msgid "Manage remote sources of content for your channel." +msgstr "Gestisci le sorgenti dei contenuti del tuo canale." -#: ../../mod/layouts.php:185 -msgid "Download PDL file" -msgstr "Scarica il file PDL" +#: ../../mod/sources.php:90 ../../mod/sources.php:100 +msgid "New Source" +msgstr "Nuova sorgente" -#: ../../mod/poke.php:164 -msgid "Poke/Prod" -msgstr "Poke/Prod" +#: ../../mod/sources.php:101 ../../mod/sources.php:133 +msgid "" +"Import all or selected content from the following channel into this channel " +"and distribute it according to your channel settings." +msgstr "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente." -#: ../../mod/poke.php:165 -msgid "poke, prod or do other things to somebody" -msgstr "Manda un poke, un prod o altro" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Only import content with these words (one per line)" +msgstr "Importa solo i contenuti che hanno queste parole (una per riga)" -#: ../../mod/poke.php:166 -msgid "Recipient" -msgstr "Destinatario" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Leave blank to import all public content" +msgstr "Lascia vuoto per importare tutti i contenuti pubblici" -#: ../../mod/poke.php:167 -msgid "Choose what you wish to do to recipient" -msgstr "Scegli cosa vuoi inviare al destinatario" +#: ../../mod/sources.php:123 ../../mod/sources.php:150 +msgid "Source not found." +msgstr "Sorgente non trovata." -#: ../../mod/poke.php:170 -msgid "Make this post private" -msgstr "Rendi privato questo post" +#: ../../mod/sources.php:130 +msgid "Edit Source" +msgstr "Modifica la sorgente" -#: ../../mod/network.php:91 -msgid "No such group" -msgstr "Impossibile trovare l'insieme" +#: ../../mod/sources.php:131 +msgid "Delete Source" +msgstr "Elimina la sorgente" -#: ../../mod/network.php:131 -msgid "No such channel" -msgstr "Canale sconosciuto" +#: ../../mod/sources.php:158 +msgid "Source removed" +msgstr "Sorgente eliminata" -#: ../../mod/network.php:136 -msgid "forum" -msgstr "forum" +#: ../../mod/sources.php:160 +msgid "Unable to remove source." +msgstr "Impossibile rimuovere la sorgente." -#: ../../mod/network.php:148 -msgid "Search Results For:" -msgstr "Cerca risultati con:" +#: ../../mod/notifications.php:26 +msgid "Invalid request identifier." +msgstr "L'identificativo della richiesta non è valido." -#: ../../mod/network.php:207 -msgid "Collection is empty" -msgstr "L'insieme di canali è vuoto" +#: ../../mod/notifications.php:35 +msgid "Discard" +msgstr "Rifiuta" -#: ../../mod/network.php:216 -msgid "Collection: " -msgstr "Insieme:" +#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 +msgid "Tag removed" +msgstr "Tag rimosso" -#: ../../mod/network.php:242 -msgid "Invalid connection." -msgstr "Contatto non valido." +#: ../../mod/tagrm.php:119 +msgid "Remove Item Tag" +msgstr "Rimuovi il tag" -#: ../../mod/chat.php:19 ../../mod/channel.php:25 -msgid "You must be logged in to see this page." -msgstr "Devi aver effettuato l'accesso per vedere questa pagina." +#: ../../mod/tagrm.php:121 +msgid "Select a tag to remove: " +msgstr "Seleziona un tag da rimuovere: " -#: ../../mod/chat.php:174 -msgid "Room not found" -msgstr "Chat non trovata" +#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +msgid "Remove" +msgstr "Rimuovi" -#: ../../mod/chat.php:185 -msgid "Leave Room" -msgstr "Lascia la chat" +#: ../../mod/directory.php:236 +#, php-format +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d valutazione" +msgstr[1] "%d valutazioni" -#: ../../mod/chat.php:186 -msgid "Delete This Room" -msgstr "Elimina questa chat" +#: ../../mod/directory.php:247 +msgid "Gender: " +msgstr "Sesso:" -#: ../../mod/chat.php:187 -msgid "I am away right now" -msgstr "Non sono presente" +#: ../../mod/directory.php:249 +msgid "Status: " +msgstr "Stato:" -#: ../../mod/chat.php:188 -msgid "I am online" -msgstr "Sono online" +#: ../../mod/directory.php:251 +msgid "Homepage: " +msgstr "Homepage:" -#: ../../mod/chat.php:190 -msgid "Bookmark this room" -msgstr "Aggiungi questa chat ai segnalibri" +#: ../../mod/directory.php:310 +msgid "Description:" +msgstr "Descrizione:" -#: ../../mod/chat.php:208 ../../mod/chat.php:231 -msgid "New Chatroom" -msgstr "Nuova chat" +#: ../../mod/directory.php:319 +msgid "Public Forum:" +msgstr "Forum pubblico:" -#: ../../mod/chat.php:209 -msgid "Chatroom Name" -msgstr "Nome della chat" +#: ../../mod/directory.php:322 +msgid "Keywords: " +msgstr "Parole chiave:" -#: ../../mod/chat.php:210 -msgid "Expiration of chats (minutes)" -msgstr "Scadenza dei messaggi della chat (minuti)" +#: ../../mod/directory.php:325 +msgid "Don't suggest" +msgstr "Non fornire suggerimenti" -#: ../../mod/chat.php:227 +#: ../../mod/directory.php:327 +msgid "Common connections:" +msgstr "Contatti in comune:" + +#: ../../mod/directory.php:376 +msgid "Global Directory" +msgstr "Elenchi pubblici globali" + +#: ../../mod/directory.php:376 +msgid "Local Directory" +msgstr "Elenco canali su questo hub" + +#: ../../mod/directory.php:382 +msgid "Finding:" +msgstr "Ricerca:" + +#: ../../mod/directory.php:387 +msgid "next page" +msgstr "pagina successiva" + +#: ../../mod/directory.php:387 +msgid "previous page" +msgstr "pagina precedente" + +#: ../../mod/directory.php:388 +msgid "Sort options" +msgstr "Opzioni di ordinamento" + +#: ../../mod/directory.php:389 +msgid "Alphabetic" +msgstr "Alfabetico" + +#: ../../mod/directory.php:390 +msgid "Reverse Alphabetic" +msgstr "Alfabetico inverso" + +#: ../../mod/directory.php:391 +msgid "Newest to Oldest" +msgstr "Prima i più recenti" + +#: ../../mod/directory.php:392 +msgid "Oldest to Newest" +msgstr "Prima i più vecchi" + +#: ../../mod/directory.php:409 +msgid "No entries (some entries may be hidden)." +msgstr "Nessun risultato (qualche elemento potrebbe essere nascosto)." + +#: ../../mod/lostpass.php:15 +msgid "No valid account found." +msgstr "Nessun account valido trovato." + +#: ../../mod/lostpass.php:29 +msgid "Password reset request issued. Check your email." +msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email." + +#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 #, php-format -msgid "%1$s's Chatrooms" -msgstr "Le chat di %1$s" +msgid "Site Member (%s)" +msgstr "Utente del sito (%s)" -#: ../../mod/search.php:211 +#: ../../mod/lostpass.php:40 #, php-format -msgid "Items tagged with: %s" -msgstr "Elementi taggati con: %s" +msgid "Password reset requested at %s" +msgstr "È stato richiesto di reimpostare password su %s" + +#: ../../mod/lostpass.php:63 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata." + +#: ../../mod/lostpass.php:86 ../../boot.php:1494 +msgid "Password Reset" +msgstr "Reimposta la password" + +#: ../../mod/lostpass.php:87 +msgid "Your password has been reset as requested." +msgstr "La password è stata reimpostata come richiesto." + +#: ../../mod/lostpass.php:88 +msgid "Your new password is" +msgstr "La tua nuova password è" + +#: ../../mod/lostpass.php:89 +msgid "Save or copy your new password - and then" +msgstr "Salva o copia la tua nuova password, quindi" -#: ../../mod/search.php:213 +#: ../../mod/lostpass.php:90 +msgid "click here to login" +msgstr "clicca qui per accedere" + +#: ../../mod/lostpass.php:91 +msgid "" +"Your password may be changed from the <em>Settings</em> page after " +"successful login." +msgstr "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso." + +#: ../../mod/lostpass.php:108 #, php-format -msgid "Search results for: %s" -msgstr "Risultati ricerca: %s" +msgid "Your password has changed at %s" +msgstr "La tua password su %s è cambiata" -#: ../../mod/rate.php:158 -msgid "Website:" -msgstr "Sito web:" +#: ../../mod/lostpass.php:123 +msgid "Forgot your Password?" +msgstr "Hai dimenticato la password?" -#: ../../mod/rate.php:161 +#: ../../mod/lostpass.php:124 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare." + +#: ../../mod/lostpass.php:125 +msgid "Email Address" +msgstr "Indirizzo email" + +#: ../../mod/lostpass.php:126 +msgid "Reset" +msgstr "Reimposta" + +#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 +msgid "This site is not a directory server" +msgstr "Questo non è un directory server" + +#: ../../mod/impel.php:192 #, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Canale remoto [%s] (non ancora conosciuto da questo sito)" +msgid "%s element installed" +msgstr "%s elemento installato" -#: ../../mod/rate.php:162 -msgid "Rating (this information is public)" -msgstr "Valutazione (visibile a tutti)" +#: ../../mod/impel.php:195 +#, php-format +msgid "%s element installation failed" +msgstr "Elementi con installazione fallita: %s" -#: ../../mod/rate.php:163 -msgid "Optionally explain your rating (this information is public)" -msgstr "Commento alla valutazione (facoltativo, visibile a tutti)" +#: ../../mod/subthread.php:114 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s sta seguendo %3$s di %2$s" + +#: ../../mod/subthread.php:116 +#, php-format +msgid "%1$s stopped following %2$s's %3$s" +msgstr "%1$s non segue più %3$s di %2$s" + +#: ../../mod/import.php:28 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Il tuo account permette di creare al massimo %d canali." + +#: ../../mod/import.php:66 ../../mod/import_items.php:38 +msgid "Nothing to import." +msgstr "Non c'è niente da importare." + +#: ../../mod/import.php:90 ../../mod/import_items.php:62 +msgid "Unable to download data from old server" +msgstr "Impossibile importare i dati dal vecchio hub" + +#: ../../mod/import.php:96 ../../mod/import_items.php:68 +msgid "Imported file is empty." +msgstr "Il file da importare è vuoto." + +#: ../../mod/import.php:116 ../../mod/import_items.php:82 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." +msgstr "Attenzione: le versioni di database differiscono di %1$d aggiornamenti." + +#: ../../mod/import.php:149 +msgid "No channel. Import failed." +msgstr "Nessun canale. Import fallito." + +#: ../../mod/import.php:509 +msgid "You must be logged in to use this feature." +msgstr "Per questa funzionalità devi aver effettuato l'accesso." + +#: ../../mod/import.php:514 +msgid "Import Channel" +msgstr "Importa un canale" + +#: ../../mod/import.php:515 +msgid "" +"Use this form to import an existing channel from a different server/hub. You" +" may retrieve the channel identity from the old server/hub via the network " +"or provide an export file." +msgstr "Usa questo modulo per importare un tuo canale da un altro hub. Puoi ottenere i dati identificativi del canale direttamente dall'altro hub oppure tramite un file esportato in precedenza." + +#: ../../mod/import.php:516 ../../mod/import_items.php:121 +msgid "File to Upload" +msgstr "File da caricare" + +#: ../../mod/import.php:517 +msgid "Or provide the old server/hub details" +msgstr "Oppure fornisci i dettagli del vecchio hub" + +#: ../../mod/import.php:518 +msgid "Your old identity address (xyz@example.com)" +msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)" + +#: ../../mod/import.php:519 +msgid "Your old login email address" +msgstr "L'email che usavi per accedere sul vecchio hub" + +#: ../../mod/import.php:520 +msgid "Your old login password" +msgstr "La password per il vecchio hub" + +#: ../../mod/import.php:521 +msgid "" +"For either option, please choose whether to make this hub your new primary " +"address, or whether your old location should continue this role. You will be" +" able to post from either location, but only one can be marked as the " +"primary location for files, photos, and media." +msgstr "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc." + +#: ../../mod/import.php:522 +msgid "Make this hub my primary location" +msgstr "Rendi questo hub il mio indirizzo primario" + +#: ../../mod/import.php:523 +msgid "" +"Import existing posts if possible (experimental - limited by available " +"memory" +msgstr "Importa i contenuti pubblicati, se possibile (sperimentale)" + +#: ../../mod/import.php:524 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." +msgstr "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore lanciala *una volta sola* e resta su questa pagina finché non avrà finito." #: ../../mod/photos.php:79 msgid "Page owner information could not be retrieved." @@ -5267,14 +6389,6 @@ msgstr "Prima i più recenti" msgid "Show Oldest First" msgstr "Prima i più vecchi" -#: ../../mod/photos.php:753 ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "Guarda la foto" - -#: ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "Modifica album" - #: ../../mod/photos.php:827 msgid "Permission denied. Access to this item may be restricted." msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato." @@ -5291,7 +6405,7 @@ msgstr "Usa come foto del profilo" msgid "Private Photo" msgstr "Foto privata" -#: ../../mod/photos.php:905 ../../mod/events.php:528 +#: ../../mod/photos.php:905 ../../mod/events.php:667 ../../mod/events.php:674 msgid "Previous" msgstr "Precendente" @@ -5299,14 +6413,6 @@ msgstr "Precendente" msgid "View Full Size" msgstr "Vedi nelle dimensioni originali" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 -msgid "Next" -msgstr "Successivo" - -#: ../../mod/photos.php:954 ../../mod/tagrm.php:133 -msgid "Remove" -msgstr "Rimuovi" - #: ../../mod/photos.php:988 msgid "Edit photo" msgstr "Modifica la foto" @@ -5359,115 +6465,340 @@ msgstr "Guarda l'album" msgid "Recent Photos" msgstr "Foto recenti" -#: ../../mod/dreport.php:23 -msgid "Invalid message" -msgstr "Messaggio non valido" +#: ../../mod/probe.php:24 ../../mod/probe.php:30 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "La chiamata all'URL restituisce questo errore: %1$s" -#: ../../mod/dreport.php:55 -msgid "no results" -msgstr "nessun risultato" +#: ../../mod/profile_photo.php:112 +msgid "Image uploaded but image cropping failed." +msgstr "L'immagine è stata caricata, ma il non è stato possibile ritagliarla." -#: ../../mod/dreport.php:60 +#: ../../mod/profile_photo.php:166 +msgid "Image resize failed." +msgstr "Il ridimensionamento dell'immagine è fallito." + +#: ../../mod/profile_photo.php:212 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente." + +#: ../../mod/profile_photo.php:250 +msgid "Image upload failed." +msgstr "Il caricamento dell'immagine è fallito." + +#: ../../mod/profile_photo.php:269 +msgid "Unable to process image." +msgstr "Impossibile elaborare l'immagine." + +#: ../../mod/profile_photo.php:297 +msgid "female" +msgstr "femmina" + +#: ../../mod/profile_photo.php:298 #, php-format -msgid "Delivery report for %1$s" -msgstr "Rapporto di consegna - %1$s" +msgid "%1$s updated her %2$s" +msgstr "Aggiornamento: %2$s di %1$s" -#: ../../mod/dreport.php:74 -msgid "channel sync processed" -msgstr "sincronizzazione del canale effettuata" +#: ../../mod/profile_photo.php:299 +msgid "male" +msgstr "maschio" -#: ../../mod/dreport.php:78 -msgid "queued" -msgstr "in coda" +#: ../../mod/profile_photo.php:300 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "Aggiornamento: %2$s di %1$s" -#: ../../mod/dreport.php:82 -msgid "posted" -msgstr "inviato" +#: ../../mod/profile_photo.php:302 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "Aggiornamento: %2$s di %1$s" -#: ../../mod/dreport.php:86 -msgid "accepted for delivery" -msgstr "accettato per la spedizione" +#: ../../mod/profile_photo.php:304 +msgid "profile photo" +msgstr "foto del profilo" -#: ../../mod/dreport.php:90 -msgid "updated" -msgstr "aggiornato" +#: ../../mod/profile_photo.php:368 ../../mod/profile_photo.php:409 +msgid "Photo not available." +msgstr "Foto non disponibile." -#: ../../mod/dreport.php:93 -msgid "update ignored" -msgstr "aggiornamento ignorato" +#: ../../mod/profile_photo.php:450 +msgid "Upload File:" +msgstr "Carica un file:" -#: ../../mod/dreport.php:96 -msgid "permission denied" -msgstr "permessi non sufficienti" +#: ../../mod/profile_photo.php:451 +msgid "Select a profile:" +msgstr "Seleziona un profilo:" -#: ../../mod/dreport.php:100 -msgid "recipient not found" -msgstr "Destinatario non trovato" +#: ../../mod/profile_photo.php:452 +msgid "Upload Profile Photo" +msgstr "Carica la foto del profilo" -#: ../../mod/dreport.php:103 -msgid "mail recalled" -msgstr "messaggio richiamato dal mittente" +#: ../../mod/profile_photo.php:457 ../../mod/settings.php:975 +msgid "or" +msgstr "o" -#: ../../mod/dreport.php:106 -msgid "duplicate mail received" -msgstr "ricevuto messaggio duplicato" +#: ../../mod/profile_photo.php:457 +msgid "skip this step" +msgstr "salta questo passaggio" -#: ../../mod/dreport.php:109 -msgid "mail delivered" -msgstr "messaggio recapitato" +#: ../../mod/profile_photo.php:457 +msgid "select a photo from your photo albums" +msgstr "seleziona una foto dai tuoi album" -#: ../../mod/editblock.php:78 ../../mod/editblock.php:94 -#: ../../mod/editpost.php:20 ../../mod/editlayout.php:76 -#: ../../mod/editwebpage.php:77 -msgid "Item not found" -msgstr "Elemento non trovato" +#: ../../mod/profile_photo.php:473 +msgid "Crop Image" +msgstr "Ritaglia immagine" -#: ../../mod/editblock.php:118 -msgid "Delete block?" -msgstr "Vuoi eliminare questo block?" +#: ../../mod/profile_photo.php:474 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Ritaglia l'immagine per migliorarne la visualizzazione." -#: ../../mod/editblock.php:145 ../../mod/editpost.php:121 -#: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:185 -msgid "Insert YouTube video" -msgstr "Inserisci video da YouTube" +#: ../../mod/profile_photo.php:476 +msgid "Done Editing" +msgstr "Modifica terminata" -#: ../../mod/editblock.php:146 ../../mod/editpost.php:122 -#: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:186 -msgid "Insert Vorbis [.ogg] video" -msgstr "Inserisci video Vorbis [.ogg]" +#: ../../mod/thing.php:111 +msgid "Thing updated" +msgstr "L'oggetto è stato aggiornato" -#: ../../mod/editblock.php:147 ../../mod/editpost.php:123 -#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:187 -msgid "Insert Vorbis [.ogg] audio" -msgstr "Inserisci audio Vorbis [.ogg]" +#: ../../mod/thing.php:163 +msgid "Object store: failed" +msgstr "Impossibile memorizzare l'oggetto." -#: ../../mod/editblock.php:180 -msgid "Edit Block" -msgstr "Modifica il block" +#: ../../mod/thing.php:167 +msgid "Thing added" +msgstr "L'Oggetto è stato aggiunto" + +#: ../../mod/thing.php:193 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../mod/thing.php:256 +msgid "Show Thing" +msgstr "Mostra l'oggetto" + +#: ../../mod/thing.php:263 +msgid "item not found." +msgstr "non trovato." + +#: ../../mod/thing.php:296 +msgid "Edit Thing" +msgstr "Modifica l'oggetto" + +#: ../../mod/thing.php:298 ../../mod/thing.php:348 +msgid "Select a profile" +msgstr "Scegli un profilo" + +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Post an activity" +msgstr "Pubblica un'attività" + +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Only sends to viewers of the applicable profile" +msgstr "Invia solo a chi può vedere il profilo scelto" + +#: ../../mod/thing.php:304 ../../mod/thing.php:353 +msgid "Name of thing e.g. something" +msgstr "Nome dell'oggetto" + +#: ../../mod/thing.php:306 ../../mod/thing.php:354 +msgid "URL of thing (optional)" +msgstr "Indirizzo web dell'oggetto (facoltativo)" + +#: ../../mod/thing.php:308 ../../mod/thing.php:355 +msgid "URL for photo of thing (optional)" +msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)" + +#: ../../mod/thing.php:346 +msgid "Add Thing to your Profile" +msgstr "Aggiungi l'oggetto al tuo profilo" #: ../../mod/dirsearch.php:29 msgid "This directory server requires an access token" msgstr "Questo directory server necessita di un token di autenticazione" -#: ../../mod/editpost.php:31 -msgid "Item is not editable" -msgstr "L'elemento non è modificabile" +#: ../../mod/editblock.php:118 +msgid "Delete block?" +msgstr "Vuoi eliminare questo block?" -#: ../../mod/editpost.php:55 -msgid "Delete item?" -msgstr "Eliminare questo elemento?" +#: ../../mod/editblock.php:180 +msgid "Edit Block" +msgstr "Modifica il block" -#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 -msgid "Edit post" -msgstr "Modifica post" +#: ../../mod/removeaccount.php:30 +msgid "" +"Account removals are not allowed within 48 hours of changing the account " +"password." +msgstr "Non è possibile eliminare il tuo account prima di 48 ore dall'ultimo cambio password." -#: ../../mod/oexchange.php:23 -msgid "Unable to find your hub." -msgstr "Impossibile raggiungere il tuo hub." +#: ../../mod/removeaccount.php:57 +msgid "Remove This Account" +msgstr "Elimina questo account" -#: ../../mod/oexchange.php:37 -msgid "Post successful." -msgstr "Inviato!" +#: ../../mod/removeaccount.php:58 +msgid "" +"This account and all its channels will be completely removed from the " +"network. " +msgstr "Questo account e tutti i suoi canali saranno completamente eliminati dalla rete." + +#: ../../mod/removeaccount.php:60 +msgid "" +"Remove this account, all its channels and all its channel clones from the " +"network" +msgstr "Elimina dalla rete questo account, tutti i suoi canali e ANCHE tutti gli eventuali canali clonati." + +#: ../../mod/removeaccount.php:60 +msgid "" +"By default only the instances of the channels located on this hub will be " +"removed from the network" +msgstr "A meno che tu non lo richieda espressamente, solo i canali presenti su questo hub saranno rimossi dalla rete." + +#: ../../mod/removeaccount.php:61 ../../mod/settings.php:700 +msgid "Remove Account" +msgstr "Elimina l'account" + +#: ../../mod/import_items.php:101 +msgid "Import completed" +msgstr "Importazione completata" + +#: ../../mod/import_items.php:119 +msgid "Import Items" +msgstr "Importa i contenuti" + +#: ../../mod/import_items.php:120 +msgid "" +"Use this form to import existing posts and content from an export file." +msgstr "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza." + +#: ../../mod/network.php:91 +msgid "No such group" +msgstr "Impossibile trovare l'insieme" + +#: ../../mod/network.php:131 +msgid "No such channel" +msgstr "Canale sconosciuto" + +#: ../../mod/network.php:136 +msgid "forum" +msgstr "forum" + +#: ../../mod/network.php:148 +msgid "Search Results For:" +msgstr "Cerca risultati con:" + +#: ../../mod/network.php:207 +msgid "Collection is empty" +msgstr "L'insieme di canali è vuoto" + +#: ../../mod/network.php:216 +msgid "Collection: " +msgstr "Insieme:" + +#: ../../mod/network.php:242 +msgid "Invalid connection." +msgstr "Contatto non valido." + +#: ../../mod/pdledit.php:13 +msgid "Layout updated." +msgstr "Layout aggiornato." + +#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 +msgid "Edit System Page Description" +msgstr "Modifica i layout di sistema" + +#: ../../mod/pdledit.php:48 +msgid "Layout not found." +msgstr "Layout non trovato." + +#: ../../mod/pdledit.php:54 +msgid "Module Name:" +msgstr "Nome del modulo:" + +#: ../../mod/pdledit.php:55 +msgid "Layout Help" +msgstr "Guida al layout" + +#: ../../mod/register.php:44 +msgid "Maximum daily site registrations exceeded. Please try again tomorrow." +msgstr "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!" + +#: ../../mod/register.php:50 +msgid "" +"Please indicate acceptance of the Terms of Service. Registration failed." +msgstr "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio." + +#: ../../mod/register.php:84 +msgid "Passwords do not match." +msgstr "Le password non corrispondono." + +#: ../../mod/register.php:117 +msgid "" +"Registration successful. Please check your email for validation " +"instructions." +msgstr "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata." + +#: ../../mod/register.php:123 +msgid "Your registration is pending approval by the site owner." +msgstr "La tua richiesta è in attesa di approvazione da parte dell'amministratore di questo hub." + +#: ../../mod/register.php:126 +msgid "Your registration can not be processed." +msgstr "La tua registrazione non puo' essere processata." + +#: ../../mod/register.php:163 +msgid "Registration on this site/hub is by approval only." +msgstr "La registrazione su questo hub è soggetta ad approvazione." + +#: ../../mod/register.php:164 +msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" +msgstr "<a href=\"pubsites\">Registrati su un altro hub affiliato</a>" + +#: ../../mod/register.php:174 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Questo hub ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani." + +#: ../../mod/register.php:185 +msgid "Terms of Service" +msgstr "Condizioni d'Uso" + +#: ../../mod/register.php:191 +#, php-format +msgid "I accept the %s for this website" +msgstr "Accetto le %s di questo sito" + +#: ../../mod/register.php:193 +#, php-format +msgid "I am over 13 years of age and accept the %s for this website" +msgstr "Ho più di 13 anni e accetto le %s di questo sito" + +#: ../../mod/register.php:207 ../../mod/admin.php:436 +msgid "Registration" +msgstr "Registrazione" + +#: ../../mod/register.php:212 +msgid "Membership on this site is by invitation only." +msgstr "Per registrarsi su questo hub è necessario un invito." + +#: ../../mod/register.php:213 +msgid "Please enter your invitation code" +msgstr "Inserisci il codice dell'invito" + +#: ../../mod/register.php:216 +msgid "Your email address" +msgstr "Il tuo indirizzo email" + +#: ../../mod/register.php:217 +msgid "Choose a password" +msgstr "Scegli una password" + +#: ../../mod/register.php:218 +msgid "Please re-enter your password" +msgstr "Ripeti la password per verifica" #: ../../mod/admin.php:52 msgid "Theme settings updated." @@ -5505,10 +6836,10 @@ msgstr "# cloni" msgid "Message queues" msgstr "Coda messaggi in uscita" -#: ../../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 "Amministrazione" @@ -5520,7 +6851,7 @@ msgstr "Riepilogo" msgid "Registered accounts" msgstr "Account creati" -#: ../../mod/admin.php:203 ../../mod/admin.php:535 +#: ../../mod/admin.php:203 ../../mod/admin.php:536 msgid "Pending registrations" msgstr "Registrazioni da approvare" @@ -5528,7 +6859,7 @@ msgstr "Registrazioni da approvare" msgid "Registered channels" msgstr "Canali creati" -#: ../../mod/admin.php:205 ../../mod/admin.php:536 +#: ../../mod/admin.php:205 ../../mod/admin.php:537 msgid "Active plugins" msgstr "Plugin attivi" @@ -5540,7 +6871,7 @@ msgstr "Versione" msgid "Site settings updated." msgstr "Impostazioni del sito salvate correttamente." -#: ../../mod/admin.php:361 ../../mod/settings.php:791 +#: ../../mod/admin.php:361 ../../mod/settings.php:793 msgid "mobile" msgstr "mobile" @@ -5552,1935 +6883,677 @@ msgstr "sperimentale" msgid "unsupported" msgstr "non supportato" -#: ../../mod/admin.php:410 +#: ../../mod/admin.php:411 msgid "Yes - with approval" msgstr "Sì - con approvazione" -#: ../../mod/admin.php:416 +#: ../../mod/admin.php:417 msgid "My site is not a public server" msgstr "Non è un server pubblico" -#: ../../mod/admin.php:417 +#: ../../mod/admin.php:418 msgid "My site has paid access only" msgstr "È un servizio a pagamento" -#: ../../mod/admin.php:418 +#: ../../mod/admin.php:419 msgid "My site has free access only" msgstr "È un servizio gratuito" -#: ../../mod/admin.php:419 +#: ../../mod/admin.php:420 msgid "My site offers free accounts with optional paid upgrades" msgstr "È un servizio gratuito con opzioni aggiuntive a pagamento" -#: ../../mod/admin.php:435 ../../mod/register.php:207 -msgid "Registration" -msgstr "Registrazione" - -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:437 msgid "File upload" msgstr "Caricamento file" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:438 msgid "Policies" msgstr "Politiche" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:443 msgid "Site name" msgstr "Nome del sito" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:444 msgid "Banner/Logo" msgstr "Banner o logo" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "Administrator Information" msgstr "Informazioni sull'amministratore" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:445 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "Informazioni per contattare gli amministratori del sito. Saranno mostrate sulla pagina di informazioni. È consentito il BBcode" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:446 msgid "System language" msgstr "Lingua di sistema" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "System theme" msgstr "Tema di sistema" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:447 msgid "" "Default system theme - may be over-ridden by user profiles - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "Il tema di sistema può essere cambiato dai profili dei singoli utenti - <a href='#' id='cnftheme'>Cambia le impostazioni del tema</a>" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Mobile system theme" msgstr "Tema di sistema per dispositivi mobili" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:448 msgid "Theme for mobile devices" msgstr "Tema per i dispositivi mobili" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "Allow Feeds as Connections" msgstr "Permetti di aggiungere i feed come contatti" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:450 msgid "(Heavy system resource usage)" msgstr "(Uso intenso delle risorse di sistema!)" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "Maximum image size" msgstr "Dimensione massima immagini" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:451 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "Massima dimensione in byte delle immagini caricate. Il default è 0, cioè nessun limite." -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:452 msgid "Does this site allow new member registration?" msgstr "Questo sito permette a nuovi utenti di registrarsi?" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:453 msgid "Which best describes the types of account offered by this hub?" msgstr "Come descriveresti il tipo di servizio proposto da questo server?" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Register text" msgstr "Testo di registrazione" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:454 msgid "Will be displayed prominently on the registration page." msgstr "Sarà mostrato ben visibile nella pagina di registrazione." -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:455 msgid "Site homepage to show visitors (default: login box)" msgstr "Homepage del sito da mostrare ai navigatori (predefinito: modulo di login)" -#: ../../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 "esempio: 'public' per mostrare i contenuti pubblici degli utenti, 'page/sys/home' per mostrare la pagina web definita come 'home' oppure 'include:home.html' per mostrare il contenuto di un file." -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:456 msgid "Preserve site homepage URL" msgstr "Conserva l'URL della homepage" -#: ../../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 homepage del sito in un frame all'indirizzo attuale invece di un redirect." -#: ../../mod/admin.php:456 +#: ../../mod/admin.php:457 msgid "Accounts abandoned after x days" msgstr "Account abbandonati dopo X giorni" -#: ../../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 "Eviterà di sprecare risorse di sistema controllando se i siti esterni hanno account abbandonati. Immettere 0 per non imporre nessun limite di tempo." -#: ../../mod/admin.php:457 +#: ../../mod/admin.php:458 msgid "Allowed friend domains" msgstr "Domini fidati e consentiti" -#: ../../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 "Elenco separato da virgola dei domini che possono stabilire amicizie con questo sito. Sono accettati caratteri jolly. Lascia vuoto per accettare connessioni da qualsiasi dominio." -#: ../../mod/admin.php:458 +#: ../../mod/admin.php:459 msgid "Allowed email domains" msgstr "Domini email consentiti" -#: ../../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 "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione. Sono accettati caratteri jolly. Lascia vuoto per accettare qualsiasi dominio email" -#: ../../mod/admin.php:459 +#: ../../mod/admin.php:460 msgid "Not allowed email domains" msgstr "Domini email non consentiti" -#: ../../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 "Elenco separato da virgola dei domini permessi come indirizzi email in fase di registrazione a questo sito. Sono accettati caratteri jolly. Lascalo vuoto per accettare qualsiasi dominio." -#: ../../mod/admin.php:460 +#: ../../mod/admin.php:461 msgid "Block public" msgstr "Blocca pagine pubbliche" -#: ../../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 "Seleziona per impedire di vedere le pagine personali di questo sito a chi non ha effettuato l'accesso." -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "Verify Email Addresses" msgstr "Verifica l'indirizzo email" -#: ../../mod/admin.php:461 +#: ../../mod/admin.php:462 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "Attiva per richiedere la verifica degli indirizzi email dei nuovi utenti (consigliato)." -#: ../../mod/admin.php:462 +#: ../../mod/admin.php:463 msgid "Force publish" msgstr "Forza la publicazione del profilo" -#: ../../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 "Seleziona per pubblicare sui directory server <strong>tutti</strong> i profili registrati su questo sito." -#: ../../mod/admin.php:463 +#: ../../mod/admin.php:464 msgid "Disable discovery tab" msgstr "Disabilita la funzione 'scopri'" -#: ../../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 "Nell'area della rete personale non comparirà più la scheda con i contenuti acquisiti da altri siti." -#: ../../mod/admin.php:464 +#: ../../mod/admin.php:465 msgid "login on Homepage" msgstr "Mostra il login sulla homepage" -#: ../../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 "Presenta il modulo di login ai visitatori sulla homepage in mancanza di altri contenuti." -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Directory Server URL" msgstr "URL del directory server" -#: ../../mod/admin.php:466 +#: ../../mod/admin.php:467 msgid "Default directory server" msgstr "Directory server predefinito" -#: ../../mod/admin.php:468 +#: ../../mod/admin.php:469 msgid "Proxy user" msgstr "Utente 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 "Timeout rete" -#: ../../mod/admin.php:470 +#: ../../mod/admin.php:471 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "Valore in secondi. Imposta a 0 per illimitato (sconsigliato)." -#: ../../mod/admin.php:471 +#: ../../mod/admin.php:472 msgid "Delivery interval" msgstr "Recapito ritardato" -#: ../../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 "Numero di secondi di cui può essere ritardato il recapito, per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati." -#: ../../mod/admin.php:472 +#: ../../mod/admin.php:473 msgid "Deliveries per process" msgstr "Tentativi di recapito per processo" -#: ../../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 di tentativi di recapito da tentare per ciascun processo. Può essere modificato per migliorare le performance di sistema. Raccomandato: 1-5" -#: ../../mod/admin.php:473 +#: ../../mod/admin.php:474 msgid "Poll interval" msgstr "Intervallo di polling" -#: ../../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 "Numero di secondi di cui può essere ritardato il polling in background, per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'." -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "Maximum Load Average" msgstr "Carico massimo medio" -#: ../../mod/admin.php:474 +#: ../../mod/admin.php:475 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50." -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "Expiration period in days for imported (matrix/network) content" msgstr "Scadenza dei contenuti importati da altri siti (in giorni)" -#: ../../mod/admin.php:475 +#: ../../mod/admin.php:476 msgid "0 for no expiration of imported content" msgstr "0 per non avere scadenza" -#: ../../mod/admin.php:523 +#: ../../mod/admin.php:524 msgid "No server found" msgstr "Server non trovato" -#: ../../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 "per il canale" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "on server" msgstr "sul server" -#: ../../mod/admin.php:530 +#: ../../mod/admin.php:531 msgid "Status" msgstr "Stato" -#: ../../mod/admin.php:532 +#: ../../mod/admin.php:533 msgid "Server" msgstr "Server" -#: ../../mod/admin.php:549 +#: ../../mod/admin.php:550 msgid "Update has been marked successful" msgstr "L'aggiornamento è stato marcato come eseguito." -#: ../../mod/admin.php:559 +#: ../../mod/admin.php:560 #, php-format msgid "Executing %s failed. Check system logs." msgstr "Fallita l'esecuzione di %s. Maggiori informazioni sui log di sistema." -#: ../../mod/admin.php:562 +#: ../../mod/admin.php:563 #, php-format msgid "Update %s was successfully applied." msgstr "L'aggiornamento %s è terminato correttamente." -#: ../../mod/admin.php:566 +#: ../../mod/admin.php:567 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "L'aggiornamento %s non ha dato risposta. Impossibile determinare se è terminato correttamente." -#: ../../mod/admin.php:569 +#: ../../mod/admin.php:570 #, php-format msgid "Update function %s could not be found." msgstr "Impossibile trovare la funzione di aggiornamento %s" -#: ../../mod/admin.php:585 +#: ../../mod/admin.php:586 msgid "No failed updates." msgstr "Nessun aggiornamento fallito." -#: ../../mod/admin.php:589 +#: ../../mod/admin.php:590 msgid "Failed Updates" msgstr "Aggiornamenti falliti." -#: ../../mod/admin.php:591 +#: ../../mod/admin.php:592 msgid "Mark success (if update was manually applied)" msgstr "Marca come eseguito (se applicato manualmente)." -#: ../../mod/admin.php:592 +#: ../../mod/admin.php:593 msgid "Attempt to execute this update step automatically" msgstr "Tenta di eseguire in automatico questo passaggio dell'aggiornamento." -#: ../../mod/admin.php:624 +#: ../../mod/admin.php:625 msgid "Queue Statistics" msgstr "Statistiche della coda" -#: ../../mod/admin.php:625 +#: ../../mod/admin.php:626 msgid "Total Entries" msgstr "Totale" -#: ../../mod/admin.php:626 +#: ../../mod/admin.php:627 msgid "Priority" msgstr "Priorità" -#: ../../mod/admin.php:627 +#: ../../mod/admin.php:628 msgid "Destination URL" msgstr "URL di destinazione" -#: ../../mod/admin.php:628 +#: ../../mod/admin.php:629 msgid "Mark hub permanently offline" msgstr "Questo hub è definitivamente offline" -#: ../../mod/admin.php:629 +#: ../../mod/admin.php:630 msgid "Empty queue for this hub" msgstr "Svuota la coda per questo hub" -#: ../../mod/admin.php:630 +#: ../../mod/admin.php:631 msgid "Last known contact" msgstr "Ultimo scambio dati" -#: ../../mod/admin.php:666 +#: ../../mod/admin.php:667 #, php-format msgid "%s account blocked/unblocked" msgid_plural "%s account blocked/unblocked" msgstr[0] "Modificato il blocco su %s account" msgstr[1] "Modificato il blocco verso %s" -#: ../../mod/admin.php:674 +#: ../../mod/admin.php:675 #, php-format msgid "%s account deleted" msgid_plural "%s accounts deleted" msgstr[0] "%s account eliminato" msgstr[1] "%s account eliminati" -#: ../../mod/admin.php:710 +#: ../../mod/admin.php:711 msgid "Account not found" msgstr "Account non trovato" -#: ../../mod/admin.php:722 +#: ../../mod/admin.php:723 #, php-format msgid "Account '%s' deleted" msgstr "Account '%s' eliminato" -#: ../../mod/admin.php:730 +#: ../../mod/admin.php:731 #, php-format msgid "Account '%s' blocked" msgstr "Aggiunto un blocco verso '%s'" -#: ../../mod/admin.php:738 +#: ../../mod/admin.php:739 #, php-format msgid "Account '%s' unblocked" msgstr "Rimosso il blocco verso '%s'" -#: ../../mod/admin.php:800 ../../mod/admin.php:812 +#: ../../mod/admin.php:801 ../../mod/admin.php:813 msgid "Users" msgstr "Utenti" -#: ../../mod/admin.php:802 ../../mod/admin.php:966 +#: ../../mod/admin.php:803 ../../mod/admin.php:967 msgid "select all" msgstr "seleziona tutti" -#: ../../mod/admin.php:803 +#: ../../mod/admin.php:804 msgid "User registrations waiting for confirm" msgstr "Richieste di registrazione in attesa di conferma" -#: ../../mod/admin.php:804 +#: ../../mod/admin.php:805 msgid "Request date" msgstr "Data richiesta" -#: ../../mod/admin.php:805 +#: ../../mod/admin.php:806 msgid "No registrations." msgstr "Nessuna registrazione." -#: ../../mod/admin.php:807 +#: ../../mod/admin.php:808 msgid "Deny" msgstr "Nega" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Register date" msgstr "Data registrazione" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Last login" msgstr "Ultimo accesso" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Expires" msgstr "Con scadenza" -#: ../../mod/admin.php:813 +#: ../../mod/admin.php:814 msgid "Service Class" msgstr "Classe dell'account" -#: ../../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 "Gli account selezionati saranno eliminati!\\n\\nTutto ciò che hanno caricato o pubblicato su questo sito sarà eliminato definitivamente!\\n\\nVuoi confermare?" -#: ../../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 "L'account {0} sarà eliminato!\\n\\nTutto ciò che ha caricato o pubblicato su questo sito sarà eliminato definitivamente!\\n\\nVuoi confermare?" -#: ../../mod/admin.php:852 +#: ../../mod/admin.php:853 #, php-format msgid "%s channel censored/uncensored" msgid_plural "%s channels censored/uncensored" msgstr[0] "Censura modificata per %s canale" msgstr[1] "Censura modificata per %s canali" -#: ../../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 canale permette/non permette codice nei contenuti" msgstr[1] "%s canali permettono/non permettono codice nei contenuti" -#: ../../mod/admin.php:868 +#: ../../mod/admin.php:869 #, php-format msgid "%s channel deleted" msgid_plural "%s channels deleted" msgstr[0] "%s canale è stato rimosso" msgstr[1] "%s canali sono stati rimossi" -#: ../../mod/admin.php:888 +#: ../../mod/admin.php:889 msgid "Channel not found" msgstr "Canale non trovato" -#: ../../mod/admin.php:899 +#: ../../mod/admin.php:900 #, php-format msgid "Channel '%s' deleted" msgstr "Il canale '%s' è stato rimosso" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' censored" msgstr "Applicata una censura al canale '%s'" -#: ../../mod/admin.php:911 +#: ../../mod/admin.php:912 #, php-format msgid "Channel '%s' uncensored" msgstr "Rimossa la censura dal canale '%s'" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code allowed" msgstr "Il canale '%s' permette codice nei contenuti" -#: ../../mod/admin.php:922 +#: ../../mod/admin.php:923 #, php-format msgid "Channel '%s' code disallowed" msgstr "Il canale '%s' non permette codice nei contenuti" -#: ../../mod/admin.php:968 +#: ../../mod/admin.php:969 msgid "Censor" msgstr "Applica una censura" -#: ../../mod/admin.php:969 +#: ../../mod/admin.php:970 msgid "Uncensor" msgstr "Rimuovi la censura" -#: ../../mod/admin.php:970 +#: ../../mod/admin.php:971 msgid "Allow Code" msgstr "Permetti codice nei contenuti" -#: ../../mod/admin.php:971 +#: ../../mod/admin.php:972 msgid "Disallow Code" msgstr "Non permettere codice nei contenuti" -#: ../../mod/admin.php:973 +#: ../../mod/admin.php:974 msgid "UID" msgstr "UID" -#: ../../mod/admin.php:973 ../../mod/profiles.php:447 -msgid "Address" -msgstr "Indirizzo" - -#: ../../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 "I canali selezionati saranno rimossi!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questi canali sarà irreversibilmente eliminato!\\n\\nVuoi confermare?" -#: ../../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 "Il canale {0} sarà rimosso!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questo canale sarà irreversibilmente eliminato!\\n\\nVuoi confermare?" -#: ../../mod/admin.php:1016 +#: ../../mod/admin.php:1017 #, php-format msgid "Plugin %s disabled." msgstr "Plugin %s non attivo." -#: ../../mod/admin.php:1020 +#: ../../mod/admin.php:1021 #, php-format msgid "Plugin %s enabled." msgstr "Plugin %s attivo." -#: ../../mod/admin.php:1030 ../../mod/admin.php:1228 +#: ../../mod/admin.php:1031 ../../mod/admin.php:1234 msgid "Disable" msgstr "Disattiva" -#: ../../mod/admin.php:1033 ../../mod/admin.php:1230 +#: ../../mod/admin.php:1034 ../../mod/admin.php:1236 msgid "Enable" msgstr "Attiva" -#: ../../mod/admin.php:1057 ../../mod/admin.php:1257 +#: ../../mod/admin.php:1063 ../../mod/admin.php:1263 msgid "Toggle" msgstr "Attiva/disattiva" -#: ../../mod/admin.php:1065 ../../mod/admin.php:1267 +#: ../../mod/admin.php:1071 ../../mod/admin.php:1273 msgid "Author: " msgstr "Autore:" -#: ../../mod/admin.php:1066 ../../mod/admin.php:1268 +#: ../../mod/admin.php:1072 ../../mod/admin.php:1274 msgid "Maintainer: " msgstr "Gestore:" -#: ../../mod/admin.php:1193 +#: ../../mod/admin.php:1199 msgid "No themes found." msgstr "Nessun tema trovato." -#: ../../mod/admin.php:1249 +#: ../../mod/admin.php:1255 msgid "Screenshot" msgstr "Istantanea dello schermo" -#: ../../mod/admin.php:1295 +#: ../../mod/admin.php:1301 msgid "[Experimental]" msgstr "[Sperimentale]" -#: ../../mod/admin.php:1296 +#: ../../mod/admin.php:1302 msgid "[Unsupported]" msgstr "[Non supportato]" -#: ../../mod/admin.php:1320 +#: ../../mod/admin.php:1326 msgid "Log settings updated." msgstr "Impostazioni di log aggiornate." -#: ../../mod/admin.php:1377 +#: ../../mod/admin.php:1383 msgid "Clear" msgstr "Pulisci" -#: ../../mod/admin.php:1383 +#: ../../mod/admin.php:1389 msgid "Debugging" msgstr "Debugging" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "Log file" msgstr "File di log" -#: ../../mod/admin.php:1384 +#: ../../mod/admin.php:1390 msgid "" "Must be writable by web server. Relative to your Red top-level directory." msgstr "Deve essere scrivibile dal web server. La posizione è relativa alla cartella dove è installato Hubzilla." -#: ../../mod/admin.php:1385 +#: ../../mod/admin.php:1391 msgid "Log level" msgstr "Livello di log" -#: ../../mod/admin.php:1431 +#: ../../mod/admin.php:1437 msgid "New Profile Field" msgstr "Nuovo campo del profilo" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "Field nickname" msgstr "Nome breve del campo" -#: ../../mod/admin.php:1432 ../../mod/admin.php:1452 +#: ../../mod/admin.php:1438 ../../mod/admin.php:1458 msgid "System name of field" msgstr "Nome di sistema del campo" -#: ../../mod/admin.php:1433 ../../mod/admin.php:1453 +#: ../../mod/admin.php:1439 ../../mod/admin.php:1459 msgid "Input type" msgstr "Tipo di dati" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Field Name" msgstr "Nome del campo" -#: ../../mod/admin.php:1434 ../../mod/admin.php:1454 +#: ../../mod/admin.php:1440 ../../mod/admin.php:1460 msgid "Label on profile pages" msgstr "Etichetta da mostrare sulla pagina del profilo" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Help text" msgstr "Testo di aiuto" -#: ../../mod/admin.php:1435 ../../mod/admin.php:1455 +#: ../../mod/admin.php:1441 ../../mod/admin.php:1461 msgid "Additional info (optional)" msgstr "Informazioni aggiuntive (facoltative)" -#: ../../mod/admin.php:1445 +#: ../../mod/admin.php:1451 msgid "Field definition not found" msgstr "Impossibile trovare la definizione del campo" -#: ../../mod/admin.php:1451 +#: ../../mod/admin.php:1457 msgid "Edit Profile Field" msgstr "Modifica campo del profilo" -#: ../../mod/appman.php:28 ../../mod/appman.php:44 -msgid "App installed." -msgstr "App installata" - -#: ../../mod/appman.php:37 -msgid "Malformed app." -msgstr "L'app contiene errori" - -#: ../../mod/appman.php:80 -msgid "Embed code" -msgstr "Inserisci il codice" - -#: ../../mod/appman.php:86 -msgid "Edit App" -msgstr "Modifica app" - -#: ../../mod/appman.php:86 -msgid "Create App" -msgstr "Crea una app" - -#: ../../mod/appman.php:91 -msgid "Name of app" -msgstr "Nome app" - -#: ../../mod/appman.php:92 -msgid "Location (URL) of app" -msgstr "Indirizzo (URL) della app" - -#: ../../mod/appman.php:93 ../../mod/rbmark.php:97 -msgid "Description" -msgstr "Descrizione" - -#: ../../mod/appman.php:94 -msgid "Photo icon URL" -msgstr "URL icona" - -#: ../../mod/appman.php:94 -msgid "80 x 80 pixels - optional" -msgstr "80 x 80 pixel - facoltativa" - -#: ../../mod/appman.php:95 -msgid "Version ID" -msgstr "ID versione" - -#: ../../mod/appman.php:96 -msgid "Price of app" -msgstr "Prezzo app" - -#: ../../mod/appman.php:97 -msgid "Location (URL) to purchase app" -msgstr "Indirizzo (URL) per acquistare la app" - -#: ../../mod/menu.php:45 -msgid "Unable to update menu." -msgstr "Impossibile aggiornare il menù." - -#: ../../mod/menu.php:56 -msgid "Unable to create menu." -msgstr "Impossibile creare il menù." - -#: ../../mod/menu.php:94 ../../mod/menu.php:106 -msgid "Menu Name" -msgstr "Nome del menu" - -#: ../../mod/menu.php:94 -msgid "Unique name (not visible on webpage) - required" -msgstr "Nome unico (non visibile sulla pagina) - obbligatorio" - -#: ../../mod/menu.php:95 ../../mod/menu.php:107 -msgid "Menu Title" -msgstr "Titolo del menu" - -#: ../../mod/menu.php:95 -msgid "Visible on webpage - leave empty for no title" -msgstr "Visibile sulla pagina - lascia vuoto per non avere un titolo" - -#: ../../mod/menu.php:96 -msgid "Allow Bookmarks" -msgstr "Permetti i segnalibri" - -#: ../../mod/menu.php:96 ../../mod/menu.php:153 -msgid "Menu may be used to store saved bookmarks" -msgstr "Puoi salvare i segnalibri nei menù" - -#: ../../mod/menu.php:97 ../../mod/menu.php:155 -msgid "Submit and proceed" -msgstr "Salva e procedi" - -#: ../../mod/menu.php:109 -msgid "Drop" -msgstr "Elimina" - -#: ../../mod/menu.php:113 -msgid "Bookmarks allowed" -msgstr "Permetti segnalibri" - -#: ../../mod/menu.php:115 -msgid "Delete this menu" -msgstr "Elimina questo menù" - -#: ../../mod/menu.php:116 ../../mod/menu.php:150 -msgid "Edit menu contents" -msgstr "Modifica i contenuti del menù" - -#: ../../mod/menu.php:117 -msgid "Edit this menu" -msgstr "Modifica questo menù" - -#: ../../mod/menu.php:132 -msgid "Menu could not be deleted." -msgstr "Il menù non può essere eliminato." - -#: ../../mod/menu.php:145 -msgid "Edit Menu" -msgstr "Modifica menù" - -#: ../../mod/menu.php:149 -msgid "Add or remove entries to this menu" -msgstr "Aggiungi o rimuovi elementi di questo menù" - -#: ../../mod/menu.php:151 -msgid "Menu name" -msgstr "Nome del menù" - -#: ../../mod/menu.php:151 -msgid "Must be unique, only seen by you" -msgstr "Deve essere unico, lo vedrai solo tu" - -#: ../../mod/menu.php:152 -msgid "Menu title" -msgstr "Titolo del menù" - -#: ../../mod/menu.php:152 -msgid "Menu title as seen by others" -msgstr "Titolo del menù come comparirà a tutti" - -#: ../../mod/menu.php:153 -msgid "Allow bookmarks" -msgstr "Permetti l'invio di segnalibri" - -#: ../../mod/notify.php:53 ../../mod/notifications.php:94 -msgid "No more system notifications." -msgstr "Non ci sono nuove notifiche di sistema." - -#: ../../mod/notify.php:57 ../../mod/notifications.php:98 -msgid "System Notifications" -msgstr "Notifiche di sistema" - -#: ../../mod/page.php:126 -msgid "" -"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " -"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," -" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " -"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " -"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " -"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." -msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - -#: ../../mod/new_channel.php:109 -msgid "Add a Channel" -msgstr "Aggiungi un canale" - -#: ../../mod/new_channel.php:110 -msgid "" -"A channel is your own collection of related web pages. A channel can be used" -" to hold social network profiles, blogs, conversation groups and forums, " -"celebrity pages, and much more. You may create as many channels as your " -"service provider allows." -msgstr "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti te ne permette il tuo sito." - -#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 -#: ../../mod/sources.php:137 -msgid "Channel Name" -msgstr "Nome del canale" - -#: ../../mod/new_channel.php:113 -msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " -msgstr "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\"" - -#: ../../mod/new_channel.php:114 -msgid "Choose a short nickname" -msgstr "Scegli un nome breve" - -#: ../../mod/new_channel.php:115 -msgid "" -"Your nickname will be used to create an easily remembered channel address " -"(like an email address) which you can share with others." -msgstr "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti." - -#: ../../mod/new_channel.php:116 -msgid "Or <a href=\"import\">import an existing channel</a> from another location" -msgstr "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro hub" - -#: ../../mod/new_channel.php:118 -msgid "" -"Please choose a channel type (such as social networking or community forum) " -"and privacy requirements so we can select the best permissions for you" -msgstr "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. Hubzilla sceglierà per te i permessi più adatti." - -#: ../../mod/new_channel.php:119 -msgid "Channel Type" -msgstr "Tipo di canale" - -#: ../../mod/new_channel.php:119 -msgid "Read more about roles" -msgstr "Maggiori informazioni sui ruoli" - -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." -msgstr "L'identificativo della richiesta non è valido." - -#: ../../mod/notifications.php:35 -msgid "Discard" -msgstr "Rifiuta" - -#: ../../mod/pdledit.php:13 -msgid "Layout updated." -msgstr "Layout aggiornato." - -#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 -msgid "Edit System Page Description" -msgstr "Modifica i layout di sistema" - -#: ../../mod/pdledit.php:48 -msgid "Layout not found." -msgstr "Layout non trovato." - -#: ../../mod/pdledit.php:54 -msgid "Module Name:" -msgstr "Nome del modulo:" - -#: ../../mod/pdledit.php:55 -msgid "Layout Help" -msgstr "Guida al layout" - -#: ../../mod/subthread.php:108 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s sta seguendo %3$s di %2$s" - -#: ../../mod/subthread.php:110 -#, php-format -msgid "%1$s stopped following %2$s's %3$s" -msgstr "%1$s non segue più %3$s di %2$s" - -#: ../../mod/lostpass.php:15 -msgid "No valid account found." -msgstr "Nessun account valido trovato." - -#: ../../mod/lostpass.php:29 -msgid "Password reset request issued. Check your email." -msgstr "La richiesta per reimpostare la password è stata inviata. Controlla la tua email." - -#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 -#, php-format -msgid "Site Member (%s)" -msgstr "Utente del sito (%s)" - -#: ../../mod/lostpass.php:40 -#, php-format -msgid "Password reset requested at %s" -msgstr "È stato richiesto di reimpostare password su %s" - -#: ../../mod/lostpass.php:63 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata." - -#: ../../mod/lostpass.php:86 ../../boot.php:1511 -msgid "Password Reset" -msgstr "Reimposta la password" - -#: ../../mod/lostpass.php:87 -msgid "Your password has been reset as requested." -msgstr "La password è stata reimpostata come richiesto." - -#: ../../mod/lostpass.php:88 -msgid "Your new password is" -msgstr "La tua nuova password è" - -#: ../../mod/lostpass.php:89 -msgid "Save or copy your new password - and then" -msgstr "Salva o copia la tua nuova password, quindi" - -#: ../../mod/lostpass.php:90 -msgid "click here to login" -msgstr "clicca qui per accedere" - -#: ../../mod/lostpass.php:91 -msgid "" -"Your password may be changed from the <em>Settings</em> page after " -"successful login." -msgstr "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso." - -#: ../../mod/lostpass.php:108 -#, php-format -msgid "Your password has changed at %s" -msgstr "La tua password su %s è cambiata" - -#: ../../mod/lostpass.php:123 -msgid "Forgot your Password?" -msgstr "Hai dimenticato la password?" - -#: ../../mod/lostpass.php:124 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare." - -#: ../../mod/lostpass.php:125 -msgid "Email Address" -msgstr "Indirizzo email" - -#: ../../mod/lostpass.php:126 -msgid "Reset" -msgstr "Reimposta" - -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 -msgid "$Projectname" -msgstr "$Projectname" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "%s ti dà il benvenuto" - -#: ../../mod/dav.php:121 -msgid "$Projectname channel" -msgstr "Canale $Projectname" - -#: ../../mod/events.php:21 -msgid "Calendar entries imported." -msgstr "Le voci del calendario sono state importate." - -#: ../../mod/events.php:23 -msgid "No calendar entries found." -msgstr "Non sono state trovate voci del calendario." - -#: ../../mod/events.php:96 -msgid "Event can not end before it has started." -msgstr "Un evento non può terminare prima del suo inizio." - -#: ../../mod/events.php:98 ../../mod/events.php:107 ../../mod/events.php:127 -msgid "Unable to generate preview." -msgstr "Impossibile creare un'anteprima." - -#: ../../mod/events.php:105 -msgid "Event title and start time are required." -msgstr "Sono necessari il titolo e l'ora d'inizio dell'evento." - -#: ../../mod/events.php:125 ../../mod/events.php:250 -msgid "Event not found." -msgstr "Evento non trovato." - -#: ../../mod/events.php:448 -msgid "l, F j" -msgstr "l j F" - -#: ../../mod/events.php:470 -msgid "Edit event" -msgstr "Modifica l'evento" - -#: ../../mod/events.php:472 -msgid "Delete event" -msgstr "Elimina l'evento" - -#: ../../mod/events.php:506 -msgid "calendar" -msgstr "calendario" - -#: ../../mod/events.php:527 -msgid "Create New Event" -msgstr "Crea un nuovo evento" - -#: ../../mod/events.php:530 -msgid "Export" -msgstr "Esporta" - -#: ../../mod/events.php:533 -msgid "Import" -msgstr "Importa" - -#: ../../mod/events.php:564 -msgid "Event removed" -msgstr "Evento eliminato" - -#: ../../mod/events.php:567 -msgid "Failed to remove event" -msgstr "Impossibile eliminare l'evento" - -#: ../../mod/events.php:681 -msgid "Event details" -msgstr "Dettagli evento" - -#: ../../mod/events.php:682 -msgid "Starting date and Title are required." -msgstr "Titolo e data d'inizio sono obbligatori." - -#: ../../mod/events.php:684 -msgid "Categories (comma-separated list)" -msgstr "Categorie (separate da virgola)" - -#: ../../mod/events.php:686 -msgid "Event Starts:" -msgstr "Inizio:" - -#: ../../mod/events.php:693 -msgid "Finish date/time is not known or not relevant" -msgstr "La data/ora di fine non è rilevante" - -#: ../../mod/events.php:695 -msgid "Event Finishes:" -msgstr "Fine:" - -#: ../../mod/events.php:697 ../../mod/events.php:698 -msgid "Adjust for viewer timezone" -msgstr "Adatta al fuso orario di chi legge" - -#: ../../mod/events.php:697 -msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." -msgstr "Importante per eventi che avvengono online ma con un certo fuso orario." - -#: ../../mod/events.php:703 -msgid "Title:" -msgstr "Titolo:" - -#: ../../mod/events.php:705 -msgid "Share this event" -msgstr "Condividi questo evento" - -#: ../../mod/impel.php:192 -#, php-format -msgid "%s element installed" -msgstr "%s elemento installato" - -#: ../../mod/impel.php:195 -#, php-format -msgid "%s element installation failed" -msgstr "Elementi con installazione fallita: %s" - -#: ../../mod/probe.php:24 ../../mod/probe.php:30 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "La chiamata all'URL restituisce questo errore: %1$s" - -#: ../../mod/match.php:22 -msgid "Profile Match" -msgstr "Profili corrispondenti" - -#: ../../mod/match.php:31 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche." - -#: ../../mod/match.php:63 -msgid "is interested in:" -msgstr "interessi personali:" - -#: ../../mod/match.php:70 -msgid "No matches" -msgstr "Nessun risultato" - -#: ../../mod/profile_photo.php:111 -msgid "Image uploaded but image cropping failed." -msgstr "L'immagine è stata caricata, ma il non è stato possibile ritagliarla." - -#: ../../mod/profile_photo.php:165 -msgid "Image resize failed." -msgstr "Il ridimensionamento dell'immagine è fallito." - -#: ../../mod/profile_photo.php:209 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente." - -#: ../../mod/profile_photo.php:247 -msgid "Image upload failed." -msgstr "Il caricamento dell'immagine è fallito." - -#: ../../mod/profile_photo.php:266 -msgid "Unable to process image." -msgstr "Impossibile elaborare l'immagine." - -#: ../../mod/profile_photo.php:294 -msgid "female" -msgstr "femmina" - -#: ../../mod/profile_photo.php:295 -#, php-format -msgid "%1$s updated her %2$s" -msgstr "Aggiornamento: %2$s di %1$s" - -#: ../../mod/profile_photo.php:296 -msgid "male" -msgstr "maschio" - -#: ../../mod/profile_photo.php:297 -#, php-format -msgid "%1$s updated his %2$s" -msgstr "Aggiornamento: %2$s di %1$s" - -#: ../../mod/profile_photo.php:299 -#, php-format -msgid "%1$s updated their %2$s" -msgstr "Aggiornamento: %2$s di %1$s" - -#: ../../mod/profile_photo.php:301 -msgid "profile photo" -msgstr "foto del profilo" - -#: ../../mod/profile_photo.php:365 ../../mod/profile_photo.php:406 -msgid "Photo not available." -msgstr "Foto non disponibile." - -#: ../../mod/profile_photo.php:447 -msgid "Upload File:" -msgstr "Carica un file:" - -#: ../../mod/profile_photo.php:448 -msgid "Select a profile:" -msgstr "Seleziona un profilo:" - -#: ../../mod/profile_photo.php:449 -msgid "Upload Profile Photo" -msgstr "Carica la foto del profilo" - -#: ../../mod/profile_photo.php:454 ../../mod/settings.php:973 -msgid "or" -msgstr "o" - -#: ../../mod/profile_photo.php:454 -msgid "skip this step" -msgstr "salta questo passaggio" - -#: ../../mod/profile_photo.php:454 -msgid "select a photo from your photo albums" -msgstr "seleziona una foto dai tuoi album" - -#: ../../mod/profile_photo.php:470 -msgid "Crop Image" -msgstr "Ritaglia immagine" - -#: ../../mod/profile_photo.php:471 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Ritaglia l'immagine per migliorarne la visualizzazione." - -#: ../../mod/profile_photo.php:473 -msgid "Done Editing" -msgstr "Modifica terminata" - -#: ../../mod/follow.php:25 -msgid "Channel added." -msgstr "Canale aggiunto." - -#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 -msgid "Tag removed" -msgstr "Tag rimosso" - -#: ../../mod/tagrm.php:119 -msgid "Remove Item Tag" -msgstr "Rimuovi il tag" - -#: ../../mod/tagrm.php:121 -msgid "Select a tag to remove: " -msgstr "Seleziona un tag da rimuovere: " - -#: ../../mod/ratings.php:69 -msgid "No ratings" -msgstr "Nessuna valutazione" - -#: ../../mod/ratings.php:99 -msgid "Ratings" -msgstr "Valutazioni" - -#: ../../mod/ratings.php:100 -msgid "Rating: " -msgstr "Valutazione:" - -#: ../../mod/ratings.php:101 -msgid "Website: " -msgstr "Sito web:" - -#: ../../mod/ratings.php:103 -msgid "Description: " -msgstr "Descrizione:" - -#: ../../mod/item.php:173 -msgid "Unable to locate original post." -msgstr "Impossibile trovare il messaggio originale." - -#: ../../mod/item.php:417 -msgid "Empty post discarded." -msgstr "Il post vuoto è stato ignorato." - -#: ../../mod/item.php:457 -msgid "Executable content type not permitted to this channel." -msgstr "I contenuti eseguibili non sono permessi su questo canale." - -#: ../../mod/item.php:908 -msgid "System error. Post not saved." -msgstr "Errore di sistema. Post non salvato." - -#: ../../mod/item.php:1175 -msgid "Unable to obtain post information from database." -msgstr "Impossibile caricare il post dal database." - -#: ../../mod/item.php:1182 -#, php-format -msgid "You have reached your limit of %1$.0f top level posts." -msgstr "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale." - -#: ../../mod/item.php:1189 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web." - -#: ../../mod/webpages.php:191 -msgid "Page Title" -msgstr "Titolo della pagina" - -#: ../../mod/register.php:44 -msgid "Maximum daily site registrations exceeded. Please try again tomorrow." -msgstr "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!" - -#: ../../mod/register.php:50 -msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." -msgstr "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio." - -#: ../../mod/register.php:84 -msgid "Passwords do not match." -msgstr "Le password non corrispondono." - -#: ../../mod/register.php:117 -msgid "" -"Registration successful. Please check your email for validation " -"instructions." -msgstr "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata." - -#: ../../mod/register.php:123 -msgid "Your registration is pending approval by the site owner." -msgstr "La tua richiesta è in attesa di approvazione da parte dell'amministratore di questo hub." - -#: ../../mod/register.php:126 -msgid "Your registration can not be processed." -msgstr "La tua registrazione non puo' essere processata." - -#: ../../mod/register.php:163 -msgid "Registration on this site/hub is by approval only." -msgstr "La registrazione su questo hub è soggetta ad approvazione." - -#: ../../mod/register.php:164 -msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" -msgstr "<a href=\"pubsites\">Registrati su un altro hub affiliato</a>" - -#: ../../mod/register.php:174 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Questo hub ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani." - -#: ../../mod/register.php:185 -msgid "Terms of Service" -msgstr "Condizioni d'Uso" - -#: ../../mod/register.php:191 -#, php-format -msgid "I accept the %s for this website" -msgstr "Accetto le %s di questo sito" - -#: ../../mod/register.php:193 -#, php-format -msgid "I am over 13 years of age and accept the %s for this website" -msgstr "Ho più di 13 anni e accetto le %s di questo sito" - -#: ../../mod/register.php:212 -msgid "Membership on this site is by invitation only." -msgstr "Per registrarsi su questo hub è necessario un invito." - -#: ../../mod/register.php:213 -msgid "Please enter your invitation code" -msgstr "Inserisci il codice dell'invito" - -#: ../../mod/register.php:216 -msgid "Your email address" -msgstr "Il tuo indirizzo email" - -#: ../../mod/register.php:217 -msgid "Choose a password" -msgstr "Scegli una password" - -#: ../../mod/register.php:218 -msgid "Please re-enter your password" -msgstr "Ripeti la password per verifica" - -#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 -msgid "Block Name" -msgstr "Nome del block" - -#: ../../mod/blocks.php:149 -msgid "Block Title" -msgstr "Titolo del block" - -#: ../../mod/removeaccount.php:30 -msgid "" -"Account removals are not allowed within 48 hours of changing the account " -"password." -msgstr "Non è possibile eliminare il tuo account prima di 48 ore dall'ultimo cambio password." - -#: ../../mod/removeaccount.php:57 -msgid "Remove This Account" -msgstr "Elimina questo account" - -#: ../../mod/removeaccount.php:58 -msgid "" -"This account and all its channels will be completely removed from the " -"network. " -msgstr "Questo account e tutti i suoi canali saranno completamente eliminati dalla rete." - -#: ../../mod/removeaccount.php:60 -msgid "" -"Remove this account, all its channels and all its channel clones from the " -"network" -msgstr "Elimina dalla rete questo account, tutti i suoi canali e ANCHE tutti gli eventuali canali clonati." - -#: ../../mod/removeaccount.php:60 -msgid "" -"By default only the instances of the channels located on this hub will be " -"removed from the network" -msgstr "A meno che tu non lo richieda espressamente, solo i canali presenti su questo hub saranno rimossi dalla rete." - -#: ../../mod/removeaccount.php:61 ../../mod/settings.php:698 -msgid "Remove Account" -msgstr "Elimina l'account" - -#: ../../mod/service_limits.php:19 -msgid "No service class restrictions found." -msgstr "Non esistono restrizioni su questa classe di account." - -#: ../../mod/attach.php:9 -msgid "Item not available." -msgstr "Elemento non disponibile." - -#: ../../mod/pubsites.php:18 -msgid "Public Sites" -msgstr "Siti pubblici" - -#: ../../mod/pubsites.php:21 -msgid "" -"The listed sites allow public registration for the $Projectname network. All" -" sites in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some sites may require subscription or" -" provide tiered service plans. The provider links <strong>may</strong> " -"provide additional details." -msgstr "I siti elencati permettono la registrazione libera sulla rete $Projectname. Tutti questi hub sono interconnessi, quindi essere iscritti su uno equivale a una registrazione su tutta la rete. Alcuni siti potrebbero richiedere un abbonamento o dei servizi a pagamento. Per maggiori dettagli visita gli indirizzi nell'elenco." - -#: ../../mod/pubsites.php:27 -msgid "Rate this hub" -msgstr "Valuta questo hub" - -#: ../../mod/pubsites.php:28 -msgid "Site URL" -msgstr "URL del sito" - -#: ../../mod/pubsites.php:28 -msgid "Access Type" -msgstr "Tipo di accesso" - -#: ../../mod/pubsites.php:28 -msgid "Registration Policy" -msgstr "Politica di registrazione" - -#: ../../mod/pubsites.php:28 ../../mod/profiles.php:454 -msgid "Location" -msgstr "Posizione geografica" - -#: ../../mod/pubsites.php:28 -msgid "Project" -msgstr "Progetto" - -#: ../../mod/pubsites.php:28 -msgid "View hub ratings" -msgstr "Vedi le valutazioni del hub" - -#: ../../mod/pubsites.php:32 -msgid "Rate" -msgstr "Valuta" - -#: ../../mod/pubsites.php:33 -msgid "View ratings" -msgstr "Vedi le valutazioni" - -#: ../../mod/sources.php:32 -msgid "Failed to create source. No channel selected." -msgstr "Impossibile creare la sorgente. Nessun canale selezionato." - -#: ../../mod/sources.php:45 -msgid "Source created." -msgstr "Sorgente creata." - -#: ../../mod/sources.php:57 -msgid "Source updated." -msgstr "Sorgente aggiornata." - -#: ../../mod/sources.php:82 -msgid "*" -msgstr "*" - -#: ../../mod/sources.php:89 -msgid "Manage remote sources of content for your channel." -msgstr "Gestisci le sorgenti dei contenuti del tuo canale." - -#: ../../mod/sources.php:90 ../../mod/sources.php:100 -msgid "New Source" -msgstr "Nuova sorgente" - -#: ../../mod/sources.php:101 ../../mod/sources.php:133 -msgid "" -"Import all or selected content from the following channel into this channel " -"and distribute it according to your channel settings." -msgstr "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente." - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Only import content with these words (one per line)" -msgstr "Importa solo i contenuti che hanno queste parole (una per riga)" - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Leave blank to import all public content" -msgstr "Lascia vuoto per importare tutti i contenuti pubblici" - -#: ../../mod/sources.php:123 ../../mod/sources.php:150 -msgid "Source not found." -msgstr "Sorgente non trovata." - -#: ../../mod/sources.php:130 -msgid "Edit Source" -msgstr "Modifica la sorgente" - -#: ../../mod/sources.php:131 -msgid "Delete Source" -msgstr "Elimina la sorgente" - -#: ../../mod/sources.php:158 -msgid "Source removed" -msgstr "Sorgente eliminata" - -#: ../../mod/sources.php:160 -msgid "Unable to remove source." -msgstr "Impossibile rimuovere la sorgente." - -#: ../../mod/lockview.php:37 -msgid "Remote privacy information not available." -msgstr "Le informazioni remote sulla privacy non sono disponibili." - -#: ../../mod/lockview.php:58 -msgid "Visible to:" -msgstr "Visibile a:" - -#: ../../mod/acl.php:222 -msgid "network" -msgstr "rete" - -#: ../../mod/acl.php:232 -msgid "RSS" -msgstr "RSS" - -#: ../../mod/regmod.php:11 -msgid "Please login." -msgstr "Effettua l'accesso." - -#: ../../mod/rmagic.php:40 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "Non è possibile effettuare login con l'OpenID che hai fornito. Per favore controlla che sia scritto correttamente." - -#: ../../mod/rmagic.php:40 -msgid "The error message was:" -msgstr "Messaggio di errore ricevuto:" - -#: ../../mod/rmagic.php:44 -msgid "Authentication failed." -msgstr "Autenticazione fallita." - -#: ../../mod/rmagic.php:84 -msgid "Remote Authentication" -msgstr "Accedi tramite il tuo hub" - -#: ../../mod/rmagic.php:85 -msgid "Enter your channel address (e.g. channel@example.com)" -msgstr "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)" - -#: ../../mod/rmagic.php:86 -msgid "Authenticate" -msgstr "Accedi" - -#: ../../mod/channel.php:97 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Permessi insufficienti. Sarà visualizzata la pagina del profilo." - -#: ../../mod/siteinfo.php:111 -#, php-format -msgid "Version %s" -msgstr "Versione %s" - -#: ../../mod/siteinfo.php:132 -msgid "Installed plugins/addons/apps:" -msgstr "App e componenti installati:" - -#: ../../mod/siteinfo.php:145 -msgid "No installed plugins/addons/apps" -msgstr "Nessuna app o componente installato" - -#: ../../mod/siteinfo.php:158 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." -msgstr "Questo è un hub di $Projectname - una rete cooperativa e decentralizzata di siti ad elevata privacy. " - -#: ../../mod/siteinfo.php:160 -msgid "Tag: " -msgstr "Tag: " - -#: ../../mod/siteinfo.php:162 -msgid "Last background fetch: " -msgstr "Ultima acquisizione:" - -#: ../../mod/siteinfo.php:164 -msgid "Current load average: " -msgstr "Carico medio attuale:" - -#: ../../mod/siteinfo.php:167 -msgid "Running at web location" -msgstr "In esecuzione sull'indirizzo web" - -#: ../../mod/siteinfo.php:168 -msgid "" -"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " -"about $Projectname." -msgstr "Visita <a href=\"http://hubzilla.org\">hubzilla.org</a> per maggiori informazioni su $Projectname." - -#: ../../mod/siteinfo.php:169 -msgid "Bug reports and issues: please visit" -msgstr "Per segnalare bug e problemi: visita" - -#: ../../mod/siteinfo.php:171 -msgid "$projectname issues" -msgstr "Problematiche note su $projectname" - -#: ../../mod/siteinfo.php:172 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " -"com" -msgstr "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com" - -#: ../../mod/siteinfo.php:174 -msgid "Site Administrators" -msgstr "Amministratori del sito" - -#: ../../mod/import.php:27 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "Il tuo account permette di creare al massimo %d canali." - -#: ../../mod/import.php:65 ../../mod/import_items.php:38 -msgid "Nothing to import." -msgstr "Non c'è niente da importare." - -#: ../../mod/import.php:89 ../../mod/import_items.php:62 -msgid "Unable to download data from old server" -msgstr "Impossibile importare i dati dal vecchio hub" - -#: ../../mod/import.php:95 ../../mod/import_items.php:68 -msgid "Imported file is empty." -msgstr "Il file da importare è vuoto." - -#: ../../mod/import.php:115 ../../mod/import_items.php:82 -#, php-format -msgid "Warning: Database versions differ by %1$d updates." -msgstr "Attenzione: le versioni di database differiscono di %1$d aggiornamenti." - -#: ../../mod/import.php:148 -msgid "No channel. Import failed." -msgstr "Nessun canale. Import fallito." - -#: ../../mod/import.php:499 -msgid "You must be logged in to use this feature." -msgstr "Per questa funzionalità devi aver effettuato l'accesso." - -#: ../../mod/import.php:504 -msgid "Import Channel" -msgstr "Importa un canale" - -#: ../../mod/import.php:505 -msgid "" -"Use this form to import an existing channel from a different server/hub. You" -" may retrieve the channel identity from the old server/hub via the network " -"or provide an export file." -msgstr "Usa questo modulo per importare un tuo canale da un altro hub. Puoi ottenere i dati identificativi del canale direttamente dall'altro hub oppure tramite un file esportato in precedenza." - -#: ../../mod/import.php:506 ../../mod/import_items.php:121 -msgid "File to Upload" -msgstr "File da caricare" - -#: ../../mod/import.php:507 -msgid "Or provide the old server/hub details" -msgstr "Oppure fornisci i dettagli del vecchio hub" - -#: ../../mod/import.php:508 -msgid "Your old identity address (xyz@example.com)" -msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)" - -#: ../../mod/import.php:509 -msgid "Your old login email address" -msgstr "L'email che usavi per accedere sul vecchio hub" - -#: ../../mod/import.php:510 -msgid "Your old login password" -msgstr "La password per il vecchio hub" - -#: ../../mod/import.php:511 -msgid "" -"For either option, please choose whether to make this hub your new primary " -"address, or whether your old location should continue this role. You will be" -" able to post from either location, but only one can be marked as the " -"primary location for files, photos, and media." -msgstr "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc." - -#: ../../mod/import.php:512 -msgid "Make this hub my primary location" -msgstr "Rendi questo hub il mio indirizzo primario" - -#: ../../mod/import.php:513 -msgid "" -"Import existing posts if possible (experimental - limited by available " -"memory" -msgstr "Importa i contenuti pubblicati, se possibile (sperimentale)" - -#: ../../mod/import.php:514 -msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore lanciala *una volta sola* e resta su questa pagina finché non avrà finito." - -#: ../../mod/thing.php:111 -msgid "Thing updated" -msgstr "L'oggetto è stato aggiornato" - -#: ../../mod/thing.php:163 -msgid "Object store: failed" -msgstr "Impossibile memorizzare l'oggetto." - -#: ../../mod/thing.php:167 -msgid "Thing added" -msgstr "L'Oggetto è stato aggiunto" - -#: ../../mod/thing.php:193 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" - -#: ../../mod/thing.php:256 -msgid "Show Thing" -msgstr "Mostra l'oggetto" - -#: ../../mod/thing.php:263 -msgid "item not found." -msgstr "non trovato." - -#: ../../mod/thing.php:296 -msgid "Edit Thing" -msgstr "Modifica l'oggetto" - -#: ../../mod/thing.php:298 ../../mod/thing.php:348 -msgid "Select a profile" -msgstr "Scegli un profilo" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Post an activity" -msgstr "Pubblica un'attività" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Only sends to viewers of the applicable profile" -msgstr "Invia solo a chi può vedere il profilo scelto" - -#: ../../mod/thing.php:304 ../../mod/thing.php:353 -msgid "Name of thing e.g. something" -msgstr "Nome dell'oggetto" - -#: ../../mod/thing.php:306 ../../mod/thing.php:354 -msgid "URL of thing (optional)" -msgstr "Indirizzo web dell'oggetto (facoltativo)" - -#: ../../mod/thing.php:308 ../../mod/thing.php:355 -msgid "URL for photo of thing (optional)" -msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)" - -#: ../../mod/thing.php:346 -msgid "Add Thing to your Profile" -msgstr "Aggiungi l'oggetto al tuo profilo" - -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." -msgstr "Hai superato il numero massimo di inviti." - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s: non è un indirizzo email valido." - -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" -msgstr "Unisciti a noi su $Projectname" - -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario." - -#: ../../mod/invite.php:92 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: la consegna del messaggio è fallita." - -#: ../../mod/invite.php:96 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d messaggio inviato." -msgstr[1] "%d messaggi inviati." - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "Non hai altri inviti disponibili" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "Spedisci inviti" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" -msgstr "Inserisci gli indirizzi email, uno per riga:" - -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" -msgstr "Il tuo messaggio:" - -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." -msgstr "Entra nella mia comunità su $Projectname." - -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " -msgstr "Dovrai fornire questo codice di invito:" - -#: ../../mod/invite.php:135 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Registrati su qualsiasi server $Projectname (sono tutti interconnessi)" - -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Inserisci il mio indirizzo $Projectname nel riquadro di ricerca del sito." - -#: ../../mod/invite.php:138 -msgid "or visit " -msgstr "oppure visita " - -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" -msgstr "3. Clicca su [Aggiungi]" - -#: ../../mod/mail.php:33 -msgid "Unable to lookup recipient." -msgstr "Impossibile associare un destinatario." - -#: ../../mod/mail.php:41 -msgid "Unable to communicate with requested channel." -msgstr "Impossibile comunicare con il canale richiesto." - -#: ../../mod/mail.php:48 -msgid "Cannot verify requested channel." -msgstr "Impossibile verificare il canale richiesto." - -#: ../../mod/mail.php:74 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito." - -#: ../../mod/mail.php:132 -msgid "Messages" -msgstr "Messaggi" - -#: ../../mod/mail.php:167 -msgid "Message recalled." -msgstr "Messaggio revocato." - -#: ../../mod/mail.php:180 -msgid "Conversation removed." -msgstr "Conversazione rimossa." - -#: ../../mod/mail.php:223 -msgid "Requested channel is not in this network" -msgstr "Il canale cercato non è in questa rete" - -#: ../../mod/mail.php:231 -msgid "Send Private Message" -msgstr "Invia un messaggio privato" - -#: ../../mod/mail.php:232 ../../mod/mail.php:361 -msgid "To:" -msgstr "A:" - -#: ../../mod/mail.php:235 ../../mod/mail.php:363 -msgid "Subject:" -msgstr "Oggetto:" - -#: ../../mod/mail.php:242 -msgid "Send" -msgstr "Invia" - -#: ../../mod/mail.php:333 -msgid "Delete message" -msgstr "Elimina il messaggio" - -#: ../../mod/mail.php:334 -msgid "Delivery report" -msgstr "Rapporto di trasmissione" - -#: ../../mod/mail.php:335 -msgid "Recall message" -msgstr "Revoca il messaggio" - -#: ../../mod/mail.php:337 -msgid "Message has been recalled." -msgstr "Il messaggio è stato revocato." - -#: ../../mod/mail.php:354 -msgid "Delete Conversation" -msgstr "Elimina la conversazione" - -#: ../../mod/mail.php:356 -msgid "" -"No secure communications available. You <strong>may</strong> be able to " -"respond from the sender's profile page." -msgstr "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente." - -#: ../../mod/mail.php:360 -msgid "Send Reply" -msgstr "Invia la risposta" +#: ../../mod/editlayout.php:112 +msgid "Delete layout?" +msgstr "Vuoi eliminare questo layout?" -#: ../../mod/mail.php:365 -#, php-format -msgid "Your message for %s (%s):" -msgstr "Il tuo messaggio per %s (%s):" +#: ../../mod/editlayout.php:159 ../../mod/layouts.php:124 +msgid "Layout Description (Optional)" +msgstr "Descrizione del layout (facoltativa)" -#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25 -#: ../../mod/update_home.php:21 ../../mod/update_network.php:23 -#: ../../mod/update_search.php:46 ../../mod/update_public.php:21 -msgid "[Embedded content - reload page to view]" -msgstr "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]" +#: ../../mod/editlayout.php:161 ../../mod/layouts.php:121 +#: ../../mod/layouts.php:179 +msgid "Layout Name" +msgstr "Nome layout" -#: ../../mod/viewsrc.php:40 -msgid "Source of Item" -msgstr "Sorgente" +#: ../../mod/editlayout.php:178 +msgid "Edit Layout" +msgstr "Modifica il layout" #: ../../mod/settings.php:76 msgid "Name is required" @@ -7518,797 +7591,611 @@ msgstr "È un indirizzo email riservato. Non puoi sceglierlo." msgid "System failure storing new email. Please try again." msgstr "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore." -#: ../../mod/settings.php:519 +#: ../../mod/settings.php:521 msgid "Settings updated." msgstr "Impostazioni aggiornate." -#: ../../mod/settings.php:583 ../../mod/settings.php:609 -#: ../../mod/settings.php:645 +#: ../../mod/settings.php:585 ../../mod/settings.php:611 +#: ../../mod/settings.php:647 msgid "Add application" msgstr "Aggiungi una app" -#: ../../mod/settings.php:586 +#: ../../mod/settings.php:588 msgid "Name of application" msgstr "Nome dell'applicazione" -#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/settings.php:589 ../../mod/settings.php:615 msgid "Consumer Key" msgstr "Consumer Key" -#: ../../mod/settings.php:587 ../../mod/settings.php:588 +#: ../../mod/settings.php:589 ../../mod/settings.php:590 msgid "Automatically generated - change if desired. Max length 20" msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20" -#: ../../mod/settings.php:588 ../../mod/settings.php:614 +#: ../../mod/settings.php:590 ../../mod/settings.php:616 msgid "Consumer Secret" msgstr "Consumer Secret" -#: ../../mod/settings.php:589 ../../mod/settings.php:615 +#: ../../mod/settings.php:591 ../../mod/settings.php:617 msgid "Redirect" msgstr "Redirect" -#: ../../mod/settings.php:589 +#: ../../mod/settings.php:591 msgid "" "Redirect URI - leave blank unless your application specifically requires " "this" msgstr "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione" -#: ../../mod/settings.php:590 ../../mod/settings.php:616 +#: ../../mod/settings.php:592 ../../mod/settings.php:618 msgid "Icon url" msgstr "Url icona" -#: ../../mod/settings.php:590 +#: ../../mod/settings.php:592 msgid "Optional" msgstr "Facoltativo" -#: ../../mod/settings.php:601 +#: ../../mod/settings.php:603 msgid "You can't edit this application." msgstr "Non puoi modificare questa applicazione." -#: ../../mod/settings.php:644 +#: ../../mod/settings.php:646 msgid "Connected Apps" msgstr "App connesse" -#: ../../mod/settings.php:648 +#: ../../mod/settings.php:650 msgid "Client key starts with" msgstr "La client key inizia con" -#: ../../mod/settings.php:649 +#: ../../mod/settings.php:651 msgid "No name" msgstr "Nessun nome" -#: ../../mod/settings.php:650 +#: ../../mod/settings.php:652 msgid "Remove authorization" msgstr "Revoca l'autorizzazione" -#: ../../mod/settings.php:663 +#: ../../mod/settings.php:665 msgid "No feature settings configured" msgstr "Non hai componenti aggiuntivi da personalizzare" -#: ../../mod/settings.php:670 +#: ../../mod/settings.php:672 msgid "Feature/Addon Settings" msgstr "Impostazioni dei componenti aggiuntivi" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Account Settings" msgstr "Il tuo account" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Enter New Password:" msgstr "Inserisci la nuova password:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Confirm New Password:" msgstr "Conferma la nuova password:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Leave password fields blank unless changing" msgstr "Lascia vuoti questi campi per non cambiare la password" -#: ../../mod/settings.php:697 ../../mod/settings.php:1028 +#: ../../mod/settings.php:699 ../../mod/settings.php:1030 msgid "Email Address:" msgstr "Indirizzo email:" -#: ../../mod/settings.php:699 +#: ../../mod/settings.php:701 msgid "Remove this account including all its channels" msgstr "Elimina questo account e tutti i suoi canali" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "Off" msgstr "Off" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "On" msgstr "On" -#: ../../mod/settings.php:722 +#: ../../mod/settings.php:724 msgid "Additional Features" msgstr "Funzionalità opzionali" -#: ../../mod/settings.php:746 +#: ../../mod/settings.php:748 msgid "Connector Settings" msgstr "Impostazioni del connettore" -#: ../../mod/settings.php:785 +#: ../../mod/settings.php:787 msgid "No special theme for mobile devices" msgstr "Nessun tema per dispositivi mobili" -#: ../../mod/settings.php:788 +#: ../../mod/settings.php:790 #, php-format msgid "%s - (Experimental)" msgstr "%s - (Sperimentale)" -#: ../../mod/settings.php:827 +#: ../../mod/settings.php:829 msgid "Display Settings" msgstr "Aspetto" -#: ../../mod/settings.php:828 +#: ../../mod/settings.php:830 msgid "Theme Settings" msgstr "Impostazioni del tema" -#: ../../mod/settings.php:829 +#: ../../mod/settings.php:831 msgid "Custom Theme Settings" msgstr "Personalizzazione del tema" -#: ../../mod/settings.php:830 +#: ../../mod/settings.php:832 msgid "Content Settings" msgstr "Impostazioni dei contenuti" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:838 msgid "Display Theme:" msgstr "Tema per schermi medio grandi:" -#: ../../mod/settings.php:837 +#: ../../mod/settings.php:839 msgid "Mobile Theme:" msgstr "Tema per dispositivi mobili:" -#: ../../mod/settings.php:838 +#: ../../mod/settings.php:840 msgid "Enable user zoom on mobile devices" msgstr "Attiva la possibilità di fare zoom sui dispositivi mobili" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Update browser every xx seconds" msgstr "Aggiorna il browser ogni x secondi" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Minimum of 10 seconds, no maximum" msgstr "Minimo 10 secondi, nessun limite massimo" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum number of conversations to load at any time:" msgstr "Massimo numero di conversazioni da mostrare ogni volta:" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum of 100 items" msgstr "Massimo 100" -#: ../../mod/settings.php:841 +#: ../../mod/settings.php:843 msgid "Show emoticons (smilies) as images" msgstr "Mostra le faccine (smilies) come immagini" -#: ../../mod/settings.php:842 +#: ../../mod/settings.php:844 msgid "Link post titles to source" msgstr "Il link del titolo di un post porta al sito originale" -#: ../../mod/settings.php:843 +#: ../../mod/settings.php:845 msgid "System Page Layout Editor - (advanced)" msgstr "Modifica i layout di sistema (avanzato)" -#: ../../mod/settings.php:846 +#: ../../mod/settings.php:848 msgid "Use blog/list mode on channel page" msgstr "Mostra il canale nella modalità blog" -#: ../../mod/settings.php:846 ../../mod/settings.php:847 +#: ../../mod/settings.php:848 ../../mod/settings.php:849 msgid "(comments displayed separately)" msgstr "(i commenti sono mostrati separatamente)" -#: ../../mod/settings.php:847 +#: ../../mod/settings.php:849 msgid "Use blog/list mode on matrix page" msgstr "Mostra la tua rete in modalità blog" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:850 msgid "Channel page max height of content (in pixels)" msgstr "Altezza massima dei contenuti del canale (in pixel)" -#: ../../mod/settings.php:848 ../../mod/settings.php:849 +#: ../../mod/settings.php:850 ../../mod/settings.php:851 msgid "click to expand content exceeding this height" msgstr "dovrai cliccare sul post per mostrare i contenuti di dimensioni maggiori" -#: ../../mod/settings.php:849 +#: ../../mod/settings.php:851 msgid "Matrix page max height of content (in pixels)" msgstr "Altezza massima dei contenuti della tua rete (in pixel)" -#: ../../mod/settings.php:883 +#: ../../mod/settings.php:885 msgid "Nobody except yourself" msgstr "Nessuno tranne te" -#: ../../mod/settings.php:884 +#: ../../mod/settings.php:886 msgid "Only those you specifically allow" msgstr "Solo chi riceve il mio permesso" -#: ../../mod/settings.php:885 +#: ../../mod/settings.php:887 msgid "Approved connections" msgstr "Contatti approvati" -#: ../../mod/settings.php:886 +#: ../../mod/settings.php:888 msgid "Any connections" msgstr "Tutti i contatti" -#: ../../mod/settings.php:887 +#: ../../mod/settings.php:889 msgid "Anybody on this website" msgstr "Chiunque su questo hub" -#: ../../mod/settings.php:888 +#: ../../mod/settings.php:890 msgid "Anybody in this network" msgstr "Chiunque su questa rete" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:891 msgid "Anybody authenticated" msgstr "Chiunque abbia effettuato l'accesso" -#: ../../mod/settings.php:890 +#: ../../mod/settings.php:892 msgid "Anybody on the internet" msgstr "Chiunque su internet" -#: ../../mod/settings.php:964 +#: ../../mod/settings.php:966 msgid "Publish your default profile in the network directory" msgstr "Mostra il mio profilo predefinito negli elenchi pubblici dei canali" -#: ../../mod/settings.php:969 +#: ../../mod/settings.php:971 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Vuoi essere suggerito come amico ai nuovi membri?" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:980 msgid "Your channel address is" msgstr "L'indirizzo del tuo canale è" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1021 msgid "Channel Settings" msgstr "Impostazioni del canale" -#: ../../mod/settings.php:1026 +#: ../../mod/settings.php:1028 msgid "Basic Settings" msgstr "Impostazioni di base" -#: ../../mod/settings.php:1029 +#: ../../mod/settings.php:1031 msgid "Your Timezone:" msgstr "Il tuo fuso orario:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Default Post Location:" msgstr "Località predefinita:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Geographical location to display on your posts" msgstr "La posizione geografica da mostrare sui tuoi post" -#: ../../mod/settings.php:1031 +#: ../../mod/settings.php:1033 msgid "Use Browser Location:" msgstr "Usa la località rilevata dal browser:" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "Adult Content" msgstr "Contenuto per adulti" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "" "This channel frequently or regularly publishes adult content. (Please tag " "any adult material and/or nudity with #NSFW)" msgstr "Questo canale pubblica frequentemente contenuto per adulti. (I contenuti per adulti vanno taggati #NSFW - Not Safe For Work)" -#: ../../mod/settings.php:1035 +#: ../../mod/settings.php:1037 msgid "Security and Privacy Settings" msgstr "Impostazioni di sicurezza e privacy" -#: ../../mod/settings.php:1037 +#: ../../mod/settings.php:1039 msgid "Your permissions are already configured. Click to view/adjust" msgstr "I tuoi permessi sono già stati configurati. Clicca per vederli o modificarli" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Hide my online presence" msgstr "Nascondi la mia presenza online" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Prevents displaying in your profile that you are online" msgstr "Non mostrare sul tuo profilo quando sei online" -#: ../../mod/settings.php:1041 +#: ../../mod/settings.php:1043 msgid "Simple Privacy Settings:" msgstr "Impostazioni di privacy semplificate" -#: ../../mod/settings.php:1042 +#: ../../mod/settings.php:1044 msgid "" "Very Public - <em>extremely permissive (should be used with caution)</em>" msgstr "Tutto pubblico - <em>estremamente permissivo (da usare con cautela)</em>" -#: ../../mod/settings.php:1043 +#: ../../mod/settings.php:1045 msgid "" "Typical - <em>default public, privacy when desired (similar to social " "network permissions but with improved privacy)</em>" msgstr "Standard - <em>contenuti normalmente pubblici, ma anche privati se necessario (simile ai social network ma con privacy migliorata)</em>" -#: ../../mod/settings.php:1044 +#: ../../mod/settings.php:1046 msgid "Private - <em>default private, never open or public</em>" msgstr "Privato - <em>contenuti normalmente privati, nulla è aperto o pubblico</em>" -#: ../../mod/settings.php:1045 +#: ../../mod/settings.php:1047 msgid "Blocked - <em>default blocked to/from everybody</em>" msgstr "Bloccato - <em>bloccato in invio e ricezione dei contenuti</em>" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "Allow others to tag your posts" msgstr "Permetti ad altri di taggare i tuoi post" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "" "Often used by the community to retro-actively flag inappropriate content" msgstr "Usato spesso dalla comunità per marcare contenuti inappropriati già esistenti" -#: ../../mod/settings.php:1049 +#: ../../mod/settings.php:1051 msgid "Advanced Privacy Settings" msgstr "Impostazioni di privacy avanzate" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "Expire other channel content after this many days" msgstr "Giorni dopo cui mettere in scadenza gli altri contenuti del canale" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "0 or blank prevents expiration" msgstr "Lascia vuoto oppure 0 per non impostare scadenze" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "Maximum Friend Requests/Day:" msgstr "Numero massimo giornaliero di richieste di amicizia:" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "May reduce spam activity" msgstr "Serve a ridurre lo spam" -#: ../../mod/settings.php:1053 +#: ../../mod/settings.php:1055 msgid "Default Post Permissions" msgstr "Permessi predefiniti per i post" -#: ../../mod/settings.php:1058 +#: ../../mod/settings.php:1056 ../../mod/mitem.php:150 ../../mod/mitem.php:223 +msgid "(click to open/close)" +msgstr "(clicca per aprire/chiudere)" + +#: ../../mod/settings.php:1060 msgid "Channel permissions category:" msgstr "Categorie di permessi dei canali:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Maximum private messages per day from unknown people:" msgstr "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Useful to reduce spamming" msgstr "Serve e ridurre lo spam" -#: ../../mod/settings.php:1067 +#: ../../mod/settings.php:1069 msgid "Notification Settings" msgstr "Impostazioni di notifica" -#: ../../mod/settings.php:1068 +#: ../../mod/settings.php:1070 msgid "By default post a status message when:" msgstr "Pubblica un messaggio di stato quando:" -#: ../../mod/settings.php:1069 +#: ../../mod/settings.php:1071 msgid "accepting a friend request" msgstr "accetto una nuova amicizia" -#: ../../mod/settings.php:1070 +#: ../../mod/settings.php:1072 msgid "joining a forum/community" msgstr "entro a far parte di un forum" -#: ../../mod/settings.php:1071 +#: ../../mod/settings.php:1073 msgid "making an <em>interesting</em> profile change" msgstr "faccio un cambiamento <em>interessante</em> al mio profilo" -#: ../../mod/settings.php:1072 +#: ../../mod/settings.php:1074 msgid "Send a notification email when:" msgstr "Invia una email di notifica quando:" -#: ../../mod/settings.php:1073 +#: ../../mod/settings.php:1075 msgid "You receive a connection request" msgstr "Ricevi una richiesta di entrare in contatto" -#: ../../mod/settings.php:1074 +#: ../../mod/settings.php:1076 msgid "Your connections are confirmed" msgstr "I tuoi contatti sono confermati" -#: ../../mod/settings.php:1075 +#: ../../mod/settings.php:1077 msgid "Someone writes on your profile wall" msgstr "Qualcuno scrive sulla tua bacheca" -#: ../../mod/settings.php:1076 +#: ../../mod/settings.php:1078 msgid "Someone writes a followup comment" msgstr "Qualcuno scrive un commento dopo di te" -#: ../../mod/settings.php:1077 +#: ../../mod/settings.php:1079 msgid "You receive a private message" msgstr "Ricevi un messaggio privato" -#: ../../mod/settings.php:1078 +#: ../../mod/settings.php:1080 msgid "You receive a friend suggestion" msgstr "Ti viene suggerito un amico" -#: ../../mod/settings.php:1079 +#: ../../mod/settings.php:1081 msgid "You are tagged in a post" msgstr "Sei taggato in un post" -#: ../../mod/settings.php:1080 +#: ../../mod/settings.php:1082 msgid "You are poked/prodded/etc. in a post" msgstr "Ricevi un poke in un post" -#: ../../mod/settings.php:1083 +#: ../../mod/settings.php:1085 msgid "Show visual notifications including:" msgstr "Mostra queste notifiche a schermo:" -#: ../../mod/settings.php:1085 +#: ../../mod/settings.php:1087 msgid "Unseen matrix activity" msgstr "Nuove attività nella rete" -#: ../../mod/settings.php:1086 +#: ../../mod/settings.php:1088 msgid "Unseen channel activity" msgstr "Novità nei canali" -#: ../../mod/settings.php:1087 +#: ../../mod/settings.php:1089 msgid "Unseen private messages" msgstr "Nuovi messaggi privati" -#: ../../mod/settings.php:1087 ../../mod/settings.php:1092 -#: ../../mod/settings.php:1093 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1089 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1095 ../../mod/settings.php:1096 msgid "Recommended" msgstr "Consigliato" -#: ../../mod/settings.php:1088 +#: ../../mod/settings.php:1090 msgid "Upcoming events" msgstr "Prossimi eventi" -#: ../../mod/settings.php:1089 +#: ../../mod/settings.php:1091 msgid "Events today" msgstr "Eventi di oggi" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Upcoming birthdays" msgstr "Prossimi compleanni" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Not available in all themes" msgstr "Non disponibile in tutti i temi" -#: ../../mod/settings.php:1091 +#: ../../mod/settings.php:1093 msgid "System (personal) notifications" msgstr "Notifiche personali dal sistema" -#: ../../mod/settings.php:1092 +#: ../../mod/settings.php:1094 msgid "System info messages" msgstr "Notifiche di sistema" -#: ../../mod/settings.php:1093 +#: ../../mod/settings.php:1095 msgid "System critical alerts" msgstr "Avvisi critici di sistema" -#: ../../mod/settings.php:1094 +#: ../../mod/settings.php:1096 msgid "New connections" msgstr "Nuovi contatti" -#: ../../mod/settings.php:1095 +#: ../../mod/settings.php:1097 msgid "System Registrations" msgstr "Registrazioni" -#: ../../mod/settings.php:1096 +#: ../../mod/settings.php:1098 msgid "" "Also show new wall posts, private messages and connections under Notices" msgstr "Mostra negli avvisi anche i nuovi post, i messaggi privati e i nuovi contatti" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Notify me of events this many days in advance" msgstr "Giorni di anticipo per notificare gli eventi" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Must be greater than 0" msgstr "Maggiore di 0" -#: ../../mod/settings.php:1100 +#: ../../mod/settings.php:1102 msgid "Advanced Account/Page Type Settings" msgstr "Impostazioni avanzate" -#: ../../mod/settings.php:1101 +#: ../../mod/settings.php:1103 msgid "Change the behaviour of this account for special situations" msgstr "Cambia il funzionamento di questo account per necessità particolari" -#: ../../mod/settings.php:1104 +#: ../../mod/settings.php:1106 msgid "" "Please enable expert mode (in <a href=\"settings/features\">Settings > " "Additional features</a>) to adjust!" msgstr "Abilita la modalità esperto per fare cambiamenti! (in <a href=\"settings/features\">Impostazioni > Funzionalità opzionali</a>)" -#: ../../mod/settings.php:1105 +#: ../../mod/settings.php:1107 msgid "Miscellaneous Settings" msgstr "Impostazioni varie" -#: ../../mod/settings.php:1106 +#: ../../mod/settings.php:1108 msgid "Default photo upload folder" msgstr "Cartella predefinita per le foto caricate" -#: ../../mod/settings.php:1106 ../../mod/settings.php:1107 +#: ../../mod/settings.php:1108 ../../mod/settings.php:1109 msgid "%Y - current year, %m - current month" msgstr "%Y - anno corrente, %m - mese corrente" -#: ../../mod/settings.php:1107 +#: ../../mod/settings.php:1109 msgid "Default file upload folder" msgstr "Cartella predefinita per i file caricati" -#: ../../mod/settings.php:1109 +#: ../../mod/settings.php:1111 msgid "Personal menu to display in your channel pages" msgstr "Menu personale da mostrare sulle pagine del tuo canale" -#: ../../mod/settings.php:1111 +#: ../../mod/settings.php:1113 msgid "Remove this channel." msgstr "Elimina questo canale." -#: ../../mod/settings.php:1112 +#: ../../mod/settings.php:1114 msgid "Firefox Share $Projectname provider" -msgstr "Funzionalità Firefox Share per $Projectname" - -#: ../../mod/xchan.php:6 -msgid "Xchan Lookup" -msgstr "Ricerca canale" - -#: ../../mod/xchan.php:9 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Cerca un canale (o un webbie) che inizia per:" - -#: ../../mod/manage.php:130 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Hai creato %1$.0f dei %2$.0f canali permessi." - -#: ../../mod/manage.php:138 -msgid "Create a new channel" -msgstr "Crea un nuovo canale" - -#: ../../mod/manage.php:161 -msgid "Current Channel" -msgstr "Canale attuale" - -#: ../../mod/manage.php:163 -msgid "Switch to one of your channels by selecting it." -msgstr "Seleziona l'altro canale a cui vuoi passare." - -#: ../../mod/manage.php:164 -msgid "Default Channel" -msgstr "Canale predefinito" - -#: ../../mod/manage.php:165 -msgid "Make Default" -msgstr "Rendi predefinito" - -#: ../../mod/manage.php:168 -#, php-format -msgid "%d new messages" -msgstr "%d nuovi messaggi" - -#: ../../mod/manage.php:169 -#, php-format -msgid "%d new introductions" -msgstr "%d nuove richieste di entrare in contatto" - -#: ../../mod/manage.php:171 -msgid "Delegated Channels" -msgstr "Canali delegati" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Autorizza la app" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Torna alla app e inserisci questo codice di sicurezza:" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Accedi al sito per continuare." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?" - -#: ../../mod/connections.php:52 ../../mod/connections.php:150 -msgid "Blocked" -msgstr "Bloccati" - -#: ../../mod/connections.php:57 ../../mod/connections.php:157 -msgid "Ignored" -msgstr "Ignorati" - -#: ../../mod/connections.php:62 ../../mod/connections.php:171 -msgid "Hidden" -msgstr "Nascosti" - -#: ../../mod/connections.php:67 ../../mod/connections.php:164 -msgid "Archived" -msgstr "Archiviati" - -#: ../../mod/connections.php:128 -msgid "Suggest new connections" -msgstr "Suggerisci nuovi contatti" - -#: ../../mod/connections.php:131 -msgid "New Connections" -msgstr "Nuovi contatti" - -#: ../../mod/connections.php:134 -msgid "Show pending (new) connections" -msgstr "Richieste di contatto in attesa" - -#: ../../mod/connections.php:137 ../../mod/profperm.php:139 -msgid "All Connections" -msgstr "Tutti i contatti" - -#: ../../mod/connections.php:140 -msgid "Show all connections" -msgstr "Mostra tutti i contatti" - -#: ../../mod/connections.php:143 -msgid "Unblocked" -msgstr "Non bloccati" - -#: ../../mod/connections.php:146 -msgid "Only show unblocked connections" -msgstr "Mostra solo i contatti non bloccati" - -#: ../../mod/connections.php:153 -msgid "Only show blocked connections" -msgstr "Mostra solo i contatti bloccati" - -#: ../../mod/connections.php:160 -msgid "Only show ignored connections" -msgstr "Mostra solo i contatti ignorati" - -#: ../../mod/connections.php:167 -msgid "Only show archived connections" -msgstr "Mostra solo i contatti archiviati" - -#: ../../mod/connections.php:174 -msgid "Only show hidden connections" -msgstr "Mostra solo i contatti nascosti" - -#: ../../mod/connections.php:225 -#, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" - -#: ../../mod/connections.php:226 -msgid "Edit connection" -msgstr "Modifica il contatto" - -#: ../../mod/connections.php:264 -msgid "Search your connections" -msgstr "Cerca tra i contatti" - -#: ../../mod/connections.php:265 -msgid "Finding: " -msgstr "Ricerca: " - -#: ../../mod/editlayout.php:112 -msgid "Delete layout?" -msgstr "Vuoi eliminare questo layout?" - -#: ../../mod/editlayout.php:178 -msgid "Edit Layout" -msgstr "Modifica il layout" - -#: ../../mod/editwebpage.php:153 -msgid "Delete webpage?" -msgstr "Vuoi eliminare questa pagina web?" - -#: ../../mod/editwebpage.php:172 -msgid "Page link title" -msgstr "Link del titolo" - -#: ../../mod/editwebpage.php:222 -msgid "Edit Webpage" -msgstr "Modifica la pagina web" - -#: ../../mod/group.php:20 -msgid "Collection created." -msgstr "L'insieme di canali è stato creato." - -#: ../../mod/group.php:26 -msgid "Could not create collection." -msgstr "Impossibile creare l'insieme." - -#: ../../mod/group.php:54 -msgid "Collection updated." -msgstr "Insieme aggiornato." +msgstr "Attiva Firefox Share per $Projectname" -#: ../../mod/group.php:86 -msgid "Create a collection of channels." -msgstr "Crea un insieme di canali." +#: ../../mod/settings.php:1115 +msgid "Start calendar week on monday" +msgstr "La settimana inizia di lunedì" -#: ../../mod/group.php:87 ../../mod/group.php:180 -msgid "Collection Name: " -msgstr "Nome dell'insieme:" - -#: ../../mod/group.php:89 ../../mod/group.php:183 -msgid "Members are visible to other channels" -msgstr "I membri potranno vedere gli altri canali dell'insieme" - -#: ../../mod/group.php:107 -msgid "Collection removed." -msgstr "Insieme rimosso." +#: ../../mod/webpages.php:191 +msgid "Page Title" +msgstr "Titolo della pagina" -#: ../../mod/group.php:109 -msgid "Unable to remove collection." -msgstr "Impossibile rimuovere l'insieme." +#: ../../mod/appman.php:28 ../../mod/appman.php:44 +msgid "App installed." +msgstr "App installata" -#: ../../mod/group.php:179 -msgid "Collection Editor" -msgstr "Modifica l'insieme" +#: ../../mod/appman.php:37 +msgid "Malformed app." +msgstr "L'app contiene errori" -#: ../../mod/group.php:193 -msgid "Members" -msgstr "Membri" +#: ../../mod/appman.php:80 +msgid "Embed code" +msgstr "Inserisci il codice" -#: ../../mod/group.php:195 -msgid "All Connected Channels" -msgstr "Tutti i canali connessi" +#: ../../mod/appman.php:86 +msgid "Edit App" +msgstr "Modifica app" -#: ../../mod/group.php:227 -msgid "Click on a channel to add or remove." -msgstr "Clicca su un canale per aggiungerlo o rimuoverlo." +#: ../../mod/appman.php:86 +msgid "Create App" +msgstr "Crea una app" -#: ../../mod/connect.php:56 ../../mod/connect.php:104 -msgid "Continue" -msgstr "Continua" +#: ../../mod/appman.php:91 +msgid "Name of app" +msgstr "Nome app" -#: ../../mod/connect.php:85 -msgid "Premium Channel Setup" -msgstr "Canale premium - configurazione" +#: ../../mod/appman.php:92 +msgid "Location (URL) of app" +msgstr "Indirizzo (URL) della app" -#: ../../mod/connect.php:87 -msgid "Enable premium channel connection restrictions" -msgstr "Abilita le restrizioni del canale premium" +#: ../../mod/appman.php:94 +msgid "Photo icon URL" +msgstr "URL icona" -#: ../../mod/connect.php:88 -msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." -msgstr "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc." +#: ../../mod/appman.php:94 +msgid "80 x 80 pixels - optional" +msgstr "80 x 80 pixel - facoltativa" -#: ../../mod/connect.php:90 ../../mod/connect.php:110 -msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" -msgstr "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:" +#: ../../mod/appman.php:95 +msgid "Version ID" +msgstr "ID versione" -#: ../../mod/connect.php:91 -msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "Il testo seguente comparirà a chi vorrà seguire il canale:" +#: ../../mod/appman.php:96 +msgid "Price of app" +msgstr "Prezzo app" -#: ../../mod/connect.php:92 ../../mod/connect.php:113 -msgid "" -"By continuing, I certify that I have complied with any instructions provided" -" on this page." -msgstr "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina." +#: ../../mod/appman.php:97 +msgid "Location (URL) to purchase app" +msgstr "Indirizzo (URL) per acquistare la app" -#: ../../mod/connect.php:101 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "(Il gestore del canale non ha fornito istruzioni specifiche)" +#: ../../mod/filer.php:48 +msgid "- select -" +msgstr "- scegli -" -#: ../../mod/connect.php:109 -msgid "Restricted or Premium Channel" -msgstr "Canale premium - con restrizioni" +#: ../../mod/layouts.php:176 +msgid "Comanche page description language help" +msgstr "Guida di Comanche Page Description Language" -#: ../../mod/viewconnections.php:59 -msgid "No connections." -msgstr "Nessun contatto." +#: ../../mod/layouts.php:180 +msgid "Layout Description" +msgstr "Descrizione del layout" -#: ../../mod/viewconnections.php:72 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Visita il profilo di %s [%s]" +#: ../../mod/layouts.php:185 +msgid "Download PDL file" +msgstr "Scarica il file PDL" #: ../../mod/locs.php:21 ../../mod/locs.php:50 msgid "Location not found." @@ -8360,704 +8247,754 @@ msgstr "Si raccomanda di attendere alcuni minuti prima di effettuare una nuova s msgid "" "When possible, drop a location by logging into that website/hub and removing" " your channel." -msgstr "Quando possibile, riduci il numero di cloni del tuo canale effettuando il login sui loro hub e rimuovendoli." +msgstr "Quando possibile, riduci il numero di cloni del tuo canale effettuando il login sul relativo hub e rimuovendoli." #: ../../mod/locs.php:120 msgid "Use this form to drop the location if the hub is no longer operating." msgstr "Usa questo modulo per abbandonare un canale su un hub che non è più funzionante." -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please" -" logout and retry." -msgstr "L'autenticazione tramite il tuo hub non è disponibile. Puoi provare a disconnetterti per tentare di nuovo." +#: ../../mod/mail.php:33 +msgid "Unable to lookup recipient." +msgstr "Impossibile associare un destinatario." -#: ../../mod/ffsapi.php:8 -msgid "Share content from Firefox to $Projectname" -msgstr "Condividi i contenuti su $Projectname da Firefox" +#: ../../mod/mail.php:41 +msgid "Unable to communicate with requested channel." +msgstr "Impossibile comunicare con il canale richiesto." -#: ../../mod/ffsapi.php:11 -msgid "Activate the Firefox $Projectname provider" -msgstr "Attiva Firefox Share per $Projectname" +#: ../../mod/mail.php:48 +msgid "Cannot verify requested channel." +msgstr "Impossibile verificare il canale richiesto." -#: ../../mod/setup.php:191 -msgid "$Projectname Server - Setup" -msgstr "Server $Projectname - Installazione" +#: ../../mod/mail.php:74 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito." -#: ../../mod/setup.php:195 -msgid "Could not connect to database." -msgstr " Impossibile connettersi al database." +#: ../../mod/mail.php:132 +msgid "Messages" +msgstr "Messaggi" -#: ../../mod/setup.php:199 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS." +#: ../../mod/mail.php:167 +msgid "Message recalled." +msgstr "Messaggio revocato." -#: ../../mod/setup.php:206 -msgid "Could not create table." -msgstr "Impossibile creare le tabelle." +#: ../../mod/mail.php:180 +msgid "Conversation removed." +msgstr "Conversazione rimossa." -#: ../../mod/setup.php:211 -msgid "Your site database has been installed." -msgstr "Il database del sito è stato installato." +#: ../../mod/mail.php:223 +msgid "Requested channel is not in this network" +msgstr "Il canale cercato non è in questa rete" -#: ../../mod/setup.php:215 -msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." -msgstr "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db." +#: ../../mod/mail.php:231 +msgid "Send Private Message" +msgstr "Invia un messaggio privato" -#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Leggi il file 'install/INSTALL.txt'." +#: ../../mod/mail.php:232 ../../mod/mail.php:361 +msgid "To:" +msgstr "A:" -#: ../../mod/setup.php:281 -msgid "System check" -msgstr "Verifica del sistema" +#: ../../mod/mail.php:235 ../../mod/mail.php:363 +msgid "Subject:" +msgstr "Oggetto:" -#: ../../mod/setup.php:286 -msgid "Check again" -msgstr "Verifica di nuovo" +#: ../../mod/mail.php:238 ../../mod/invite.php:131 +msgid "Your message:" +msgstr "Il tuo messaggio:" -#: ../../mod/setup.php:308 -msgid "Database connection" -msgstr "Connessione al database" +#: ../../mod/mail.php:242 +msgid "Send" +msgstr "Invia" -#: ../../mod/setup.php:309 -msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." -msgstr "Per poter installare $Projectname è necessario fornire i parametri di connessione al tuo database." +#: ../../mod/mail.php:333 +msgid "Delete message" +msgstr "Elimina il messaggio" -#: ../../mod/setup.php:310 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni." +#: ../../mod/mail.php:334 +msgid "Delivery report" +msgstr "Rapporto di trasmissione" -#: ../../mod/setup.php:311 +#: ../../mod/mail.php:335 +msgid "Recall message" +msgstr "Revoca il messaggio" + +#: ../../mod/mail.php:337 +msgid "Message has been recalled." +msgstr "Il messaggio è stato revocato." + +#: ../../mod/mail.php:354 +msgid "Delete Conversation" +msgstr "Elimina la conversazione" + +#: ../../mod/mail.php:356 msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "Il database deve già esistere. Se non esiste, crealo prima di continuare." +"No secure communications available. You <strong>may</strong> be able to " +"respond from the sender's profile page." +msgstr "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente." -#: ../../mod/setup.php:315 -msgid "Database Server Name" -msgstr "Server del database" +#: ../../mod/mail.php:360 +msgid "Send Reply" +msgstr "Invia la risposta" -#: ../../mod/setup.php:315 -msgid "Default is 127.0.0.1" -msgstr "Il valore predefinito è 127.0.0.1" +#: ../../mod/mail.php:365 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Il tuo messaggio per %s (%s):" -#: ../../mod/setup.php:316 -msgid "Database Port" -msgstr "Port del database" +#: ../../mod/regmod.php:11 +msgid "Please login." +msgstr "Effettua l'accesso." -#: ../../mod/setup.php:316 -msgid "Communication port number - use 0 for default" -msgstr "Scrivi 0 per usare il valore standard" +#: ../../mod/xchan.php:6 +msgid "Xchan Lookup" +msgstr "Ricerca canale" -#: ../../mod/setup.php:317 -msgid "Database Login Name" -msgstr "Utente database" +#: ../../mod/xchan.php:9 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Cerca un canale (o un webbie) che inizia per:" -#: ../../mod/setup.php:318 -msgid "Database Login Password" -msgstr "Password database" +#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 +msgid "Not found." +msgstr "Non trovato." -#: ../../mod/setup.php:319 -msgid "Database Name" -msgstr "Nome database" +#: ../../mod/channel.php:25 ../../mod/chat.php:19 +msgid "You must be logged in to see this page." +msgstr "Devi aver effettuato l'accesso per vedere questa pagina." -#: ../../mod/setup.php:320 -msgid "Database Type" -msgstr "Tipo database" +#: ../../mod/channel.php:97 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Permessi insufficienti. Sarà visualizzata la pagina del profilo." -#: ../../mod/setup.php:322 ../../mod/setup.php:363 -msgid "Site administrator email address" -msgstr "Indirizzo email dell'amministratore del hub" +#: ../../mod/attach.php:9 +msgid "Item not available." +msgstr "Elemento non disponibile." -#: ../../mod/setup.php:322 ../../mod/setup.php:363 +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." +msgstr "Hai superato il numero massimo di inviti." + +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s: non è un indirizzo email valido." + +#: ../../mod/invite.php:76 +msgid "Please join us on $Projectname" +msgstr "Unisciti a noi su $Projectname" + +#: ../../mod/invite.php:87 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario." + +#: ../../mod/invite.php:92 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s: la consegna del messaggio è fallita." + +#: ../../mod/invite.php:96 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d messaggio inviato." +msgstr[1] "%d messaggi inviati." + +#: ../../mod/invite.php:115 +msgid "You have no more invitations available" +msgstr "Non hai altri inviti disponibili" + +#: ../../mod/invite.php:129 +msgid "Send invitations" +msgstr "Spedisci inviti" + +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" +msgstr "Inserisci gli indirizzi email, uno per riga:" + +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." +msgstr "Entra nella mia comunità su $Projectname." + +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " +msgstr "Dovrai fornire questo codice di invito:" + +#: ../../mod/invite.php:135 msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione di Hubzilla." +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Registrati su qualsiasi server $Projectname (sono tutti interconnessi)" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Website URL" -msgstr "URL completo del sito" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Inserisci il mio indirizzo $Projectname nel riquadro di ricerca del sito." -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Please use SSL (https) URL if available." -msgstr "Se disponibile, usa l'indirizzo SSL (https)." +#: ../../mod/invite.php:138 +msgid "or visit " +msgstr "oppure visita " -#: ../../mod/setup.php:325 ../../mod/setup.php:367 -msgid "Please select a default timezone for your website" -msgstr "Seleziona il fuso orario predefinito per il tuo hub" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" +msgstr "3. Clicca su [Aggiungi]" -#: ../../mod/setup.php:352 -msgid "Site settings" -msgstr "Impostazioni del hub" +#: ../../mod/lockview.php:37 +msgid "Remote privacy information not available." +msgstr "Le informazioni remote sulla privacy non sono disponibili." -#: ../../mod/setup.php:417 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web" +#: ../../mod/lockview.php:58 +msgid "Visible to:" +msgstr "Visibile a:" -#: ../../mod/setup.php:418 +#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 +msgid "Export Channel" +msgstr "Esporta il canale" + +#: ../../mod/uexport.php:53 msgid "" -"If you don't have a command line version of PHP installed on server, you " -"will not be able to run background polling via cron." -msgstr "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron." +"Export your basic channel information to a file. This acts as a backup of " +"your connections, permissions, profile and basic data, which can be used to " +"import your data to a new server hub, but does not contain your content." +msgstr "Esporta le informazioni di base del canale in un file. In pratica è un salvataggio delle tue connessioni, dei permessi che hai assegnato e del tuo profilo che così potrà essere importato su un altro server/hub. Il file non includerà i tuoi post e altri contenuti che hai creato o caricato." -#: ../../mod/setup.php:422 -msgid "PHP executable path" -msgstr "Path del comando PHP" +#: ../../mod/uexport.php:54 +msgid "Export Content" +msgstr "Esporta i contenuti" -#: ../../mod/setup.php:422 +#: ../../mod/uexport.php:55 msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione." +"Export your channel information and recent content to a JSON backup that can" +" be restored or imported to another server hub. This backs up all of your " +"connections, permissions, profile data and several months of posts. This " +"file may be VERY large. Please be patient - it may take several minutes for" +" this download to begin." +msgstr "Esporta il tuo canale e i contenuti recenti in un file di salvataggio che potrà essere importato su un altro server/hub. Sarà un backup dei tuoi contatti, dei permessi che hai assegnato, dei dati del profilo e dei post degli ultimi mesi. Il file potrebbe essere MOLTO grande. Sarà necessario attendere con pazienza - saranno necessari molti minuti prima che inizi lo scaricamento." -#: ../../mod/setup.php:427 -msgid "Command line PHP" -msgstr "PHP da riga di comando" +#: ../../mod/uexport.php:56 +msgid "Export your posts from a given year." +msgstr "Esporta i tuoi post a partire dall'anno scelto." -#: ../../mod/setup.php:436 +#: ../../mod/uexport.php:58 msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"." +"You may also export your posts and conversations for a particular year or " +"month. Adjust the date in your browser location bar to select other dates. " +"If the export fails (possibly due to memory exhaustion on your server hub), " +"please try again selecting a more limited date range." +msgstr "Puoi anche esportare post e conversazioni di un particolare anno o mese. Modifica la data nella barra dell'indirizzo del browser per scegliere date differenti. Se l'esportazione dovesse fallire (la memoria sul server potrebbe non bastare), riprova scegliendo un intervallo più breve tra le date." -#: ../../mod/setup.php:437 -msgid "This is required for message delivery to work." -msgstr "E' necessario perché funzioni la consegna dei messaggi." +#: ../../mod/uexport.php:59 +#, php-format +msgid "" +"To select all posts for a given year, such as this year, visit <a " +"href=\"%1$s\">%2$s</a>" +msgstr "Per selezionare tutti i post di un anno, come per esempio quello in corso, visita <a href=\"%1$s\">%2$s</a> " -#: ../../mod/setup.php:440 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" +#: ../../mod/uexport.php:60 +#, php-format +msgid "" +"To select all posts for a given month, such as January of this year, visit " +"<a href=\"%1$s\">%2$s</a>" +msgstr "Per selezionare tutti post di un dato mese, come per esempio gennaio di quest'anno, visita <a href=\"%1$s\">%2$s</a>" -#: ../../mod/setup.php:458 +#: ../../mod/uexport.php:61 #, php-format msgid "" -"Your max allowed total upload size is set to %s. Maximum size of one file to" -" upload is set to %s. You are allowed to upload up to %d files at once." -msgstr "La dimensione massima di un caricamento è impostata a %s. Il singolo file non può superare %s. Ti è permesso caricare max %d file per volta." +"These content files may be imported or restored by visiting <a " +"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" +" please import or restore these in date order (oldest first)." +msgstr "Questi contenuti potranno essere importati o ripristinati visitando <a href=\"%1$s\">%2$s</a> su qualsiasi sito/hub dove è presente il tuo canale. Per mantenere l'ordinamento originale fai attenzione ad importare i file secondo la data (prima il più vecchio)" -#: ../../mod/setup.php:463 -msgid "You can adjust these settings in the servers php.ini." -msgstr "Puoi regolare queste impostazioni sul server in php.ini" +#: ../../mod/editpost.php:31 +msgid "Item is not editable" +msgstr "L'elemento non è modificabile" -#: ../../mod/setup.php:465 -msgid "PHP upload limits" -msgstr "Limiti PHP in upload" +#: ../../mod/editpost.php:57 +msgid "Delete item?" +msgstr "Eliminare questo elemento?" -#: ../../mod/setup.php:488 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di cifratura" +#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 +msgid "Edit post" +msgstr "Modifica post" -#: ../../mod/setup.php:489 +#: ../../mod/follow.php:25 +msgid "Channel added." +msgstr "Canale aggiunto." + +#: ../../mod/rmagic.php:40 msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"." +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Non è possibile effettuare login con l'OpenID che hai fornito. Per favore controlla che sia scritto correttamente." -#: ../../mod/setup.php:492 -msgid "Generate encryption keys" -msgstr "Genera chiavi di cifratura" +#: ../../mod/rmagic.php:40 +msgid "The error message was:" +msgstr "Messaggio di errore ricevuto:" -#: ../../mod/setup.php:504 -msgid "libCurl PHP module" -msgstr "modulo PHP libCurl" +#: ../../mod/rmagic.php:44 +msgid "Authentication failed." +msgstr "Autenticazione fallita." -#: ../../mod/setup.php:505 -msgid "GD graphics PHP module" -msgstr "modulo PHP GD graphics" +#: ../../mod/rmagic.php:84 +msgid "Remote Authentication" +msgstr "Accedi tramite il tuo hub" -#: ../../mod/setup.php:506 -msgid "OpenSSL PHP module" -msgstr "modulo PHP OpenSSL" +#: ../../mod/rmagic.php:85 +msgid "Enter your channel address (e.g. channel@example.com)" +msgstr "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)" -#: ../../mod/setup.php:507 -msgid "mysqli or postgres PHP module" -msgstr "modulo PHP per mysqli oppure prostgres" +#: ../../mod/rmagic.php:86 +msgid "Authenticate" +msgstr "Accedi" -#: ../../mod/setup.php:508 -msgid "mb_string PHP module" -msgstr "modulo PHP mb_string" +#: ../../mod/chat.php:174 +msgid "Room not found" +msgstr "Chat non trovata" -#: ../../mod/setup.php:509 -msgid "mcrypt PHP module" -msgstr "modulo PHP mcrypt" +#: ../../mod/chat.php:185 +msgid "Leave Room" +msgstr "Lascia la chat" -#: ../../mod/setup.php:510 -msgid "xml PHP module" -msgstr "modulo xml PHP" +#: ../../mod/chat.php:186 +msgid "Delete This Room" +msgstr "Elimina questa chat" -#: ../../mod/setup.php:514 ../../mod/setup.php:516 -msgid "Apache mod_rewrite module" -msgstr "modulo Apache mod_rewrite" +#: ../../mod/chat.php:187 +msgid "I am away right now" +msgstr "Non sono presente" -#: ../../mod/setup.php:514 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato" +#: ../../mod/chat.php:188 +msgid "I am online" +msgstr "Sono online" -#: ../../mod/setup.php:520 ../../mod/setup.php:523 -msgid "proc_open" -msgstr "proc_open" +#: ../../mod/chat.php:190 +msgid "Bookmark this room" +msgstr "Aggiungi questa chat ai segnalibri" -#: ../../mod/setup.php:520 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini" +#: ../../mod/chat.php:208 ../../mod/chat.php:231 +msgid "New Chatroom" +msgstr "Nuova chat" -#: ../../mod/setup.php:528 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Errore: il modulo libCURL di PHP è richiesto ma non installato." +#: ../../mod/chat.php:209 +msgid "Chatroom Name" +msgstr "Nome della chat" -#: ../../mod/setup.php:532 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato." +#: ../../mod/chat.php:210 +msgid "Expiration of chats (minutes)" +msgstr "Scadenza dei messaggi della chat (minuti)" -#: ../../mod/setup.php:536 -msgid "Error: openssl PHP module required but not installed." -msgstr "Errore: il modulo openssl di PHP è richiesto ma non installato." +#: ../../mod/chat.php:227 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "Le chat di %1$s" -#: ../../mod/setup.php:540 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato" +#: ../../mod/viewsrc.php:40 +msgid "Source of Item" +msgstr "Sorgente" -#: ../../mod/setup.php:544 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Errore: il modulo PHP mb_string è richiesto ma non installato." +#: ../../mod/ffsapi.php:8 +msgid "Share content from Firefox to $Projectname" +msgstr "Condividi i contenuti su $Projectname da Firefox" -#: ../../mod/setup.php:548 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "Errore: il modulo PHP mcrypt è richiesto ma non installato." +#: ../../mod/ffsapi.php:11 +msgid "Activate the Firefox $Projectname provider" +msgstr "Attiva Firefox Share per $Projectname" -#: ../../mod/setup.php:552 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "Errore: il modulo xml PHP è richiesto per DAV ma non è installato." +#: ../../mod/magic.php:69 +msgid "Hub not found." +msgstr "Hub non trovato." -#: ../../mod/setup.php:570 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\"" -" in the top folder of your web server and it is unable to do so." -msgstr "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo." +#: ../../mod/connections.php:52 ../../mod/connections.php:150 +msgid "Blocked" +msgstr "Bloccati" -#: ../../mod/setup.php:571 -msgid "" -"This is most often a permission setting, as the web server may not be able " -"to write files in your folder - even if you can." -msgstr "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi." +#: ../../mod/connections.php:57 ../../mod/connections.php:157 +msgid "Ignored" +msgstr "Ignorati" -#: ../../mod/setup.php:572 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Red top folder." -msgstr "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla." +#: ../../mod/connections.php:62 ../../mod/connections.php:171 +msgid "Hidden" +msgstr "Nascosti" -#: ../../mod/setup.php:573 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni." +#: ../../mod/connections.php:67 ../../mod/connections.php:164 +msgid "Archived" +msgstr "Archiviati" -#: ../../mod/setup.php:576 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php è scrivibile" +#: ../../mod/connections.php:128 +msgid "Suggest new connections" +msgstr "Suggerisci nuovi contatti" -#: ../../mod/setup.php:590 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Hubzilla usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP." +#: ../../mod/connections.php:131 +msgid "New Connections" +msgstr "Nuovi contatti" -#: ../../mod/setup.php:591 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the Red top level folder." -msgstr "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di Hubzilla." +#: ../../mod/connections.php:134 +msgid "Show pending (new) connections" +msgstr "Richieste di contatto in attesa" -#: ../../mod/setup.php:592 ../../mod/setup.php:613 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)." +#: ../../mod/connections.php:137 ../../mod/profperm.php:139 +msgid "All Connections" +msgstr "Tutti i contatti" -#: ../../mod/setup.php:593 -#, php-format -msgid "" -"Note: as a security measure, you should give the web server write access to " -"%s only--not the template files (.tpl) that it contains." -msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene." +#: ../../mod/connections.php:140 +msgid "Show all connections" +msgstr "Mostra tutti i contatti" -#: ../../mod/setup.php:596 -#, php-format -msgid "%s is writable" -msgstr "%s è scrivibile" +#: ../../mod/connections.php:143 +msgid "Unblocked" +msgstr "Non bloccati" -#: ../../mod/setup.php:612 -msgid "" -"Red uses the store directory to save uploaded files. The web server needs to" -" have write access to the store directory under the Red top level folder" -msgstr "Hubzilla salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix" +#: ../../mod/connections.php:146 +msgid "Only show unblocked connections" +msgstr "Mostra solo i contatti non bloccati" -#: ../../mod/setup.php:616 -msgid "store is writable" -msgstr "l'archivio è scrivibile" +#: ../../mod/connections.php:153 +msgid "Only show blocked connections" +msgstr "Mostra solo i contatti bloccati" -#: ../../mod/setup.php:649 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access" -" to this site." -msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito." +#: ../../mod/connections.php:160 +msgid "Only show ignored connections" +msgstr "Mostra solo i contatti ignorati" -#: ../../mod/setup.php:650 -msgid "" -"If you have https access to your website or allow connections to TCP port " -"443 (the https: port), you MUST use a browser-valid certificate. You MUST " -"NOT use self-signed certificates!" -msgstr "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati self-signed generati da te!" +#: ../../mod/connections.php:167 +msgid "Only show archived connections" +msgstr "Mostra solo i contatti archiviati" -#: ../../mod/setup.php:651 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." -msgstr "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server." +#: ../../mod/connections.php:174 +msgid "Only show hidden connections" +msgstr "Mostra solo i contatti nascosti" -#: ../../mod/setup.php:652 -msgid "" -"If your certificate is not recognized, members of other sites (who may " -"themselves have valid certificates) will get a warning message on their own " -"site complaining about security issues." -msgstr "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser." +#: ../../mod/connections.php:225 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" -#: ../../mod/setup.php:653 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." -msgstr "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto." +#: ../../mod/connections.php:226 +msgid "Edit connection" +msgstr "Modifica il contatto" -#: ../../mod/setup.php:654 -msgid "" -"Providers are available that issue free certificates which are browser-" -"valid." -msgstr "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser." +#: ../../mod/connections.php:264 +msgid "Search your connections" +msgstr "Cerca tra i contatti" -#: ../../mod/setup.php:656 -msgid "SSL certificate validation" -msgstr "Validazione del certificato SSL" +#: ../../mod/connections.php:265 +msgid "Finding: " +msgstr "Ricerca: " -#: ../../mod/setup.php:662 -msgid "" -"Url rewrite in .htaccess is not working. Check your server " -"configuration.Test: " -msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:" +#: ../../mod/help.php:147 +msgid "Documentation Search" +msgstr "Ricerca nella guida" -#: ../../mod/setup.php:665 -msgid "Url rewrite is working" -msgstr "Url rewrite funziona correttamente" +#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 +msgid "Help:" +msgstr "Guida:" -#: ../../mod/setup.php:674 -msgid "" -"The database configuration file \".htconfig.php\" could not be written. " -"Please use the enclosed text to create a configuration file in your web " -"server root." -msgstr "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito." +#: ../../mod/help.php:211 ../../index.php:238 +msgid "Not Found" +msgstr "Non disponibile" -#: ../../mod/setup.php:698 -msgid "Errors encountered creating database tables." -msgstr "La creazione delle tabelle del database ha generato errori." +#: ../../mod/help.php:235 +msgid "$Projectname Documentation" +msgstr "Guida di $Projectname" -#: ../../mod/setup.php:732 -msgid "<h1>What next</h1>" -msgstr "<h1>I prossimi passi</h1>" +#: ../../mod/manage.php:130 +#, php-format +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Hai creato %1$.0f dei %2$.0f canali permessi." -#: ../../mod/setup.php:733 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling." +#: ../../mod/manage.php:138 +msgid "Create a new channel" +msgstr "Crea un nuovo canale" -#: ../../mod/sharedwithme.php:94 -msgid "Files: shared with me" -msgstr "File: condivisi con me" +#: ../../mod/manage.php:161 +msgid "Current Channel" +msgstr "Canale attuale" -#: ../../mod/sharedwithme.php:96 -msgid "NEW" -msgstr "NOVITÀ" +#: ../../mod/manage.php:163 +msgid "Switch to one of your channels by selecting it." +msgstr "Seleziona l'altro canale a cui vuoi passare." -#: ../../mod/sharedwithme.php:99 -msgid "Remove all files" -msgstr "Elimina tutti i file" +#: ../../mod/manage.php:164 +msgid "Default Channel" +msgstr "Canale predefinito" -#: ../../mod/sharedwithme.php:100 -msgid "Remove this file" -msgstr "Elimina questo file" +#: ../../mod/manage.php:165 +msgid "Make Default" +msgstr "Rendi predefinito" -#: ../../mod/suggest.php:35 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Nessun suggerimento disponibile. Se questo sito è nuovo, riprova tra 24 ore." +#: ../../mod/manage.php:168 +#, php-format +msgid "%d new messages" +msgstr "%d nuovi messaggi" -#: ../../mod/profiles.php:18 ../../mod/profiles.php:174 -#: ../../mod/profiles.php:231 ../../mod/profiles.php:600 -msgid "Profile not found." -msgstr "Profilo non trovato." +#: ../../mod/manage.php:169 +#, php-format +msgid "%d new introductions" +msgstr "%d nuove richieste di entrare in contatto" -#: ../../mod/profiles.php:38 -msgid "Profile deleted." -msgstr "Profilo eliminato." +#: ../../mod/manage.php:171 +msgid "Delegated Channels" +msgstr "Canali delegati" -#: ../../mod/profiles.php:56 ../../mod/profiles.php:92 -msgid "Profile-" -msgstr "Profilo-" +#: ../../mod/menu.php:45 +msgid "Unable to update menu." +msgstr "Impossibile aggiornare il menù." -#: ../../mod/profiles.php:77 ../../mod/profiles.php:120 -msgid "New profile created." -msgstr "Il nuovo profilo è stato creato." +#: ../../mod/menu.php:56 +msgid "Unable to create menu." +msgstr "Impossibile creare il menù." -#: ../../mod/profiles.php:98 -msgid "Profile unavailable to clone." -msgstr "Impossibile duplicare il profilo." +#: ../../mod/menu.php:94 ../../mod/menu.php:106 +msgid "Menu Name" +msgstr "Nome del menu" -#: ../../mod/profiles.php:136 -msgid "Profile unavailable to export." -msgstr "Il profilo non è disponibile per l'export." +#: ../../mod/menu.php:94 +msgid "Unique name (not visible on webpage) - required" +msgstr "Nome unico (non visibile sulla pagina) - obbligatorio" -#: ../../mod/profiles.php:241 -msgid "Profile Name is required." -msgstr "Il nome del profilo è obbligatorio." +#: ../../mod/menu.php:95 ../../mod/menu.php:107 +msgid "Menu Title" +msgstr "Titolo del menu" -#: ../../mod/profiles.php:404 -msgid "Marital Status" -msgstr "Stato sentimentale" +#: ../../mod/menu.php:95 +msgid "Visible on webpage - leave empty for no title" +msgstr "Visibile sulla pagina - lascia vuoto per non avere un titolo" -#: ../../mod/profiles.php:408 -msgid "Romantic Partner" -msgstr "Partner affettivo" +#: ../../mod/menu.php:96 +msgid "Allow Bookmarks" +msgstr "Permetti i segnalibri" -#: ../../mod/profiles.php:412 -msgid "Likes" -msgstr "Mi piace" +#: ../../mod/menu.php:96 ../../mod/menu.php:153 +msgid "Menu may be used to store saved bookmarks" +msgstr "Puoi salvare i segnalibri nei menù" -#: ../../mod/profiles.php:416 -msgid "Dislikes" -msgstr "Non mi piace" +#: ../../mod/menu.php:97 ../../mod/menu.php:155 +msgid "Submit and proceed" +msgstr "Salva e procedi" -#: ../../mod/profiles.php:420 -msgid "Work/Employment" -msgstr "Lavoro/impiego" +#: ../../mod/menu.php:109 +msgid "Drop" +msgstr "Elimina" -#: ../../mod/profiles.php:423 -msgid "Religion" -msgstr "Religione" +#: ../../mod/menu.php:113 +msgid "Bookmarks allowed" +msgstr "Permetti segnalibri" -#: ../../mod/profiles.php:427 -msgid "Political Views" -msgstr "Orientamento politico" +#: ../../mod/menu.php:115 +msgid "Delete this menu" +msgstr "Elimina questo menù" -#: ../../mod/profiles.php:435 -msgid "Sexual Preference" -msgstr "Preferenze sessuali" +#: ../../mod/menu.php:116 ../../mod/menu.php:150 +msgid "Edit menu contents" +msgstr "Modifica i contenuti del menù" -#: ../../mod/profiles.php:439 -msgid "Homepage" -msgstr "Home page" +#: ../../mod/menu.php:117 +msgid "Edit this menu" +msgstr "Modifica questo menù" -#: ../../mod/profiles.php:443 -msgid "Interests" -msgstr "Interessi" +#: ../../mod/menu.php:132 +msgid "Menu could not be deleted." +msgstr "Il menù non può essere eliminato." -#: ../../mod/profiles.php:537 -msgid "Profile updated." -msgstr "Profilo aggiornato." +#: ../../mod/menu.php:140 ../../mod/mitem.php:24 +msgid "Menu not found." +msgstr "Menù non trovato." -#: ../../mod/profiles.php:626 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?" +#: ../../mod/menu.php:145 +msgid "Edit Menu" +msgstr "Modifica menù" -#: ../../mod/profiles.php:666 -msgid "Edit Profile Details" -msgstr "Modifica i dettagli del profilo" +#: ../../mod/menu.php:149 +msgid "Add or remove entries to this menu" +msgstr "Aggiungi o rimuovi elementi di questo menù" -#: ../../mod/profiles.php:668 -msgid "View this profile" -msgstr "Guarda questo profilo" +#: ../../mod/menu.php:151 +msgid "Menu name" +msgstr "Nome del menù" -#: ../../mod/profiles.php:670 -msgid "Change Profile Photo" -msgstr "Cambia la foto del profilo" +#: ../../mod/menu.php:151 +msgid "Must be unique, only seen by you" +msgstr "Deve essere unico, lo vedrai solo tu" -#: ../../mod/profiles.php:671 -msgid "Create a new profile using these settings" -msgstr "Crea un nuovo profilo usando queste impostazioni" +#: ../../mod/menu.php:152 +msgid "Menu title" +msgstr "Titolo del menù" -#: ../../mod/profiles.php:672 -msgid "Clone this profile" -msgstr "Clona questo profilo" +#: ../../mod/menu.php:152 +msgid "Menu title as seen by others" +msgstr "Titolo del menù come comparirà a tutti" -#: ../../mod/profiles.php:673 -msgid "Delete this profile" -msgstr "Elimina questo profilo" +#: ../../mod/menu.php:153 +msgid "Allow bookmarks" +msgstr "Permetti l'invio di segnalibri" -#: ../../mod/profiles.php:675 -msgid "Import profile from file" -msgstr "Importa il profilo da un file" +#: ../../mod/post.php:234 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please" +" logout and retry." +msgstr "L'autenticazione tramite il tuo hub non è disponibile. Puoi provare a disconnetterti per tentare di nuovo." -#: ../../mod/profiles.php:676 -msgid "Export profile to file" -msgstr "Esporta il profilo in un file" +#: ../../mod/service_limits.php:19 +msgid "No service class restrictions found." +msgstr "Non esistono restrizioni su questa classe di account." -#: ../../mod/profiles.php:677 -msgid "Profile Name:" -msgstr "Nome del profilo:" +#: ../../mod/siteinfo.php:111 +#, php-format +msgid "Version %s" +msgstr "Versione %s" -#: ../../mod/profiles.php:678 -msgid "Your Full Name:" -msgstr "Il tuo nome completo:" +#: ../../mod/siteinfo.php:132 +msgid "Installed plugins/addons/apps:" +msgstr "App e componenti installati:" -#: ../../mod/profiles.php:679 -msgid "Title/Description:" -msgstr "Titolo/descrizione:" +#: ../../mod/siteinfo.php:145 +msgid "No installed plugins/addons/apps" +msgstr "Nessuna app o componente installato" -#: ../../mod/profiles.php:680 -msgid "Your Gender:" -msgstr "Sesso:" +#: ../../mod/siteinfo.php:158 +msgid "" +"This is a hub of $Projectname - a global cooperative network of " +"decentralized privacy enhanced websites." +msgstr "Questo è un hub di $Projectname - una rete cooperativa e decentralizzata di siti ad elevata privacy. " -#: ../../mod/profiles.php:681 -msgid "Birthday :" -msgstr "Compleanno:" +#: ../../mod/siteinfo.php:160 +msgid "Tag: " +msgstr "Tag: " -#: ../../mod/profiles.php:682 -msgid "Street Address:" -msgstr "Indirizzo (via/piazza):" +#: ../../mod/siteinfo.php:162 +msgid "Last background fetch: " +msgstr "Ultima acquisizione:" -#: ../../mod/profiles.php:683 -msgid "Locality/City:" -msgstr "Località:" +#: ../../mod/siteinfo.php:164 +msgid "Current load average: " +msgstr "Carico medio attuale:" -#: ../../mod/profiles.php:684 -msgid "Postal/Zip Code:" -msgstr "CAP:" +#: ../../mod/siteinfo.php:167 +msgid "Running at web location" +msgstr "In esecuzione sull'indirizzo web" -#: ../../mod/profiles.php:685 -msgid "Country:" -msgstr "Nazione:" +#: ../../mod/siteinfo.php:168 +msgid "" +"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " +"about $Projectname." +msgstr "Visita <a href=\"http://hubzilla.org\">hubzilla.org</a> per maggiori informazioni su $Projectname." -#: ../../mod/profiles.php:686 -msgid "Region/State:" -msgstr "Regione/stato:" +#: ../../mod/siteinfo.php:169 +msgid "Bug reports and issues: please visit" +msgstr "Per segnalare bug e problemi: visita" -#: ../../mod/profiles.php:687 -msgid "<span class=\"heart\">♥</span> Marital Status:" -msgstr "<span class=\"heart\">♥</span> Stato sentimentale:" +#: ../../mod/siteinfo.php:171 +msgid "$projectname issues" +msgstr "Problematiche note su $projectname" -#: ../../mod/profiles.php:688 -msgid "Who: (if applicable)" -msgstr "Con chi: (se possibile)" +#: ../../mod/siteinfo.php:172 +msgid "" +"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " +"com" +msgstr "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com" -#: ../../mod/profiles.php:689 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com" +#: ../../mod/siteinfo.php:174 +msgid "Site Administrators" +msgstr "Amministratori del sito" -#: ../../mod/profiles.php:690 -msgid "Since [date]:" -msgstr "dal [data]:" +#: ../../mod/suggest.php:35 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Nessun suggerimento disponibile. Se questo sito è nuovo, riprova tra 24 ore." -#: ../../mod/profiles.php:692 -msgid "Homepage URL:" -msgstr "Indirizzo home page:" +#: ../../mod/events.php:21 +msgid "Calendar entries imported." +msgstr "Le voci del calendario sono state importate." -#: ../../mod/profiles.php:695 -msgid "Religious Views:" -msgstr "Orientamento religioso:" +#: ../../mod/events.php:23 +msgid "No calendar entries found." +msgstr "Non sono state trovate voci del calendario." -#: ../../mod/profiles.php:696 -msgid "Keywords:" -msgstr "Parole chiave, tag:" +#: ../../mod/events.php:100 +msgid "Event can not end before it has started." +msgstr "Un evento non può terminare prima del suo inizio." -#: ../../mod/profiles.php:699 -msgid "Example: fishing photography software" -msgstr "Per esempio: pesca fotografia programmazione" +#: ../../mod/events.php:102 ../../mod/events.php:111 ../../mod/events.php:131 +msgid "Unable to generate preview." +msgstr "Impossibile creare un'anteprima." -#: ../../mod/profiles.php:700 -msgid "Used in directory listings" -msgstr "Visibile negli elenchi pubblici di canali" +#: ../../mod/events.php:109 +msgid "Event title and start time are required." +msgstr "Sono necessari il titolo e l'ora d'inizio dell'evento." -#: ../../mod/profiles.php:701 -msgid "Tell us about yourself..." -msgstr "Raccontaci di te..." +#: ../../mod/events.php:129 ../../mod/events.php:254 +msgid "Event not found." +msgstr "Evento non trovato." -#: ../../mod/profiles.php:702 -msgid "Hobbies/Interests" -msgstr "Hobby/interessi" +#: ../../mod/events.php:452 +msgid "Event Title" +msgstr "Titolo dell'evento" -#: ../../mod/profiles.php:703 -msgid "Contact information and Social Networks" -msgstr "Contatti personali e i tuoi social network" +#: ../../mod/events.php:454 +msgid "Categories (comma-separated list)" +msgstr "Categorie (separate da virgola)" -#: ../../mod/profiles.php:704 -msgid "My other channels" -msgstr "I miei altri canali" +#: ../../mod/events.php:455 +msgid "Category" +msgstr "Categoria" -#: ../../mod/profiles.php:705 -msgid "Musical interests" -msgstr "Interessi musicali" +#: ../../mod/events.php:458 +msgid "Start date and time" +msgstr "Data e ora di inizio" -#: ../../mod/profiles.php:706 -msgid "Books, literature" -msgstr "Libri, letteratura" +#: ../../mod/events.php:459 ../../mod/events.php:462 +msgid "Finish date and time are not known or not relevant" +msgstr "La data e l'ora di inizio non sono necessarie" -#: ../../mod/profiles.php:707 -msgid "Television" -msgstr "Televisione" +#: ../../mod/events.php:461 +msgid "Finish date and time" +msgstr "Data e ora di fine" -#: ../../mod/profiles.php:708 -msgid "Film/dance/culture/entertainment" -msgstr "Film/danza/cultura/intrattenimento" +#: ../../mod/events.php:463 ../../mod/events.php:464 +msgid "Adjust for viewer timezone" +msgstr "Adatta al fuso orario di chi legge" -#: ../../mod/profiles.php:709 -msgid "Love/romance" -msgstr "Amore" +#: ../../mod/events.php:463 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." +msgstr "Importante per eventi che avvengono online ma con un certo fuso orario." -#: ../../mod/profiles.php:710 -msgid "Work/employment" -msgstr "Lavoro/impiego" +#: ../../mod/events.php:470 ../../mod/events.php:472 +msgid "Share this event" +msgstr "Condividi questo evento" -#: ../../mod/profiles.php:711 -msgid "School/education" -msgstr "Scuola/educazione" +#: ../../mod/events.php:477 +msgid "Advanced Options" +msgstr "Opzioni avanzate" -#: ../../mod/profiles.php:717 -msgid "This is your default profile." -msgstr "Questo è il tuo profilo predefinito." +#: ../../mod/events.php:589 +msgid "l, F j" +msgstr "l j F" -#: ../../mod/profiles.php:728 -msgid "Age: " -msgstr "Età:" +#: ../../mod/events.php:611 +msgid "Edit event" +msgstr "Modifica l'evento" -#: ../../mod/profiles.php:771 -msgid "Edit/Manage Profiles" -msgstr "Modifica/gestisci i profili" +#: ../../mod/events.php:613 +msgid "Delete event" +msgstr "Elimina l'evento" -#: ../../mod/profiles.php:772 -msgid "Add profile things" -msgstr "Aggiungi oggetti al profilo" +#: ../../mod/events.php:647 +msgid "calendar" +msgstr "calendario" -#: ../../mod/profiles.php:773 -msgid "Include desirable objects in your profile" -msgstr "Aggiungi oggetti interessanti al tuo profilo" +#: ../../mod/events.php:666 +msgid "New Event" +msgstr "Nuovo evento" + +#: ../../mod/events.php:676 +msgid "Today" +msgstr "Oggi" + +#: ../../mod/events.php:707 +msgid "Event removed" +msgstr "Evento eliminato" + +#: ../../mod/events.php:710 +msgid "Failed to remove event" +msgstr "Impossibile eliminare l'evento" #: ../../mod/profperm.php:29 ../../mod/profperm.php:58 msgid "Invalid profile identifier." @@ -9075,39 +9012,147 @@ msgstr "Clicca su un contatto per aggiungerlo o rimuoverlo." msgid "Visible To" msgstr "Visibile a" -#: ../../mod/rbmark.php:90 -msgid "Select a bookmark folder" -msgstr "Scegli una cartella di segnalibri" +#: ../../mod/mitem.php:48 +msgid "Unable to create element." +msgstr "Impossibile creare l'elemento." -#: ../../mod/rbmark.php:95 -msgid "Save Bookmark" -msgstr "Salva segnalibro" +#: ../../mod/mitem.php:72 +msgid "Unable to update menu element." +msgstr "Non è possibile aggiornare l'elemento del menù." -#: ../../mod/rbmark.php:96 -msgid "URL of bookmark" -msgstr "URL del segnalibro" +#: ../../mod/mitem.php:88 +msgid "Unable to add menu element." +msgstr "Impossibile aggiungere l'elemento al menù." -#: ../../mod/rbmark.php:101 -msgid "Or enter new bookmark folder name" -msgstr "O inserisci il nome di una nuova cartella di segnalibri" +#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 +msgid "Menu Item Permissions" +msgstr "Permessi del menu" -#: ../../mod/import_items.php:101 -msgid "Import completed" -msgstr "Importazione completata" +#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 +msgid "Link Name" +msgstr "Nome link" -#: ../../mod/import_items.php:119 -msgid "Import Items" -msgstr "Importa i contenuti" +#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 +msgid "Link or Submenu Target" +msgstr "Azione del link o del sottomenu" -#: ../../mod/import_items.php:120 -msgid "" -"Use this form to import existing posts and content from an export file." -msgstr "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza." +#: ../../mod/mitem.php:153 +msgid "Enter URL of the link or select a menu name to create a submenu" +msgstr "Inserisci l'indirizzo del link o scegli il nome di un sottomenu" + +#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 +msgid "Use magic-auth if available" +msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile" + +#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 +msgid "Open link in new window" +msgstr "Apri il link in una nuova finestra" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Order in list" +msgstr "Ordine dell'elenco" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Higher numbers will sink to bottom of listing" +msgstr "I numeri più alti andranno in fondo all'elenco" + +#: ../../mod/mitem.php:157 +msgid "Submit and finish" +msgstr "Salva e termina" + +#: ../../mod/mitem.php:158 +msgid "Submit and continue" +msgstr "Salva e continua" + +#: ../../mod/mitem.php:166 +msgid "Menu:" +msgstr "Menu:" + +#: ../../mod/mitem.php:169 +msgid "Link Target" +msgstr "Destinazione link" + +#: ../../mod/mitem.php:172 +msgid "Edit menu" +msgstr "Modifica il menù" + +#: ../../mod/mitem.php:175 +msgid "Edit element" +msgstr "Modifica l'elemento" + +#: ../../mod/mitem.php:176 +msgid "Drop element" +msgstr "Elimina l'elemento" + +#: ../../mod/mitem.php:177 +msgid "New element" +msgstr "Nuovo elemento" + +#: ../../mod/mitem.php:178 +msgid "Edit this menu container" +msgstr "Modifica il contenitore del menù" + +#: ../../mod/mitem.php:179 +msgid "Add menu element" +msgstr "Aggiungi un elemento al menù" + +#: ../../mod/mitem.php:180 +msgid "Delete this menu item" +msgstr "Elimina questo elemento del menù" + +#: ../../mod/mitem.php:181 +msgid "Edit this menu item" +msgstr "Modifica questo elemento del menù" + +#: ../../mod/mitem.php:198 +msgid "Menu item not found." +msgstr "L'elemento del menù non è stato trovato." + +#: ../../mod/mitem.php:211 +msgid "Menu item deleted." +msgstr "L'elemento del menù è stato eliminato." + +#: ../../mod/mitem.php:213 +msgid "Menu item could not be deleted." +msgstr "L'elemento del menù non può essere eliminato." + +#: ../../mod/mitem.php:220 +msgid "Edit Menu Element" +msgstr "Modifica l'elemento del menù" + +#: ../../mod/mitem.php:226 +msgid "Link text" +msgstr "Testo del link" #: ../../mod/wholikesme.php:13 msgid "Who likes me?" msgstr "Chi mi ha dato un \"Mi piace\"?" +#: ../../mod/sharedwithme.php:94 +msgid "Files: shared with me" +msgstr "File: condivisi con me" + +#: ../../mod/sharedwithme.php:96 +msgid "NEW" +msgstr "NOVITÀ" + +#: ../../mod/sharedwithme.php:99 +msgid "Remove all files" +msgstr "Elimina tutti i file" + +#: ../../mod/sharedwithme.php:100 +msgid "Remove this file" +msgstr "Elimina questo file" + +#: ../../mod/viewconnections.php:59 +msgid "No connections." +msgstr "Nessun contatto." + +#: ../../mod/viewconnections.php:72 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Visita il profilo di %s [%s]" + #: ../../view/theme/redbasic/php/config.php:82 msgid "Focus (Hubzilla default)" msgstr "Focus (predefinito)" @@ -9244,51 +9289,51 @@ msgstr "Dimensione foto dell'autore della conversazione" msgid "Set size of followup author photos" msgstr "Dimensione foto dei partecipanti alla conversazione" -#: ../../boot.php:1308 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "%s: aggiornamento fallito. Controlla i log di errore." -#: ../../boot.php:1311 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "Errore di aggiornamento su %s" -#: ../../boot.php:1478 +#: ../../boot.php:1461 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "Registrati per accedere ai servizi e alle applicazioni di Hubzilla" -#: ../../boot.php:1506 +#: ../../boot.php:1489 msgid "Password" msgstr "Password" -#: ../../boot.php:1507 +#: ../../boot.php:1490 msgid "Remember me" msgstr "Resta connesso" -#: ../../boot.php:1510 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "Hai dimenticato la password?" -#: ../../boot.php:2136 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "attiva/disattiva versione mobile" -#: ../../boot.php:2271 +#: ../../boot.php:2248 msgid "Website SSL certificate is not valid. Please correct." msgstr "Il certificato SSL del sito non è valido. Si prega di intervenire." -#: ../../boot.php:2274 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Errore SSL su %s" -#: ../../boot.php:2311 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "Processi cron non avviati." -#: ../../boot.php:2315 +#: ../../boot.php:2292 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Cron non è stato eseguito %s" diff --git a/view/it/hstrings.php b/view/it/hstrings.php index 005de6e67..ff8ee82a5 100644 --- a/view/it/hstrings.php +++ b/view/it/hstrings.php @@ -5,176 +5,20 @@ function string_plural_select_it($n){ return ($n != 1);; }} ; -$a->strings["photo"] = "la foto"; -$a->strings["event"] = "l'evento"; -$a->strings["channel"] = "il canale"; -$a->strings["status"] = "il messaggio di stato"; -$a->strings["comment"] = "il commento"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s"; -$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s"; -$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s"; -$a->strings["poked"] = "ha ricevuto un poke"; -$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s"; -$a->strings["__ctx:title__ Likes"] = "Mi piace"; -$a->strings["__ctx:title__ Dislikes"] = "Non mi piace"; -$a->strings["__ctx:title__ Agree"] = "D'accordo"; -$a->strings["__ctx:title__ Disagree"] = "Non d'accordo"; -$a->strings["__ctx:title__ Abstain"] = "Astenuti"; -$a->strings["__ctx:title__ Attending"] = "Partecipano"; -$a->strings["__ctx:title__ Not attending"] = "Non partecipano"; -$a->strings["__ctx:title__ Might attend"] = "Forse partecipano"; -$a->strings["Select"] = "Scegli"; -$a->strings["Delete"] = "Elimina"; -$a->strings["Private Message"] = "Messaggio privato"; -$a->strings["Message signature validated"] = "Messaggio con firma verificata"; -$a->strings["Message signature incorrect"] = "Massaggio con firma non corretta"; -$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s"; -$a->strings["Categories:"] = "Categorie:"; -$a->strings["Filed under:"] = "Classificato come:"; -$a->strings["from %s"] = "da %s"; -$a->strings["last edited: %s"] = "ultima modifica: %s"; -$a->strings["Expires: %s"] = "Scadenza: %s"; -$a->strings["View in context"] = "Vedi nel contesto"; -$a->strings["Please wait"] = "Attendere"; -$a->strings["remove"] = "rimuovi"; -$a->strings["Loading..."] = "Caricamento in corso..."; -$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati"; -$a->strings["View Source"] = "Vedi il sorgente"; -$a->strings["Follow Thread"] = "Segui la discussione"; -$a->strings["Stop Following"] = "Non seguire più la discussione"; -$a->strings["View Status"] = "Bacheca"; -$a->strings["View Profile"] = "Profilo"; -$a->strings["View Photos"] = "Foto"; -$a->strings["Activity/Posts"] = "Attività e Post"; $a->strings["Connect"] = "Aggiungi"; -$a->strings["Edit Connection"] = "Modifica il contatto"; -$a->strings["Send PM"] = "Messaggio privato"; -$a->strings["Poke"] = "Poke"; -$a->strings["Unknown"] = "Sconosciuto"; -$a->strings["%s likes this."] = "Piace a %s."; -$a->strings["%s doesn't like this."] = "Non piace a %s."; -$a->strings["<span %1\$s>%2\$d people</span> like this."] = array( - 0 => "", - 1 => "Piace a <span %1\$s>%2\$d persone</span>.", -); -$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( - 0 => "", - 1 => "Non piace a <span %1\$s>%2\$d persone</span>.", -); -$a->strings["and"] = "e"; -$a->strings[", and %d other people"] = array( - 0 => "", - 1 => "e altre %d persone", -); -$a->strings["%s like this."] = "Piace a %s."; -$a->strings["%s don't like this."] = "Non piace a %s."; -$a->strings["Visible to <strong>everybody</strong>"] = "Visibile a <strong>tutti</strong>"; -$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:"; -$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:"; -$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:"; -$a->strings["Tag term:"] = "Tag:"; -$a->strings["Save to Folder:"] = "Salva nella cartella:"; -$a->strings["Where are you right now?"] = "Dove sei ora?"; -$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scade il YYYY-MM-DD HH:MM"; -$a->strings["Preview"] = "Anteprima"; -$a->strings["Share"] = "Condividi"; -$a->strings["Page link name"] = "Nome del link alla pagina"; -$a->strings["Post as"] = "Pubblica come "; -$a->strings["Bold"] = "Grassetto"; -$a->strings["Italic"] = "Corsivo"; -$a->strings["Underline"] = "Sottolineato"; -$a->strings["Quote"] = "Citazione"; -$a->strings["Code"] = "Codice"; -$a->strings["Upload photo"] = "Carica foto"; -$a->strings["upload photo"] = "carica foto"; -$a->strings["Attach file"] = "Allega file"; -$a->strings["attach file"] = "allega file"; -$a->strings["Insert web link"] = "Inserisci un indirizzo web"; -$a->strings["web link"] = "link web"; -$a->strings["Insert video link"] = "Inserisci l'indirizzo del video"; -$a->strings["video link"] = "link video"; -$a->strings["Insert audio link"] = "Inserisci l'indirizzo dell'audio"; -$a->strings["audio link"] = "link audio"; -$a->strings["Set your location"] = "La tua località"; -$a->strings["set location"] = "la tua località"; -$a->strings["Toggle voting"] = "Abilita/disabilita il voto"; -$a->strings["Clear browser location"] = "Rimuovi la località data dal browser"; -$a->strings["clear location"] = "rimuovi la località"; -$a->strings["Title (optional)"] = "Titolo (facoltativo)"; -$a->strings["Categories (optional, comma-separated list)"] = "Categorie (facoltative, lista separata da virgole)"; -$a->strings["Permission settings"] = "Permessi dei tuoi contatti"; -$a->strings["permissions"] = "permessi"; -$a->strings["Public post"] = "Post pubblico"; -$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com"; -$a->strings["Set expiration date"] = "Data di scadenza"; -$a->strings["Set publish date"] = "Data di uscita programmata"; -$a->strings["Encrypt text"] = "Cifratura del messaggio"; -$a->strings["OK"] = "OK"; -$a->strings["Cancel"] = "Annulla"; -$a->strings["Discover"] = "Scopri"; -$a->strings["Imported public streams"] = "Contenuti pubblici importati"; -$a->strings["Commented Order"] = "Ultimi commenti"; -$a->strings["Sort by Comment Date"] = "Per data del commento"; -$a->strings["Posted Order"] = "Ultimi post"; -$a->strings["Sort by Post Date"] = "Per data di creazione"; -$a->strings["Personal"] = "Personali"; -$a->strings["Posts that mention or involve you"] = "Post che ti riguardano"; -$a->strings["New"] = "Novità"; -$a->strings["Activity Stream - by date"] = "Elenco attività - per data"; -$a->strings["Starred"] = "Preferiti"; -$a->strings["Favourite Posts"] = "Post preferiti"; -$a->strings["Spam"] = "Spam"; -$a->strings["Posts flagged as SPAM"] = "Post marcati come spam"; -$a->strings["Channel"] = "Canale"; -$a->strings["Status Messages and Posts"] = "Post e messaggi di stato"; -$a->strings["About"] = "Informazioni"; -$a->strings["Profile Details"] = "Dettagli del profilo"; -$a->strings["Photos"] = "Foto"; -$a->strings["Photo Albums"] = "Album foto"; -$a->strings["Files"] = "Archivio file"; -$a->strings["Files and Storage"] = "Archivio file"; -$a->strings["Chatrooms"] = "Chat"; -$a->strings["Bookmarks"] = "Segnalibri"; -$a->strings["Saved Bookmarks"] = "Segnalibri salvati"; -$a->strings["Webpages"] = "Pagine web"; -$a->strings["Manage Webpages"] = "Gestisci le pagine web"; -$a->strings["View all"] = "Vedi tutto"; -$a->strings["__ctx:noun__ Like"] = array( - 0 => "Mi piace", - 1 => "Mi piace", -); -$a->strings["__ctx:noun__ Dislike"] = array( - 0 => "Non mi piace", - 1 => "Non mi piace", -); -$a->strings["__ctx:noun__ Attending"] = array( - 0 => "Partecipa", - 1 => "Partecipano", -); -$a->strings["__ctx:noun__ Not Attending"] = array( - 0 => "Non partecipa", - 1 => "Non partecipano", -); -$a->strings["__ctx:noun__ Undecided"] = array( - 0 => "Indeciso", - 1 => "Indecisi", -); -$a->strings["__ctx:noun__ Agree"] = array( - 0 => "D'accordo", - 1 => "D'accordo", -); -$a->strings["__ctx:noun__ Disagree"] = array( - 0 => "Non d'accordo", - 1 => "Non d'accordo", -); -$a->strings["__ctx:noun__ Abstain"] = array( - 0 => "Astenuto", - 1 => "Astenuti", -); -$a->strings["No username found in import file."] = "Impossibile trovare il nome utente nel file da importare."; +$a->strings["New window"] = "Nuova finestra"; +$a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra"; +$a->strings["User '%s' deleted"] = "Utente '%s' eliminato"; +$a->strings["Missing room name"] = "Chat senza nome"; +$a->strings["Duplicate room name"] = "Il nome della chat è duplicato"; +$a->strings["Invalid room specifier."] = "Il nome della chat non è valido."; +$a->strings["Room not found."] = "Chat non trovata."; +$a->strings["Permission denied."] = "Permesso negato."; +$a->strings["Room is full"] = "La chat è al completo"; +$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita."; $a->strings["Unable to create a unique channel address. Import failed."] = "Impossibile creare un indirizzo univoco per il canale. L'import è fallito."; -$a->strings["Import completed."] = "L'importazione è terminata con successo."; +$a->strings["Channel clone failed. Import failed."] = "Impossibile clonare il canale. L'importazione è fallita."; +$a->strings["Cloned channel not found. Import failed."] = "Impossibile trovare il canale clonato. L'importazione è fallita."; $a->strings["parent"] = "cartella superiore"; $a->strings["Collection"] = "Cartella"; $a->strings["Principal"] = "Principale"; @@ -182,6 +26,8 @@ $a->strings["Addressbook"] = "Rubrica"; $a->strings["Calendar"] = "Calendario"; $a->strings["Schedule Inbox"] = "Appuntamenti ricevuti"; $a->strings["Schedule Outbox"] = "Appuntamenti inviati"; +$a->strings["Unknown"] = "Sconosciuto"; +$a->strings["Files"] = "Archivio file"; $a->strings["Total"] = "Totale"; $a->strings["Shared"] = "Condiviso"; $a->strings["Create"] = "Crea"; @@ -191,135 +37,12 @@ $a->strings["Type"] = "Tipo"; $a->strings["Size"] = "Dimensione"; $a->strings["Last Modified"] = "Ultima modifica"; $a->strings["Edit"] = "Modifica"; +$a->strings["Delete"] = "Elimina"; $a->strings["You are using %1\$s of your available file storage."] = "Stai usando %1\$s dello spazio disponibile per i tuoi file."; $a->strings["You are using %1\$s of %2\$s available file storage. (%3\$s%)"] = "Stai usando %1\$s di %2\$s che hai a disposizione per i file. (%3\$s%)"; $a->strings["WARNING:"] = "ATTENZIONE:"; $a->strings["Create new folder"] = "Nuova cartella"; $a->strings["Upload file"] = "Carica un file"; -$a->strings["Can view my normal stream and posts"] = "Può vedere i miei contenuti e i post normali"; -$a->strings["Can view my default channel profile"] = "Può vedere il profilo predefinito del canale"; -$a->strings["Can view my connections"] = "Può vedere i miei contatti"; -$a->strings["Can view my file storage and photos"] = "Può vedere il mio archivio file e foto"; -$a->strings["Can view my webpages"] = "Può vedere le mie pagine web"; -$a->strings["Can send me their channel stream and posts"] = "È tra i canali che seguo"; -$a->strings["Can post on my channel page (\"wall\")"] = "Può scrivere sulla bacheca del mio canale"; -$a->strings["Can comment on or like my posts"] = "Può commentare o aggiungere \"mi piace\" ai miei post"; -$a->strings["Can send me private mail messages"] = "Può inviarmi messaggi privati"; -$a->strings["Can like/dislike stuff"] = "Può aggiungere \"mi piace\" a tutto il resto"; -$a->strings["Profiles and things other than posts/comments"] = "Può aggiungere \"mi piace\" a tutto ciò che non riguarda i post, come per esempio il profilo"; -$a->strings["Can forward to all my channel contacts via post @mentions"] = "Può inoltrare post a tutti i contatti del canale tramite una @menzione"; -$a->strings["Advanced - useful for creating group forum channels"] = "Impostazione avanzata - utile per creare un canale-forum di discussione"; -$a->strings["Can chat with me (when available)"] = "Può aprire una chat con me (se disponibile)"; -$a->strings["Can write to my file storage and photos"] = "Può modificare il mio archivio file e foto"; -$a->strings["Can edit my webpages"] = "Può modificare le mie pagine web"; -$a->strings["Can source my public posts in derived channels"] = "Può usare i miei post pubblici per creare canali derivati"; -$a->strings["Somewhat advanced - very useful in open communities"] = "Piuttosto avanzato - molto utile nelle comunità aperte"; -$a->strings["Can administer my channel resources"] = "Può amministrare i contenuti del mio canale"; -$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri"; -$a->strings["Social Networking"] = "Social network"; -$a->strings["Mostly Public"] = "Prevalentemente pubblico"; -$a->strings["Restricted"] = "Con restrizioni"; -$a->strings["Private"] = "Privato"; -$a->strings["Community Forum"] = "Forum di discussione"; -$a->strings["Feed Republish"] = "Aggregatore di feed esterni"; -$a->strings["Special Purpose"] = "Per finalità speciali"; -$a->strings["Celebrity/Soapbox"] = "Pagina per fan"; -$a->strings["Group Repository"] = "Repository di gruppo"; -$a->strings["Other"] = "Altro"; -$a->strings["Custom/Expert Mode"] = "Personalizzazione per esperti"; -$a->strings["Missing room name"] = "Chat senza nome"; -$a->strings["Duplicate room name"] = "Il nome della chat è duplicato"; -$a->strings["Invalid room specifier."] = "Il nome della chat non è valido."; -$a->strings["Room not found."] = "Chat non trovata."; -$a->strings["Permission denied."] = "Permesso negato."; -$a->strings["Room is full"] = "La chat è al completo"; -$a->strings["Miscellaneous"] = "Altro"; -$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-GG oppure MM-GG"; -$a->strings["Required"] = "Obbligatorio"; -$a->strings["never"] = "mai"; -$a->strings["less than a second ago"] = "meno di un secondo fa"; -$a->strings["year"] = "anno"; -$a->strings["years"] = "anni"; -$a->strings["month"] = "mese"; -$a->strings["months"] = "mesi"; -$a->strings["week"] = "settimana"; -$a->strings["weeks"] = "settimane"; -$a->strings["day"] = "giorno"; -$a->strings["days"] = "giorni"; -$a->strings["hour"] = "ora"; -$a->strings["hours"] = "ore"; -$a->strings["minute"] = "minuto"; -$a->strings["minutes"] = "minuti"; -$a->strings["second"] = "secondo"; -$a->strings["seconds"] = "secondi"; -$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s fa"; -$a->strings["%1\$s's birthday"] = "Compleanno di %1\$s"; -$a->strings["Happy Birthday %1\$s"] = "Buon compleanno %1\$s"; -$a->strings["General Features"] = "Funzionalità di base"; -$a->strings["Content Expiration"] = "Scadenza"; -$a->strings["Remove posts/comments and/or private messages at a future time"] = "Elimina i post, i commenti o i messaggi privati dopo un lasso di tempo"; -$a->strings["Multiple Profiles"] = "Profili multipli"; -$a->strings["Ability to create multiple profiles"] = "Abilitazione a creare profili multipli"; -$a->strings["Advanced Profiles"] = "Profili avanzati"; -$a->strings["Additional profile sections and selections"] = "Informazioni aggiuntive del profilo"; -$a->strings["Profile Import/Export"] = "Importa/esporta il profilo"; -$a->strings["Save and load profile details across sites/channels"] = "Salva o ripristina le informazioni del profilo su siti diversi"; -$a->strings["Web Pages"] = "Pagine web"; -$a->strings["Provide managed web pages on your channel"] = "Attiva la creazione di pagine web sul tuo canale"; -$a->strings["Private Notes"] = "Note private"; -$a->strings["Enables a tool to store notes and reminders"] = "Abilita il riquadro per scrivere le tue annotazioni"; -$a->strings["Navigation Channel Select"] = "Scegli il canale attivo dal menu"; -$a->strings["Change channels directly from within the navigation dropdown menu"] = "Scegli il canale attivo direttamente dal menu di navigazione"; -$a->strings["Photo Location"] = "Posizione geografica"; -$a->strings["If location data is available on uploaded photos, link this to a map."] = "Collega la foto a una mappa quando contiene indicazioni geografiche."; -$a->strings["Expert Mode"] = "Modalità esperto"; -$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate"; -$a->strings["Premium Channel"] = "Canale premium"; -$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ti permette di impostare restrizioni e termini d'uso per il canale"; -$a->strings["Post Composition Features"] = "Modalità di scrittura post"; -$a->strings["Use Markdown"] = "Usa il markdown"; -$a->strings["Allow use of \"Markdown\" to format posts"] = "Consenti l'uso del markdown per formattare i post"; -$a->strings["Large Photos"] = "Foto grandi"; -$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Includi anteprime grandi per le foto dei tuoi post (1024px). Altrimenti saranno mostrate anteprime più piccole (640px)"; -$a->strings["Channel Sources"] = "Sorgenti del canale"; -$a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed"; -$a->strings["Even More Encryption"] = "Cifratura addizionale"; -$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi"; -$a->strings["Enable Voting Tools"] = "Permetti i post con votazione"; -$a->strings["Provide a class of post which others can vote on"] = "Rende possibile la creazione di post in cui sarà possibile votare"; -$a->strings["Delayed Posting"] = "Pubblicazione ritardata"; -$a->strings["Allow posts to be published at a later date"] = "Per scegliere una data e un'ora a cui far uscire i post"; -$a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti"; -$a->strings["Search by Date"] = "Ricerca per data"; -$a->strings["Ability to select posts by date ranges"] = "Per selezionare i post in un intervallo tra date"; -$a->strings["Collections Filter"] = "Filtra per insiemi di canali"; -$a->strings["Enable widget to display Network posts only from selected collections"] = "Mostra il riquadro per filtrare i post di certi insiemi di canali"; -$a->strings["Saved Searches"] = "Ricerche salvate"; -$a->strings["Save search terms for re-use"] = "Salva i termini delle ricerche per poterle ripetere"; -$a->strings["Network Personal Tab"] = "Attività personale"; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Abilita il link per mostrare solamente i contenuti con cui hai interagito"; -$a->strings["Network New Tab"] = "Contenuti nuovi"; -$a->strings["Enable tab to display all new Network activity"] = "Abilita il link per visualizzare solo i nuovi contenuti"; -$a->strings["Affinity Tool"] = "Filtro per affinità"; -$a->strings["Filter stream activity by depth of relationships"] = "Permette di selezionare i contenuti in base al livello di amicizia"; -$a->strings["Connection Filtering"] = "Filtro sui contatti"; -$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filtra i post che ricevi con parole chiave"; -$a->strings["Suggest Channels"] = "Suggerisci canali"; -$a->strings["Show channel suggestions"] = "Mostra alcuni canali che potrebbero interessarti"; -$a->strings["Post/Comment Tools"] = "Gestione post e commenti"; -$a->strings["Tagging"] = "Tag"; -$a->strings["Ability to tag existing posts"] = "Permetti l'aggiunta di tag su post già esistenti"; -$a->strings["Post Categories"] = "Categorie dei post"; -$a->strings["Add categories to your posts"] = "Abilita le categorie per i tuoi post"; -$a->strings["Saved Folders"] = "Cartelle salvate"; -$a->strings["Ability to file posts under folders"] = "Abilita la raccolta dei tuoi articoli in cartelle"; -$a->strings["Dislike Posts"] = "Non mi piace"; -$a->strings["Ability to dislike posts/comments"] = "Abilità la funzionalità \"non mi piace\" per i tuoi post"; -$a->strings["Star Posts"] = "Post con stella"; -$a->strings["Ability to mark special posts with a star indicator"] = "Mostra la stella per segnare i post preferiti"; -$a->strings["Tag Cloud"] = "Nuvola di tag"; -$a->strings["Provide a personal tag cloud on your channel page"] = "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale"; -$a->strings["Default"] = "Predefinito"; $a->strings["Delete this item?"] = "Eliminare questo elemento?"; $a->strings["Comment"] = "Commento"; $a->strings["[+] show all"] = "[+] mostra tutto"; @@ -340,6 +63,7 @@ $a->strings["Describe (optional)"] = "Descrizione (facoltativa)"; $a->strings["Submit"] = "Salva"; $a->strings["Please enter a link URL"] = "Inserisci l'URL di un link"; $a->strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Non hai salvato i cambiamenti. Vuoi davvero lasciare questa pagina?"; +$a->strings["Location"] = "Posizione geografica"; $a->strings["timeago.prefixAgo"] = "timeago.prefixAgo"; $a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow"; $a->strings["ago"] = "fa"; @@ -400,31 +124,9 @@ $a->strings["__ctx:calendar__ month"] = "mese"; $a->strings["__ctx:calendar__ week"] = "settimana"; $a->strings["__ctx:calendar__ day"] = "giorno"; $a->strings["__ctx:calendar__ All day"] = "Tutto il giorno"; -$a->strings["Frequently"] = "Frequentemente"; -$a->strings["Hourly"] = "Ogni ora"; -$a->strings["Twice daily"] = "Due volte al giorno"; -$a->strings["Daily"] = "Ogni giorno"; -$a->strings["Weekly"] = "Ogni settimana"; -$a->strings["Monthly"] = "Ogni mese"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Email"] = "Email"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Zot!"] = "Zot!"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/IM"; -$a->strings["MySpace"] = "MySpace"; -$a->strings[" and "] = "e"; -$a->strings["public profile"] = "profilo pubblico"; -$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s ha cambiato %2\$s in “%3\$s”"; -$a->strings["Visit %1\$s's %2\$s"] = "Guarda %2\$s di %1\$s "; -$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha aggiornato %2\$s cambiando %3\$s."; -$a->strings["New window"] = "Nuova finestra"; -$a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra"; -$a->strings["User '%s' deleted"] = "Utente '%s' eliminato"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Non trovo le informazioni DNS per il database server '%s'"; +$a->strings["No username found in import file."] = "Impossibile trovare il nome utente nel file da importare."; +$a->strings["Import completed."] = "L'importazione è terminata con successo."; +$a->strings["Default"] = "Predefinito"; $a->strings["Permission denied"] = "Permesso negato"; $a->strings["(Unknown)"] = "(Sconosciuto)"; $a->strings["Visible to anybody on the internet."] = "Visibile a chiunque su internet."; @@ -441,6 +143,10 @@ $a->strings["Collection is empty."] = "L'insieme di canali è vuoto."; $a->strings["Collection: %s"] = "Insieme: %s"; $a->strings["Connection: %s"] = "Contatto: %s"; $a->strings["Connection not found."] = "Contatto non trovato."; +$a->strings["No recipient provided."] = "Devi scegliere un destinatario."; +$a->strings["[no subject]"] = "[nessun titolo]"; +$a->strings["Unable to determine sender."] = "Impossibile determinare il mittente."; +$a->strings["Stored post could not be verified."] = "Non è stato possibile verificare il post."; $a->strings["view full size"] = "guarda nelle dimensioni reali"; $a->strings["\$Projectname Notification"] = "Notifica \$Projectname"; $a->strings["\$projectname"] = "\$projectname"; @@ -448,279 +154,17 @@ $a->strings["Thank You,"] = "Grazie,"; $a->strings["%s Administrator"] = "L'amministratore di %s"; $a->strings["Administrator"] = "Amministratore"; $a->strings["No Subject"] = "Nessun titolo"; -$a->strings["%1\$s's bookmarks"] = "I segnalibri di %1\$s"; -$a->strings["Visible to your default audience"] = "Visibile secondo le impostazioni predefinite"; -$a->strings["Show"] = "Mostra"; -$a->strings["Don't show"] = "Non mostrare"; -$a->strings["Permissions"] = "Permessi"; -$a->strings["Close"] = "Chiudi"; -$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Non posso creare un canale con un identificativo che già esiste su questo sistema. L'importazione è fallita."; -$a->strings["Channel clone failed. Import failed."] = "Impossibile clonare il canale. L'importazione è fallita."; -$a->strings["Cloned channel not found. Import failed."] = "Impossibile trovare il canale clonato. L'importazione è fallita."; -$a->strings["Image exceeds website size limit of %lu bytes"] = "L'immagine supera il limite massimo di %lu bytes"; -$a->strings["Image file is empty."] = "Il file dell'immagine è vuoto."; -$a->strings["Unable to process image"] = "Impossibile elaborare l'immagine"; -$a->strings["Photo storage failed."] = "Impossibile salvare la foto."; -$a->strings["Upload New Photos"] = "Carica nuove foto"; -$a->strings["created a new post"] = "Ha creato un nuovo post"; -$a->strings["commented on %s's post"] = "ha commentato il post di %s"; -$a->strings["New Page"] = "Nuova pagina web"; -$a->strings["View"] = "Guarda"; -$a->strings["Actions"] = "Azioni"; -$a->strings["Page Link"] = "Link alla pagina"; -$a->strings["Title"] = "Titolo"; -$a->strings["Created"] = "Creato"; -$a->strings["Edited"] = "Modificato"; -$a->strings["Profile Photos"] = "Foto del profilo"; -$a->strings["Male"] = "Maschio"; -$a->strings["Female"] = "Femmina"; -$a->strings["Currently Male"] = "Al momento maschio"; -$a->strings["Currently Female"] = "Al momento femmina"; -$a->strings["Mostly Male"] = "Prevalentemente maschio"; -$a->strings["Mostly Female"] = "Prevalentemente femmina"; -$a->strings["Transgender"] = "Transgender"; -$a->strings["Intersex"] = "Intersex"; -$a->strings["Transsexual"] = "Transessuale"; -$a->strings["Hermaphrodite"] = "Ermafrodito"; -$a->strings["Neuter"] = "Neutro"; -$a->strings["Non-specific"] = "Non specificato"; -$a->strings["Undecided"] = "Indeciso"; -$a->strings["Males"] = "Maschi"; -$a->strings["Females"] = "Femmine"; -$a->strings["Gay"] = "Gay"; -$a->strings["Lesbian"] = "Lesbica"; -$a->strings["No Preference"] = "Senza preferenza"; -$a->strings["Bisexual"] = "Bisessuale"; -$a->strings["Autosexual"] = "Autosessuale"; -$a->strings["Abstinent"] = "Astinente"; -$a->strings["Virgin"] = "Vergine"; -$a->strings["Deviant"] = "Deviato"; -$a->strings["Fetish"] = "Feticista"; -$a->strings["Oodles"] = "Un sacco"; -$a->strings["Nonsexual"] = "Asessuato"; -$a->strings["Single"] = "Single"; -$a->strings["Lonely"] = "Da solo"; -$a->strings["Available"] = "Disponibile"; -$a->strings["Unavailable"] = "Non disponibile"; -$a->strings["Has crush"] = "Ha una cotta"; -$a->strings["Infatuated"] = "Infatuato/a"; -$a->strings["Dating"] = "Disponibile a un incontro"; -$a->strings["Unfaithful"] = "Infedele"; -$a->strings["Sex Addict"] = "Sesso-dipendente"; -$a->strings["Friends"] = "Amici"; -$a->strings["Friends/Benefits"] = "Amici con qualcosa in più"; -$a->strings["Casual"] = "Casual"; -$a->strings["Engaged"] = "Impegnato"; -$a->strings["Married"] = "Sposato/a"; -$a->strings["Imaginarily married"] = "Con matrimonio immaginario"; -$a->strings["Partners"] = "Partner"; -$a->strings["Cohabiting"] = "Convivente"; -$a->strings["Common law"] = "Matrimonio regolare"; -$a->strings["Happy"] = "Felice"; -$a->strings["Not looking"] = "Non in cerca"; -$a->strings["Swinger"] = "Scambista"; -$a->strings["Betrayed"] = "Tradito/a"; -$a->strings["Separated"] = "Separato/a"; -$a->strings["Unstable"] = "Instabile"; -$a->strings["Divorced"] = "Divorziato/a"; -$a->strings["Imaginarily divorced"] = "Sogna il divorzio"; -$a->strings["Widowed"] = "Vedovo/a"; -$a->strings["Uncertain"] = "Incerto/a"; -$a->strings["It's complicated"] = "Relazione complicata"; -$a->strings["Don't care"] = "Chi se ne frega"; -$a->strings["Ask me"] = "Chiedimelo"; -$a->strings["Embedded content"] = "Contenuti incorporati"; -$a->strings["Embedding disabled"] = "Disabilita la creazione di contenuti incorporati"; $a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; $a->strings["Starts:"] = "Inizio:"; $a->strings["Finishes:"] = "Fine:"; $a->strings["Location:"] = "Luogo:"; $a->strings["This event has been added to your calendar."] = "Questo evento è stato aggiunto al tuo calendario"; +$a->strings["event"] = "l'evento"; $a->strings["Not specified"] = "Non specificato"; $a->strings["Needs Action"] = "Necessita di un intervento"; $a->strings["Completed"] = "Completato"; $a->strings["In Process"] = "In corso"; $a->strings["Cancelled"] = "Annullato"; -$a->strings["Site Admin"] = "Amministrazione sito"; -$a->strings["Address Book"] = "Rubrica"; -$a->strings["Login"] = "Accedi"; -$a->strings["Channel Manager"] = "Gestione canali"; -$a->strings["Grid"] = "Rete"; -$a->strings["Settings"] = "Impostazioni"; -$a->strings["Channel Home"] = "Bacheca del canale"; -$a->strings["Profile"] = "Profilo"; -$a->strings["Events"] = "Eventi"; -$a->strings["Directory"] = "Elenchi pubblici dei canali"; -$a->strings["Help"] = "Guida"; -$a->strings["Mail"] = "Messaggi"; -$a->strings["Mood"] = "Umore"; -$a->strings["Chat"] = "Chat"; -$a->strings["Search"] = "Cerca"; -$a->strings["Probe"] = "Diagnostica"; -$a->strings["Suggest"] = "Suggerisci"; -$a->strings["Random Channel"] = "Canale casuale"; -$a->strings["Invite"] = "Invita"; -$a->strings["Features"] = "Funzionalità"; -$a->strings["Language"] = "Lingua"; -$a->strings["Post"] = "Post"; -$a->strings["Profile Photo"] = "Foto del profilo"; -$a->strings["Update"] = "Aggiorna"; -$a->strings["Install"] = "Installa"; -$a->strings["Purchase"] = "Acquista"; -$a->strings["Logged out."] = "Uscita effettuata."; -$a->strings["Failed authentication"] = "Autenticazione fallita"; -$a->strings["Login failed."] = "Accesso fallito."; -$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; -$a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla] Nuovo messaggio su %s"; -$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato su %3\$s."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s."; -$a->strings["a private message"] = "un messaggio privato"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere."; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]"; -$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla] Nuovo commento di %2\$s alla conversazione #%1\$d"; -$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione."; -$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla] %s ha scritto sulla tua bacheca"; -$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo su %3\$s"; -$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]"; -$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla] %s ti ha taggato"; -$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato su %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl]."; -$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla] %1\$s ti ha mandato un poke"; -$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke su %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl]."; -$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla] %s ha taggato il tuo post"; -$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo post su %3\$s"; -$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo post[/zrl]"; -$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla] Hai una richiesta di amicizia"; -$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di entrare in contatto da '%2\$s' su %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, hai ricevuto una [zrl=%2\$s]richiesta di entrare in contatto[/zrl] da %3\$s."; -$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s"; -$a->strings["Please visit %s to approve or reject the connection request."] = "Visita %s per approvare o rifiutare la richiesta di entrare in contatto."; -$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla] Ti è stato suggerito un amico"; -$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' su %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico."; -$a->strings["Name:"] = "Nome:"; -$a->strings["Photo:"] = "Foto:"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento."; -$a->strings["[Hubzilla:Notify]"] = "[Hubzilla]"; -$a->strings["Save to Folder"] = "Salva nella cartella"; -$a->strings["I will attend"] = "Parteciperò"; -$a->strings["I will not attend"] = "Non parteciperò"; -$a->strings["I might attend"] = "Forse parteciperò"; -$a->strings["I agree"] = "Sono d'accordo"; -$a->strings["I disagree"] = "Non sono d'accordo"; -$a->strings["I abstain"] = "Mi astengo"; -$a->strings["Add Star"] = "Aggiungi ai preferiti"; -$a->strings["Remove Star"] = "Rimuovi dai preferiti"; -$a->strings["Toggle Star Status"] = "Attiva/disattiva preferito"; -$a->strings["starred"] = "preferito"; -$a->strings["Add Tag"] = "Aggiungi un tag"; -$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace"; -$a->strings["like"] = "mi piace"; -$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace"; -$a->strings["dislike"] = "non mi piace"; -$a->strings["Share This"] = "Condividi"; -$a->strings["share"] = "condividi"; -$a->strings["%d comment"] = array( - 0 => "%d commento", - 1 => "%d commenti", -); -$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s"; -$a->strings["to"] = "a"; -$a->strings["via"] = "via"; -$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca"; -$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:"; -$a->strings["Delivery Report"] = "Rapporto di trasmissione"; -$a->strings["Save Bookmarks"] = "Salva segnalibro"; -$a->strings["Add to Calendar"] = "Aggiungi al calendario"; -$a->strings["Mark all seen"] = "Marca tutto come letto"; -$a->strings["__ctx:noun__ Likes"] = "Mi piace"; -$a->strings["__ctx:noun__ Dislikes"] = "Non mi piace"; -$a->strings["This is you"] = "Questo sei tu"; -$a->strings["Image"] = "Immagine"; -$a->strings["Insert Link"] = "Collegamento"; -$a->strings["Video"] = "Video"; -$a->strings["Invalid data packet"] = "Dati ricevuti non validi"; -$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale"; -$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s"; -$a->strings["invalid target signature"] = "la firma ricevuta non è valida"; -$a->strings["Public Timeline"] = "Diario pubblico"; -$a->strings["Image/photo"] = "Immagine"; -$a->strings["Encrypted content"] = "Contenuto cifrato"; -$a->strings["Install %s element: "] = "Installa l'elemento %s:"; -$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Questo post contiene un elemento %s installabile, tuttavia non hai i permessi necessari per l'installazione."; -$a->strings["webpage"] = "pagina web"; -$a->strings["layout"] = "layout"; -$a->strings["block"] = "block"; -$a->strings["menu"] = "menu"; -$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s %3\$s"; -$a->strings["post"] = "il post"; -$a->strings["Different viewers will see this text differently"] = "Ad altri questo testo potrebbe apparire in modo differente"; -$a->strings["$1 spoiler"] = "$1 spoiler"; -$a->strings["$1 wrote:"] = "$1 ha scritto:"; -$a->strings["Not a valid email address"] = "Email non valida"; -$a->strings["Your email domain is not among those allowed on this site"] = "Il dominio della tua email attualmente non è permesso su questo sito"; -$a->strings["Your email address is already registered at this site."] = "La tua email è già registrata su questo sito."; -$a->strings["An invitation is required."] = "È necessario un invito."; -$a->strings["Invitation could not be verified."] = "L'invito non può essere verificato."; -$a->strings["Please enter the required information."] = "Inserisci le informazioni richieste."; -$a->strings["Failed to store account information."] = "Non è stato possibile salvare le informazioni del tuo account."; -$a->strings["Registration confirmation for %s"] = "Registrazione di %s confermata"; -$a->strings["Registration request at %s"] = "Richiesta di registrazione su %s"; -$a->strings["your registration password"] = "la password di registrazione"; -$a->strings["Registration details for %s"] = "Dettagli della registrazione di %s"; -$a->strings["Account approved."] = "Account approvato."; -$a->strings["Registration revoked for %s"] = "Registrazione revocata per %s"; -$a->strings["Account verified. Please login."] = "Registrazione verificata. Adesso puoi effettuare login."; -$a->strings["Click here to upgrade."] = "Clicca qui per aggiornare."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Questa operazione supera i limiti del tuo abbonamento."; -$a->strings["This action is not available under your subscription plan."] = "Questa operazione non è prevista dal tuo abbonamento."; -$a->strings["Channel is blocked on this site."] = "Il canale è bloccato per questo sito."; -$a->strings["Channel location missing."] = "Manca l'indirizzo del canale."; -$a->strings["Response from remote channel was incomplete."] = "La risposta dal canale non è completa."; -$a->strings["Channel was deleted and no longer exists."] = "Il canale è stato rimosso e non esiste più."; -$a->strings["Protocol disabled."] = "Protocollo disabilitato."; -$a->strings["Channel discovery failed."] = "La ricerca del canale non ha avuto successo."; -$a->strings["local account not found."] = "l'account locale non è stato trovato."; -$a->strings["Cannot connect to yourself."] = "Non puoi connetterti a te stesso."; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."; -$a->strings["%d invitation available"] = array( - 0 => "%d invito disponibile", - 1 => "%d inviti disponibili", -); -$a->strings["Advanced"] = "Avanzate"; -$a->strings["Find Channels"] = "Ricerca canali"; -$a->strings["Enter name or interest"] = "Scrivi un nome o un interesse"; -$a->strings["Connect/Follow"] = "Aggiungi"; -$a->strings["Examples: Robert Morgenstein, Fishing"] = "Per esempio: Mario Rossi, Pesca"; -$a->strings["Find"] = "Cerca"; -$a->strings["Channel Suggestions"] = "Canali suggeriti"; -$a->strings["Random Profile"] = "Profilo casuale"; -$a->strings["Invite Friends"] = "Invita amici"; -$a->strings["Advanced example: name=fred and country=iceland"] = "Per esempio: name=mario e country=italy"; -$a->strings["Everything"] = "Tutto"; -$a->strings["Categories"] = "Categorie"; -$a->strings["%d connection in common"] = array( - 0 => "%d contatto in comune", - 1 => "%d contatti in comune", -); -$a->strings["show more"] = "mostra tutto"; -$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."; -$a->strings["Add new connections to this collection (privacy group)"] = "Aggiungi altri contatti a questo insieme (privacy di gruppo)"; -$a->strings["All Channels"] = "Tutti i canali"; -$a->strings["edit"] = "modifica"; -$a->strings["Collections"] = "Insiemi di canali"; -$a->strings["Edit collection"] = "Modifica l'insieme di canali"; -$a->strings["Add new collection"] = "Nuovo insieme"; -$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme"; -$a->strings["add"] = "aggiungi"; -$a->strings["No recipient provided."] = "Devi scegliere un destinatario."; -$a->strings["[no subject]"] = "[nessun titolo]"; -$a->strings["Unable to determine sender."] = "Impossibile determinare il mittente."; -$a->strings["Stored post could not be verified."] = "Non è stato possibile verificare il post."; $a->strings["Unable to obtain identity information from database"] = "Impossibile ottenere le informazioni di identificazione dal database"; $a->strings["Empty name"] = "Nome vuoto"; $a->strings["Name too long"] = "Nome troppo lungo"; @@ -730,6 +174,7 @@ $a->strings["Reserved nickname. Please choose another."] = "Nome utente riservat $a->strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati."; $a->strings["Unable to retrieve created identity"] = "Impossibile caricare l'identità creata"; $a->strings["Default Profile"] = "Profilo predefinito"; +$a->strings["Friends"] = "Amici"; $a->strings["Requested channel is not available."] = "Il canale che cerchi non è disponibile."; $a->strings["Requested profile is not available."] = "Il profilo richiesto non è disponibile."; $a->strings["Change profile photo"] = "Cambia la foto del profilo"; @@ -752,8 +197,13 @@ $a->strings["Birthdays this week:"] = "Compleanni questa settimana:"; $a->strings["[No description]"] = "[Nessuna descrizione]"; $a->strings["Event Reminders"] = "Promemoria"; $a->strings["Events this week:"] = "Eventi della settimana:"; +$a->strings["Profile"] = "Profilo"; $a->strings["Full Name:"] = "Nome completo:"; $a->strings["Like this channel"] = "Mi piace questo canale"; +$a->strings["__ctx:noun__ Like"] = array( + 0 => "Mi piace", + 1 => "Mi piace", +); $a->strings["j F, Y"] = "j F Y"; $a->strings["j F"] = "j F"; $a->strings["Birthday:"] = "Compleanno:"; @@ -779,13 +229,27 @@ $a->strings["Work/employment:"] = "Lavoro:"; $a->strings["School/education:"] = "Scuola:"; $a->strings["Like this thing"] = "Mi piace"; $a->strings["Tags"] = "Tag"; +$a->strings["Categories"] = "Categorie"; $a->strings["Keywords"] = "Parole chiave"; $a->strings["have"] = "ho"; $a->strings["has"] = "ha"; $a->strings["want"] = "voglio"; $a->strings["wants"] = "vuole"; +$a->strings["like"] = "mi piace"; $a->strings["likes"] = "gli piace"; +$a->strings["dislike"] = "non mi piace"; $a->strings["dislikes"] = "non gli piace"; +$a->strings["Visible to your default audience"] = "Visibile secondo le impostazioni predefinite"; +$a->strings["Show"] = "Mostra"; +$a->strings["Don't show"] = "Non mostrare"; +$a->strings["Other networks and post services"] = "Invio ad altre reti o a siti esterni"; +$a->strings["Permissions"] = "Permessi"; +$a->strings["Close"] = "Chiudi"; +$a->strings[" and "] = "e"; +$a->strings["public profile"] = "profilo pubblico"; +$a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s ha cambiato %2\$s in “%3\$s”"; +$a->strings["Visit %1\$s's %2\$s"] = "Guarda %2\$s di %1\$s "; +$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha aggiornato %2\$s cambiando %3\$s."; $a->strings["Item was not found."] = "Elemento non trovato."; $a->strings["No source file."] = "Nessun file di origine."; $a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato"; @@ -803,8 +267,11 @@ $a->strings["database storage failed."] = "scrittura su database fallita."; $a->strings["Empty path"] = "La posizione è vuota"; $a->strings["Attachments:"] = "Allegati:"; $a->strings["\$Projectname event notification:"] = "Notifica evento \$Projectname:"; +$a->strings["created a new post"] = "Ha creato un nuovo post"; +$a->strings["commented on %s's post"] = "ha commentato il post di %s"; $a->strings["Apps"] = "App"; $a->strings["System"] = "Sistema"; +$a->strings["Personal"] = "Personali"; $a->strings["Create Personal App"] = "Crea app personale"; $a->strings["Edit Personal App"] = "Modifica app personale"; $a->strings["Ignore/Hide"] = "Ignora/nascondi"; @@ -817,6 +284,10 @@ $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Per esemp $a->strings["Notes"] = "Note"; $a->strings["Save"] = "Salva"; $a->strings["Remove term"] = "Rimuovi termine"; +$a->strings["Saved Searches"] = "Ricerche salvate"; +$a->strings["add"] = "aggiungi"; +$a->strings["Saved Folders"] = "Cartelle salvate"; +$a->strings["Everything"] = "Tutto"; $a->strings["Archives"] = "Archivi"; $a->strings["Me"] = "Me"; $a->strings["Family"] = "Famiglia"; @@ -832,6 +303,8 @@ $a->strings["Connected apps"] = "App connesse"; $a->strings["Export channel"] = "Esporta il canale"; $a->strings["Connection Default Permissions"] = "Permessi predefiniti dei nuovi contatti"; $a->strings["Premium Channel Settings"] = "Canale premium - impostazioni"; +$a->strings["Channel Sources"] = "Sorgenti del canale"; +$a->strings["Settings"] = "Impostazioni"; $a->strings["Private Mail Menu"] = "Menu messaggi privati"; $a->strings["Combined View"] = "Vista combinata"; $a->strings["Inbox"] = "In arrivo"; @@ -842,6 +315,12 @@ $a->strings["Received Messages"] = "Ricevuti"; $a->strings["Sent Messages"] = "Inviati"; $a->strings["No messages."] = "Nessun messaggio."; $a->strings["Delete conversation"] = "Elimina la conversazione"; +$a->strings["Events Menu"] = "Menu eventi"; +$a->strings["Day View"] = "Eventi del giorno"; +$a->strings["Week View"] = "Eventi della settimana"; +$a->strings["Month View"] = "Eventi del mese"; +$a->strings["Export"] = "Esporta"; +$a->strings["Import"] = "Importa"; $a->strings["Chat Rooms"] = "Chat"; $a->strings["Bookmarked Chatrooms"] = "Chat nei segnalibri"; $a->strings["Suggested Chatrooms"] = "Chat suggerite"; @@ -868,6 +347,471 @@ $a->strings["Logs"] = "Log"; $a->strings["Admin"] = "Amministrazione"; $a->strings["Plugin Features"] = "Plugin"; $a->strings["User registrations waiting for confirmation"] = "Registrazioni in attesa"; +$a->strings["View Photo"] = "Guarda la foto"; +$a->strings["Edit Album"] = "Modifica album"; +$a->strings["%1\$s's bookmarks"] = "I segnalibri di %1\$s"; +$a->strings["General Features"] = "Funzionalità di base"; +$a->strings["Content Expiration"] = "Scadenza"; +$a->strings["Remove posts/comments and/or private messages at a future time"] = "Elimina i post, i commenti o i messaggi privati dopo un lasso di tempo"; +$a->strings["Multiple Profiles"] = "Profili multipli"; +$a->strings["Ability to create multiple profiles"] = "Abilitazione a creare profili multipli"; +$a->strings["Advanced Profiles"] = "Profili avanzati"; +$a->strings["Additional profile sections and selections"] = "Informazioni aggiuntive del profilo"; +$a->strings["Profile Import/Export"] = "Importa/esporta il profilo"; +$a->strings["Save and load profile details across sites/channels"] = "Salva o ripristina le informazioni del profilo su siti diversi"; +$a->strings["Web Pages"] = "Pagine web"; +$a->strings["Provide managed web pages on your channel"] = "Attiva la creazione di pagine web sul tuo canale"; +$a->strings["Private Notes"] = "Note private"; +$a->strings["Enables a tool to store notes and reminders"] = "Abilita il riquadro per scrivere le tue annotazioni"; +$a->strings["Navigation Channel Select"] = "Scegli il canale attivo dal menu"; +$a->strings["Change channels directly from within the navigation dropdown menu"] = "Scegli il canale attivo direttamente dal menu di navigazione"; +$a->strings["Photo Location"] = "Posizione geografica"; +$a->strings["If location data is available on uploaded photos, link this to a map."] = "Collega la foto a una mappa quando contiene indicazioni geografiche."; +$a->strings["Expert Mode"] = "Modalità esperto"; +$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Abilita la modalità esperto per vedere le opzioni di configurazione avanzate"; +$a->strings["Premium Channel"] = "Canale premium"; +$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ti permette di impostare restrizioni e termini d'uso per il canale"; +$a->strings["Post Composition Features"] = "Modalità di scrittura post"; +$a->strings["Use Markdown"] = "Usa il markdown"; +$a->strings["Allow use of \"Markdown\" to format posts"] = "Consenti l'uso del markdown per formattare i post"; +$a->strings["Large Photos"] = "Foto grandi"; +$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Includi anteprime grandi per le foto dei tuoi post (1024px). Altrimenti saranno mostrate anteprime più piccole (640px)"; +$a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed"; +$a->strings["Even More Encryption"] = "Cifratura addizionale"; +$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi"; +$a->strings["Enable Voting Tools"] = "Permetti i post con votazione"; +$a->strings["Provide a class of post which others can vote on"] = "Rende possibile la creazione di post in cui sarà possibile votare"; +$a->strings["Delayed Posting"] = "Pubblicazione ritardata"; +$a->strings["Allow posts to be published at a later date"] = "Per scegliere una data e un'ora a cui far uscire i post"; +$a->strings["Suppress Duplicate Posts/Comments"] = "Impedisci post e commenti duplicati"; +$a->strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Scarta post e commenti se sono identici ad altri inviati meno di due minuti prima."; +$a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti"; +$a->strings["Search by Date"] = "Ricerca per data"; +$a->strings["Ability to select posts by date ranges"] = "Per selezionare i post in un intervallo tra date"; +$a->strings["Collections Filter"] = "Filtra per insiemi di canali"; +$a->strings["Enable widget to display Network posts only from selected collections"] = "Mostra il riquadro per filtrare i post di certi insiemi di canali"; +$a->strings["Save search terms for re-use"] = "Salva i termini delle ricerche per poterle ripetere"; +$a->strings["Network Personal Tab"] = "Attività personale"; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Abilita il link per mostrare solamente i contenuti con cui hai interagito"; +$a->strings["Network New Tab"] = "Contenuti nuovi"; +$a->strings["Enable tab to display all new Network activity"] = "Abilita il link per visualizzare solo i nuovi contenuti"; +$a->strings["Affinity Tool"] = "Filtro per affinità"; +$a->strings["Filter stream activity by depth of relationships"] = "Permette di selezionare i contenuti in base al livello di amicizia"; +$a->strings["Connection Filtering"] = "Filtro sui contatti"; +$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filtra i post che ricevi con parole chiave"; +$a->strings["Suggest Channels"] = "Suggerisci canali"; +$a->strings["Show channel suggestions"] = "Mostra alcuni canali che potrebbero interessarti"; +$a->strings["Post/Comment Tools"] = "Gestione post e commenti"; +$a->strings["Tagging"] = "Tag"; +$a->strings["Ability to tag existing posts"] = "Permetti l'aggiunta di tag su post già esistenti"; +$a->strings["Post Categories"] = "Categorie dei post"; +$a->strings["Add categories to your posts"] = "Abilita le categorie per i tuoi post"; +$a->strings["Ability to file posts under folders"] = "Abilita la raccolta dei tuoi articoli in cartelle"; +$a->strings["Dislike Posts"] = "Non mi piace"; +$a->strings["Ability to dislike posts/comments"] = "Abilità la funzionalità \"non mi piace\" per i tuoi post"; +$a->strings["Star Posts"] = "Post con stella"; +$a->strings["Ability to mark special posts with a star indicator"] = "Mostra la stella per segnare i post preferiti"; +$a->strings["Tag Cloud"] = "Nuvola di tag"; +$a->strings["Provide a personal tag cloud on your channel page"] = "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale"; +$a->strings["Male"] = "Maschio"; +$a->strings["Female"] = "Femmina"; +$a->strings["Currently Male"] = "Al momento maschio"; +$a->strings["Currently Female"] = "Al momento femmina"; +$a->strings["Mostly Male"] = "Prevalentemente maschio"; +$a->strings["Mostly Female"] = "Prevalentemente femmina"; +$a->strings["Transgender"] = "Transgender"; +$a->strings["Intersex"] = "Intersex"; +$a->strings["Transsexual"] = "Transessuale"; +$a->strings["Hermaphrodite"] = "Ermafrodito"; +$a->strings["Neuter"] = "Neutro"; +$a->strings["Non-specific"] = "Non specificato"; +$a->strings["Other"] = "Altro"; +$a->strings["Undecided"] = "Indeciso"; +$a->strings["Males"] = "Maschi"; +$a->strings["Females"] = "Femmine"; +$a->strings["Gay"] = "Gay"; +$a->strings["Lesbian"] = "Lesbica"; +$a->strings["No Preference"] = "Senza preferenza"; +$a->strings["Bisexual"] = "Bisessuale"; +$a->strings["Autosexual"] = "Autosessuale"; +$a->strings["Abstinent"] = "Astinente"; +$a->strings["Virgin"] = "Vergine"; +$a->strings["Deviant"] = "Deviato"; +$a->strings["Fetish"] = "Feticista"; +$a->strings["Oodles"] = "Un sacco"; +$a->strings["Nonsexual"] = "Asessuato"; +$a->strings["Single"] = "Single"; +$a->strings["Lonely"] = "Da solo"; +$a->strings["Available"] = "Disponibile"; +$a->strings["Unavailable"] = "Non disponibile"; +$a->strings["Has crush"] = "Ha una cotta"; +$a->strings["Infatuated"] = "Infatuato/a"; +$a->strings["Dating"] = "Disponibile a un incontro"; +$a->strings["Unfaithful"] = "Infedele"; +$a->strings["Sex Addict"] = "Sesso-dipendente"; +$a->strings["Friends/Benefits"] = "Amici con qualcosa in più"; +$a->strings["Casual"] = "Casual"; +$a->strings["Engaged"] = "Impegnato"; +$a->strings["Married"] = "Sposato/a"; +$a->strings["Imaginarily married"] = "Con matrimonio immaginario"; +$a->strings["Partners"] = "Partner"; +$a->strings["Cohabiting"] = "Convivente"; +$a->strings["Common law"] = "Matrimonio regolare"; +$a->strings["Happy"] = "Felice"; +$a->strings["Not looking"] = "Non in cerca"; +$a->strings["Swinger"] = "Scambista"; +$a->strings["Betrayed"] = "Tradito/a"; +$a->strings["Separated"] = "Separato/a"; +$a->strings["Unstable"] = "Instabile"; +$a->strings["Divorced"] = "Divorziato/a"; +$a->strings["Imaginarily divorced"] = "Sogna il divorzio"; +$a->strings["Widowed"] = "Vedovo/a"; +$a->strings["Uncertain"] = "Incerto/a"; +$a->strings["It's complicated"] = "Relazione complicata"; +$a->strings["Don't care"] = "Chi se ne frega"; +$a->strings["Ask me"] = "Chiedimelo"; +$a->strings["Miscellaneous"] = "Altro"; +$a->strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-GG oppure MM-GG"; +$a->strings["Required"] = "Obbligatorio"; +$a->strings["never"] = "mai"; +$a->strings["less than a second ago"] = "meno di un secondo fa"; +$a->strings["year"] = "anno"; +$a->strings["years"] = "anni"; +$a->strings["month"] = "mese"; +$a->strings["months"] = "mesi"; +$a->strings["week"] = "settimana"; +$a->strings["weeks"] = "settimane"; +$a->strings["day"] = "giorno"; +$a->strings["days"] = "giorni"; +$a->strings["hour"] = "ora"; +$a->strings["hours"] = "ore"; +$a->strings["minute"] = "minuto"; +$a->strings["minutes"] = "minuti"; +$a->strings["second"] = "secondo"; +$a->strings["seconds"] = "secondi"; +$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s fa"; +$a->strings["%1\$s's birthday"] = "Compleanno di %1\$s"; +$a->strings["Happy Birthday %1\$s"] = "Buon compleanno %1\$s"; +$a->strings["Public Timeline"] = "Diario pubblico"; +$a->strings["photo"] = "la foto"; +$a->strings["channel"] = "il canale"; +$a->strings["status"] = "il messaggio di stato"; +$a->strings["comment"] = "il commento"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s"; +$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s"; +$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s"; +$a->strings["poked"] = "ha ricevuto un poke"; +$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s"; +$a->strings["__ctx:title__ Likes"] = "Mi piace"; +$a->strings["__ctx:title__ Dislikes"] = "Non mi piace"; +$a->strings["__ctx:title__ Agree"] = "D'accordo"; +$a->strings["__ctx:title__ Disagree"] = "Non d'accordo"; +$a->strings["__ctx:title__ Abstain"] = "Astenuti"; +$a->strings["__ctx:title__ Attending"] = "Partecipano"; +$a->strings["__ctx:title__ Not attending"] = "Non partecipano"; +$a->strings["__ctx:title__ Might attend"] = "Forse partecipano"; +$a->strings["Select"] = "Scegli"; +$a->strings["Private Message"] = "Messaggio privato"; +$a->strings["Message signature validated"] = "Messaggio con firma verificata"; +$a->strings["Message signature incorrect"] = "Massaggio con firma non corretta"; +$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s"; +$a->strings["Categories:"] = "Categorie:"; +$a->strings["Filed under:"] = "Classificato come:"; +$a->strings["from %s"] = "da %s"; +$a->strings["last edited: %s"] = "ultima modifica: %s"; +$a->strings["Expires: %s"] = "Scadenza: %s"; +$a->strings["View in context"] = "Vedi nel contesto"; +$a->strings["Please wait"] = "Attendere"; +$a->strings["remove"] = "rimuovi"; +$a->strings["Loading..."] = "Caricamento in corso..."; +$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati"; +$a->strings["View Source"] = "Vedi il sorgente"; +$a->strings["Follow Thread"] = "Segui la discussione"; +$a->strings["Unfollow Thread"] = "Non seguire la discussione"; +$a->strings["View Status"] = "Bacheca"; +$a->strings["View Profile"] = "Profilo"; +$a->strings["View Photos"] = "Foto"; +$a->strings["Activity/Posts"] = "Attività e Post"; +$a->strings["Edit Connection"] = "Modifica il contatto"; +$a->strings["Send PM"] = "Messaggio privato"; +$a->strings["Poke"] = "Poke"; +$a->strings["%s likes this."] = "Piace a %s."; +$a->strings["%s doesn't like this."] = "Non piace a %s."; +$a->strings["<span %1\$s>%2\$d people</span> like this."] = array( + 0 => "", + 1 => "Piace a <span %1\$s>%2\$d persone</span>.", +); +$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( + 0 => "", + 1 => "Non piace a <span %1\$s>%2\$d persone</span>.", +); +$a->strings["and"] = "e"; +$a->strings[", and %d other people"] = array( + 0 => "", + 1 => "e altre %d persone", +); +$a->strings["%s like this."] = "Piace a %s."; +$a->strings["%s don't like this."] = "Non piace a %s."; +$a->strings["Visible to <strong>everybody</strong>"] = "Visibile a <strong>tutti</strong>"; +$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:"; +$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:"; +$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:"; +$a->strings["Tag term:"] = "Tag:"; +$a->strings["Save to Folder:"] = "Salva nella cartella:"; +$a->strings["Where are you right now?"] = "Dove sei ora?"; +$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scade il YYYY-MM-DD HH:MM"; +$a->strings["Preview"] = "Anteprima"; +$a->strings["Share"] = "Condividi"; +$a->strings["Page link name"] = "Nome del link alla pagina"; +$a->strings["Post as"] = "Pubblica come "; +$a->strings["Bold"] = "Grassetto"; +$a->strings["Italic"] = "Corsivo"; +$a->strings["Underline"] = "Sottolineato"; +$a->strings["Quote"] = "Citazione"; +$a->strings["Code"] = "Codice"; +$a->strings["Upload photo"] = "Carica foto"; +$a->strings["upload photo"] = "carica foto"; +$a->strings["Attach file"] = "Allega file"; +$a->strings["attach file"] = "allega file"; +$a->strings["Insert web link"] = "Inserisci un indirizzo web"; +$a->strings["web link"] = "link web"; +$a->strings["Insert video link"] = "Inserisci l'indirizzo del video"; +$a->strings["video link"] = "link video"; +$a->strings["Insert audio link"] = "Inserisci l'indirizzo dell'audio"; +$a->strings["audio link"] = "link audio"; +$a->strings["Set your location"] = "La tua località"; +$a->strings["set location"] = "la tua località"; +$a->strings["Toggle voting"] = "Abilita/disabilita il voto"; +$a->strings["Clear browser location"] = "Rimuovi la località data dal browser"; +$a->strings["clear location"] = "rimuovi la località"; +$a->strings["Title (optional)"] = "Titolo (facoltativo)"; +$a->strings["Categories (optional, comma-separated list)"] = "Categorie (facoltative, lista separata da virgole)"; +$a->strings["Permission settings"] = "Permessi dei tuoi contatti"; +$a->strings["permissions"] = "permessi"; +$a->strings["Public post"] = "Post pubblico"; +$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com"; +$a->strings["Set expiration date"] = "Data di scadenza"; +$a->strings["Set publish date"] = "Data di uscita programmata"; +$a->strings["Encrypt text"] = "Cifratura del messaggio"; +$a->strings["OK"] = "OK"; +$a->strings["Cancel"] = "Annulla"; +$a->strings["Discover"] = "Scopri"; +$a->strings["Imported public streams"] = "Contenuti pubblici importati"; +$a->strings["Commented Order"] = "Ultimi commenti"; +$a->strings["Sort by Comment Date"] = "Per data del commento"; +$a->strings["Posted Order"] = "Ultimi post"; +$a->strings["Sort by Post Date"] = "Per data di creazione"; +$a->strings["Posts that mention or involve you"] = "Post che ti riguardano"; +$a->strings["New"] = "Novità"; +$a->strings["Activity Stream - by date"] = "Elenco attività - per data"; +$a->strings["Starred"] = "Preferiti"; +$a->strings["Favourite Posts"] = "Post preferiti"; +$a->strings["Spam"] = "Spam"; +$a->strings["Posts flagged as SPAM"] = "Post marcati come spam"; +$a->strings["Channel"] = "Canale"; +$a->strings["Status Messages and Posts"] = "Post e messaggi di stato"; +$a->strings["About"] = "Informazioni"; +$a->strings["Profile Details"] = "Dettagli del profilo"; +$a->strings["Photos"] = "Foto"; +$a->strings["Photo Albums"] = "Album foto"; +$a->strings["Files and Storage"] = "Archivio file"; +$a->strings["Chatrooms"] = "Chat"; +$a->strings["Bookmarks"] = "Segnalibri"; +$a->strings["Saved Bookmarks"] = "Segnalibri salvati"; +$a->strings["Webpages"] = "Pagine web"; +$a->strings["Manage Webpages"] = "Gestisci le pagine web"; +$a->strings["View all"] = "Vedi tutto"; +$a->strings["__ctx:noun__ Dislike"] = array( + 0 => "Non mi piace", + 1 => "Non mi piace", +); +$a->strings["__ctx:noun__ Attending"] = array( + 0 => "Partecipa", + 1 => "Partecipano", +); +$a->strings["__ctx:noun__ Not Attending"] = array( + 0 => "Non partecipa", + 1 => "Non partecipano", +); +$a->strings["__ctx:noun__ Undecided"] = array( + 0 => "Indeciso", + 1 => "Indecisi", +); +$a->strings["__ctx:noun__ Agree"] = array( + 0 => "D'accordo", + 1 => "D'accordo", +); +$a->strings["__ctx:noun__ Disagree"] = array( + 0 => "Non d'accordo", + 1 => "Non d'accordo", +); +$a->strings["__ctx:noun__ Abstain"] = array( + 0 => "Astenuto", + 1 => "Astenuti", +); +$a->strings["Logged out."] = "Uscita effettuata."; +$a->strings["Failed authentication"] = "Autenticazione fallita"; +$a->strings["Login failed."] = "Accesso fallito."; +$a->strings["Frequently"] = "Frequentemente"; +$a->strings["Hourly"] = "Ogni ora"; +$a->strings["Twice daily"] = "Due volte al giorno"; +$a->strings["Daily"] = "Ogni giorno"; +$a->strings["Weekly"] = "Ogni settimana"; +$a->strings["Monthly"] = "Ogni mese"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Email"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zot!"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/IM"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Invalid data packet"] = "Dati ricevuti non validi"; +$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale"; +$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s"; +$a->strings["invalid target signature"] = "la firma ricevuta non è valida"; +$a->strings["Image/photo"] = "Immagine"; +$a->strings["Encrypted content"] = "Contenuto cifrato"; +$a->strings["Install %s element: "] = "Installa l'elemento %s:"; +$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Questo post contiene un elemento %s installabile, tuttavia non hai i permessi necessari per l'installazione."; +$a->strings["webpage"] = "pagina web"; +$a->strings["layout"] = "layout"; +$a->strings["block"] = "block"; +$a->strings["menu"] = "menu"; +$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s %3\$s"; +$a->strings["post"] = "il post"; +$a->strings["Different viewers will see this text differently"] = "Ad altri questo testo potrebbe apparire in modo differente"; +$a->strings["$1 spoiler"] = "$1 spoiler"; +$a->strings["$1 wrote:"] = "$1 ha scritto:"; +$a->strings["%d invitation available"] = array( + 0 => "%d invito disponibile", + 1 => "%d inviti disponibili", +); +$a->strings["Advanced"] = "Avanzate"; +$a->strings["Find Channels"] = "Ricerca canali"; +$a->strings["Enter name or interest"] = "Scrivi un nome o un interesse"; +$a->strings["Connect/Follow"] = "Aggiungi"; +$a->strings["Examples: Robert Morgenstein, Fishing"] = "Per esempio: Mario Rossi, Pesca"; +$a->strings["Find"] = "Cerca"; +$a->strings["Channel Suggestions"] = "Canali suggeriti"; +$a->strings["Random Profile"] = "Profilo casuale"; +$a->strings["Invite Friends"] = "Invita amici"; +$a->strings["Advanced example: name=fred and country=iceland"] = "Per esempio: name=mario e country=italy"; +$a->strings["%d connection in common"] = array( + 0 => "%d contatto in comune", + 1 => "%d contatti in comune", +); +$a->strings["show more"] = "mostra tutto"; +$a->strings["Directory Options"] = "Visibilità negli elenchi pubblici"; +$a->strings["Safe Mode"] = "Modalità SafeSearch"; +$a->strings["No"] = "No"; +$a->strings["Yes"] = "Si"; +$a->strings["Public Forums Only"] = "Solo forum pubblici"; +$a->strings["This Website Only"] = "Solo in questo sito"; +$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; +$a->strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla] Nuovo messaggio su %s"; +$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s ti ha mandato un messaggio privato su %3\$s."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s."; +$a->strings["a private message"] = "un messaggio privato"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere."; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%5\$s di %4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha commentato [zrl=%3\$s]%4\$s che hai creato[/zrl]"; +$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla] Nuovo commento di %2\$s alla conversazione #%1\$d"; +$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione."; +$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla] %s ha scritto sulla tua bacheca"; +$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo su %3\$s"; +$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]"; +$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla] %s ti ha taggato"; +$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s ti ha taggato su %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]ti ha taggato[/zrl]."; +$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla] %1\$s ti ha mandato un poke"; +$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s ti ha mandato un poke su %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]ti ha mandato un poke[/zrl]."; +$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla] %s ha taggato il tuo post"; +$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha taggato il tuo post su %3\$s"; +$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha taggato [zrl=%3\$s]il tuo post[/zrl]"; +$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla] Hai una richiesta di amicizia"; +$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, hai ricevuto una richiesta di entrare in contatto da '%2\$s' su %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, hai ricevuto una [zrl=%2\$s]richiesta di entrare in contatto[/zrl] da %3\$s."; +$a->strings["You may visit their profile at %s"] = "Puoi visitare il suo profilo su %s"; +$a->strings["Please visit %s to approve or reject the connection request."] = "Visita %s per approvare o rifiutare la richiesta di entrare in contatto."; +$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla] Ti è stato suggerito un amico"; +$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ti è stato suggerito un amico da '%2\$s' su %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, %4\$s ti [zrl=%2\$s]ha suggerito %3\$s[/zrl] come amico."; +$a->strings["Name:"] = "Nome:"; +$a->strings["Photo:"] = "Foto:"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento."; +$a->strings["[Hubzilla:Notify]"] = "[Hubzilla]"; +$a->strings["Channel is blocked on this site."] = "Il canale è bloccato per questo sito."; +$a->strings["Channel location missing."] = "Manca l'indirizzo del canale."; +$a->strings["Response from remote channel was incomplete."] = "La risposta dal canale non è completa."; +$a->strings["Channel was deleted and no longer exists."] = "Il canale è stato rimosso e non esiste più."; +$a->strings["Protocol disabled."] = "Protocollo disabilitato."; +$a->strings["Channel discovery failed."] = "La ricerca del canale non ha avuto successo."; +$a->strings["local account not found."] = "l'account locale non è stato trovato."; +$a->strings["Cannot connect to yourself."] = "Non puoi connetterti a te stesso."; +$a->strings["Embedded content"] = "Contenuti incorporati"; +$a->strings["Embedding disabled"] = "Disabilita la creazione di contenuti incorporati"; +$a->strings["Logout"] = "Esci"; +$a->strings["End this session"] = "Chiudi questa sessione"; +$a->strings["Home"] = "Bacheca"; +$a->strings["Your posts and conversations"] = "I tuoi post e conversazioni"; +$a->strings["Your profile page"] = "Il tuo profilo"; +$a->strings["Edit Profiles"] = "Modifica i tuoi profili"; +$a->strings["Manage/Edit profiles"] = "Gestisci i tuoi profili"; +$a->strings["Edit your profile"] = "Modifica il tuo profilo"; +$a->strings["Your photos"] = "Le tue foto"; +$a->strings["Your files"] = "I tuoi file"; +$a->strings["Chat"] = "Chat"; +$a->strings["Your chatrooms"] = "Le tue chat"; +$a->strings["Your bookmarks"] = "I tuoi segnalibri"; +$a->strings["Your webpages"] = "Le tue pagine web"; +$a->strings["Login"] = "Accedi"; +$a->strings["Sign in"] = "Accedi"; +$a->strings["%s - click to logout"] = "%s - clicca per uscire"; +$a->strings["Remote authentication"] = "Accedi dal tuo hub"; +$a->strings["Click to authenticate to your home hub"] = "Clicca per farti riconoscere dal tuo hub principale"; +$a->strings["Home Page"] = "Bacheca"; +$a->strings["Register"] = "Registrati"; +$a->strings["Create an account"] = "Crea un account"; +$a->strings["Help"] = "Guida"; +$a->strings["Help and documentation"] = "Guida e documentazione"; +$a->strings["Applications, utilities, links, games"] = "Applicazioni, utilità, link, giochi"; +$a->strings["Search"] = "Cerca"; +$a->strings["Search site @name, #tag, ?docs, content"] = "Cerca nel sito per @nome, #tag, ?guida o per contenuto"; +$a->strings["Directory"] = "Elenchi pubblici dei canali"; +$a->strings["Channel Directory"] = "Elenchi pubblici dei canali"; +$a->strings["Grid"] = "Rete"; +$a->strings["Your grid"] = "La tua rete"; +$a->strings["Mark all grid notifications seen"] = "Segna come lette le notifiche della tua rete"; +$a->strings["Channel Home"] = "Bacheca del canale"; +$a->strings["Channel home"] = "Bacheca del canale"; +$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche del canale"; +$a->strings["Connections"] = "Contatti"; +$a->strings["Notices"] = "Avvisi"; +$a->strings["Notifications"] = "Notifiche"; +$a->strings["See all notifications"] = "Vedi tutte le notifiche"; +$a->strings["Mark all system notifications seen"] = "Segna come lette le notifiche di sistema"; +$a->strings["Mail"] = "Messaggi"; +$a->strings["Private mail"] = "Messaggi privati"; +$a->strings["See all private messages"] = "Guarda tutti i messaggi privati"; +$a->strings["Mark all private messages seen"] = "Segna come letti tutti i messaggi privati"; +$a->strings["Events"] = "Eventi"; +$a->strings["Event Calendar"] = "Calendario"; +$a->strings["See all events"] = "Guarda tutti gli eventi"; +$a->strings["Mark all events seen"] = "Marca come letti tutti gli eventi"; +$a->strings["Channel Manager"] = "Gestione canali"; +$a->strings["Manage Your Channels"] = "Gestisci i tuoi canali"; +$a->strings["Account/Channel Settings"] = "Impostazioni dell'account e del canale"; +$a->strings["Site Setup and Configuration"] = "Installazione e configurazione del sito"; +$a->strings["@name, #tag, ?doc, content"] = "@nome, #tag, ?guida, contenuto"; +$a->strings["Please wait..."] = "Attendere..."; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "I controlli di sicurezza sono falliti. Probabilmente è accaduto perché la pagina è stata tenuta aperta troppo a lungo (ore?) prima di inviare il contenuto."; $a->strings["prev"] = "prec"; $a->strings["first"] = "inizio"; $a->strings["last"] = "fine"; @@ -912,7 +856,7 @@ $a->strings["depressed"] = "in depressione"; $a->strings["motivated"] = "motivato"; $a->strings["relaxed"] = "rilassato"; $a->strings["surprised"] = "sorpreso"; -$a->strings["May"] = "maggio"; +$a->strings["May"] = "Mag"; $a->strings["Unknown Attachment"] = "Allegato non riconoscuto"; $a->strings["unknown"] = "sconosciuta"; $a->strings["remove category"] = "rimuovi la categoria"; @@ -921,7 +865,7 @@ $a->strings["Click to open/close"] = "Clicca per aprire/chiudere"; $a->strings["Link to Source"] = "Link al sito d'origine"; $a->strings["default"] = "predefinito"; $a->strings["Page layout"] = "Layout della pagina"; -$a->strings["You can create your own with the layouts tool"] = "Con la configurazione del layout puoi crearne uno tuo"; +$a->strings["You can create your own with the layouts tool"] = "Puoi creare un tuo layout dalla configurazione delle pagine web"; $a->strings["Page content type"] = "Tipo di contenuto della pagina"; $a->strings["Select an alternate language"] = "Seleziona una lingua diversa"; $a->strings["activity"] = "l'attività"; @@ -930,93 +874,193 @@ $a->strings["Blocks"] = "Block"; $a->strings["Menus"] = "Menù"; $a->strings["Layouts"] = "Layout"; $a->strings["Pages"] = "Pagine"; -$a->strings["Logout"] = "Esci"; -$a->strings["End this session"] = "Chiudi questa sessione"; -$a->strings["Home"] = "Bacheca"; -$a->strings["Your posts and conversations"] = "I tuoi post e conversazioni"; -$a->strings["Your profile page"] = "Il tuo profilo"; -$a->strings["Edit Profiles"] = "Modifica i tuoi profili"; -$a->strings["Manage/Edit profiles"] = "Gestisci i tuoi profili"; -$a->strings["Edit your profile"] = "Modifica il tuo profilo"; -$a->strings["Your photos"] = "Le tue foto"; -$a->strings["Your files"] = "I tuoi file"; -$a->strings["Your chatrooms"] = "Le tue chat"; -$a->strings["Your bookmarks"] = "I tuoi segnalibri"; -$a->strings["Your webpages"] = "Le tue pagine web"; -$a->strings["Sign in"] = "Accedi"; -$a->strings["%s - click to logout"] = "%s - clicca per uscire"; -$a->strings["Remote authentication"] = "Accedi dal tuo hub"; -$a->strings["Click to authenticate to your home hub"] = "Clicca per farti riconoscere dal tuo hub principale"; -$a->strings["Home Page"] = "Bacheca"; -$a->strings["Register"] = "Registrati"; -$a->strings["Create an account"] = "Crea un account"; -$a->strings["Help and documentation"] = "Guida e documentazione"; -$a->strings["Applications, utilities, links, games"] = "Applicazioni, utilità, link, giochi"; -$a->strings["Search site @name, #tag, ?docs, content"] = "Cerca nel sito per @nome, #tag, ?guida o per contenuto"; -$a->strings["Channel Directory"] = "Elenchi pubblici dei canali"; -$a->strings["Your grid"] = "La tua rete"; -$a->strings["Mark all grid notifications seen"] = "Segna come lette le notifiche della tua rete"; -$a->strings["Channel home"] = "Bacheca del canale"; -$a->strings["Mark all channel notifications seen"] = "Segna come lette le notifiche del canale"; -$a->strings["Connections"] = "Contatti"; -$a->strings["Notices"] = "Avvisi"; -$a->strings["Notifications"] = "Notifiche"; -$a->strings["See all notifications"] = "Vedi tutte le notifiche"; -$a->strings["Mark all system notifications seen"] = "Segna come lette le notifiche di sistema"; -$a->strings["Private mail"] = "Messaggi privati"; -$a->strings["See all private messages"] = "Guarda tutti i messaggi privati"; -$a->strings["Mark all private messages seen"] = "Segna come letti tutti i messaggi privati"; -$a->strings["Event Calendar"] = "Calendario"; -$a->strings["See all events"] = "Guarda tutti gli eventi"; -$a->strings["Mark all events seen"] = "Marca come letti tutti gli eventi"; -$a->strings["Manage Your Channels"] = "Gestisci i tuoi canali"; -$a->strings["Account/Channel Settings"] = "Impostazioni dell'account e del canale"; -$a->strings["Site Setup and Configuration"] = "Installazione e configurazione del sito"; -$a->strings["@name, #tag, ?doc, content"] = "@nome, #tag, ?guida, contenuto"; -$a->strings["Please wait..."] = "Attendere..."; -$a->strings["Directory Options"] = "Visibilità negli elenchi pubblici"; -$a->strings["Safe Mode"] = "Modalità SafeSearch"; -$a->strings["No"] = "No"; -$a->strings["Yes"] = "Si"; -$a->strings["Public Forums Only"] = "Solo forum pubblici"; -$a->strings["This Website Only"] = "Solo in questo sito"; -$a->strings["Some blurb about what to do when you're new here"] = "Qualche suggerimento per i nuovi utenti su cosa fare"; -$a->strings["Contact not found."] = "Contatto non trovato."; -$a->strings["Friend suggestion sent."] = "Suggerimento di amicizia inviato."; -$a->strings["Suggest Friends"] = "Suggerisci amici"; -$a->strings["Suggest a friend for %s"] = "Suggerisci un amico a %s"; -$a->strings["Public access denied."] = "Accesso pubblico negato."; -$a->strings["%d rating"] = array( - 0 => "%d valutazione", - 1 => "%d valutazioni", +$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "È stato ripristinato un insieme con lo stesso nome che era stato eliminato in precedenza. I permessi già presenti <strong>potrebbero</strong> rimanere validi per i nuovi canali. Se non vuoi che ciò accada, devi creare un altro insieme con un nome diverso."; +$a->strings["Add new connections to this collection (privacy group)"] = "Aggiungi altri contatti a questo insieme (privacy di gruppo)"; +$a->strings["All Channels"] = "Tutti i canali"; +$a->strings["edit"] = "modifica"; +$a->strings["Collections"] = "Insiemi di canali"; +$a->strings["Edit collection"] = "Modifica l'insieme di canali"; +$a->strings["Add new collection"] = "Nuovo insieme"; +$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme"; +$a->strings["New Page"] = "Nuova pagina web"; +$a->strings["View"] = "Guarda"; +$a->strings["Actions"] = "Azioni"; +$a->strings["Page Link"] = "Link alla pagina"; +$a->strings["Title"] = "Titolo"; +$a->strings["Created"] = "Creato"; +$a->strings["Edited"] = "Modificato"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Non trovo le informazioni DNS per il database server '%s'"; +$a->strings["Image exceeds website size limit of %lu bytes"] = "L'immagine supera il limite massimo di %lu bytes"; +$a->strings["Image file is empty."] = "Il file dell'immagine è vuoto."; +$a->strings["Unable to process image"] = "Impossibile elaborare l'immagine"; +$a->strings["Photo storage failed."] = "Impossibile salvare la foto."; +$a->strings["Upload New Photos"] = "Carica nuove foto"; +$a->strings["Save to Folder"] = "Salva nella cartella"; +$a->strings["I will attend"] = "Parteciperò"; +$a->strings["I will not attend"] = "Non parteciperò"; +$a->strings["I might attend"] = "Forse parteciperò"; +$a->strings["I agree"] = "Sono d'accordo"; +$a->strings["I disagree"] = "Non sono d'accordo"; +$a->strings["I abstain"] = "Mi astengo"; +$a->strings["Add Star"] = "Aggiungi ai preferiti"; +$a->strings["Remove Star"] = "Rimuovi dai preferiti"; +$a->strings["Toggle Star Status"] = "Attiva/disattiva preferito"; +$a->strings["starred"] = "preferito"; +$a->strings["Add Tag"] = "Aggiungi un tag"; +$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace"; +$a->strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace"; +$a->strings["Share This"] = "Condividi"; +$a->strings["share"] = "condividi"; +$a->strings["Delivery Report"] = "Rapporto di trasmissione"; +$a->strings["%d comment"] = array( + 0 => "%d commento", + 1 => "%d commenti", ); -$a->strings["Gender: "] = "Sesso:"; -$a->strings["Status: "] = "Stato:"; -$a->strings["Homepage: "] = "Homepage:"; -$a->strings["Description:"] = "Descrizione:"; -$a->strings["Public Forum:"] = "Forum pubblico:"; -$a->strings["Keywords: "] = "Parole chiave:"; -$a->strings["Don't suggest"] = "Non fornire suggerimenti"; -$a->strings["Common connections:"] = "Contatti in comune:"; -$a->strings["Global Directory"] = "Elenchi pubblici globali"; -$a->strings["Local Directory"] = "Elenco canali su questo hub"; -$a->strings["Finding:"] = "Ricerca:"; -$a->strings["next page"] = "pagina successiva"; -$a->strings["previous page"] = "pagina precedente"; -$a->strings["Sort options"] = "Opzioni di ordinamento"; -$a->strings["Alphabetic"] = "Alfabetico"; -$a->strings["Reverse Alphabetic"] = "Alfabetico inverso"; -$a->strings["Newest to Oldest"] = "Prima i più recenti"; -$a->strings["Oldest to Newest"] = "Prima i più vecchi"; -$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualche elemento potrebbe essere nascosto)."; -$a->strings["Bookmark added"] = "Segnalibro aggiunto"; -$a->strings["My Bookmarks"] = "I miei segnalibri"; -$a->strings["My Connections Bookmarks"] = "I segnalibri dei miei contatti"; +$a->strings["View %s's profile - %s"] = "Guarda il profilo di %s - %s"; +$a->strings["to"] = "a"; +$a->strings["via"] = "via"; +$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca"; +$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:"; +$a->strings["Save Bookmarks"] = "Salva segnalibro"; +$a->strings["Add to Calendar"] = "Aggiungi al calendario"; +$a->strings["Mark all seen"] = "Marca tutto come letto"; +$a->strings["__ctx:noun__ Likes"] = "Mi piace"; +$a->strings["__ctx:noun__ Dislikes"] = "Non mi piace"; +$a->strings["This is you"] = "Questo sei tu"; +$a->strings["Image"] = "Immagine"; +$a->strings["Insert Link"] = "Collegamento"; +$a->strings["Video"] = "Video"; +$a->strings["Not a valid email address"] = "Email non valida"; +$a->strings["Your email domain is not among those allowed on this site"] = "Il dominio della tua email attualmente non è permesso su questo sito"; +$a->strings["Your email address is already registered at this site."] = "La tua email è già registrata su questo sito."; +$a->strings["An invitation is required."] = "È necessario un invito."; +$a->strings["Invitation could not be verified."] = "L'invito non può essere verificato."; +$a->strings["Please enter the required information."] = "Inserisci le informazioni richieste."; +$a->strings["Failed to store account information."] = "Non è stato possibile salvare le informazioni del tuo account."; +$a->strings["Registration confirmation for %s"] = "Registrazione di %s confermata"; +$a->strings["Registration request at %s"] = "Richiesta di registrazione su %s"; +$a->strings["your registration password"] = "la password di registrazione"; +$a->strings["Registration details for %s"] = "Dettagli della registrazione di %s"; +$a->strings["Account approved."] = "Account approvato."; +$a->strings["Registration revoked for %s"] = "Registrazione revocata per %s"; +$a->strings["Account verified. Please login."] = "Registrazione verificata. Adesso puoi effettuare login."; +$a->strings["Click here to upgrade."] = "Clicca qui per aggiornare."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Questa operazione supera i limiti del tuo abbonamento."; +$a->strings["This action is not available under your subscription plan."] = "Questa operazione non è prevista dal tuo abbonamento."; +$a->strings["Site Admin"] = "Amministrazione sito"; +$a->strings["Address Book"] = "Rubrica"; +$a->strings["Mood"] = "Umore"; +$a->strings["Probe"] = "Diagnostica"; +$a->strings["Suggest"] = "Suggerisci"; +$a->strings["Random Channel"] = "Canale casuale"; +$a->strings["Invite"] = "Invita"; +$a->strings["Features"] = "Funzionalità"; +$a->strings["Language"] = "Lingua"; +$a->strings["Post"] = "Post"; +$a->strings["Profile Photo"] = "Foto del profilo"; +$a->strings["Update"] = "Aggiorna"; +$a->strings["Install"] = "Installa"; +$a->strings["Purchase"] = "Acquista"; +$a->strings["Can view my normal stream and posts"] = "Può vedere i miei contenuti e i post normali"; +$a->strings["Can view my default channel profile"] = "Può vedere il profilo predefinito del canale"; +$a->strings["Can view my connections"] = "Può vedere i miei contatti"; +$a->strings["Can view my file storage and photos"] = "Può vedere il mio archivio file e foto"; +$a->strings["Can view my webpages"] = "Può vedere le mie pagine web"; +$a->strings["Can send me their channel stream and posts"] = "È tra i canali che seguo"; +$a->strings["Can post on my channel page (\"wall\")"] = "Può scrivere sulla bacheca del mio canale"; +$a->strings["Can comment on or like my posts"] = "Può commentare o aggiungere \"mi piace\" ai miei post"; +$a->strings["Can send me private mail messages"] = "Può inviarmi messaggi privati"; +$a->strings["Can like/dislike stuff"] = "Può aggiungere \"mi piace\" a tutto il resto"; +$a->strings["Profiles and things other than posts/comments"] = "Può aggiungere \"mi piace\" a tutto ciò che non riguarda i post, come per esempio il profilo"; +$a->strings["Can forward to all my channel contacts via post @mentions"] = "Può inoltrare post a tutti i contatti del canale tramite una @menzione"; +$a->strings["Advanced - useful for creating group forum channels"] = "Impostazione avanzata - utile per creare un canale-forum di discussione"; +$a->strings["Can chat with me (when available)"] = "Può aprire una chat con me (se disponibile)"; +$a->strings["Can write to my file storage and photos"] = "Può modificare il mio archivio file e foto"; +$a->strings["Can edit my webpages"] = "Può modificare le mie pagine web"; +$a->strings["Can source my public posts in derived channels"] = "Può usare i miei post pubblici per creare canali derivati"; +$a->strings["Somewhat advanced - very useful in open communities"] = "Piuttosto avanzato - molto utile nelle comunità aperte"; +$a->strings["Can administer my channel resources"] = "Può amministrare i contenuti del mio canale"; +$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Impostazione pericolosa - lasciare il valore predefinito se non si è assolutamente sicuri"; +$a->strings["Social Networking"] = "Social network"; +$a->strings["Mostly Public"] = "Prevalentemente pubblico"; +$a->strings["Restricted"] = "Con restrizioni"; +$a->strings["Private"] = "Privato"; +$a->strings["Community Forum"] = "Forum di discussione"; +$a->strings["Feed Republish"] = "Aggregatore di feed esterni"; +$a->strings["Special Purpose"] = "Per finalità speciali"; +$a->strings["Celebrity/Soapbox"] = "Pagina per fan"; +$a->strings["Group Repository"] = "Repository di gruppo"; +$a->strings["Custom/Expert Mode"] = "Personalizzazione per esperti"; +$a->strings["Profile Photos"] = "Foto del profilo"; +$a->strings["Permission Denied."] = "Permesso negato."; +$a->strings["File not found."] = "File non trovato."; +$a->strings["Edit file permissions"] = "Modifica i permessi del file"; +$a->strings["Set/edit permissions"] = "Modifica i permessi"; +$a->strings["Include all files and sub folders"] = "Includi tutti i file e le sottocartelle"; +$a->strings["Return to file list"] = "Torna all'elenco dei file"; +$a->strings["Copy/paste this code to attach file to a post"] = "Copia/incolla questo codice per far comparire il file in un post"; +$a->strings["Copy/paste this URL to link file from a web page"] = "Copia/incolla questo indirizzo in una pagina web per avere un link al file"; +$a->strings["Share this file"] = "Condividi questo file"; +$a->strings["Show URL to this file"] = "Mostra l'URL del file"; +$a->strings["Notify your contacts about this file"] = "Notifica ai contatti che hai caricato questo file"; +$a->strings["Collection created."] = "L'insieme di canali è stato creato."; +$a->strings["Could not create collection."] = "Impossibile creare l'insieme."; +$a->strings["Collection updated."] = "Insieme aggiornato."; +$a->strings["Create a collection of channels."] = "Crea un insieme di canali."; +$a->strings["Collection Name: "] = "Nome dell'insieme:"; +$a->strings["Members are visible to other channels"] = "I membri potranno vedere gli altri canali dell'insieme"; +$a->strings["Collection removed."] = "Insieme rimosso."; +$a->strings["Unable to remove collection."] = "Impossibile rimuovere l'insieme."; +$a->strings["Collection Editor"] = "Modifica l'insieme"; +$a->strings["Members"] = "Membri"; +$a->strings["All Connected Channels"] = "Tutti i canali connessi"; +$a->strings["Click on a channel to add or remove."] = "Clicca su un canale per aggiungerlo o rimuoverlo."; +$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale."; +$a->strings["Empty post discarded."] = "Il post vuoto è stato ignorato."; +$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale."; +$a->strings["Duplicate post suppressed."] = "I post duplicati sono scartati."; +$a->strings["System error. Post not saved."] = "Errore di sistema. Post non salvato."; +$a->strings["Unable to obtain post information from database."] = "Impossibile caricare il post dal database."; +$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale."; +$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web."; +$a->strings["No channel."] = "Nessun canale."; +$a->strings["Common connections"] = "Contatti in comune"; +$a->strings["No connections in common."] = "Nessun contatto in comune."; +$a->strings["Continue"] = "Continua"; +$a->strings["Premium Channel Setup"] = "Canale premium - configurazione"; +$a->strings["Enable premium channel connection restrictions"] = "Abilita le restrizioni del canale premium"; +$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc."; +$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:"; +$a->strings["Potential connections will then see the following text before proceeding:"] = "Il testo seguente comparirà a chi vorrà seguire il canale:"; +$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina."; +$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Il gestore del canale non ha fornito istruzioni specifiche)"; +$a->strings["Restricted or Premium Channel"] = "Canale premium - con restrizioni"; +$a->strings["Profile Match"] = "Profili corrispondenti"; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche."; +$a->strings["is interested in:"] = "interessi personali:"; +$a->strings["No matches"] = "Nessun risultato"; $a->strings["OpenID protocol error. No ID returned."] = "Errore del protocollo OpenID. Nessun ID ricevuto in risposta."; $a->strings["Welcome %s. Remote authentication successful."] = "Ciao %s. L'accesso tramite il tuo hub è avvenuto con successo."; -$a->strings["Invalid item."] = "Elemento non valido."; -$a->strings["Channel not found."] = "Canale non trovato."; -$a->strings["Page not found."] = "Pagina non trovata."; +$a->strings["Some blurb about what to do when you're new here"] = "Qualche suggerimento per i nuovi utenti su cosa fare"; +$a->strings["Away"] = "Assente"; +$a->strings["Online"] = "Online"; +$a->strings["Public Sites"] = "Siti pubblici"; +$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "I siti elencati permettono la registrazione libera sulla rete \$Projectname. Tutti questi hub sono interconnessi, quindi essere iscritti su uno equivale a una registrazione su tutta la rete. Alcuni siti potrebbero richiedere un abbonamento o dei servizi a pagamento. Per maggiori dettagli visita gli indirizzi nell'elenco."; +$a->strings["Rate this hub"] = "Valuta questo hub"; +$a->strings["Site URL"] = "URL del sito"; +$a->strings["Access Type"] = "Tipo di accesso"; +$a->strings["Registration Policy"] = "Politica di registrazione"; +$a->strings["Project"] = "Progetto"; +$a->strings["View hub ratings"] = "Vedi le valutazioni del hub"; +$a->strings["Rate"] = "Valuta"; +$a->strings["View ratings"] = "Vedi le valutazioni"; +$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha taggato %3\$s di %2\$s con %4\$s"; +$a->strings["Website:"] = "Sito web:"; +$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Canale remoto [%s] (non ancora conosciuto da questo sito)"; +$a->strings["Rating (this information is public)"] = "Valutazione (visibile a tutti)"; +$a->strings["Optionally explain your rating (this information is public)"] = "Commento alla valutazione (facoltativo, visibile a tutti)"; +$a->strings["Block Name"] = "Nome del block"; +$a->strings["Block Title"] = "Titolo del block"; $a->strings["First Name"] = "Nome"; $a->strings["Last Name"] = "Cognome"; $a->strings["Nickname"] = "Nick"; @@ -1049,28 +1093,10 @@ $a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s di %2\$s: %1\$s non $a->strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s di %2\$s: %1\$s forse partecipa"; $a->strings["Action completed."] = "Comando completato."; $a->strings["Thank you."] = "Grazie."; -$a->strings["Export Channel"] = "Esporta il canale"; -$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Esporta le informazioni di base del canale in un file. In pratica è un salvataggio delle tue connessioni, dei permessi che hai assegnato e del tuo profilo che così potrà essere importato su un altro server/hub. Il file non includerà i tuoi post e altri contenuti che hai creato o caricato."; -$a->strings["Export Content"] = "Esporta i contenuti"; -$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Esporta il tuo canale e i contenuti recenti in un file di salvataggio che potrà essere importato su un altro server/hub. Sarà un backup dei tuoi contatti, dei permessi che hai assegnato, dei dati del profilo e dei post degli ultimi mesi. Il file potrebbe essere MOLTO grande. Sarà necessario attendere con pazienza - saranno necessari molti minuti prima che inizi lo scaricamento."; -$a->strings["Export your posts from a given year."] = "Esporta i tuoi post a partire dall'anno scelto."; -$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Puoi anche esportare post e conversazioni di un particolare anno o mese. Modifica la data nella barra dell'indirizzo del browser per scegliere date differenti. Se l'esportazione dovesse fallire (la memoria sul server potrebbe non bastare), riprova scegliendo un intervallo più breve tra le date."; -$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti i post di un anno, come per esempio quello in corso, visita <a href=\"%1\$s\">%2\$s</a> "; -$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti post di un dato mese, come per esempio gennaio di quest'anno, visita <a href=\"%1\$s\">%2\$s</a>"; -$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Questi contenuti potranno essere importati o ripristinati visitando <a href=\"%1\$s\">%2\$s</a> su qualsiasi sito/hub dove è presente il tuo canale. Per mantenere l'ordinamento originale fai attenzione ad importare i file secondo la data (prima il più vecchio)"; -$a->strings["Away"] = "Assente"; -$a->strings["Online"] = "Online"; -$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha taggato %3\$s di %2\$s con %4\$s"; -$a->strings["No channel."] = "Nessun canale."; -$a->strings["Common connections"] = "Contatti in comune"; -$a->strings["No connections in common."] = "Nessun contatto in comune."; -$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato"; -$a->strings["added your channel"] = "ha aggiunto il tuo canale"; -$a->strings["posted an event"] = "ha creato un evento"; -$a->strings["Documentation Search"] = "Ricerca nella guida"; -$a->strings["Help:"] = "Guida:"; -$a->strings["Not Found"] = "Non disponibile"; -$a->strings["\$Projectname Documentation"] = "Guida di \$Projectname"; +$a->strings["Invalid item."] = "Elemento non valido."; +$a->strings["Channel not found."] = "Canale non trovato."; +$a->strings["Page not found."] = "Pagina non trovata."; +$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; $a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare un canale prima di 48 ore dall'ultimo cambio password."; $a->strings["Remove This Channel"] = "Elimina questo canale"; $a->strings["WARNING: "] = "ATTENZIONE:"; @@ -1080,38 +1106,186 @@ $a->strings["Please enter your password for verification:"] = "Inserisci la tua $a->strings["Remove this channel and all its clones from the network"] = "Elimina questo canale e tutti i suoi cloni dalla rete"; $a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "L'impostazione predefinita è che sia eliminata solo l'istanza del canale presente su questo hub, non gli eventuali cloni"; $a->strings["Remove Channel"] = "Elimina questo canale"; -$a->strings["- select -"] = "- scegli -"; -$a->strings["Menu not found."] = "Menù non trovato."; -$a->strings["Unable to create element."] = "Impossibile creare l'elemento."; -$a->strings["Unable to update menu element."] = "Non è possibile aggiornare l'elemento del menù."; -$a->strings["Unable to add menu element."] = "Impossibile aggiungere l'elemento al menù."; -$a->strings["Not found."] = "Non trovato."; -$a->strings["Menu Item Permissions"] = "Permessi del menu"; -$a->strings["(click to open/close)"] = "(clicca per aprire/chiudere)"; -$a->strings["Link Name"] = "Nome link"; -$a->strings["Link or Submenu Target"] = "Azione del link o del sottomenu"; -$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Inserisci l'indirizzo del link o scegli il nome di un sottomenu"; -$a->strings["Use magic-auth if available"] = "Usa l'autenticazione tramite il tuo hub, se disponibile"; -$a->strings["Open link in new window"] = "Apri il link in una nuova finestra"; -$a->strings["Order in list"] = "Ordine dell'elenco"; -$a->strings["Higher numbers will sink to bottom of listing"] = "I numeri più alti andranno in fondo all'elenco"; -$a->strings["Submit and finish"] = "Salva e termina"; -$a->strings["Submit and continue"] = "Salva e continua"; -$a->strings["Menu:"] = "Menu:"; -$a->strings["Link Target"] = "Destinazione link"; -$a->strings["Edit menu"] = "Modifica il menù"; -$a->strings["Edit element"] = "Modifica l'elemento"; -$a->strings["Drop element"] = "Elimina l'elemento"; -$a->strings["New element"] = "Nuovo elemento"; -$a->strings["Edit this menu container"] = "Modifica il contenitore del menù"; -$a->strings["Add menu element"] = "Aggiungi un elemento al menù"; -$a->strings["Delete this menu item"] = "Elimina questo elemento del menù"; -$a->strings["Edit this menu item"] = "Modifica questo elemento del menù"; -$a->strings["Menu item not found."] = "L'elemento del menù non è stato trovato."; -$a->strings["Menu item deleted."] = "L'elemento del menù è stato eliminato."; -$a->strings["Menu item could not be deleted."] = "L'elemento del menù non può essere eliminato."; -$a->strings["Edit Menu Element"] = "Modifica l'elemento del menù"; -$a->strings["Link text"] = "Testo del link"; +$a->strings["Set your current mood and tell your friends"] = "Scegli il tuo umore attuale per mostrarlo agli amici"; +$a->strings["Add a Channel"] = "Aggiungi un canale"; +$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti te ne permette il tuo sito."; +$a->strings["Channel Name"] = "Nome del canale"; +$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\""; +$a->strings["Choose a short nickname"] = "Scegli un nome breve"; +$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti."; +$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro hub"; +$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. Hubzilla sceglierà per te i permessi più adatti."; +$a->strings["Channel Type"] = "Tipo di canale"; +$a->strings["Read more about roles"] = "Maggiori informazioni sui ruoli"; +$a->strings["No ratings"] = "Nessuna valutazione"; +$a->strings["Public access denied."] = "Accesso pubblico negato."; +$a->strings["Ratings"] = "Valutazioni"; +$a->strings["Rating: "] = "Valutazione:"; +$a->strings["Website: "] = "Sito web:"; +$a->strings["Description: "] = "Descrizione:"; +$a->strings["\$Projectname Server - Setup"] = "Server \$Projectname - Installazione"; +$a->strings["Could not connect to database."] = " Impossibile connettersi al database."; +$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS."; +$a->strings["Could not create table."] = "Impossibile creare le tabelle."; +$a->strings["Your site database has been installed."] = "Il database del sito è stato installato."; +$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db."; +$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Leggi il file 'install/INSTALL.txt'."; +$a->strings["System check"] = "Verifica del sistema"; +$a->strings["Next"] = "Successivo"; +$a->strings["Check again"] = "Verifica di nuovo"; +$a->strings["Database connection"] = "Connessione al database"; +$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "Per poter installare \$Projectname è necessario fornire i parametri di connessione al tuo database."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Il database deve già esistere. Se non esiste, crealo prima di continuare."; +$a->strings["Database Server Name"] = "Server del database"; +$a->strings["Default is 127.0.0.1"] = "Il valore predefinito è 127.0.0.1"; +$a->strings["Database Port"] = "Port del database"; +$a->strings["Communication port number - use 0 for default"] = "Scrivi 0 per usare il valore standard"; +$a->strings["Database Login Name"] = "Utente database"; +$a->strings["Database Login Password"] = "Password database"; +$a->strings["Database Name"] = "Nome database"; +$a->strings["Database Type"] = "Tipo database"; +$a->strings["Site administrator email address"] = "Indirizzo email dell'amministratore del hub"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione di Hubzilla."; +$a->strings["Website URL"] = "URL completo del sito"; +$a->strings["Please use SSL (https) URL if available."] = "Se disponibile, usa l'indirizzo SSL (https)."; +$a->strings["Please select a default timezone for your website"] = "Seleziona il fuso orario predefinito per il tuo hub"; +$a->strings["Site settings"] = "Impostazioni del hub"; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web"; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron."; +$a->strings["PHP executable path"] = "Path del comando PHP"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione."; +$a->strings["Command line PHP"] = "PHP da riga di comando"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"."; +$a->strings["This is required for message delivery to work."] = "E' necessario perché funzioni la consegna dei messaggi."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La dimensione massima di un caricamento è impostata a %s. Il singolo file non può superare %s. Ti è permesso caricare max %d file per volta."; +$a->strings["You can adjust these settings in the servers php.ini."] = "Puoi regolare queste impostazioni sul server in php.ini"; +$a->strings["PHP upload limits"] = "Limiti PHP in upload"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di cifratura"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Genera chiavi di cifratura"; +$a->strings["libCurl PHP module"] = "modulo PHP libCurl"; +$a->strings["GD graphics PHP module"] = "modulo PHP GD graphics"; +$a->strings["OpenSSL PHP module"] = "modulo PHP OpenSSL"; +$a->strings["mysqli or postgres PHP module"] = "modulo PHP per mysqli oppure prostgres"; +$a->strings["mb_string PHP module"] = "modulo PHP mb_string"; +$a->strings["mcrypt PHP module"] = "modulo PHP mcrypt"; +$a->strings["xml PHP module"] = "modulo xml PHP"; +$a->strings["Apache mod_rewrite module"] = "modulo Apache mod_rewrite"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato"; +$a->strings["proc_open"] = "proc_open"; +$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini"; +$a->strings["Error: libCURL PHP module required but not installed."] = "Errore: il modulo libCURL di PHP è richiesto ma non installato."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato."; +$a->strings["Error: openssl PHP module required but not installed."] = "Errore: il modulo openssl di PHP è richiesto ma non installato."; +$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato"; +$a->strings["Error: mb_string PHP module required but not installed."] = "Errore: il modulo PHP mb_string è richiesto ma non installato."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Errore: il modulo PHP mcrypt è richiesto ma non installato."; +$a->strings["Error: xml PHP module required for DAV but not installed."] = "Errore: il modulo xml PHP è richiesto per DAV ma non è installato."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni."; +$a->strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile"; +$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di Hubzilla."; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."; +$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene."; +$a->strings["%s is writable"] = "%s è scrivibile"; +$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Hubzilla salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix"; +$a->strings["store is writable"] = "l'archivio è scrivibile"; +$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."; +$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati self-signed generati da te!"; +$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server."; +$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser."; +$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto."; +$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser."; +$a->strings["SSL certificate validation"] = "Validazione del certificato SSL"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:"; +$a->strings["Url rewrite is working"] = "Url rewrite funziona correttamente"; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito."; +$a->strings["Errors encountered creating database tables."] = "La creazione delle tabelle del database ha generato errori."; +$a->strings["<h1>What next</h1>"] = "<h1>I prossimi passi</h1>"; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling."; +$a->strings["Bookmark added"] = "Segnalibro aggiunto"; +$a->strings["My Bookmarks"] = "I miei segnalibri"; +$a->strings["My Connections Bookmarks"] = "I segnalibri dei miei contatti"; +$a->strings["\$Projectname"] = "\$Projectname"; +$a->strings["Welcome to %s"] = "%s ti dà il benvenuto"; +$a->strings["This setting requires special processing and editing has been blocked."] = "Questa impostazione è bloccata, richiede criteri di modifica speciali"; +$a->strings["Configuration Editor"] = "Editor di configurazione"; +$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare."; +$a->strings["Poke/Prod"] = "Poke/Prod"; +$a->strings["poke, prod or do other things to somebody"] = "Manda un poke, un prod o altro"; +$a->strings["Recipient"] = "Destinatario"; +$a->strings["Choose what you wish to do to recipient"] = "Scegli cosa vuoi inviare al destinatario"; +$a->strings["Make this post private"] = "Rendi privato questo post"; +$a->strings["Profile not found."] = "Profilo non trovato."; +$a->strings["Profile deleted."] = "Profilo eliminato."; +$a->strings["Profile-"] = "Profilo-"; +$a->strings["New profile created."] = "Il nuovo profilo è stato creato."; +$a->strings["Profile unavailable to clone."] = "Impossibile duplicare il profilo."; +$a->strings["Profile unavailable to export."] = "Il profilo non è disponibile per l'export."; +$a->strings["Profile Name is required."] = "Il nome del profilo è obbligatorio."; +$a->strings["Marital Status"] = "Stato sentimentale"; +$a->strings["Romantic Partner"] = "Partner affettivo"; +$a->strings["Likes"] = "Mi piace"; +$a->strings["Dislikes"] = "Non mi piace"; +$a->strings["Work/Employment"] = "Lavoro/impiego"; +$a->strings["Religion"] = "Religione"; +$a->strings["Political Views"] = "Orientamento politico"; +$a->strings["Sexual Preference"] = "Preferenze sessuali"; +$a->strings["Homepage"] = "Home page"; +$a->strings["Interests"] = "Interessi"; +$a->strings["Address"] = "Indirizzo"; +$a->strings["Profile updated."] = "Profilo aggiornato."; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?"; +$a->strings["Edit Profile Details"] = "Modifica i dettagli del profilo"; +$a->strings["View this profile"] = "Guarda questo profilo"; +$a->strings["Change Profile Photo"] = "Cambia la foto del profilo"; +$a->strings["Create a new profile using these settings"] = "Crea un nuovo profilo usando queste impostazioni"; +$a->strings["Clone this profile"] = "Clona questo profilo"; +$a->strings["Delete this profile"] = "Elimina questo profilo"; +$a->strings["Import profile from file"] = "Importa il profilo da un file"; +$a->strings["Export profile to file"] = "Esporta il profilo in un file"; +$a->strings["Profile Name:"] = "Nome del profilo:"; +$a->strings["Your Full Name:"] = "Il tuo nome completo:"; +$a->strings["Title/Description:"] = "Titolo/descrizione:"; +$a->strings["Your Gender:"] = "Sesso:"; +$a->strings["Birthday :"] = "Compleanno:"; +$a->strings["Street Address:"] = "Indirizzo (via/piazza):"; +$a->strings["Locality/City:"] = "Località:"; +$a->strings["Postal/Zip Code:"] = "CAP:"; +$a->strings["Country:"] = "Nazione:"; +$a->strings["Region/State:"] = "Regione/stato:"; +$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Stato sentimentale:"; +$a->strings["Who: (if applicable)"] = "Con chi: (se possibile)"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Per esempio: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = "dal [data]:"; +$a->strings["Homepage URL:"] = "Indirizzo home page:"; +$a->strings["Religious Views:"] = "Orientamento religioso:"; +$a->strings["Keywords:"] = "Parole chiave, tag:"; +$a->strings["Example: fishing photography software"] = "Per esempio: pesca fotografia programmazione"; +$a->strings["Used in directory listings"] = "Visibile negli elenchi pubblici di canali"; +$a->strings["Tell us about yourself..."] = "Raccontaci di te..."; +$a->strings["Hobbies/Interests"] = "Hobby/interessi"; +$a->strings["Contact information and Social Networks"] = "Contatti personali e i tuoi social network"; +$a->strings["My other channels"] = "I miei altri canali"; +$a->strings["Musical interests"] = "Interessi musicali"; +$a->strings["Books, literature"] = "Libri, letteratura"; +$a->strings["Television"] = "Televisione"; +$a->strings["Film/dance/culture/entertainment"] = "Film/danza/cultura/intrattenimento"; +$a->strings["Love/romance"] = "Amore"; +$a->strings["Work/employment"] = "Lavoro/impiego"; +$a->strings["School/education"] = "Scuola/educazione"; +$a->strings["This is your default profile."] = "Questo è il tuo profilo predefinito."; +$a->strings["Age: "] = "Età:"; +$a->strings["Edit/Manage Profiles"] = "Modifica/gestisci i profili"; +$a->strings["Add profile things"] = "Aggiungi oggetti al profilo"; +$a->strings["Include desirable objects in your profile"] = "Aggiungi oggetti interessanti al tuo profilo"; +$a->strings["Items tagged with: %s"] = "Elementi taggati con: %s"; +$a->strings["Search results for: %s"] = "Risultati ricerca: %s"; $a->strings["Could not access contact record."] = "Non è possibile accedere alle informazioni sul contatto."; $a->strings["Could not locate selected profile."] = "Non riesco a trovare il profilo selezionato."; $a->strings["Connection updated."] = "Contatto aggiornato."; @@ -1174,57 +1348,132 @@ $a->strings["Individual Permissions"] = "Permessi individuali"; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni di privacy</strong></a> del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Da questa pagina <strong>non</strong> puoi cambiarle."; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni di privacy</strong></a> del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Le personalizzazioni che effettuerai qui potrebbero non essere effettive a meno che tu non cambi le impostazioni generali."; $a->strings["Last update:"] = "Ultimo aggiornamento:"; -$a->strings["Set your current mood and tell your friends"] = "Scegli il tuo umore attuale per mostrarlo agli amici"; -$a->strings["Hub not found."] = "Hub non trovato."; -$a->strings["This setting requires special processing and editing has been blocked."] = "Questa impostazione è bloccata, richiede criteri di modifica speciali"; -$a->strings["Configuration Editor"] = "Editor di configurazione"; -$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare."; -$a->strings["Permission Denied."] = "Permesso negato."; -$a->strings["File not found."] = "File non trovato."; -$a->strings["Edit file permissions"] = "Modifica i permessi del file"; -$a->strings["Set/edit permissions"] = "Modifica i permessi"; -$a->strings["Include all files and sub folders"] = "Includi tutti i file e le sottocartelle"; -$a->strings["Return to file list"] = "Torna all'elenco dei file"; -$a->strings["Copy/paste this code to attach file to a post"] = "Copia/incolla questo codice per far comparire il file in un post"; -$a->strings["Copy/paste this URL to link file from a web page"] = "Copia/incolla questo indirizzo in una pagina web per avere un link al file"; -$a->strings["Share this file"] = "Condividi questo file"; -$a->strings["Show URL to this file"] = "Mostra l'URL del file"; -$a->strings["Notify your contacts about this file"] = "Notifica ai contatti che hai caricato questo file"; +$a->strings["network"] = "rete"; +$a->strings["RSS"] = "RSS"; +$a->strings["\$Projectname channel"] = "Canale \$Projectname"; +$a->strings["Invalid message"] = "Messaggio non valido"; +$a->strings["no results"] = "nessun risultato"; +$a->strings["Delivery report for %1\$s"] = "Rapporto di consegna - %1\$s"; +$a->strings["channel sync processed"] = "sincronizzazione del canale effettuata"; +$a->strings["queued"] = "in coda"; +$a->strings["posted"] = "inviato"; +$a->strings["accepted for delivery"] = "accettato per la spedizione"; +$a->strings["updated"] = "aggiornato"; +$a->strings["update ignored"] = "aggiornamento ignorato"; +$a->strings["permission denied"] = "permessi non sufficienti"; +$a->strings["recipient not found"] = "Destinatario non trovato"; +$a->strings["mail recalled"] = "messaggio richiamato dal mittente"; +$a->strings["duplicate mail received"] = "ricevuto messaggio duplicato"; +$a->strings["mail delivered"] = "messaggio recapitato"; +$a->strings["Item not found"] = "Elemento non trovato"; +$a->strings["Delete webpage?"] = "Vuoi eliminare questa pagina web?"; +$a->strings["Page link title"] = "Link del titolo"; +$a->strings["Insert YouTube video"] = "Inserisci video da YouTube"; +$a->strings["Insert Vorbis [.ogg] video"] = "Inserisci video Vorbis [.ogg]"; +$a->strings["Insert Vorbis [.ogg] audio"] = "Inserisci audio Vorbis [.ogg]"; +$a->strings["Edit Webpage"] = "Modifica la pagina web"; +$a->strings["Unable to find your hub."] = "Impossibile raggiungere il tuo hub."; +$a->strings["Post successful."] = "Inviato!"; +$a->strings["sent you a private message"] = "ti ha inviato un messaggio privato"; +$a->strings["added your channel"] = "ha aggiunto il tuo canale"; +$a->strings["posted an event"] = "ha creato un evento"; +$a->strings["Authorize application connection"] = "Autorizza la app"; +$a->strings["Return to your app and insert this Securty Code:"] = "Torna alla app e inserisci questo codice di sicurezza:"; +$a->strings["Please login to continue."] = "Accedi al sito per continuare."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?"; +$a->strings["No more system notifications."] = "Non ci sono nuove notifiche di sistema."; +$a->strings["System Notifications"] = "Notifiche di sistema"; +$a->strings["Select a bookmark folder"] = "Scegli una cartella di segnalibri"; +$a->strings["Save Bookmark"] = "Salva segnalibro"; +$a->strings["URL of bookmark"] = "URL del segnalibro"; +$a->strings["Description"] = "Descrizione"; +$a->strings["Or enter new bookmark folder name"] = "O inserisci il nome di una nuova cartella di segnalibri"; +$a->strings["Contact not found."] = "Contatto non trovato."; +$a->strings["Friend suggestion sent."] = "Suggerimento di amicizia inviato."; +$a->strings["Suggest Friends"] = "Suggerisci amici"; +$a->strings["Suggest a friend for %s"] = "Suggerisci un amico a %s"; +$a->strings["Failed to create source. No channel selected."] = "Impossibile creare la sorgente. Nessun canale selezionato."; +$a->strings["Source created."] = "Sorgente creata."; +$a->strings["Source updated."] = "Sorgente aggiornata."; +$a->strings["*"] = "*"; +$a->strings["Manage remote sources of content for your channel."] = "Gestisci le sorgenti dei contenuti del tuo canale."; +$a->strings["New Source"] = "Nuova sorgente"; +$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente."; +$a->strings["Only import content with these words (one per line)"] = "Importa solo i contenuti che hanno queste parole (una per riga)"; +$a->strings["Leave blank to import all public content"] = "Lascia vuoto per importare tutti i contenuti pubblici"; +$a->strings["Source not found."] = "Sorgente non trovata."; +$a->strings["Edit Source"] = "Modifica la sorgente"; +$a->strings["Delete Source"] = "Elimina la sorgente"; +$a->strings["Source removed"] = "Sorgente eliminata"; +$a->strings["Unable to remove source."] = "Impossibile rimuovere la sorgente."; +$a->strings["Invalid request identifier."] = "L'identificativo della richiesta non è valido."; +$a->strings["Discard"] = "Rifiuta"; +$a->strings["Tag removed"] = "Tag rimosso"; +$a->strings["Remove Item Tag"] = "Rimuovi il tag"; +$a->strings["Select a tag to remove: "] = "Seleziona un tag da rimuovere: "; +$a->strings["Remove"] = "Rimuovi"; +$a->strings["%d rating"] = array( + 0 => "%d valutazione", + 1 => "%d valutazioni", +); +$a->strings["Gender: "] = "Sesso:"; +$a->strings["Status: "] = "Stato:"; +$a->strings["Homepage: "] = "Homepage:"; +$a->strings["Description:"] = "Descrizione:"; +$a->strings["Public Forum:"] = "Forum pubblico:"; +$a->strings["Keywords: "] = "Parole chiave:"; +$a->strings["Don't suggest"] = "Non fornire suggerimenti"; +$a->strings["Common connections:"] = "Contatti in comune:"; +$a->strings["Global Directory"] = "Elenchi pubblici globali"; +$a->strings["Local Directory"] = "Elenco canali su questo hub"; +$a->strings["Finding:"] = "Ricerca:"; +$a->strings["next page"] = "pagina successiva"; +$a->strings["previous page"] = "pagina precedente"; +$a->strings["Sort options"] = "Opzioni di ordinamento"; +$a->strings["Alphabetic"] = "Alfabetico"; +$a->strings["Reverse Alphabetic"] = "Alfabetico inverso"; +$a->strings["Newest to Oldest"] = "Prima i più recenti"; +$a->strings["Oldest to Newest"] = "Prima i più vecchi"; +$a->strings["No entries (some entries may be hidden)."] = "Nessun risultato (qualche elemento potrebbe essere nascosto)."; +$a->strings["No valid account found."] = "Nessun account valido trovato."; +$a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email."; +$a->strings["Site Member (%s)"] = "Utente del sito (%s)"; +$a->strings["Password reset requested at %s"] = "È stato richiesto di reimpostare password su %s"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata."; +$a->strings["Password Reset"] = "Reimposta la password"; +$a->strings["Your password has been reset as requested."] = "La password è stata reimpostata come richiesto."; +$a->strings["Your new password is"] = "La tua nuova password è"; +$a->strings["Save or copy your new password - and then"] = "Salva o copia la tua nuova password, quindi"; +$a->strings["click here to login"] = "clicca qui per accedere"; +$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso."; +$a->strings["Your password has changed at %s"] = "La tua password su %s è cambiata"; +$a->strings["Forgot your Password?"] = "Hai dimenticato la password?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare."; +$a->strings["Email Address"] = "Indirizzo email"; +$a->strings["Reset"] = "Reimposta"; $a->strings["This site is not a directory server"] = "Questo non è un directory server"; -$a->strings["Layout Name"] = "Nome layout"; -$a->strings["Layout Description (Optional)"] = "Descrizione del layout (facoltativa)"; -$a->strings["Comanche page description language help"] = "Guida di Comanche Page Description Language"; -$a->strings["Layout Description"] = "Descrizione del layout"; -$a->strings["Download PDL file"] = "Scarica il file PDL"; -$a->strings["Poke/Prod"] = "Poke/Prod"; -$a->strings["poke, prod or do other things to somebody"] = "Manda un poke, un prod o altro"; -$a->strings["Recipient"] = "Destinatario"; -$a->strings["Choose what you wish to do to recipient"] = "Scegli cosa vuoi inviare al destinatario"; -$a->strings["Make this post private"] = "Rendi privato questo post"; -$a->strings["No such group"] = "Impossibile trovare l'insieme"; -$a->strings["No such channel"] = "Canale sconosciuto"; -$a->strings["forum"] = "forum"; -$a->strings["Search Results For:"] = "Cerca risultati con:"; -$a->strings["Collection is empty"] = "L'insieme di canali è vuoto"; -$a->strings["Collection: "] = "Insieme:"; -$a->strings["Invalid connection."] = "Contatto non valido."; -$a->strings["You must be logged in to see this page."] = "Devi aver effettuato l'accesso per vedere questa pagina."; -$a->strings["Room not found"] = "Chat non trovata"; -$a->strings["Leave Room"] = "Lascia la chat"; -$a->strings["Delete This Room"] = "Elimina questa chat"; -$a->strings["I am away right now"] = "Non sono presente"; -$a->strings["I am online"] = "Sono online"; -$a->strings["Bookmark this room"] = "Aggiungi questa chat ai segnalibri"; -$a->strings["New Chatroom"] = "Nuova chat"; -$a->strings["Chatroom Name"] = "Nome della chat"; -$a->strings["Expiration of chats (minutes)"] = "Scadenza dei messaggi della chat (minuti)"; -$a->strings["%1\$s's Chatrooms"] = "Le chat di %1\$s"; -$a->strings["Items tagged with: %s"] = "Elementi taggati con: %s"; -$a->strings["Search results for: %s"] = "Risultati ricerca: %s"; -$a->strings["Website:"] = "Sito web:"; -$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Canale remoto [%s] (non ancora conosciuto da questo sito)"; -$a->strings["Rating (this information is public)"] = "Valutazione (visibile a tutti)"; -$a->strings["Optionally explain your rating (this information is public)"] = "Commento alla valutazione (facoltativo, visibile a tutti)"; +$a->strings["%s element installed"] = "%s elemento installato"; +$a->strings["%s element installation failed"] = "Elementi con installazione fallita: %s"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s"; +$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s non segue più %3\$s di %2\$s"; +$a->strings["Your service plan only allows %d channels."] = "Il tuo account permette di creare al massimo %d canali."; +$a->strings["Nothing to import."] = "Non c'è niente da importare."; +$a->strings["Unable to download data from old server"] = "Impossibile importare i dati dal vecchio hub"; +$a->strings["Imported file is empty."] = "Il file da importare è vuoto."; +$a->strings["Warning: Database versions differ by %1\$d updates."] = "Attenzione: le versioni di database differiscono di %1\$d aggiornamenti."; +$a->strings["No channel. Import failed."] = "Nessun canale. Import fallito."; +$a->strings["You must be logged in to use this feature."] = "Per questa funzionalità devi aver effettuato l'accesso."; +$a->strings["Import Channel"] = "Importa un canale"; +$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Usa questo modulo per importare un tuo canale da un altro hub. Puoi ottenere i dati identificativi del canale direttamente dall'altro hub oppure tramite un file esportato in precedenza."; +$a->strings["File to Upload"] = "File da caricare"; +$a->strings["Or provide the old server/hub details"] = "Oppure fornisci i dettagli del vecchio hub"; +$a->strings["Your old identity address (xyz@example.com)"] = "Il tuo vecchio identificativo (per esempio pippo@esempio.com)"; +$a->strings["Your old login email address"] = "L'email che usavi per accedere sul vecchio hub"; +$a->strings["Your old login password"] = "La password per il vecchio hub"; +$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc."; +$a->strings["Make this hub my primary location"] = "Rendi questo hub il mio indirizzo primario"; +$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importa i contenuti pubblicati, se possibile (sperimentale)"; +$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore lanciala *una volta sola* e resta su questa pagina finché non avrà finito."; $a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina."; $a->strings["Album not found."] = "Album non trovato."; $a->strings["Delete Album"] = "Elimina album"; @@ -1243,16 +1492,12 @@ $a->strings["Album name could not be decoded"] = "Non è stato possibile leggere $a->strings["Contact Photos"] = "Foto dei contatti"; $a->strings["Show Newest First"] = "Prima i più recenti"; $a->strings["Show Oldest First"] = "Prima i più vecchi"; -$a->strings["View Photo"] = "Guarda la foto"; -$a->strings["Edit Album"] = "Modifica album"; $a->strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato."; $a->strings["Photo not available"] = "Foto non disponibile"; $a->strings["Use as profile photo"] = "Usa come foto del profilo"; $a->strings["Private Photo"] = "Foto privata"; $a->strings["Previous"] = "Precendente"; $a->strings["View Full Size"] = "Vedi nelle dimensioni originali"; -$a->strings["Next"] = "Successivo"; -$a->strings["Remove"] = "Rimuovi"; $a->strings["Edit photo"] = "Modifica la foto"; $a->strings["Rotate CW (right)"] = "Ruota (senso orario)"; $a->strings["Rotate CCW (left)"] = "Ruota (senso antiorario)"; @@ -1266,32 +1511,84 @@ $a->strings["In This Photo:"] = "In questa foto:"; $a->strings["Map"] = "Mappa"; $a->strings["View Album"] = "Guarda l'album"; $a->strings["Recent Photos"] = "Foto recenti"; -$a->strings["Invalid message"] = "Messaggio non valido"; -$a->strings["no results"] = "nessun risultato"; -$a->strings["Delivery report for %1\$s"] = "Rapporto di consegna - %1\$s"; -$a->strings["channel sync processed"] = "sincronizzazione del canale effettuata"; -$a->strings["queued"] = "in coda"; -$a->strings["posted"] = "inviato"; -$a->strings["accepted for delivery"] = "accettato per la spedizione"; -$a->strings["updated"] = "aggiornato"; -$a->strings["update ignored"] = "aggiornamento ignorato"; -$a->strings["permission denied"] = "permessi non sufficienti"; -$a->strings["recipient not found"] = "Destinatario non trovato"; -$a->strings["mail recalled"] = "messaggio richiamato dal mittente"; -$a->strings["duplicate mail received"] = "ricevuto messaggio duplicato"; -$a->strings["mail delivered"] = "messaggio recapitato"; -$a->strings["Item not found"] = "Elemento non trovato"; +$a->strings["Fetching URL returns error: %1\$s"] = "La chiamata all'URL restituisce questo errore: %1\$s"; +$a->strings["Image uploaded but image cropping failed."] = "L'immagine è stata caricata, ma il non è stato possibile ritagliarla."; +$a->strings["Image resize failed."] = "Il ridimensionamento dell'immagine è fallito."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente."; +$a->strings["Image upload failed."] = "Il caricamento dell'immagine è fallito."; +$a->strings["Unable to process image."] = "Impossibile elaborare l'immagine."; +$a->strings["female"] = "femmina"; +$a->strings["%1\$s updated her %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; +$a->strings["male"] = "maschio"; +$a->strings["%1\$s updated his %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; +$a->strings["%1\$s updated their %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; +$a->strings["profile photo"] = "foto del profilo"; +$a->strings["Photo not available."] = "Foto non disponibile."; +$a->strings["Upload File:"] = "Carica un file:"; +$a->strings["Select a profile:"] = "Seleziona un profilo:"; +$a->strings["Upload Profile Photo"] = "Carica la foto del profilo"; +$a->strings["or"] = "o"; +$a->strings["skip this step"] = "salta questo passaggio"; +$a->strings["select a photo from your photo albums"] = "seleziona una foto dai tuoi album"; +$a->strings["Crop Image"] = "Ritaglia immagine"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Ritaglia l'immagine per migliorarne la visualizzazione."; +$a->strings["Done Editing"] = "Modifica terminata"; +$a->strings["Thing updated"] = "L'oggetto è stato aggiornato"; +$a->strings["Object store: failed"] = "Impossibile memorizzare l'oggetto."; +$a->strings["Thing added"] = "L'Oggetto è stato aggiunto"; +$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +$a->strings["Show Thing"] = "Mostra l'oggetto"; +$a->strings["item not found."] = "non trovato."; +$a->strings["Edit Thing"] = "Modifica l'oggetto"; +$a->strings["Select a profile"] = "Scegli un profilo"; +$a->strings["Post an activity"] = "Pubblica un'attività"; +$a->strings["Only sends to viewers of the applicable profile"] = "Invia solo a chi può vedere il profilo scelto"; +$a->strings["Name of thing e.g. something"] = "Nome dell'oggetto"; +$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto (facoltativo)"; +$a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)"; +$a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo"; +$a->strings["This directory server requires an access token"] = "Questo directory server necessita di un token di autenticazione"; $a->strings["Delete block?"] = "Vuoi eliminare questo block?"; -$a->strings["Insert YouTube video"] = "Inserisci video da YouTube"; -$a->strings["Insert Vorbis [.ogg] video"] = "Inserisci video Vorbis [.ogg]"; -$a->strings["Insert Vorbis [.ogg] audio"] = "Inserisci audio Vorbis [.ogg]"; $a->strings["Edit Block"] = "Modifica il block"; -$a->strings["This directory server requires an access token"] = "Questo directory server necessita di un token di autenticazione"; -$a->strings["Item is not editable"] = "L'elemento non è modificabile"; -$a->strings["Delete item?"] = "Eliminare questo elemento?"; -$a->strings["Edit post"] = "Modifica post"; -$a->strings["Unable to find your hub."] = "Impossibile raggiungere il tuo hub."; -$a->strings["Post successful."] = "Inviato!"; +$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare il tuo account prima di 48 ore dall'ultimo cambio password."; +$a->strings["Remove This Account"] = "Elimina questo account"; +$a->strings["This account and all its channels will be completely removed from the network. "] = "Questo account e tutti i suoi canali saranno completamente eliminati dalla rete."; +$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Elimina dalla rete questo account, tutti i suoi canali e ANCHE tutti gli eventuali canali clonati."; +$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "A meno che tu non lo richieda espressamente, solo i canali presenti su questo hub saranno rimossi dalla rete."; +$a->strings["Remove Account"] = "Elimina l'account"; +$a->strings["Import completed"] = "Importazione completata"; +$a->strings["Import Items"] = "Importa i contenuti"; +$a->strings["Use this form to import existing posts and content from an export file."] = "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza."; +$a->strings["No such group"] = "Impossibile trovare l'insieme"; +$a->strings["No such channel"] = "Canale sconosciuto"; +$a->strings["forum"] = "forum"; +$a->strings["Search Results For:"] = "Cerca risultati con:"; +$a->strings["Collection is empty"] = "L'insieme di canali è vuoto"; +$a->strings["Collection: "] = "Insieme:"; +$a->strings["Invalid connection."] = "Contatto non valido."; +$a->strings["Layout updated."] = "Layout aggiornato."; +$a->strings["Edit System Page Description"] = "Modifica i layout di sistema"; +$a->strings["Layout not found."] = "Layout non trovato."; +$a->strings["Module Name:"] = "Nome del modulo:"; +$a->strings["Layout Help"] = "Guida al layout"; +$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!"; +$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio."; +$a->strings["Passwords do not match."] = "Le password non corrispondono."; +$a->strings["Registration successful. Please check your email for validation instructions."] = "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata."; +$a->strings["Your registration is pending approval by the site owner."] = "La tua richiesta è in attesa di approvazione da parte dell'amministratore di questo hub."; +$a->strings["Your registration can not be processed."] = "La tua registrazione non puo' essere processata."; +$a->strings["Registration on this site/hub is by approval only."] = "La registrazione su questo hub è soggetta ad approvazione."; +$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrati su un altro hub affiliato</a>"; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Questo hub ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani."; +$a->strings["Terms of Service"] = "Condizioni d'Uso"; +$a->strings["I accept the %s for this website"] = "Accetto le %s di questo sito"; +$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ho più di 13 anni e accetto le %s di questo sito"; +$a->strings["Registration"] = "Registrazione"; +$a->strings["Membership on this site is by invitation only."] = "Per registrarsi su questo hub è necessario un invito."; +$a->strings["Please enter your invitation code"] = "Inserisci il codice dell'invito"; +$a->strings["Your email address"] = "Il tuo indirizzo email"; +$a->strings["Choose a password"] = "Scegli una password"; +$a->strings["Please re-enter your password"] = "Ripeti la password per verifica"; $a->strings["Theme settings updated."] = "Le impostazioni del tema sono state aggiornate."; $a->strings["# Accounts"] = "# account"; $a->strings["# blocked accounts"] = "# account bloccati"; @@ -1317,7 +1614,6 @@ $a->strings["My site is not a public server"] = "Non è un server pubblico"; $a->strings["My site has paid access only"] = "È un servizio a pagamento"; $a->strings["My site has free access only"] = "È un servizio gratuito"; $a->strings["My site offers free accounts with optional paid upgrades"] = "È un servizio gratuito con opzioni aggiuntive a pagamento"; -$a->strings["Registration"] = "Registrazione"; $a->strings["File upload"] = "Caricamento file"; $a->strings["Policies"] = "Politiche"; $a->strings["Site name"] = "Nome del sito"; @@ -1444,7 +1740,6 @@ $a->strings["Uncensor"] = "Rimuovi la censura"; $a->strings["Allow Code"] = "Permetti codice nei contenuti"; $a->strings["Disallow Code"] = "Non permettere codice nei contenuti"; $a->strings["UID"] = "UID"; -$a->strings["Address"] = "Indirizzo"; $a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "I canali selezionati saranno rimossi!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questi canali sarà irreversibilmente eliminato!\\n\\nVuoi confermare?"; $a->strings["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?"] = "Il canale {0} sarà rimosso!\\n\\nTutto ciò che è stato pubblicato su questo server tramite questo canale sarà irreversibilmente eliminato!\\n\\nVuoi confermare?"; $a->strings["Plugin %s disabled."] = "Plugin %s non attivo."; @@ -1474,302 +1769,10 @@ $a->strings["Help text"] = "Testo di aiuto"; $a->strings["Additional info (optional)"] = "Informazioni aggiuntive (facoltative)"; $a->strings["Field definition not found"] = "Impossibile trovare la definizione del campo"; $a->strings["Edit Profile Field"] = "Modifica campo del profilo"; -$a->strings["App installed."] = "App installata"; -$a->strings["Malformed app."] = "L'app contiene errori"; -$a->strings["Embed code"] = "Inserisci il codice"; -$a->strings["Edit App"] = "Modifica app"; -$a->strings["Create App"] = "Crea una app"; -$a->strings["Name of app"] = "Nome app"; -$a->strings["Location (URL) of app"] = "Indirizzo (URL) della app"; -$a->strings["Description"] = "Descrizione"; -$a->strings["Photo icon URL"] = "URL icona"; -$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixel - facoltativa"; -$a->strings["Version ID"] = "ID versione"; -$a->strings["Price of app"] = "Prezzo app"; -$a->strings["Location (URL) to purchase app"] = "Indirizzo (URL) per acquistare la app"; -$a->strings["Unable to update menu."] = "Impossibile aggiornare il menù."; -$a->strings["Unable to create menu."] = "Impossibile creare il menù."; -$a->strings["Menu Name"] = "Nome del menu"; -$a->strings["Unique name (not visible on webpage) - required"] = "Nome unico (non visibile sulla pagina) - obbligatorio"; -$a->strings["Menu Title"] = "Titolo del menu"; -$a->strings["Visible on webpage - leave empty for no title"] = "Visibile sulla pagina - lascia vuoto per non avere un titolo"; -$a->strings["Allow Bookmarks"] = "Permetti i segnalibri"; -$a->strings["Menu may be used to store saved bookmarks"] = "Puoi salvare i segnalibri nei menù"; -$a->strings["Submit and proceed"] = "Salva e procedi"; -$a->strings["Drop"] = "Elimina"; -$a->strings["Bookmarks allowed"] = "Permetti segnalibri"; -$a->strings["Delete this menu"] = "Elimina questo menù"; -$a->strings["Edit menu contents"] = "Modifica i contenuti del menù"; -$a->strings["Edit this menu"] = "Modifica questo menù"; -$a->strings["Menu could not be deleted."] = "Il menù non può essere eliminato."; -$a->strings["Edit Menu"] = "Modifica menù"; -$a->strings["Add or remove entries to this menu"] = "Aggiungi o rimuovi elementi di questo menù"; -$a->strings["Menu name"] = "Nome del menù"; -$a->strings["Must be unique, only seen by you"] = "Deve essere unico, lo vedrai solo tu"; -$a->strings["Menu title"] = "Titolo del menù"; -$a->strings["Menu title as seen by others"] = "Titolo del menù come comparirà a tutti"; -$a->strings["Allow bookmarks"] = "Permetti l'invio di segnalibri"; -$a->strings["No more system notifications."] = "Non ci sono nuove notifiche di sistema."; -$a->strings["System Notifications"] = "Notifiche di sistema"; -$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; -$a->strings["Add a Channel"] = "Aggiungi un canale"; -$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "I contenuti che pubblichi sono mostrati nel tuo \"canale\". Un canale può essere usato come bacheca personale, come blog, oppure può essere un forum di discussione, un gruppo di interesse, una pagina di celebrità e molto altro. Puoi creare tanti canali quanti te ne permette il tuo sito."; -$a->strings["Channel Name"] = "Nome del canale"; -$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\""; -$a->strings["Choose a short nickname"] = "Scegli un nome breve"; -$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale (simile a una email). Così potrai condividerlo e gli altri potranno trovarti."; -$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Oppure <a href=\"import\">importa un tuo canale esistente</a> da un altro hub"; -$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Descrivi il tipo di canale che vorresti creare (per esempio se ti interessa più usarlo come social network, come un forum di discussione...) e il tipo di privacy che preferisci. Hubzilla sceglierà per te i permessi più adatti."; -$a->strings["Channel Type"] = "Tipo di canale"; -$a->strings["Read more about roles"] = "Maggiori informazioni sui ruoli"; -$a->strings["Invalid request identifier."] = "L'identificativo della richiesta non è valido."; -$a->strings["Discard"] = "Rifiuta"; -$a->strings["Layout updated."] = "Layout aggiornato."; -$a->strings["Edit System Page Description"] = "Modifica i layout di sistema"; -$a->strings["Layout not found."] = "Layout non trovato."; -$a->strings["Module Name:"] = "Nome del modulo:"; -$a->strings["Layout Help"] = "Guida al layout"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s"; -$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s non segue più %3\$s di %2\$s"; -$a->strings["No valid account found."] = "Nessun account valido trovato."; -$a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email."; -$a->strings["Site Member (%s)"] = "Utente del sito (%s)"; -$a->strings["Password reset requested at %s"] = "È stato richiesto di reimpostare password su %s"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata."; -$a->strings["Password Reset"] = "Reimposta la password"; -$a->strings["Your password has been reset as requested."] = "La password è stata reimpostata come richiesto."; -$a->strings["Your new password is"] = "La tua nuova password è"; -$a->strings["Save or copy your new password - and then"] = "Salva o copia la tua nuova password, quindi"; -$a->strings["click here to login"] = "clicca qui per accedere"; -$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Puoi cambiare la tua password dalla pagina delle <em>Impostazioni</em> dopo aver effettuato l'accesso."; -$a->strings["Your password has changed at %s"] = "La tua password su %s è cambiata"; -$a->strings["Forgot your Password?"] = "Hai dimenticato la password?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Inserisci il tuo indirizzo email per reimpostare la password. Dopo aver inviato la richiesta, controlla l'email e troverai le istruzioni per continuare."; -$a->strings["Email Address"] = "Indirizzo email"; -$a->strings["Reset"] = "Reimposta"; -$a->strings["\$Projectname"] = "\$Projectname"; -$a->strings["Welcome to %s"] = "%s ti dà il benvenuto"; -$a->strings["\$Projectname channel"] = "Canale \$Projectname"; -$a->strings["Calendar entries imported."] = "Le voci del calendario sono state importate."; -$a->strings["No calendar entries found."] = "Non sono state trovate voci del calendario."; -$a->strings["Event can not end before it has started."] = "Un evento non può terminare prima del suo inizio."; -$a->strings["Unable to generate preview."] = "Impossibile creare un'anteprima."; -$a->strings["Event title and start time are required."] = "Sono necessari il titolo e l'ora d'inizio dell'evento."; -$a->strings["Event not found."] = "Evento non trovato."; -$a->strings["l, F j"] = "l j F"; -$a->strings["Edit event"] = "Modifica l'evento"; -$a->strings["Delete event"] = "Elimina l'evento"; -$a->strings["calendar"] = "calendario"; -$a->strings["Create New Event"] = "Crea un nuovo evento"; -$a->strings["Export"] = "Esporta"; -$a->strings["Import"] = "Importa"; -$a->strings["Event removed"] = "Evento eliminato"; -$a->strings["Failed to remove event"] = "Impossibile eliminare l'evento"; -$a->strings["Event details"] = "Dettagli evento"; -$a->strings["Starting date and Title are required."] = "Titolo e data d'inizio sono obbligatori."; -$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)"; -$a->strings["Event Starts:"] = "Inizio:"; -$a->strings["Finish date/time is not known or not relevant"] = "La data/ora di fine non è rilevante"; -$a->strings["Event Finishes:"] = "Fine:"; -$a->strings["Adjust for viewer timezone"] = "Adatta al fuso orario di chi legge"; -$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante per eventi che avvengono online ma con un certo fuso orario."; -$a->strings["Title:"] = "Titolo:"; -$a->strings["Share this event"] = "Condividi questo evento"; -$a->strings["%s element installed"] = "%s elemento installato"; -$a->strings["%s element installation failed"] = "Elementi con installazione fallita: %s"; -$a->strings["Fetching URL returns error: %1\$s"] = "La chiamata all'URL restituisce questo errore: %1\$s"; -$a->strings["Profile Match"] = "Profili corrispondenti"; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Non hai scritto parole chiave. Aggiungi parole chiave al tuo profilo predefinito per comparire nelle ricerche."; -$a->strings["is interested in:"] = "interessi personali:"; -$a->strings["No matches"] = "Nessun risultato"; -$a->strings["Image uploaded but image cropping failed."] = "L'immagine è stata caricata, ma il non è stato possibile ritagliarla."; -$a->strings["Image resize failed."] = "Il ridimensionamento dell'immagine è fallito."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Ricarica la pagina con shift+F5 o cancella la cache del browser se la nuova foto non viene mostrata immediatamente."; -$a->strings["Image upload failed."] = "Il caricamento dell'immagine è fallito."; -$a->strings["Unable to process image."] = "Impossibile elaborare l'immagine."; -$a->strings["female"] = "femmina"; -$a->strings["%1\$s updated her %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; -$a->strings["male"] = "maschio"; -$a->strings["%1\$s updated his %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; -$a->strings["%1\$s updated their %2\$s"] = "Aggiornamento: %2\$s di %1\$s"; -$a->strings["profile photo"] = "foto del profilo"; -$a->strings["Photo not available."] = "Foto non disponibile."; -$a->strings["Upload File:"] = "Carica un file:"; -$a->strings["Select a profile:"] = "Seleziona un profilo:"; -$a->strings["Upload Profile Photo"] = "Carica la foto del profilo"; -$a->strings["or"] = "o"; -$a->strings["skip this step"] = "salta questo passaggio"; -$a->strings["select a photo from your photo albums"] = "seleziona una foto dai tuoi album"; -$a->strings["Crop Image"] = "Ritaglia immagine"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Ritaglia l'immagine per migliorarne la visualizzazione."; -$a->strings["Done Editing"] = "Modifica terminata"; -$a->strings["Channel added."] = "Canale aggiunto."; -$a->strings["Tag removed"] = "Tag rimosso"; -$a->strings["Remove Item Tag"] = "Rimuovi il tag"; -$a->strings["Select a tag to remove: "] = "Seleziona un tag da rimuovere: "; -$a->strings["No ratings"] = "Nessuna valutazione"; -$a->strings["Ratings"] = "Valutazioni"; -$a->strings["Rating: "] = "Valutazione:"; -$a->strings["Website: "] = "Sito web:"; -$a->strings["Description: "] = "Descrizione:"; -$a->strings["Unable to locate original post."] = "Impossibile trovare il messaggio originale."; -$a->strings["Empty post discarded."] = "Il post vuoto è stato ignorato."; -$a->strings["Executable content type not permitted to this channel."] = "I contenuti eseguibili non sono permessi su questo canale."; -$a->strings["System error. Post not saved."] = "Errore di sistema. Post non salvato."; -$a->strings["Unable to obtain post information from database."] = "Impossibile caricare il post dal database."; -$a->strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale."; -$a->strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web."; -$a->strings["Page Title"] = "Titolo della pagina"; -$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "È stato superato il numero massimo giornaliero di registrazioni a questo sito. Riprova domani!"; -$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Impossibile proseguire. Devi prima accettare le Condizioni d'Uso del servizio."; -$a->strings["Passwords do not match."] = "Le password non corrispondono."; -$a->strings["Registration successful. Please check your email for validation instructions."] = "La registrazione è terminata correttamente. Per continuare controlla l'email che ti è stata inviata."; -$a->strings["Your registration is pending approval by the site owner."] = "La tua richiesta è in attesa di approvazione da parte dell'amministratore di questo hub."; -$a->strings["Your registration can not be processed."] = "La tua registrazione non puo' essere processata."; -$a->strings["Registration on this site/hub is by approval only."] = "La registrazione su questo hub è soggetta ad approvazione."; -$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrati su un altro hub affiliato</a>"; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Questo hub ha superato il numero di registrazioni giornaliere consentite. Prova di nuovo domani."; -$a->strings["Terms of Service"] = "Condizioni d'Uso"; -$a->strings["I accept the %s for this website"] = "Accetto le %s di questo sito"; -$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ho più di 13 anni e accetto le %s di questo sito"; -$a->strings["Membership on this site is by invitation only."] = "Per registrarsi su questo hub è necessario un invito."; -$a->strings["Please enter your invitation code"] = "Inserisci il codice dell'invito"; -$a->strings["Your email address"] = "Il tuo indirizzo email"; -$a->strings["Choose a password"] = "Scegli una password"; -$a->strings["Please re-enter your password"] = "Ripeti la password per verifica"; -$a->strings["Block Name"] = "Nome del block"; -$a->strings["Block Title"] = "Titolo del block"; -$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare il tuo account prima di 48 ore dall'ultimo cambio password."; -$a->strings["Remove This Account"] = "Elimina questo account"; -$a->strings["This account and all its channels will be completely removed from the network. "] = "Questo account e tutti i suoi canali saranno completamente eliminati dalla rete."; -$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Elimina dalla rete questo account, tutti i suoi canali e ANCHE tutti gli eventuali canali clonati."; -$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "A meno che tu non lo richieda espressamente, solo i canali presenti su questo hub saranno rimossi dalla rete."; -$a->strings["Remove Account"] = "Elimina l'account"; -$a->strings["No service class restrictions found."] = "Non esistono restrizioni su questa classe di account."; -$a->strings["Item not available."] = "Elemento non disponibile."; -$a->strings["Public Sites"] = "Siti pubblici"; -$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "I siti elencati permettono la registrazione libera sulla rete \$Projectname. Tutti questi hub sono interconnessi, quindi essere iscritti su uno equivale a una registrazione su tutta la rete. Alcuni siti potrebbero richiedere un abbonamento o dei servizi a pagamento. Per maggiori dettagli visita gli indirizzi nell'elenco."; -$a->strings["Rate this hub"] = "Valuta questo hub"; -$a->strings["Site URL"] = "URL del sito"; -$a->strings["Access Type"] = "Tipo di accesso"; -$a->strings["Registration Policy"] = "Politica di registrazione"; -$a->strings["Location"] = "Posizione geografica"; -$a->strings["Project"] = "Progetto"; -$a->strings["View hub ratings"] = "Vedi le valutazioni del hub"; -$a->strings["Rate"] = "Valuta"; -$a->strings["View ratings"] = "Vedi le valutazioni"; -$a->strings["Failed to create source. No channel selected."] = "Impossibile creare la sorgente. Nessun canale selezionato."; -$a->strings["Source created."] = "Sorgente creata."; -$a->strings["Source updated."] = "Sorgente aggiornata."; -$a->strings["*"] = "*"; -$a->strings["Manage remote sources of content for your channel."] = "Gestisci le sorgenti dei contenuti del tuo canale."; -$a->strings["New Source"] = "Nuova sorgente"; -$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importa nel tuo canale tutti o una parte dei contenuti dal canale seguente."; -$a->strings["Only import content with these words (one per line)"] = "Importa solo i contenuti che hanno queste parole (una per riga)"; -$a->strings["Leave blank to import all public content"] = "Lascia vuoto per importare tutti i contenuti pubblici"; -$a->strings["Source not found."] = "Sorgente non trovata."; -$a->strings["Edit Source"] = "Modifica la sorgente"; -$a->strings["Delete Source"] = "Elimina la sorgente"; -$a->strings["Source removed"] = "Sorgente eliminata"; -$a->strings["Unable to remove source."] = "Impossibile rimuovere la sorgente."; -$a->strings["Remote privacy information not available."] = "Le informazioni remote sulla privacy non sono disponibili."; -$a->strings["Visible to:"] = "Visibile a:"; -$a->strings["network"] = "rete"; -$a->strings["RSS"] = "RSS"; -$a->strings["Please login."] = "Effettua l'accesso."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Non è possibile effettuare login con l'OpenID che hai fornito. Per favore controlla che sia scritto correttamente."; -$a->strings["The error message was:"] = "Messaggio di errore ricevuto:"; -$a->strings["Authentication failed."] = "Autenticazione fallita."; -$a->strings["Remote Authentication"] = "Accedi tramite il tuo hub"; -$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)"; -$a->strings["Authenticate"] = "Accedi"; -$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permessi insufficienti. Sarà visualizzata la pagina del profilo."; -$a->strings["Version %s"] = "Versione %s"; -$a->strings["Installed plugins/addons/apps:"] = "App e componenti installati:"; -$a->strings["No installed plugins/addons/apps"] = "Nessuna app o componente installato"; -$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Questo è un hub di \$Projectname - una rete cooperativa e decentralizzata di siti ad elevata privacy. "; -$a->strings["Tag: "] = "Tag: "; -$a->strings["Last background fetch: "] = "Ultima acquisizione:"; -$a->strings["Current load average: "] = "Carico medio attuale:"; -$a->strings["Running at web location"] = "In esecuzione sull'indirizzo web"; -$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Visita <a href=\"http://hubzilla.org\">hubzilla.org</a> per maggiori informazioni su \$Projectname."; -$a->strings["Bug reports and issues: please visit"] = "Per segnalare bug e problemi: visita"; -$a->strings["\$projectname issues"] = "Problematiche note su \$projectname"; -$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com"; -$a->strings["Site Administrators"] = "Amministratori del sito"; -$a->strings["Your service plan only allows %d channels."] = "Il tuo account permette di creare al massimo %d canali."; -$a->strings["Nothing to import."] = "Non c'è niente da importare."; -$a->strings["Unable to download data from old server"] = "Impossibile importare i dati dal vecchio hub"; -$a->strings["Imported file is empty."] = "Il file da importare è vuoto."; -$a->strings["Warning: Database versions differ by %1\$d updates."] = "Attenzione: le versioni di database differiscono di %1\$d aggiornamenti."; -$a->strings["No channel. Import failed."] = "Nessun canale. Import fallito."; -$a->strings["You must be logged in to use this feature."] = "Per questa funzionalità devi aver effettuato l'accesso."; -$a->strings["Import Channel"] = "Importa un canale"; -$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Usa questo modulo per importare un tuo canale da un altro hub. Puoi ottenere i dati identificativi del canale direttamente dall'altro hub oppure tramite un file esportato in precedenza."; -$a->strings["File to Upload"] = "File da caricare"; -$a->strings["Or provide the old server/hub details"] = "Oppure fornisci i dettagli del vecchio hub"; -$a->strings["Your old identity address (xyz@example.com)"] = "Il tuo vecchio identificativo (per esempio pippo@esempio.com)"; -$a->strings["Your old login email address"] = "L'email che usavi per accedere sul vecchio hub"; -$a->strings["Your old login password"] = "La password per il vecchio hub"; -$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc."; -$a->strings["Make this hub my primary location"] = "Rendi questo hub il mio indirizzo primario"; -$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importa i contenuti pubblicati, se possibile (sperimentale)"; -$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore lanciala *una volta sola* e resta su questa pagina finché non avrà finito."; -$a->strings["Thing updated"] = "L'oggetto è stato aggiornato"; -$a->strings["Object store: failed"] = "Impossibile memorizzare l'oggetto."; -$a->strings["Thing added"] = "L'Oggetto è stato aggiunto"; -$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -$a->strings["Show Thing"] = "Mostra l'oggetto"; -$a->strings["item not found."] = "non trovato."; -$a->strings["Edit Thing"] = "Modifica l'oggetto"; -$a->strings["Select a profile"] = "Scegli un profilo"; -$a->strings["Post an activity"] = "Pubblica un'attività"; -$a->strings["Only sends to viewers of the applicable profile"] = "Invia solo a chi può vedere il profilo scelto"; -$a->strings["Name of thing e.g. something"] = "Nome dell'oggetto"; -$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto (facoltativo)"; -$a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)"; -$a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo"; -$a->strings["Total invitation limit exceeded."] = "Hai superato il numero massimo di inviti."; -$a->strings["%s : Not a valid email address."] = "%s: non è un indirizzo email valido."; -$a->strings["Please join us on \$Projectname"] = "Unisciti a noi su \$Projectname"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario."; -$a->strings["%s : Message delivery failed."] = "%s: la consegna del messaggio è fallita."; -$a->strings["%d message sent."] = array( - 0 => "%d messaggio inviato.", - 1 => "%d messaggi inviati.", -); -$a->strings["You have no more invitations available"] = "Non hai altri inviti disponibili"; -$a->strings["Send invitations"] = "Spedisci inviti"; -$a->strings["Enter email addresses, one per line:"] = "Inserisci gli indirizzi email, uno per riga:"; -$a->strings["Your message:"] = "Il tuo messaggio:"; -$a->strings["Please join my community on \$Projectname."] = "Entra nella mia comunità su \$Projectname."; -$a->strings["You will need to supply this invitation code: "] = "Dovrai fornire questo codice di invito:"; -$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registrati su qualsiasi server \$Projectname (sono tutti interconnessi)"; -$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Inserisci il mio indirizzo \$Projectname nel riquadro di ricerca del sito."; -$a->strings["or visit "] = "oppure visita "; -$a->strings["3. Click [Connect]"] = "3. Clicca su [Aggiungi]"; -$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario."; -$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto."; -$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto."; -$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."; -$a->strings["Messages"] = "Messaggi"; -$a->strings["Message recalled."] = "Messaggio revocato."; -$a->strings["Conversation removed."] = "Conversazione rimossa."; -$a->strings["Requested channel is not in this network"] = "Il canale cercato non è in questa rete"; -$a->strings["Send Private Message"] = "Invia un messaggio privato"; -$a->strings["To:"] = "A:"; -$a->strings["Subject:"] = "Oggetto:"; -$a->strings["Send"] = "Invia"; -$a->strings["Delete message"] = "Elimina il messaggio"; -$a->strings["Delivery report"] = "Rapporto di trasmissione"; -$a->strings["Recall message"] = "Revoca il messaggio"; -$a->strings["Message has been recalled."] = "Il messaggio è stato revocato."; -$a->strings["Delete Conversation"] = "Elimina la conversazione"; -$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente."; -$a->strings["Send Reply"] = "Invia la risposta"; -$a->strings["Your message for %s (%s):"] = "Il tuo messaggio per %s (%s):"; -$a->strings["[Embedded content - reload page to view]"] = "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]"; -$a->strings["Source of Item"] = "Sorgente"; +$a->strings["Delete layout?"] = "Vuoi eliminare questo layout?"; +$a->strings["Layout Description (Optional)"] = "Descrizione del layout (facoltativa)"; +$a->strings["Layout Name"] = "Nome layout"; +$a->strings["Edit Layout"] = "Modifica il layout"; $a->strings["Name is required"] = "Il nome è obbligatorio"; $a->strings["Key and Secret are required"] = "Key e Secret sono richiesti"; $a->strings["Passwords do not match. Password unchanged."] = "Le password non corrispondono. Password non cambiata."; @@ -1864,6 +1867,7 @@ $a->strings["0 or blank prevents expiration"] = "Lascia vuoto oppure 0 per non i $a->strings["Maximum Friend Requests/Day:"] = "Numero massimo giornaliero di richieste di amicizia:"; $a->strings["May reduce spam activity"] = "Serve a ridurre lo spam"; $a->strings["Default Post Permissions"] = "Permessi predefiniti per i post"; +$a->strings["(click to open/close)"] = "(clicca per aprire/chiudere)"; $a->strings["Channel permissions category:"] = "Categorie di permessi dei canali:"; $a->strings["Maximum private messages per day from unknown people:"] = "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:"; $a->strings["Useful to reduce spamming"] = "Serve e ridurre lo spam"; @@ -1907,22 +1911,119 @@ $a->strings["%Y - current year, %m - current month"] = "%Y - anno corrente, %m $a->strings["Default file upload folder"] = "Cartella predefinita per i file caricati"; $a->strings["Personal menu to display in your channel pages"] = "Menu personale da mostrare sulle pagine del tuo canale"; $a->strings["Remove this channel."] = "Elimina questo canale."; -$a->strings["Firefox Share \$Projectname provider"] = "Funzionalità Firefox Share per \$Projectname"; +$a->strings["Firefox Share \$Projectname provider"] = "Attiva Firefox Share per \$Projectname"; +$a->strings["Start calendar week on monday"] = "La settimana inizia di lunedì"; +$a->strings["Page Title"] = "Titolo della pagina"; +$a->strings["App installed."] = "App installata"; +$a->strings["Malformed app."] = "L'app contiene errori"; +$a->strings["Embed code"] = "Inserisci il codice"; +$a->strings["Edit App"] = "Modifica app"; +$a->strings["Create App"] = "Crea una app"; +$a->strings["Name of app"] = "Nome app"; +$a->strings["Location (URL) of app"] = "Indirizzo (URL) della app"; +$a->strings["Photo icon URL"] = "URL icona"; +$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixel - facoltativa"; +$a->strings["Version ID"] = "ID versione"; +$a->strings["Price of app"] = "Prezzo app"; +$a->strings["Location (URL) to purchase app"] = "Indirizzo (URL) per acquistare la app"; +$a->strings["- select -"] = "- scegli -"; +$a->strings["Comanche page description language help"] = "Guida di Comanche Page Description Language"; +$a->strings["Layout Description"] = "Descrizione del layout"; +$a->strings["Download PDL file"] = "Scarica il file PDL"; +$a->strings["Location not found."] = "Indirizzo non trovato."; +$a->strings["Location lookup failed."] = "La ricerca dell'indirizzo è fallita."; +$a->strings["Please select another location to become primary before removing the primary location."] = "Prima di rimuovere il tuo canale primario assicurati di avere scelto una sua copia (clone) come primaria."; +$a->strings["Syncing locations"] = "Sincronizzazione tra hub"; +$a->strings["No locations found."] = "Nessun indirizzo trovato."; +$a->strings["Manage Channel Locations"] = "Modifica gli indirizzi del canale"; +$a->strings["Location (address)"] = "Indirizzo"; +$a->strings["Primary Location"] = "Indirizzo primario"; +$a->strings["Drop location"] = "Elimina un indirizzo"; +$a->strings["Sync now"] = "Sincronizza ora"; +$a->strings["Please wait several minutes between consecutive operations."] = "Si raccomanda di attendere alcuni minuti prima di effettuare una nuova sincronizzazione."; +$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Quando possibile, riduci il numero di cloni del tuo canale effettuando il login sul relativo hub e rimuovendoli."; +$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Usa questo modulo per abbandonare un canale su un hub che non è più funzionante."; +$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario."; +$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto."; +$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto."; +$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito."; +$a->strings["Messages"] = "Messaggi"; +$a->strings["Message recalled."] = "Messaggio revocato."; +$a->strings["Conversation removed."] = "Conversazione rimossa."; +$a->strings["Requested channel is not in this network"] = "Il canale cercato non è in questa rete"; +$a->strings["Send Private Message"] = "Invia un messaggio privato"; +$a->strings["To:"] = "A:"; +$a->strings["Subject:"] = "Oggetto:"; +$a->strings["Your message:"] = "Il tuo messaggio:"; +$a->strings["Send"] = "Invia"; +$a->strings["Delete message"] = "Elimina il messaggio"; +$a->strings["Delivery report"] = "Rapporto di trasmissione"; +$a->strings["Recall message"] = "Revoca il messaggio"; +$a->strings["Message has been recalled."] = "Il messaggio è stato revocato."; +$a->strings["Delete Conversation"] = "Elimina la conversazione"; +$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente."; +$a->strings["Send Reply"] = "Invia la risposta"; +$a->strings["Your message for %s (%s):"] = "Il tuo messaggio per %s (%s):"; +$a->strings["Please login."] = "Effettua l'accesso."; $a->strings["Xchan Lookup"] = "Ricerca canale"; $a->strings["Lookup xchan beginning with (or webbie): "] = "Cerca un canale (o un webbie) che inizia per:"; -$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Hai creato %1$.0f dei %2$.0f canali permessi."; -$a->strings["Create a new channel"] = "Crea un nuovo canale"; -$a->strings["Current Channel"] = "Canale attuale"; -$a->strings["Switch to one of your channels by selecting it."] = "Seleziona l'altro canale a cui vuoi passare."; -$a->strings["Default Channel"] = "Canale predefinito"; -$a->strings["Make Default"] = "Rendi predefinito"; -$a->strings["%d new messages"] = "%d nuovi messaggi"; -$a->strings["%d new introductions"] = "%d nuove richieste di entrare in contatto"; -$a->strings["Delegated Channels"] = "Canali delegati"; -$a->strings["Authorize application connection"] = "Autorizza la app"; -$a->strings["Return to your app and insert this Securty Code:"] = "Torna alla app e inserisci questo codice di sicurezza:"; -$a->strings["Please login to continue."] = "Accedi al sito per continuare."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?"; +$a->strings["Not found."] = "Non trovato."; +$a->strings["You must be logged in to see this page."] = "Devi aver effettuato l'accesso per vedere questa pagina."; +$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permessi insufficienti. Sarà visualizzata la pagina del profilo."; +$a->strings["Item not available."] = "Elemento non disponibile."; +$a->strings["Total invitation limit exceeded."] = "Hai superato il numero massimo di inviti."; +$a->strings["%s : Not a valid email address."] = "%s: non è un indirizzo email valido."; +$a->strings["Please join us on \$Projectname"] = "Unisciti a noi su \$Projectname"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Hai superato il numero massimo di inviti. Contatta l'amministratore se necessario."; +$a->strings["%s : Message delivery failed."] = "%s: la consegna del messaggio è fallita."; +$a->strings["%d message sent."] = array( + 0 => "%d messaggio inviato.", + 1 => "%d messaggi inviati.", +); +$a->strings["You have no more invitations available"] = "Non hai altri inviti disponibili"; +$a->strings["Send invitations"] = "Spedisci inviti"; +$a->strings["Enter email addresses, one per line:"] = "Inserisci gli indirizzi email, uno per riga:"; +$a->strings["Please join my community on \$Projectname."] = "Entra nella mia comunità su \$Projectname."; +$a->strings["You will need to supply this invitation code: "] = "Dovrai fornire questo codice di invito:"; +$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registrati su qualsiasi server \$Projectname (sono tutti interconnessi)"; +$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Inserisci il mio indirizzo \$Projectname nel riquadro di ricerca del sito."; +$a->strings["or visit "] = "oppure visita "; +$a->strings["3. Click [Connect]"] = "3. Clicca su [Aggiungi]"; +$a->strings["Remote privacy information not available."] = "Le informazioni remote sulla privacy non sono disponibili."; +$a->strings["Visible to:"] = "Visibile a:"; +$a->strings["Export Channel"] = "Esporta il canale"; +$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Esporta le informazioni di base del canale in un file. In pratica è un salvataggio delle tue connessioni, dei permessi che hai assegnato e del tuo profilo che così potrà essere importato su un altro server/hub. Il file non includerà i tuoi post e altri contenuti che hai creato o caricato."; +$a->strings["Export Content"] = "Esporta i contenuti"; +$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Esporta il tuo canale e i contenuti recenti in un file di salvataggio che potrà essere importato su un altro server/hub. Sarà un backup dei tuoi contatti, dei permessi che hai assegnato, dei dati del profilo e dei post degli ultimi mesi. Il file potrebbe essere MOLTO grande. Sarà necessario attendere con pazienza - saranno necessari molti minuti prima che inizi lo scaricamento."; +$a->strings["Export your posts from a given year."] = "Esporta i tuoi post a partire dall'anno scelto."; +$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Puoi anche esportare post e conversazioni di un particolare anno o mese. Modifica la data nella barra dell'indirizzo del browser per scegliere date differenti. Se l'esportazione dovesse fallire (la memoria sul server potrebbe non bastare), riprova scegliendo un intervallo più breve tra le date."; +$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti i post di un anno, come per esempio quello in corso, visita <a href=\"%1\$s\">%2\$s</a> "; +$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti post di un dato mese, come per esempio gennaio di quest'anno, visita <a href=\"%1\$s\">%2\$s</a>"; +$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Questi contenuti potranno essere importati o ripristinati visitando <a href=\"%1\$s\">%2\$s</a> su qualsiasi sito/hub dove è presente il tuo canale. Per mantenere l'ordinamento originale fai attenzione ad importare i file secondo la data (prima il più vecchio)"; +$a->strings["Item is not editable"] = "L'elemento non è modificabile"; +$a->strings["Delete item?"] = "Eliminare questo elemento?"; +$a->strings["Edit post"] = "Modifica post"; +$a->strings["Channel added."] = "Canale aggiunto."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Non è possibile effettuare login con l'OpenID che hai fornito. Per favore controlla che sia scritto correttamente."; +$a->strings["The error message was:"] = "Messaggio di errore ricevuto:"; +$a->strings["Authentication failed."] = "Autenticazione fallita."; +$a->strings["Remote Authentication"] = "Accedi tramite il tuo hub"; +$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)"; +$a->strings["Authenticate"] = "Accedi"; +$a->strings["Room not found"] = "Chat non trovata"; +$a->strings["Leave Room"] = "Lascia la chat"; +$a->strings["Delete This Room"] = "Elimina questa chat"; +$a->strings["I am away right now"] = "Non sono presente"; +$a->strings["I am online"] = "Sono online"; +$a->strings["Bookmark this room"] = "Aggiungi questa chat ai segnalibri"; +$a->strings["New Chatroom"] = "Nuova chat"; +$a->strings["Chatroom Name"] = "Nome della chat"; +$a->strings["Expiration of chats (minutes)"] = "Scadenza dei messaggi della chat (minuti)"; +$a->strings["%1\$s's Chatrooms"] = "Le chat di %1\$s"; +$a->strings["Source of Item"] = "Sorgente"; +$a->strings["Share content from Firefox to \$Projectname"] = "Condividi i contenuti su \$Projectname da Firefox"; +$a->strings["Activate the Firefox \$Projectname provider"] = "Attiva Firefox Share per \$Projectname"; +$a->strings["Hub not found."] = "Hub non trovato."; $a->strings["Blocked"] = "Bloccati"; $a->strings["Ignored"] = "Ignorati"; $a->strings["Hidden"] = "Nascosti"; @@ -1942,213 +2043,121 @@ $a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; $a->strings["Edit connection"] = "Modifica il contatto"; $a->strings["Search your connections"] = "Cerca tra i contatti"; $a->strings["Finding: "] = "Ricerca: "; -$a->strings["Delete layout?"] = "Vuoi eliminare questo layout?"; -$a->strings["Edit Layout"] = "Modifica il layout"; -$a->strings["Delete webpage?"] = "Vuoi eliminare questa pagina web?"; -$a->strings["Page link title"] = "Link del titolo"; -$a->strings["Edit Webpage"] = "Modifica la pagina web"; -$a->strings["Collection created."] = "L'insieme di canali è stato creato."; -$a->strings["Could not create collection."] = "Impossibile creare l'insieme."; -$a->strings["Collection updated."] = "Insieme aggiornato."; -$a->strings["Create a collection of channels."] = "Crea un insieme di canali."; -$a->strings["Collection Name: "] = "Nome dell'insieme:"; -$a->strings["Members are visible to other channels"] = "I membri potranno vedere gli altri canali dell'insieme"; -$a->strings["Collection removed."] = "Insieme rimosso."; -$a->strings["Unable to remove collection."] = "Impossibile rimuovere l'insieme."; -$a->strings["Collection Editor"] = "Modifica l'insieme"; -$a->strings["Members"] = "Membri"; -$a->strings["All Connected Channels"] = "Tutti i canali connessi"; -$a->strings["Click on a channel to add or remove."] = "Clicca su un canale per aggiungerlo o rimuoverlo."; -$a->strings["Continue"] = "Continua"; -$a->strings["Premium Channel Setup"] = "Canale premium - configurazione"; -$a->strings["Enable premium channel connection restrictions"] = "Abilita le restrizioni del canale premium"; -$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Scrivi le condizioni d'uso e le restrizioni di questo canale, come per esempio le linee guida, il sistema di pagamento, ecc."; -$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Prima di connetterti a questo canale è necessario che tu accetti le seguenti condizioni:"; -$a->strings["Potential connections will then see the following text before proceeding:"] = "Il testo seguente comparirà a chi vorrà seguire il canale:"; -$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Continuando dichiaro di aver seguito tutte le indicazioni e le istruzioni fornite in questa pagina."; -$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Il gestore del canale non ha fornito istruzioni specifiche)"; -$a->strings["Restricted or Premium Channel"] = "Canale premium - con restrizioni"; -$a->strings["No connections."] = "Nessun contatto."; -$a->strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]"; -$a->strings["Location not found."] = "Indirizzo non trovato."; -$a->strings["Location lookup failed."] = "La ricerca dell'indirizzo è fallita."; -$a->strings["Please select another location to become primary before removing the primary location."] = "Prima di rimuovere il tuo canale primario assicurati di avere scelto una sua copia (clone) come primaria."; -$a->strings["Syncing locations"] = "Sincronizzazione tra hub"; -$a->strings["No locations found."] = "Nessun indirizzo trovato."; -$a->strings["Manage Channel Locations"] = "Modifica gli indirizzi del canale"; -$a->strings["Location (address)"] = "Indirizzo"; -$a->strings["Primary Location"] = "Indirizzo primario"; -$a->strings["Drop location"] = "Elimina un indirizzo"; -$a->strings["Sync now"] = "Sincronizza ora"; -$a->strings["Please wait several minutes between consecutive operations."] = "Si raccomanda di attendere alcuni minuti prima di effettuare una nuova sincronizzazione."; -$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Quando possibile, riduci il numero di cloni del tuo canale effettuando il login sui loro hub e rimuovendoli."; -$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Usa questo modulo per abbandonare un canale su un hub che non è più funzionante."; +$a->strings["Documentation Search"] = "Ricerca nella guida"; +$a->strings["Help:"] = "Guida:"; +$a->strings["Not Found"] = "Non disponibile"; +$a->strings["\$Projectname Documentation"] = "Guida di \$Projectname"; +$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Hai creato %1$.0f dei %2$.0f canali permessi."; +$a->strings["Create a new channel"] = "Crea un nuovo canale"; +$a->strings["Current Channel"] = "Canale attuale"; +$a->strings["Switch to one of your channels by selecting it."] = "Seleziona l'altro canale a cui vuoi passare."; +$a->strings["Default Channel"] = "Canale predefinito"; +$a->strings["Make Default"] = "Rendi predefinito"; +$a->strings["%d new messages"] = "%d nuovi messaggi"; +$a->strings["%d new introductions"] = "%d nuove richieste di entrare in contatto"; +$a->strings["Delegated Channels"] = "Canali delegati"; +$a->strings["Unable to update menu."] = "Impossibile aggiornare il menù."; +$a->strings["Unable to create menu."] = "Impossibile creare il menù."; +$a->strings["Menu Name"] = "Nome del menu"; +$a->strings["Unique name (not visible on webpage) - required"] = "Nome unico (non visibile sulla pagina) - obbligatorio"; +$a->strings["Menu Title"] = "Titolo del menu"; +$a->strings["Visible on webpage - leave empty for no title"] = "Visibile sulla pagina - lascia vuoto per non avere un titolo"; +$a->strings["Allow Bookmarks"] = "Permetti i segnalibri"; +$a->strings["Menu may be used to store saved bookmarks"] = "Puoi salvare i segnalibri nei menù"; +$a->strings["Submit and proceed"] = "Salva e procedi"; +$a->strings["Drop"] = "Elimina"; +$a->strings["Bookmarks allowed"] = "Permetti segnalibri"; +$a->strings["Delete this menu"] = "Elimina questo menù"; +$a->strings["Edit menu contents"] = "Modifica i contenuti del menù"; +$a->strings["Edit this menu"] = "Modifica questo menù"; +$a->strings["Menu could not be deleted."] = "Il menù non può essere eliminato."; +$a->strings["Menu not found."] = "Menù non trovato."; +$a->strings["Edit Menu"] = "Modifica menù"; +$a->strings["Add or remove entries to this menu"] = "Aggiungi o rimuovi elementi di questo menù"; +$a->strings["Menu name"] = "Nome del menù"; +$a->strings["Must be unique, only seen by you"] = "Deve essere unico, lo vedrai solo tu"; +$a->strings["Menu title"] = "Titolo del menù"; +$a->strings["Menu title as seen by others"] = "Titolo del menù come comparirà a tutti"; +$a->strings["Allow bookmarks"] = "Permetti l'invio di segnalibri"; $a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "L'autenticazione tramite il tuo hub non è disponibile. Puoi provare a disconnetterti per tentare di nuovo."; -$a->strings["Share content from Firefox to \$Projectname"] = "Condividi i contenuti su \$Projectname da Firefox"; -$a->strings["Activate the Firefox \$Projectname provider"] = "Attiva Firefox Share per \$Projectname"; -$a->strings["\$Projectname Server - Setup"] = "Server \$Projectname - Installazione"; -$a->strings["Could not connect to database."] = " Impossibile connettersi al database."; -$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS."; -$a->strings["Could not create table."] = "Impossibile creare le tabelle."; -$a->strings["Your site database has been installed."] = "Il database del sito è stato installato."; -$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db."; -$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Leggi il file 'install/INSTALL.txt'."; -$a->strings["System check"] = "Verifica del sistema"; -$a->strings["Check again"] = "Verifica di nuovo"; -$a->strings["Database connection"] = "Connessione al database"; -$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "Per poter installare \$Projectname è necessario fornire i parametri di connessione al tuo database."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Contatta il tuo fornitore di hosting o l'amministratore del sito se hai domande su queste impostazioni."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Il database deve già esistere. Se non esiste, crealo prima di continuare."; -$a->strings["Database Server Name"] = "Server del database"; -$a->strings["Default is 127.0.0.1"] = "Il valore predefinito è 127.0.0.1"; -$a->strings["Database Port"] = "Port del database"; -$a->strings["Communication port number - use 0 for default"] = "Scrivi 0 per usare il valore standard"; -$a->strings["Database Login Name"] = "Utente database"; -$a->strings["Database Login Password"] = "Password database"; -$a->strings["Database Name"] = "Nome database"; -$a->strings["Database Type"] = "Tipo database"; -$a->strings["Site administrator email address"] = "Indirizzo email dell'amministratore del hub"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Il tuo indirizzo email deve corrispondere a questo per poter usare il pannello di amministrazione di Hubzilla."; -$a->strings["Website URL"] = "URL completo del sito"; -$a->strings["Please use SSL (https) URL if available."] = "Se disponibile, usa l'indirizzo SSL (https)."; -$a->strings["Please select a default timezone for your website"] = "Seleziona il fuso orario predefinito per il tuo hub"; -$a->strings["Site settings"] = "Impostazioni del hub"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Non è possibile trovare la versione di PHP da riga di comando nel PATH del server web"; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Se non hai installata la versione di PHP da riga di comando non potrai attivare il polling in background tramite cron."; -$a->strings["PHP executable path"] = "Path del comando PHP"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Inserisci il percorso dell'eseguibile PHP. Puoi lasciarlo vuoto per continuare l'installazione."; -$a->strings["Command line PHP"] = "PHP da riga di comando"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La versione da riga di comando di PHP nel sistema non ha abilitato \"register_argc_argv\"."; -$a->strings["This is required for message delivery to work."] = "E' necessario perché funzioni la consegna dei messaggi."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "La dimensione massima di un caricamento è impostata a %s. Il singolo file non può superare %s. Ti è permesso caricare max %d file per volta."; -$a->strings["You can adjust these settings in the servers php.ini."] = "Puoi regolare queste impostazioni sul server in php.ini"; -$a->strings["PHP upload limits"] = "Limiti PHP in upload"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Errore: la funzione \"openssl_pkey_new\" su questo sistema non è in grado di generare le chiavi di cifratura"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Se stai usando un server windows, guarda \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Genera chiavi di cifratura"; -$a->strings["libCurl PHP module"] = "modulo PHP libCurl"; -$a->strings["GD graphics PHP module"] = "modulo PHP GD graphics"; -$a->strings["OpenSSL PHP module"] = "modulo PHP OpenSSL"; -$a->strings["mysqli or postgres PHP module"] = "modulo PHP per mysqli oppure prostgres"; -$a->strings["mb_string PHP module"] = "modulo PHP mb_string"; -$a->strings["mcrypt PHP module"] = "modulo PHP mcrypt"; -$a->strings["xml PHP module"] = "modulo xml PHP"; -$a->strings["Apache mod_rewrite module"] = "modulo Apache mod_rewrite"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato"; -$a->strings["proc_open"] = "proc_open"; -$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Errore: proc_open è richiesto ma non è installato o è disabilitato in php.ini"; -$a->strings["Error: libCURL PHP module required but not installed."] = "Errore: il modulo libCURL di PHP è richiesto ma non installato."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato."; -$a->strings["Error: openssl PHP module required but not installed."] = "Errore: il modulo openssl di PHP è richiesto ma non installato."; -$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Errore: il modulo PHP per mysqli o postgres è richiesto ma non installato"; -$a->strings["Error: mb_string PHP module required but not installed."] = "Errore: il modulo PHP mb_string è richiesto ma non installato."; -$a->strings["Error: mcrypt PHP module required but not installed."] = "Errore: il modulo PHP mcrypt è richiesto ma non installato."; -$a->strings["Error: xml PHP module required for DAV but not installed."] = "Errore: il modulo xml PHP è richiesto per DAV ma non è installato."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni."; -$a->strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile"; -$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Hubzilla usa il sistema Smarty3 per costruire i suoi template grafici. Smarty3 è molto veloce perché compila i template delle pagine direttamente in PHP."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "Per poter memorizzare i template compilati, il web server deve avere accesso in scrittura a %s sotto la cartella di installazione di Hubzilla."; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."; -$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene."; -$a->strings["%s is writable"] = "%s è scrivibile"; -$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Hubzilla salva i file caricati nella cartella \"store\" sul server. Il server deve avere i diritti di scrittura su quella cartella che si trova dentro l'installazione di RedMatrix"; -$a->strings["store is writable"] = "l'archivio è scrivibile"; -$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."; -$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati self-signed generati da te!"; -$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server."; -$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser."; -$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto."; -$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser."; -$a->strings["SSL certificate validation"] = "Validazione del certificato SSL"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:"; -$a->strings["Url rewrite is working"] = "Url rewrite funziona correttamente"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito."; -$a->strings["Errors encountered creating database tables."] = "La creazione delle tabelle del database ha generato errori."; -$a->strings["<h1>What next</h1>"] = "<h1>I prossimi passi</h1>"; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Devi creare [manualmente] la pianificazione del polling."; -$a->strings["Files: shared with me"] = "File: condivisi con me"; -$a->strings["NEW"] = "NOVITÀ"; -$a->strings["Remove all files"] = "Elimina tutti i file"; -$a->strings["Remove this file"] = "Elimina questo file"; +$a->strings["No service class restrictions found."] = "Non esistono restrizioni su questa classe di account."; +$a->strings["Version %s"] = "Versione %s"; +$a->strings["Installed plugins/addons/apps:"] = "App e componenti installati:"; +$a->strings["No installed plugins/addons/apps"] = "Nessuna app o componente installato"; +$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Questo è un hub di \$Projectname - una rete cooperativa e decentralizzata di siti ad elevata privacy. "; +$a->strings["Tag: "] = "Tag: "; +$a->strings["Last background fetch: "] = "Ultima acquisizione:"; +$a->strings["Current load average: "] = "Carico medio attuale:"; +$a->strings["Running at web location"] = "In esecuzione sull'indirizzo web"; +$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Visita <a href=\"http://hubzilla.org\">hubzilla.org</a> per maggiori informazioni su \$Projectname."; +$a->strings["Bug reports and issues: please visit"] = "Per segnalare bug e problemi: visita"; +$a->strings["\$projectname issues"] = "Problematiche note su \$projectname"; +$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Per consigli, ringraziamenti, ecc. - scrivi a \"redmatrix\" at librelist - dot com"; +$a->strings["Site Administrators"] = "Amministratori del sito"; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Nessun suggerimento disponibile. Se questo sito è nuovo, riprova tra 24 ore."; -$a->strings["Profile not found."] = "Profilo non trovato."; -$a->strings["Profile deleted."] = "Profilo eliminato."; -$a->strings["Profile-"] = "Profilo-"; -$a->strings["New profile created."] = "Il nuovo profilo è stato creato."; -$a->strings["Profile unavailable to clone."] = "Impossibile duplicare il profilo."; -$a->strings["Profile unavailable to export."] = "Il profilo non è disponibile per l'export."; -$a->strings["Profile Name is required."] = "Il nome del profilo è obbligatorio."; -$a->strings["Marital Status"] = "Stato sentimentale"; -$a->strings["Romantic Partner"] = "Partner affettivo"; -$a->strings["Likes"] = "Mi piace"; -$a->strings["Dislikes"] = "Non mi piace"; -$a->strings["Work/Employment"] = "Lavoro/impiego"; -$a->strings["Religion"] = "Religione"; -$a->strings["Political Views"] = "Orientamento politico"; -$a->strings["Sexual Preference"] = "Preferenze sessuali"; -$a->strings["Homepage"] = "Home page"; -$a->strings["Interests"] = "Interessi"; -$a->strings["Profile updated."] = "Profilo aggiornato."; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Nascondi la tua lista di contatti/amici ai visitatori di questo profilo?"; -$a->strings["Edit Profile Details"] = "Modifica i dettagli del profilo"; -$a->strings["View this profile"] = "Guarda questo profilo"; -$a->strings["Change Profile Photo"] = "Cambia la foto del profilo"; -$a->strings["Create a new profile using these settings"] = "Crea un nuovo profilo usando queste impostazioni"; -$a->strings["Clone this profile"] = "Clona questo profilo"; -$a->strings["Delete this profile"] = "Elimina questo profilo"; -$a->strings["Import profile from file"] = "Importa il profilo da un file"; -$a->strings["Export profile to file"] = "Esporta il profilo in un file"; -$a->strings["Profile Name:"] = "Nome del profilo:"; -$a->strings["Your Full Name:"] = "Il tuo nome completo:"; -$a->strings["Title/Description:"] = "Titolo/descrizione:"; -$a->strings["Your Gender:"] = "Sesso:"; -$a->strings["Birthday :"] = "Compleanno:"; -$a->strings["Street Address:"] = "Indirizzo (via/piazza):"; -$a->strings["Locality/City:"] = "Località:"; -$a->strings["Postal/Zip Code:"] = "CAP:"; -$a->strings["Country:"] = "Nazione:"; -$a->strings["Region/State:"] = "Regione/stato:"; -$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Stato sentimentale:"; -$a->strings["Who: (if applicable)"] = "Con chi: (se possibile)"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Per esempio: cathy123, Cathy Williams, cathy@example.com"; -$a->strings["Since [date]:"] = "dal [data]:"; -$a->strings["Homepage URL:"] = "Indirizzo home page:"; -$a->strings["Religious Views:"] = "Orientamento religioso:"; -$a->strings["Keywords:"] = "Parole chiave, tag:"; -$a->strings["Example: fishing photography software"] = "Per esempio: pesca fotografia programmazione"; -$a->strings["Used in directory listings"] = "Visibile negli elenchi pubblici di canali"; -$a->strings["Tell us about yourself..."] = "Raccontaci di te..."; -$a->strings["Hobbies/Interests"] = "Hobby/interessi"; -$a->strings["Contact information and Social Networks"] = "Contatti personali e i tuoi social network"; -$a->strings["My other channels"] = "I miei altri canali"; -$a->strings["Musical interests"] = "Interessi musicali"; -$a->strings["Books, literature"] = "Libri, letteratura"; -$a->strings["Television"] = "Televisione"; -$a->strings["Film/dance/culture/entertainment"] = "Film/danza/cultura/intrattenimento"; -$a->strings["Love/romance"] = "Amore"; -$a->strings["Work/employment"] = "Lavoro/impiego"; -$a->strings["School/education"] = "Scuola/educazione"; -$a->strings["This is your default profile."] = "Questo è il tuo profilo predefinito."; -$a->strings["Age: "] = "Età:"; -$a->strings["Edit/Manage Profiles"] = "Modifica/gestisci i profili"; -$a->strings["Add profile things"] = "Aggiungi oggetti al profilo"; -$a->strings["Include desirable objects in your profile"] = "Aggiungi oggetti interessanti al tuo profilo"; +$a->strings["Calendar entries imported."] = "Le voci del calendario sono state importate."; +$a->strings["No calendar entries found."] = "Non sono state trovate voci del calendario."; +$a->strings["Event can not end before it has started."] = "Un evento non può terminare prima del suo inizio."; +$a->strings["Unable to generate preview."] = "Impossibile creare un'anteprima."; +$a->strings["Event title and start time are required."] = "Sono necessari il titolo e l'ora d'inizio dell'evento."; +$a->strings["Event not found."] = "Evento non trovato."; +$a->strings["Event Title"] = "Titolo dell'evento"; +$a->strings["Categories (comma-separated list)"] = "Categorie (separate da virgola)"; +$a->strings["Category"] = "Categoria"; +$a->strings["Start date and time"] = "Data e ora di inizio"; +$a->strings["Finish date and time are not known or not relevant"] = "La data e l'ora di inizio non sono necessarie"; +$a->strings["Finish date and time"] = "Data e ora di fine"; +$a->strings["Adjust for viewer timezone"] = "Adatta al fuso orario di chi legge"; +$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Importante per eventi che avvengono online ma con un certo fuso orario."; +$a->strings["Share this event"] = "Condividi questo evento"; +$a->strings["Advanced Options"] = "Opzioni avanzate"; +$a->strings["l, F j"] = "l j F"; +$a->strings["Edit event"] = "Modifica l'evento"; +$a->strings["Delete event"] = "Elimina l'evento"; +$a->strings["calendar"] = "calendario"; +$a->strings["New Event"] = "Nuovo evento"; +$a->strings["Today"] = "Oggi"; +$a->strings["Event removed"] = "Evento eliminato"; +$a->strings["Failed to remove event"] = "Impossibile eliminare l'evento"; $a->strings["Invalid profile identifier."] = "Indentificativo del profilo non valido."; $a->strings["Profile Visibility Editor"] = "Modifica la visibilità del profilo"; $a->strings["Click on a contact to add or remove."] = "Clicca su un contatto per aggiungerlo o rimuoverlo."; $a->strings["Visible To"] = "Visibile a"; -$a->strings["Select a bookmark folder"] = "Scegli una cartella di segnalibri"; -$a->strings["Save Bookmark"] = "Salva segnalibro"; -$a->strings["URL of bookmark"] = "URL del segnalibro"; -$a->strings["Or enter new bookmark folder name"] = "O inserisci il nome di una nuova cartella di segnalibri"; -$a->strings["Import completed"] = "Importazione completata"; -$a->strings["Import Items"] = "Importa i contenuti"; -$a->strings["Use this form to import existing posts and content from an export file."] = "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza."; +$a->strings["Unable to create element."] = "Impossibile creare l'elemento."; +$a->strings["Unable to update menu element."] = "Non è possibile aggiornare l'elemento del menù."; +$a->strings["Unable to add menu element."] = "Impossibile aggiungere l'elemento al menù."; +$a->strings["Menu Item Permissions"] = "Permessi del menu"; +$a->strings["Link Name"] = "Nome link"; +$a->strings["Link or Submenu Target"] = "Azione del link o del sottomenu"; +$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Inserisci l'indirizzo del link o scegli il nome di un sottomenu"; +$a->strings["Use magic-auth if available"] = "Usa l'autenticazione tramite il tuo hub, se disponibile"; +$a->strings["Open link in new window"] = "Apri il link in una nuova finestra"; +$a->strings["Order in list"] = "Ordine dell'elenco"; +$a->strings["Higher numbers will sink to bottom of listing"] = "I numeri più alti andranno in fondo all'elenco"; +$a->strings["Submit and finish"] = "Salva e termina"; +$a->strings["Submit and continue"] = "Salva e continua"; +$a->strings["Menu:"] = "Menu:"; +$a->strings["Link Target"] = "Destinazione link"; +$a->strings["Edit menu"] = "Modifica il menù"; +$a->strings["Edit element"] = "Modifica l'elemento"; +$a->strings["Drop element"] = "Elimina l'elemento"; +$a->strings["New element"] = "Nuovo elemento"; +$a->strings["Edit this menu container"] = "Modifica il contenitore del menù"; +$a->strings["Add menu element"] = "Aggiungi un elemento al menù"; +$a->strings["Delete this menu item"] = "Elimina questo elemento del menù"; +$a->strings["Edit this menu item"] = "Modifica questo elemento del menù"; +$a->strings["Menu item not found."] = "L'elemento del menù non è stato trovato."; +$a->strings["Menu item deleted."] = "L'elemento del menù è stato eliminato."; +$a->strings["Menu item could not be deleted."] = "L'elemento del menù non può essere eliminato."; +$a->strings["Edit Menu Element"] = "Modifica l'elemento del menù"; +$a->strings["Link text"] = "Testo del link"; $a->strings["Who likes me?"] = "Chi mi ha dato un \"Mi piace\"?"; +$a->strings["Files: shared with me"] = "File: condivisi con me"; +$a->strings["NEW"] = "NOVITÀ"; +$a->strings["Remove all files"] = "Elimina tutti i file"; +$a->strings["Remove this file"] = "Elimina questo file"; +$a->strings["No connections."] = "Nessun contatto."; +$a->strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]"; $a->strings["Focus (Hubzilla default)"] = "Focus (predefinito)"; $a->strings["Theme settings"] = "Impostazioni del tema"; $a->strings["Select scheme"] = "Scegli uno schema"; diff --git a/view/js/acl.js b/view/js/acl.js index 626d1a750..ed8af478a 100644 --- a/view/js/acl.js +++ b/view/js/acl.js @@ -25,20 +25,18 @@ function ACL(backend_url, preset) { /*events*/ $(document).ready(function() { -// setTimeout( function() { that.showall.click(that.on_showall); $(document).on('click','.acl-button-show',that.on_button_show); $(document).on('click','.acl-button-hide',that.on_button_hide); $("#acl-search").keypress(that.on_search); /* startup! */ - that.get(0,100); + that.get(0,15000); that.on_submit(); -// }, 5000 ); }); } -// no longer called on submit - call to update whenever a change occurs to the acl list. +// no longer called only on submit - call to update whenever a change occurs to the acl list. ACL.prototype.on_submit = function() { aclfileds = $("#acl-fields").html(""); @@ -62,11 +60,13 @@ ACL.prototype.on_submit = function() { ACL.prototype.search = function() { var srcstr = $("#acl-search").val(); that.list_content.html(""); - that.get(0, 100, srcstr); + that.get(0, 15000, srcstr); }; ACL.prototype.on_search = function(event) { - if (that.kp_timer) clearTimeout(that.kp_timer); + if (that.kp_timer) { + clearTimeout(that.kp_timer); + } that.kp_timer = setTimeout( that.search, 1000); }; @@ -90,15 +90,37 @@ ACL.prototype.on_showall = function(event) { return false; }; +ACL.prototype.on_selectall = function(event) { + event.preventDefault(); + event.stopPropagation(); + + /* This function has not yet been completed. */ + /* The goal is to select all ACL "show" entries with one action. */ + + $('.acl-button-show').each(function(){}); + + if (that.showall.hasClass("btn-warning")) { + return false; + } + that.showall.removeClass("btn-default").addClass("btn-warning"); + + that.allow_cid = []; + that.allow_gid = []; + that.deny_cid = []; + that.deny_gid = []; + + that.update_view(); + that.on_submit(); + + return false; +}; + + ACL.prototype.on_button_show = function(event) { event.preventDefault(); event.stopImmediatePropagation(); event.stopPropagation(); - /*that.showall.removeClass("selected"); - $(this).siblings(".acl-button-hide").removeClass("selected"); - $(this).toggleClass("selected");*/ - that.set_allow($(this).parent().attr('id')); that.on_submit(); @@ -110,10 +132,6 @@ ACL.prototype.on_button_hide = function(event) { event.stopImmediatePropagation(); event.stopPropagation(); - /*that.showall.removeClass("selected"); - $(this).siblings(".acl-button-show").removeClass("selected"); - $(this).toggleClass("selected");*/ - that.set_deny($(this).parent().attr('id')); that.on_submit(); diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index 0af27c61b..511a7f815 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -60,7 +60,7 @@ function contact_format(item) { var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick); if(typeof desc === 'undefined') desc = ''; if(desc) desc = ' ('+desc+')'; - return "<div class='{0}' title='{4}'><img src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span><div class='clear'></div></div>".format(item.taggable, item.photo, item.name, desc, item.link); + return "<div class='{0}' title='{4}'><img class='dropdown-menu-img-sm' src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span><div class='clear'></div></div>".format(item.taggable, item.photo, item.name, desc, item.link); } else return "<div>" + item.text + "</div>"; diff --git a/view/js/main.js b/view/js/main.js index 8bd4357cc..ca7d50b90 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -247,6 +247,7 @@ var pageHasMoreContent = true; var updateCountsOnly = false; var divmore_height = 400; var last_filestorage_id = null; +var mediaPlaying = false; $(function() { $.ajaxSetup({cache: false}); @@ -359,7 +360,7 @@ function NavUpdate() { if(liking) $('.like-rotator').spin(false); - if(! stopped) { + if((! stopped) && (! mediaPlaying)) { var pingCmd = 'ping' + ((localUser != 0) ? '?f=&uid=' + localUser : ''); $.get(pingCmd,function(data) { @@ -595,6 +596,24 @@ function updateConvItems(mode,data) { $('body').css('cursor', 'auto'); } + $('video').off('playing'); + $('video').off('pause'); + $('audio').off('playing'); + $('audio').off('pause'); + + $('video').on('playing', function() { + mediaPlaying = true; + }); + $('video').on('pause', function() { + mediaPlaying = false; + }); + $('audio').on('playing', function() { + mediaPlaying = true; + }); + $('audio').on('pause', function() { + mediaPlaying = false; + }); + /* autocomplete @nicknames */ $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl?f=&n=1"); diff --git a/view/js/mod_events.js b/view/js/mod_events.js index 270bf798b..0b7b3d24c 100644 --- a/view/js/mod_events.js +++ b/view/js/mod_events.js @@ -2,33 +2,15 @@ * JavaScript for mod/events */ -$(document).ready( function() { showHideFinishDate(); }); +$(document).ready( function() { -function showHideFinishDate() { + enableDisableFinishDate(); + +}); + +function enableDisableFinishDate() { if( $('#id_nofinish').is(':checked')) - $('#event-finish-wrapper').hide(); + $('#id_finish_text').prop("disabled", true); else - $('#event-finish-wrapper').show(); -} -function eventGetStart() { - //reply = prompt("{{$expirewhen}}", $('#jot-expire').val()); - $('#startModal').modal(); - $('#start-modal-OKButton').on('click', function() { - reply=$('#start-date').val(); - if(reply && reply.length) { - $('#start-text').val(reply); - $('#startModal').modal('hide'); - } - }); + $('#id_finish_text').prop("disabled", false); } -function eventGetFinish() { - //reply = prompt("{{$expirewhen}}", $('#jot-expire').val()); - $('#finishModal').modal(); - $('#finish-modal-OKButton').on('click', function() { - reply=$('#finish-date').val(); - if(reply && reply.length) { - $('#finish-text').val(reply); - $('#finishModal').modal('hide'); - } - }); -}
\ No newline at end of file diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po index 56b67551f..bc7642841 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-06 00:02-0800\n" -"PO-Revision-Date: 2015-11-07 22:32+0000\n" +"POT-Creation-Date: 2015-11-27 00:03-0800\n" +"PO-Revision-Date: 2015-11-28 22:02+0000\n" "Last-Translator: jeroenpraat <jeroenpraat@xs4all.nl>\n" "Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n" "MIME-Version: 1.0\n" @@ -18,690 +18,114 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/conversation.php:120 ../../include/text.php:1863 -#: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:77 -msgid "photo" -msgstr "foto" - -#: ../../include/conversation.php:123 ../../include/event.php:896 -#: ../../include/text.php:1866 ../../mod/like.php:363 ../../mod/tagger.php:47 -#: ../../mod/events.php:245 -msgid "event" -msgstr "gebeurtenis" - -#: ../../include/conversation.php:126 ../../mod/like.php:113 -msgid "channel" -msgstr "kanaal" - -#: ../../include/conversation.php:148 ../../include/text.php:1869 -#: ../../mod/like.php:361 ../../mod/subthread.php:77 -msgid "status" -msgstr "bericht" - -#: ../../include/conversation.php:150 ../../include/text.php:1871 -#: ../../mod/tagger.php:53 -msgid "comment" -msgstr "reactie" - -#: ../../include/conversation.php:164 ../../mod/like.php:410 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s vindt %3$s van %2$s leuk" - -#: ../../include/conversation.php:167 ../../mod/like.php:412 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s vindt %3$s van %2$s niet leuk" - -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s is nu met %2$s verbonden" - -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s heeft %2$s aangestoten" - -#: ../../include/conversation.php:243 ../../include/text.php:942 -msgid "poked" -msgstr "aangestoten" - -#: ../../include/conversation.php:260 ../../mod/mood.php:63 -#, php-format -msgctxt "mood" -msgid "%1$s is %2$s" -msgstr "%1$s is %2$s" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Likes" -msgstr "vinden dit leuk" - -#: ../../include/conversation.php:574 ../../mod/photos.php:1063 -msgctxt "title" -msgid "Dislikes" -msgstr "vinden dit niet leuk" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Agree" -msgstr "eens" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Disagree" -msgstr "oneens" - -#: ../../include/conversation.php:575 ../../mod/photos.php:1064 -msgctxt "title" -msgid "Abstain" -msgstr "onthoudingen" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Attending" -msgstr "aanwezig" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Not attending" -msgstr "niet aanwezig" - -#: ../../include/conversation.php:576 ../../mod/photos.php:1065 -msgctxt "title" -msgid "Might attend" -msgstr "mogelijk aanwezig" - -#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 -msgid "Select" -msgstr "Kies" - -#: ../../include/conversation.php:657 ../../include/RedDAV/RedBrowser.php:241 -#: ../../include/apps.php:260 ../../include/ItemObject.php:120 -#: ../../mod/connedit.php:546 ../../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" - -#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 -msgid "Message signature validated" -msgstr "Berichtkenmerk gevalideerd" - -#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 -msgid "Message signature incorrect" -msgstr "Berichtkenmerk onjuist" - -#: ../../include/conversation.php:691 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Bekijk het profiel van %s @ %s" - -#: ../../include/conversation.php:709 -msgid "Categories:" -msgstr "Categorieën:" - -#: ../../include/conversation.php:710 -msgid "Filed under:" -msgstr "Bewaard onder:" - -#: ../../include/conversation.php:718 ../../include/ItemObject.php:321 -#, php-format -msgid "from %s" -msgstr "van %s" - -#: ../../include/conversation.php:721 ../../include/ItemObject.php:324 -#, php-format -msgid "last edited: %s" -msgstr "laatst bewerkt: %s" - -#: ../../include/conversation.php:722 ../../include/ItemObject.php:325 -#, php-format -msgid "Expires: %s" -msgstr "Verloopt: %s" - -#: ../../include/conversation.php:737 -msgid "View in context" -msgstr "In context bekijken" - -#: ../../include/conversation.php:739 ../../include/conversation.php:1221 -#: ../../include/ItemObject.php:375 ../../mod/photos.php:1029 -#: ../../mod/editblock.php:150 ../../mod/editpost.php:129 -#: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:190 -msgid "Please wait" -msgstr "Even wachten" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "verwijderen" - -#: ../../include/conversation.php:853 ../../include/nav.php:241 -msgid "Loading..." -msgstr "Aan het laden..." - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "Verwijder de geselecteerde items" - -#: ../../include/conversation.php:945 -msgid "View Source" -msgstr "Bron weergeven" - -#: ../../include/conversation.php:946 -msgid "Follow Thread" -msgstr "Conversatie volgen" - -#: ../../include/conversation.php:947 -msgid "Stop Following" -msgstr "Bericht niet meer volgen" - -#: ../../include/conversation.php:948 -msgid "View Status" -msgstr "Status weergeven" - -#: ../../include/conversation.php:949 ../../include/nav.php:86 -#: ../../mod/connedit.php:493 -msgid "View Profile" -msgstr "Profiel weergeven" - -#: ../../include/conversation.php:950 -msgid "View Photos" -msgstr "Foto's weergeven" - -#: ../../include/conversation.php:951 -msgid "Activity/Posts" -msgstr "Kanaal-activiteit" - -#: ../../include/conversation.php:952 ../../include/Contact.php:101 -#: ../../include/identity.php:965 ../../include/widgets.php:136 -#: ../../include/widgets.php:174 ../../mod/directory.php:316 -#: ../../mod/match.php:64 ../../mod/suggest.php:52 +#: ../../include/Contact.php:101 ../../include/identity.php:953 +#: ../../include/widgets.php:137 ../../include/widgets.php:175 +#: ../../include/conversation.php:953 ../../mod/match.php:64 +#: ../../mod/directory.php:318 ../../mod/suggest.php:52 msgid "Connect" msgstr "Verbinden" -#: ../../include/conversation.php:953 -msgid "Edit Connection" -msgstr "Connectie bewerken" - -#: ../../include/conversation.php:954 -msgid "Send PM" -msgstr "Privébericht verzenden" - -#: ../../include/conversation.php:955 ../../include/apps.php:145 -msgid "Poke" -msgstr "Aanstoten" - -#: ../../include/conversation.php:1026 ../../include/RedDAV/RedBrowser.php:164 -#: ../../include/apps.php:360 ../../include/apps.php:415 -#: ../../mod/photos.php:759 ../../mod/photos.php:1198 -msgid "Unknown" -msgstr "Onbekend" - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s likes this." -msgstr "%s vindt dit leuk." - -#: ../../include/conversation.php:1069 -#, php-format -msgid "%s doesn't like this." -msgstr "%s vindt dit niet leuk." - -#: ../../include/conversation.php:1073 -#, php-format -msgid "<span %1$s>%2$d people</span> like this." -msgid_plural "<span %1$s>%2$d people</span> like this." -msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit leuk." -msgstr[1] "<span %1$s>%2$d personen</span> vinden dit leuk." - -#: ../../include/conversation.php:1075 -#, php-format -msgid "<span %1$s>%2$d people</span> don't like this." -msgid_plural "<span %1$s>%2$d people</span> don't like this." -msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit niet leuk." -msgstr[1] "<span %1$s>%2$d personen</span> vinden dit niet leuk." - -#: ../../include/conversation.php:1081 -msgid "and" -msgstr "en" - -#: ../../include/conversation.php:1084 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] ", en %d ander persoon" -msgstr[1] ", en %d andere personen" +#: ../../include/Contact.php:118 +msgid "New window" +msgstr "Nieuw venster" -#: ../../include/conversation.php:1085 -#, php-format -msgid "%s like this." -msgstr "%s vinden dit leuk." +#: ../../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/conversation.php:1085 +#: ../../include/Contact.php:237 #, php-format -msgid "%s don't like this." -msgstr "%s vinden dit niet leuk." - -#: ../../include/conversation.php:1148 -msgid "Visible to <strong>everybody</strong>" -msgstr "Voor <strong>iedereen</strong> zichtbaar" - -#: ../../include/conversation.php:1149 ../../mod/mail.php:194 -#: ../../mod/mail.php:308 -msgid "Please enter a link URL:" -msgstr "Vul een internetadres/URL in:" - -#: ../../include/conversation.php:1150 -msgid "Please enter a video link/URL:" -msgstr "Vul een videolink/URL in:" - -#: ../../include/conversation.php:1151 -msgid "Please enter an audio link/URL:" -msgstr "Vul een audiolink/URL in:" - -#: ../../include/conversation.php:1152 -msgid "Tag term:" -msgstr "Tag:" - -#: ../../include/conversation.php:1153 ../../mod/filer.php:48 -msgid "Save to Folder:" -msgstr "Bewaar in map: " - -#: ../../include/conversation.php:1154 -msgid "Where are you right now?" -msgstr "Waar bevind je je op dit moment?" - -#: ../../include/conversation.php:1155 ../../mod/editpost.php:54 -#: ../../mod/mail.php:195 ../../mod/mail.php:309 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Verloopt op DD-MM-YYYY om HH:MM" - -#: ../../include/conversation.php:1163 ../../include/page_widgets.php:40 -#: ../../include/ItemObject.php:692 ../../mod/photos.php:1049 -#: ../../mod/editblock.php:171 ../../mod/editpost.php:149 -#: ../../mod/events.php:707 ../../mod/webpages.php:188 -#: ../../mod/editwebpage.php:212 -msgid "Preview" -msgstr "Voorvertoning" - -#: ../../include/conversation.php:1186 ../../mod/layouts.php:184 -#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 -#: ../../mod/blocks.php:154 -msgid "Share" -msgstr "Delen" - -#: ../../include/conversation.php:1188 -msgid "Page link name" -msgstr "Linknaam pagina" - -#: ../../include/conversation.php:1191 -msgid "Post as" -msgstr "Bericht plaatsen als" - -#: ../../include/conversation.php:1193 ../../include/ItemObject.php:684 -#: ../../mod/editblock.php:136 ../../mod/editpost.php:113 -#: ../../mod/editlayout.php:135 ../../mod/editwebpage.php:177 -msgid "Bold" -msgstr "Vet" - -#: ../../include/conversation.php:1194 ../../include/ItemObject.php:685 -#: ../../mod/editblock.php:137 ../../mod/editpost.php:114 -#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:178 -msgid "Italic" -msgstr "Cursief" - -#: ../../include/conversation.php:1195 ../../include/ItemObject.php:686 -#: ../../mod/editblock.php:138 ../../mod/editpost.php:115 -#: ../../mod/editlayout.php:137 ../../mod/editwebpage.php:179 -msgid "Underline" -msgstr "Onderstrepen" - -#: ../../include/conversation.php:1196 ../../include/ItemObject.php:687 -#: ../../mod/editblock.php:139 ../../mod/editpost.php:116 -#: ../../mod/editlayout.php:138 ../../mod/editwebpage.php:180 -msgid "Quote" -msgstr "Citeren" - -#: ../../include/conversation.php:1197 ../../include/ItemObject.php:688 -#: ../../mod/editblock.php:140 ../../mod/editpost.php:117 -#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:181 -msgid "Code" -msgstr "Broncode" - -#: ../../include/conversation.php:1198 ../../mod/editblock.php:142 -#: ../../mod/editpost.php:118 ../../mod/editlayout.php:140 -#: ../../mod/editwebpage.php:182 -msgid "Upload photo" -msgstr "Foto uploaden" - -#: ../../include/conversation.php:1199 -msgid "upload photo" -msgstr "foto uploaden" - -#: ../../include/conversation.php:1200 ../../mod/editblock.php:143 -#: ../../mod/editpost.php:119 ../../mod/mail.php:240 ../../mod/mail.php:369 -#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:183 -msgid "Attach file" -msgstr "Bestand toevoegen" - -#: ../../include/conversation.php:1201 -msgid "attach file" -msgstr "bestand toevoegen" - -#: ../../include/conversation.php:1202 ../../mod/editblock.php:144 -#: ../../mod/editpost.php:120 ../../mod/mail.php:241 ../../mod/mail.php:370 -#: ../../mod/editlayout.php:142 ../../mod/editwebpage.php:184 -msgid "Insert web link" -msgstr "Weblink invoegen" - -#: ../../include/conversation.php:1203 -msgid "web link" -msgstr "Weblink" - -#: ../../include/conversation.php:1204 -msgid "Insert video link" -msgstr "Videolink invoegen" - -#: ../../include/conversation.php:1205 -msgid "video link" -msgstr "videolink" - -#: ../../include/conversation.php:1206 -msgid "Insert audio link" -msgstr "Audiolink invoegen" - -#: ../../include/conversation.php:1207 -msgid "audio link" -msgstr "audiolink" - -#: ../../include/conversation.php:1208 ../../mod/editblock.php:148 -#: ../../mod/editpost.php:124 ../../mod/editlayout.php:146 -#: ../../mod/editwebpage.php:188 -msgid "Set your location" -msgstr "Locatie instellen" - -#: ../../include/conversation.php:1209 -msgid "set location" -msgstr "locatie instellen" - -#: ../../include/conversation.php:1210 ../../mod/editpost.php:126 -msgid "Toggle voting" -msgstr "Peiling in- of uitschakelen" - -#: ../../include/conversation.php:1213 ../../mod/editblock.php:149 -#: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 -#: ../../mod/editwebpage.php:189 -msgid "Clear browser location" -msgstr "Locatie van webbrowser wissen" - -#: ../../include/conversation.php:1214 -msgid "clear location" -msgstr "locatie wissen" - -#: ../../include/conversation.php:1216 ../../mod/editblock.php:162 -#: ../../mod/editpost.php:141 ../../mod/editwebpage.php:205 -msgid "Title (optional)" -msgstr "Titel (optioneel)" - -#: ../../include/conversation.php:1220 ../../mod/editblock.php:165 -#: ../../mod/editpost.php:143 ../../mod/editlayout.php:163 -#: ../../mod/editwebpage.php:207 -msgid "Categories (optional, comma-separated list)" -msgstr "Categorieën (optioneel, door komma's gescheiden lijst)" - -#: ../../include/conversation.php:1222 ../../mod/editblock.php:151 -#: ../../mod/editpost.php:130 ../../mod/editlayout.php:149 -#: ../../mod/editwebpage.php:191 -msgid "Permission settings" -msgstr "Permissies" - -#: ../../include/conversation.php:1223 -msgid "permissions" -msgstr "permissies" - -#: ../../include/conversation.php:1231 ../../mod/editblock.php:159 -#: ../../mod/editpost.php:138 ../../mod/editlayout.php:156 -#: ../../mod/editwebpage.php:200 -msgid "Public post" -msgstr "Openbaar bericht" - -#: ../../include/conversation.php:1233 ../../mod/editblock.php:166 -#: ../../mod/editpost.php:144 ../../mod/editlayout.php:164 -#: ../../mod/editwebpage.php:208 -msgid "Example: bob@example.com, mary@example.com" -msgstr "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be" - -#: ../../include/conversation.php:1246 ../../mod/editblock.php:176 -#: ../../mod/editpost.php:155 ../../mod/mail.php:245 ../../mod/mail.php:374 -#: ../../mod/editlayout.php:173 ../../mod/editwebpage.php:217 -msgid "Set expiration date" -msgstr "Verloopdatum instellen" - -#: ../../include/conversation.php:1249 -msgid "Set publish date" -msgstr "Publicatiedatum instellen" - -#: ../../include/conversation.php:1251 ../../include/ItemObject.php:695 -#: ../../mod/editpost.php:157 ../../mod/mail.php:247 ../../mod/mail.php:376 -msgid "Encrypt text" -msgstr "Tekst versleutelen" - -#: ../../include/conversation.php:1253 ../../mod/editpost.php:159 -#: ../../mod/events.php:691 -msgid "OK" -msgstr "OK" - -#: ../../include/conversation.php:1254 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:160 -#: ../../mod/events.php:690 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 -#: ../../mod/settings.php:585 ../../mod/settings.php:611 -msgid "Cancel" -msgstr "Annuleren" - -#: ../../include/conversation.php:1497 -msgid "Discover" -msgstr "Ontdekken" - -#: ../../include/conversation.php:1500 -msgid "Imported public streams" -msgstr "Openbare streams importeren" - -#: ../../include/conversation.php:1505 -msgid "Commented Order" -msgstr "Nieuwe reacties bovenaan" - -#: ../../include/conversation.php:1508 -msgid "Sort by Comment Date" -msgstr "Berichten met nieuwe reacties bovenaan" - -#: ../../include/conversation.php:1512 -msgid "Posted Order" -msgstr "Nieuwe berichten bovenaan" - -#: ../../include/conversation.php:1515 -msgid "Sort by Post Date" -msgstr "Nieuwe berichten bovenaan" - -#: ../../include/conversation.php:1520 ../../include/widgets.php:94 -msgid "Personal" -msgstr "Persoonlijk" - -#: ../../include/conversation.php:1523 -msgid "Posts that mention or involve you" -msgstr "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent" - -#: ../../include/conversation.php:1529 ../../mod/menu.php:112 -#: ../../mod/connections.php:72 ../../mod/connections.php:82 -msgid "New" -msgstr "Nieuw" - -#: ../../include/conversation.php:1532 -msgid "Activity Stream - by date" -msgstr "Activiteitenstroom - volgens datum" - -#: ../../include/conversation.php:1538 -msgid "Starred" -msgstr "Met ster" - -#: ../../include/conversation.php:1541 -msgid "Favourite Posts" -msgstr "Favoriete berichten" - -#: ../../include/conversation.php:1548 -msgid "Spam" -msgstr "Spam" - -#: ../../include/conversation.php:1551 -msgid "Posts flagged as SPAM" -msgstr "Berichten gemarkeerd als SPAM" - -#: ../../include/conversation.php:1595 ../../mod/admin.php:972 -msgid "Channel" -msgstr "Kanaal" - -#: ../../include/conversation.php:1598 -msgid "Status Messages and Posts" -msgstr "Berichten in dit kanaal" - -#: ../../include/conversation.php:1607 -msgid "About" -msgstr "Over" - -#: ../../include/conversation.php:1610 -msgid "Profile Details" -msgstr "Profiel" - -#: ../../include/conversation.php:1616 ../../include/apps.php:139 -#: ../../include/nav.php:92 ../../mod/fbrowser.php:25 -msgid "Photos" -msgstr "Foto's" - -#: ../../include/conversation.php:1619 ../../include/photos.php:483 -msgid "Photo Albums" -msgstr "Fotoalbums" - -#: ../../include/conversation.php:1623 ../../include/RedDAV/RedBrowser.php:226 -#: ../../include/apps.php:135 ../../include/nav.php:93 -#: ../../mod/fbrowser.php:114 -msgid "Files" -msgstr "Bestanden" - -#: ../../include/conversation.php:1626 -msgid "Files and Storage" -msgstr "Bestanden en opslagruimte" - -#: ../../include/conversation.php:1636 ../../include/conversation.php:1639 -msgid "Chatrooms" -msgstr "Chatkanalen" - -#: ../../include/conversation.php:1649 ../../include/apps.php:129 -#: ../../include/nav.php:103 -msgid "Bookmarks" -msgstr "Bladwijzers" - -#: ../../include/conversation.php:1652 -msgid "Saved Bookmarks" -msgstr "Opgeslagen bladwijzers" - -#: ../../include/conversation.php:1659 ../../include/apps.php:136 -#: ../../include/nav.php:107 ../../mod/webpages.php:178 -msgid "Webpages" -msgstr "Webpagina's" - -#: ../../include/conversation.php:1662 -msgid "Manage Webpages" -msgstr "Webpagina's beheren" - -#: ../../include/conversation.php:1691 ../../include/ItemObject.php:175 -#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 -#: ../../mod/photos.php:1094 -msgid "View all" -msgstr "Toon alles" - -#: ../../include/conversation.php:1715 ../../include/ItemObject.php:179 -#: ../../include/identity.php:1276 ../../include/taxonomy.php:403 -#: ../../mod/photos.php:1086 -msgctxt "noun" -msgid "Like" -msgid_plural "Likes" -msgstr[0] "vindt dit leuk" -msgstr[1] "vinden dit leuk" - -#: ../../include/conversation.php:1718 ../../include/ItemObject.php:184 -#: ../../mod/photos.php:1091 -msgctxt "noun" -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "vindt dit niet leuk" -msgstr[1] "vinden dit niet leuk" +msgid "User '%s' deleted" +msgstr "Account '%s' verwijderd" -#: ../../include/conversation.php:1721 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "aanwezig" -msgstr[1] "aanwezig" +#: ../../include/chat.php:23 +msgid "Missing room name" +msgstr "Naam chatkanaal ontbreekt" -#: ../../include/conversation.php:1724 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "niet aanwezig" -msgstr[1] "niet aanwezig" +#: ../../include/chat.php:32 +msgid "Duplicate room name" +msgstr "Naam chatkanaal bestaat al" -#: ../../include/conversation.php:1727 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "nog niet beslist" -msgstr[1] "nog niet beslist" +#: ../../include/chat.php:82 ../../include/chat.php:90 +msgid "Invalid room specifier." +msgstr "Ongeldige omschrijving chatkanaal" -#: ../../include/conversation.php:1730 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "eens" -msgstr[1] "eens" +#: ../../include/chat.php:122 +msgid "Room not found." +msgstr "Chatkanaal niet gevonden" -#: ../../include/conversation.php:1733 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "oneens" -msgstr[1] "oneens" +#: ../../include/chat.php:133 ../../include/items.php:4396 +#: ../../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 +#: ../../include/photos.php:29 ../../mod/filestorage.php:18 +#: ../../mod/filestorage.php:73 ../../mod/filestorage.php:88 +#: ../../mod/filestorage.php:115 ../../mod/group.php:9 ../../mod/item.php:205 +#: ../../mod/item.php:213 ../../mod/item.php:1049 ../../mod/common.php:35 +#: ../../mod/achievements.php:30 ../../mod/rate.php:111 +#: ../../mod/blocks.php:69 ../../mod/blocks.php:76 ../../mod/id.php:71 +#: ../../mod/like.php:177 ../../mod/page.php:31 ../../mod/page.php:86 +#: ../../mod/mood.php:112 ../../mod/new_channel.php:68 +#: ../../mod/new_channel.php:99 ../../mod/setup.php:227 +#: ../../mod/bookmarks.php:48 ../../mod/poke.php:133 +#: ../../mod/profiles.php:198 ../../mod/profiles.php:584 +#: ../../mod/connedit.php:352 ../../mod/editwebpage.php:64 +#: ../../mod/editwebpage.php:86 ../../mod/editwebpage.php:101 +#: ../../mod/editwebpage.php:125 ../../mod/profile.php:64 +#: ../../mod/profile.php:72 ../../mod/api.php:26 ../../mod/api.php:31 +#: ../../mod/fsuggest.php:78 ../../mod/sources.php:66 +#: ../../mod/notifications.php:66 ../../mod/photos.php:70 +#: ../../mod/profile_photo.php:341 ../../mod/profile_photo.php:354 +#: ../../mod/thing.php:271 ../../mod/thing.php:291 ../../mod/thing.php:328 +#: ../../mod/editblock.php:65 ../../mod/network.php:12 +#: ../../mod/pdledit.php:21 ../../mod/register.php:72 +#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87 +#: ../../mod/settings.php:568 ../../mod/webpages.php:69 +#: ../../mod/appman.php:66 ../../mod/layouts.php:69 ../../mod/layouts.php:76 +#: ../../mod/layouts.php:87 ../../mod/locs.php:83 ../../mod/mail.php:118 +#: ../../mod/regmod.php:17 ../../mod/channel.php:100 ../../mod/channel.php:214 +#: ../../mod/channel.php:254 ../../mod/invite.php:13 ../../mod/invite.php:104 +#: ../../mod/editpost.php:13 ../../mod/chat.php:94 ../../mod/chat.php:99 +#: ../../mod/viewsrc.php:14 ../../mod/authtest.php:13 +#: ../../mod/connections.php:29 ../../mod/manage.php:6 ../../mod/menu.php:74 +#: ../../mod/service_limits.php:7 ../../mod/suggest.php:26 +#: ../../mod/events.php:260 ../../mod/message.php:16 ../../mod/block.php:22 +#: ../../mod/block.php:72 ../../mod/mitem.php:111 ../../mod/sharedwithme.php:7 +#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27 +#: ../../index.php:182 ../../index.php:365 +msgid "Permission denied." +msgstr "Toegang geweigerd" -#: ../../include/conversation.php:1736 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "onthouding" -msgstr[1] "onthoudingen" +#: ../../include/chat.php:143 +msgid "Room is full" +msgstr "Chatkanaal is vol" -#: ../../include/Import/import_diaspora.php:17 -msgid "No username found in import file." -msgstr "Geen gebruikersnaam in het importbestand gevonden." +#: ../../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/import_diaspora.php:42 ../../include/import.php:44 +#: ../../include/import.php:44 ../../include/Import/import_diaspora.php:42 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:486 -msgid "Import completed." -msgstr "Import voltooid." +#: ../../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/RedDAV/RedBrowser.php:107 #: ../../include/RedDAV/RedBrowser.php:239 msgid "parent" msgstr "omhoog" -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2529 +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2582 msgid "Collection" msgstr "map" @@ -725,6 +149,19 @@ msgstr "Planning-postvak IN" msgid "Schedule Outbox" msgstr "Planning-postvak UIT" +#: ../../include/RedDAV/RedBrowser.php:164 ../../include/widgets.php:1317 +#: ../../include/conversation.php:1027 ../../include/apps.php:360 +#: ../../include/apps.php:415 ../../mod/photos.php:759 +#: ../../mod/photos.php:1198 +msgid "Unknown" +msgstr "Onbekend" + +#: ../../include/RedDAV/RedBrowser.php:226 ../../include/conversation.php:1629 +#: ../../include/nav.php:93 ../../include/apps.php:135 +#: ../../mod/fbrowser.php:114 +msgid "Files" +msgstr "Bestanden" + #: ../../include/RedDAV/RedBrowser.php:227 msgid "Total" msgstr "Totaal" @@ -734,20 +171,21 @@ 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 +#: ../../include/RedDAV/RedBrowser.php:303 ../../mod/blocks.php:152 +#: ../../mod/new_channel.php:121 ../../mod/webpages.php:180 +#: ../../mod/layouts.php:175 ../../mod/menu.php:114 msgid "Create" msgstr "Aanmaken" #: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:784 -#: ../../mod/photos.php:1317 ../../mod/profile_photo.php:450 +#: ../../include/RedDAV/RedBrowser.php:305 ../../include/widgets.php:1329 +#: ../../mod/photos.php:784 ../../mod/photos.php:1317 +#: ../../mod/profile_photo.php:453 msgid "Upload" msgstr "Uploaden" -#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:973 -#: ../../mod/settings.php:586 ../../mod/settings.php:612 +#: ../../include/RedDAV/RedBrowser.php:235 ../../mod/admin.php:974 +#: ../../mod/settings.php:588 ../../mod/settings.php:614 #: ../../mod/sharedwithme.php:95 msgid "Name" msgstr "Naam" @@ -756,7 +194,7 @@ msgstr "Naam" msgid "Type" msgstr "Type" -#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1236 +#: ../../include/RedDAV/RedBrowser.php:237 ../../include/text.php:1248 #: ../../mod/sharedwithme.php:97 msgid "Size" msgstr "Grootte" @@ -767,16 +205,27 @@ 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 +#: ../../include/ItemObject.php:100 ../../include/apps.php:259 +#: ../../mod/blocks.php:153 ../../mod/editwebpage.php:176 +#: ../../mod/thing.php:257 ../../mod/editblock.php:135 +#: ../../mod/editlayout.php:134 ../../mod/settings.php:648 +#: ../../mod/webpages.php:181 ../../mod/layouts.php:183 +#: ../../mod/editpost.php:112 ../../mod/connections.php:235 #: ../../mod/connections.php:248 ../../mod/connections.php:267 -#: ../../mod/editlayout.php:134 ../../mod/editwebpage.php:176 +#: ../../mod/menu.php:108 msgid "Edit" msgstr "Bewerken" +#: ../../include/RedDAV/RedBrowser.php:241 ../../include/conversation.php:657 +#: ../../include/ItemObject.php:120 ../../include/apps.php:260 +#: ../../mod/group.php:173 ../../mod/blocks.php:155 ../../mod/connedit.php:551 +#: ../../mod/editwebpage.php:223 ../../mod/photos.php:1129 +#: ../../mod/thing.php:258 ../../mod/editblock.php:181 ../../mod/admin.php:809 +#: ../../mod/admin.php:968 ../../mod/editlayout.php:179 +#: ../../mod/settings.php:649 ../../mod/webpages.php:183 +msgid "Delete" +msgstr "Verwijderen" + #: ../../include/RedDAV/RedBrowser.php:282 #, php-format msgid "You are using %1$s of your available file storage." @@ -799,570 +248,16 @@ msgstr "Nieuwe map aanmaken" 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:347 ../../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:1004 ../../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:2312 -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 +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:696 #: ../../mod/photos.php:1047 ../../mod/photos.php:1165 msgid "Comment" msgstr "Reactie" -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:399 +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:413 msgid "[+] show all" msgstr "[+] alle" @@ -1414,8 +309,8 @@ msgstr "Niets nieuw hier" msgid "Rate This Channel (this is public)" msgstr "Beoordeel dit kanaal (dit is openbaar)" -#: ../../include/js_strings.php:20 ../../mod/connedit.php:685 -#: ../../mod/rate.php:157 +#: ../../include/js_strings.php:20 ../../mod/rate.php:157 +#: ../../mod/connedit.php:694 msgid "Rating" msgstr "Beoordeling" @@ -1423,24 +318,25 @@ msgstr "Beoordeling" 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:706 ../../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:517 ../../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 +#: ../../include/js_strings.php:22 ../../include/widgets.php:676 +#: ../../include/ItemObject.php:697 ../../mod/filestorage.php:156 +#: ../../mod/group.php:81 ../../mod/connect.php:93 ../../mod/rate.php:168 +#: ../../mod/mood.php:135 ../../mod/setup.php:331 ../../mod/setup.php:371 +#: ../../mod/pconfig.php:108 ../../mod/poke.php:171 ../../mod/profiles.php:675 +#: ../../mod/connedit.php:715 ../../mod/fsuggest.php:108 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:527 ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/thing.php:313 +#: ../../mod/thing.php:359 ../../mod/import_items.php:122 +#: ../../mod/pdledit.php:58 ../../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/settings.php:586 +#: ../../mod/settings.php:698 ../../mod/settings.php:726 +#: ../../mod/settings.php:749 ../../mod/settings.php:834 +#: ../../mod/settings.php:1023 ../../mod/appman.php:99 ../../mod/locs.php:116 +#: ../../mod/mail.php:371 ../../mod/xchan.php:11 ../../mod/invite.php:142 +#: ../../mod/chat.php:184 ../../mod/chat.php:213 ../../mod/events.php:476 +#: ../../mod/events.php:673 ../../mod/mitem.php:231 #: ../../view/theme/redbasic/php/config.php:99 msgid "Submit" msgstr "Opslaan" @@ -1453,369 +349,279 @@ msgstr "Vul een internetadres/URL in:" 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 +#: ../../include/js_strings.php:25 ../../mod/pubsites.php:28 +#: ../../mod/profiles.php:464 ../../mod/events.php:467 +msgid "Location" +msgstr "Locatie" + +#: ../../include/js_strings.php:27 msgid "timeago.prefixAgo" msgstr "timeago.prefixAgo" -#: ../../include/js_strings.php:27 +#: ../../include/js_strings.php:28 msgid "timeago.prefixFromNow" msgstr "timeago.prefixFromNow" -#: ../../include/js_strings.php:28 +#: ../../include/js_strings.php:29 msgid "ago" msgstr "geleden" -#: ../../include/js_strings.php:29 +#: ../../include/js_strings.php:30 msgid "from now" msgstr "vanaf nu" -#: ../../include/js_strings.php:30 +#: ../../include/js_strings.php:31 msgid "less than a minute" msgstr "minder dan een minuut" -#: ../../include/js_strings.php:31 +#: ../../include/js_strings.php:32 msgid "about a minute" msgstr "ongeveer een minuut" -#: ../../include/js_strings.php:32 +#: ../../include/js_strings.php:33 #, php-format msgid "%d minutes" msgstr "%d minuten" -#: ../../include/js_strings.php:33 +#: ../../include/js_strings.php:34 msgid "about an hour" msgstr "ongeveer een uur" -#: ../../include/js_strings.php:34 +#: ../../include/js_strings.php:35 #, php-format msgid "about %d hours" msgstr "ongeveer %d uren" -#: ../../include/js_strings.php:35 +#: ../../include/js_strings.php:36 msgid "a day" msgstr "een dag" -#: ../../include/js_strings.php:36 +#: ../../include/js_strings.php:37 #, php-format msgid "%d days" msgstr "%d dagen" -#: ../../include/js_strings.php:37 +#: ../../include/js_strings.php:38 msgid "about a month" msgstr "ongeveer een maand" -#: ../../include/js_strings.php:38 +#: ../../include/js_strings.php:39 #, php-format msgid "%d months" msgstr "%d maanden" -#: ../../include/js_strings.php:39 +#: ../../include/js_strings.php:40 msgid "about a year" msgstr "ongeveer een jaar" -#: ../../include/js_strings.php:40 +#: ../../include/js_strings.php:41 #, php-format msgid "%d years" msgstr "%d jaren" -#: ../../include/js_strings.php:41 +#: ../../include/js_strings.php:42 msgid " " msgstr " " -#: ../../include/js_strings.php:42 +#: ../../include/js_strings.php:43 msgid "timeago.numbers" msgstr "timeago.numbers" -#: ../../include/js_strings.php:44 ../../include/text.php:1153 +#: ../../include/js_strings.php:45 ../../include/text.php:1165 msgid "January" msgstr "januari" -#: ../../include/js_strings.php:45 ../../include/text.php:1153 +#: ../../include/js_strings.php:46 ../../include/text.php:1165 msgid "February" msgstr "februari" -#: ../../include/js_strings.php:46 ../../include/text.php:1153 +#: ../../include/js_strings.php:47 ../../include/text.php:1165 msgid "March" msgstr "maart" -#: ../../include/js_strings.php:47 ../../include/text.php:1153 +#: ../../include/js_strings.php:48 ../../include/text.php:1165 msgid "April" msgstr "april" -#: ../../include/js_strings.php:48 +#: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "mei" -#: ../../include/js_strings.php:49 ../../include/text.php:1153 +#: ../../include/js_strings.php:50 ../../include/text.php:1165 msgid "June" msgstr "juni" -#: ../../include/js_strings.php:50 ../../include/text.php:1153 +#: ../../include/js_strings.php:51 ../../include/text.php:1165 msgid "July" msgstr "juli" -#: ../../include/js_strings.php:51 ../../include/text.php:1153 +#: ../../include/js_strings.php:52 ../../include/text.php:1165 msgid "August" msgstr "augustus" -#: ../../include/js_strings.php:52 ../../include/text.php:1153 +#: ../../include/js_strings.php:53 ../../include/text.php:1165 msgid "September" msgstr "september" -#: ../../include/js_strings.php:53 ../../include/text.php:1153 +#: ../../include/js_strings.php:54 ../../include/text.php:1165 msgid "October" msgstr "oktober" -#: ../../include/js_strings.php:54 ../../include/text.php:1153 +#: ../../include/js_strings.php:55 ../../include/text.php:1165 msgid "November" msgstr "november" -#: ../../include/js_strings.php:55 ../../include/text.php:1153 +#: ../../include/js_strings.php:56 ../../include/text.php:1165 msgid "December" msgstr "december" -#: ../../include/js_strings.php:56 +#: ../../include/js_strings.php:57 msgid "Jan" msgstr "jan" -#: ../../include/js_strings.php:57 +#: ../../include/js_strings.php:58 msgid "Feb" msgstr "feb" -#: ../../include/js_strings.php:58 +#: ../../include/js_strings.php:59 msgid "Mar" msgstr "mrt" -#: ../../include/js_strings.php:59 +#: ../../include/js_strings.php:60 msgid "Apr" msgstr "apr" -#: ../../include/js_strings.php:60 +#: ../../include/js_strings.php:61 msgctxt "short" msgid "May" msgstr "mei" -#: ../../include/js_strings.php:61 +#: ../../include/js_strings.php:62 msgid "Jun" msgstr "jun" -#: ../../include/js_strings.php:62 +#: ../../include/js_strings.php:63 msgid "Jul" msgstr "jul" -#: ../../include/js_strings.php:63 +#: ../../include/js_strings.php:64 msgid "Aug" msgstr "aug" -#: ../../include/js_strings.php:64 +#: ../../include/js_strings.php:65 msgid "Sep" msgstr "sep" -#: ../../include/js_strings.php:65 +#: ../../include/js_strings.php:66 msgid "Oct" msgstr "okt" -#: ../../include/js_strings.php:66 +#: ../../include/js_strings.php:67 msgid "Nov" msgstr "nov" -#: ../../include/js_strings.php:67 +#: ../../include/js_strings.php:68 msgid "Dec" msgstr "dec" -#: ../../include/js_strings.php:68 ../../include/text.php:1149 +#: ../../include/js_strings.php:69 ../../include/text.php:1161 msgid "Sunday" msgstr "zondag" -#: ../../include/js_strings.php:69 ../../include/text.php:1149 +#: ../../include/js_strings.php:70 ../../include/text.php:1161 msgid "Monday" msgstr "maandag" -#: ../../include/js_strings.php:70 ../../include/text.php:1149 +#: ../../include/js_strings.php:71 ../../include/text.php:1161 msgid "Tuesday" msgstr "dinsdag" -#: ../../include/js_strings.php:71 ../../include/text.php:1149 +#: ../../include/js_strings.php:72 ../../include/text.php:1161 msgid "Wednesday" msgstr "woensdag" -#: ../../include/js_strings.php:72 ../../include/text.php:1149 +#: ../../include/js_strings.php:73 ../../include/text.php:1161 msgid "Thursday" msgstr "donderdag" -#: ../../include/js_strings.php:73 ../../include/text.php:1149 +#: ../../include/js_strings.php:74 ../../include/text.php:1161 msgid "Friday" msgstr "vrijdag" -#: ../../include/js_strings.php:74 ../../include/text.php:1149 +#: ../../include/js_strings.php:75 ../../include/text.php:1161 msgid "Saturday" msgstr "zaterdag" -#: ../../include/js_strings.php:75 +#: ../../include/js_strings.php:76 msgid "Sun" msgstr "zo" -#: ../../include/js_strings.php:76 +#: ../../include/js_strings.php:77 msgid "Mon" msgstr "ma" -#: ../../include/js_strings.php:77 +#: ../../include/js_strings.php:78 msgid "Tue" msgstr "di" -#: ../../include/js_strings.php:78 +#: ../../include/js_strings.php:79 msgid "Wed" msgstr "wo" -#: ../../include/js_strings.php:79 +#: ../../include/js_strings.php:80 msgid "Thu" msgstr "do" -#: ../../include/js_strings.php:80 +#: ../../include/js_strings.php:81 msgid "Fri" msgstr "vr" -#: ../../include/js_strings.php:81 +#: ../../include/js_strings.php:82 msgid "Sat" msgstr "za" -#: ../../include/js_strings.php:82 +#: ../../include/js_strings.php:83 msgctxt "calendar" msgid "today" msgstr "vandaag" -#: ../../include/js_strings.php:83 +#: ../../include/js_strings.php:84 msgctxt "calendar" msgid "month" msgstr "maand" -#: ../../include/js_strings.php:84 +#: ../../include/js_strings.php:85 msgctxt "calendar" msgid "week" msgstr "week" -#: ../../include/js_strings.php:85 +#: ../../include/js_strings.php:86 msgctxt "calendar" msgid "day" msgstr "dag" -#: ../../include/js_strings.php:86 +#: ../../include/js_strings.php:87 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:1505 -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/Import/import_diaspora.php:17 +msgid "No username found in import file." +msgstr "Geen gebruikersnaam in het importbestand gevonden." -#: ../../include/Contact.php:237 -#, php-format -msgid "User '%s' deleted" -msgstr "Account '%s' verwijderd" +#: ../../include/Import/import_diaspora.php:143 ../../mod/import.php:487 +msgid "Import completed." +msgstr "Import voltooid." -#: ../../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/comanche.php:34 ../../mod/admin.php:351 +msgid "Default" +msgstr "Standaard" -#: ../../include/items.php:423 ../../mod/like.php:280 ../../mod/dreport.php:6 -#: ../../mod/dreport.php:45 ../../mod/subthread.php:52 ../../mod/group.php:68 -#: ../../mod/profperm.php:23 ../../mod/import_items.php:114 -#: ../../index.php:360 +#: ../../include/items.php:423 ../../mod/group.php:68 ../../mod/like.php:280 +#: ../../mod/dreport.php:6 ../../mod/dreport.php:45 ../../mod/subthread.php:58 +#: ../../mod/import_items.php:114 ../../mod/profperm.php:23 +#: ../../index.php:364 msgid "Permission denied" msgstr "Toegang geweigerd" @@ -1856,126 +662,557 @@ msgstr "Voor alle goedgekeurde connecties zichtbaar." 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 +#: ../../include/items.php:4317 ../../mod/filestorage.php:27 +#: ../../mod/thing.php:86 ../../mod/admin.php:127 ../../mod/admin.php:1005 +#: ../../mod/admin.php:1210 ../../mod/display.php:36 ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Item niet gevonden." -#: ../../include/items.php:4820 ../../mod/group.php:38 ../../mod/group.php:137 +#: ../../include/items.php:4826 ../../mod/group.php:38 ../../mod/group.php:137 msgid "Collection not found." msgstr "Collectie niet gevonden." -#: ../../include/items.php:4836 +#: ../../include/items.php:4842 msgid "Collection is empty." msgstr "Collectie is leeg" -#: ../../include/items.php:4843 +#: ../../include/items.php:4849 #, php-format msgid "Collection: %s" msgstr "Collectie: %s" -#: ../../include/items.php:4853 ../../mod/connedit.php:674 +#: ../../include/items.php:4859 ../../mod/connedit.php:683 #, php-format msgid "Connection: %s" msgstr "Connectie: %s" -#: ../../include/items.php:4855 +#: ../../include/items.php:4861 msgid "Connection not found." msgstr "Connectie niet gevonden." -#: ../../include/network.php:635 +#: ../../include/message.php:18 +msgid "No recipient provided." +msgstr "Geen ontvanger opgegeven." + +#: ../../include/message.php:23 +msgid "[no subject]" +msgstr "[geen onderwerp]" + +#: ../../include/message.php:43 +msgid "Unable to determine sender." +msgstr "Afzender kan niet bepaald worden." + +#: ../../include/message.php:218 +msgid "Stored post could not be verified." +msgstr "Opgeslagen bericht kon niet worden geverifieerd." + +#: ../../include/network.php:630 msgid "view full size" msgstr "volledige grootte tonen" -#: ../../include/network.php:1613 ../../include/enotify.php:57 +#: ../../include/network.php:1608 ../../include/enotify.php:57 msgid "$Projectname Notification" msgstr "$Projectname-notificatie" -#: ../../include/network.php:1614 ../../include/enotify.php:58 +#: ../../include/network.php:1609 ../../include/enotify.php:58 msgid "$projectname" msgstr "$projectname" -#: ../../include/network.php:1616 ../../include/enotify.php:60 +#: ../../include/network.php:1611 ../../include/enotify.php:60 msgid "Thank You," msgstr "Bedankt," -#: ../../include/network.php:1618 ../../include/enotify.php:62 +#: ../../include/network.php:1613 ../../include/enotify.php:62 #, php-format msgid "%s Administrator" msgstr "Beheerder %s" -#: ../../include/network.php:1660 ../../include/account.php:316 +#: ../../include/network.php:1655 ../../include/account.php:316 #: ../../include/account.php:343 ../../include/account.php:403 msgid "Administrator" msgstr "Beheerder" -#: ../../include/network.php:1674 +#: ../../include/network.php:1669 msgid "No Subject" msgstr "Geen onderwerp" -#: ../../include/bookmarks.php:35 +#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 +#: ../../include/text.php:1392 +msgid "l F d, Y \\@ g:i A" +msgstr "l d F Y \\@ G:i" + +#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 +#: ../../include/text.php:1396 +msgid "Starts:" +msgstr "Start:" + +#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 +#: ../../include/text.php:1400 +msgid "Finishes:" +msgstr "Einde:" + +#: ../../include/event.php:52 ../../include/identity.php:1004 +#: ../../include/bb2diaspora.php:493 ../../include/text.php:1407 +#: ../../mod/directory.php:304 +msgid "Location:" +msgstr "Plaats:" + +#: ../../include/event.php:768 +msgid "This event has been added to your calendar." +msgstr "Dit evenement is aan jouw agenda toegevoegd." + +#: ../../include/event.php:904 ../../include/conversation.php:123 +#: ../../include/text.php:1919 ../../mod/tagger.php:47 ../../mod/like.php:363 +#: ../../mod/events.php:249 +msgid "event" +msgstr "gebeurtenis" + +#: ../../include/event.php:967 +msgid "Not specified" +msgstr "Niet aangegeven" + +#: ../../include/event.php:968 +msgid "Needs Action" +msgstr "Actie vereist" + +#: ../../include/event.php:969 +msgid "Completed" +msgstr "Voltooid" + +#: ../../include/event.php:970 +msgid "In Process" +msgstr "In behandeling" + +#: ../../include/event.php:971 +msgid "Cancelled" +msgstr "Geannuleerd" + +#: ../../include/identity.php:32 +msgid "Unable to obtain identity information from database" +msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen" + +#: ../../include/identity.php:66 +msgid "Empty name" +msgstr "Ontbrekende naam" + +#: ../../include/identity.php:69 +msgid "Name too long" +msgstr "Naam te lang" + +#: ../../include/identity.php:181 +msgid "No account identifier" +msgstr "Geen account-identificator" + +#: ../../include/identity.php:193 +msgid "Nickname is required." +msgstr "Bijnaam is verplicht" + +#: ../../include/identity.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Deze naam is gereserveerd. Kies een andere." + +#: ../../include/identity.php:212 +msgid "" +"Nickname has unsupported characters or is already being used on this site." +msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik." + +#: ../../include/identity.php:288 +msgid "Unable to retrieve created identity" +msgstr "Niet in staat om aangemaakte identiteit te vinden" + +#: ../../include/identity.php:346 +msgid "Default Profile" +msgstr "Standaardprofiel" + +#: ../../include/identity.php:390 ../../include/identity.php:391 +#: ../../include/identity.php:398 ../../include/widgets.php:430 +#: ../../include/profile_selectors.php:80 ../../mod/connedit.php:573 +#: ../../mod/settings.php:338 ../../mod/settings.php:342 +#: ../../mod/settings.php:343 ../../mod/settings.php:346 +#: ../../mod/settings.php:357 +msgid "Friends" +msgstr "Vrienden" + +#: ../../include/identity.php:770 +msgid "Requested channel is not available." +msgstr "Opgevraagd kanaal is niet beschikbaar." + +#: ../../include/identity.php:816 ../../mod/filestorage.php:54 +#: ../../mod/connect.php:13 ../../mod/achievements.php:11 +#: ../../mod/blocks.php:29 ../../mod/hcard.php:8 ../../mod/editwebpage.php:28 +#: ../../mod/profile.php:16 ../../mod/editblock.php:29 +#: ../../mod/editlayout.php:27 ../../mod/webpages.php:29 +#: ../../mod/layouts.php:29 +msgid "Requested profile is not available." +msgstr "Opgevraagd profiel is niet beschikbaar" + +#: ../../include/identity.php:966 ../../mod/profiles.php:782 +msgid "Change profile photo" +msgstr "Profielfoto veranderen" + +#: ../../include/identity.php:972 +msgid "Profiles" +msgstr "Profielen" + +#: ../../include/identity.php:972 +msgid "Manage/edit profiles" +msgstr "Profielen beheren/bewerken" + +#: ../../include/identity.php:973 ../../mod/profiles.php:783 +msgid "Create New Profile" +msgstr "Nieuw profiel aanmaken" + +#: ../../include/identity.php:976 ../../include/nav.php:90 +msgid "Edit Profile" +msgstr "Profiel bewerken" + +#: ../../include/identity.php:988 ../../mod/profiles.php:794 +msgid "Profile Image" +msgstr "Profielfoto" + +#: ../../include/identity.php:991 +msgid "visible to everybody" +msgstr "Voor iedereen zichtbaar" + +#: ../../include/identity.php:992 ../../mod/profiles.php:677 +#: ../../mod/profiles.php:798 +msgid "Edit visibility" +msgstr "Zichtbaarheid bewerken" + +#: ../../include/identity.php:1008 ../../include/identity.php:1248 +msgid "Gender:" +msgstr "Geslacht:" + +#: ../../include/identity.php:1009 ../../include/identity.php:1292 +msgid "Status:" +msgstr "Status:" + +#: ../../include/identity.php:1010 ../../include/identity.php:1303 +msgid "Homepage:" +msgstr "Homepagina:" + +#: ../../include/identity.php:1011 +msgid "Online Now" +msgstr "Nu online" + +#: ../../include/identity.php:1095 ../../include/identity.php:1173 +#: ../../mod/ping.php:318 +msgid "g A l F d" +msgstr "G:i, l d F" + +#: ../../include/identity.php:1096 ../../include/identity.php:1174 +msgid "F d" +msgstr "d F" + +#: ../../include/identity.php:1141 ../../include/identity.php:1213 +#: ../../mod/ping.php:341 +msgid "[today]" +msgstr "[vandaag]" + +#: ../../include/identity.php:1152 +msgid "Birthday Reminders" +msgstr "Verjaardagsherinneringen" + +#: ../../include/identity.php:1153 +msgid "Birthdays this week:" +msgstr "Verjaardagen deze week:" + +#: ../../include/identity.php:1206 +msgid "[No description]" +msgstr "[Geen omschrijving]" + +#: ../../include/identity.php:1224 +msgid "Event Reminders" +msgstr "Herinneringen" + +#: ../../include/identity.php:1225 +msgid "Events this week:" +msgstr "Gebeurtenissen deze week:" + +#: ../../include/identity.php:1238 ../../include/identity.php:1355 +#: ../../include/apps.php:138 ../../mod/profperm.php:112 +msgid "Profile" +msgstr "Profiel" + +#: ../../include/identity.php:1246 ../../mod/settings.php:1029 +msgid "Full Name:" +msgstr "Volledige naam:" + +#: ../../include/identity.php:1253 +msgid "Like this channel" +msgstr "Vind dit kanaal leuk" + +#: ../../include/identity.php:1264 ../../include/taxonomy.php:414 +#: ../../include/conversation.php:1721 ../../include/ItemObject.php:179 +#: ../../mod/photos.php:1086 +msgctxt "noun" +msgid "Like" +msgid_plural "Likes" +msgstr[0] "vindt dit leuk" +msgstr[1] "vinden dit leuk" + +#: ../../include/identity.php:1277 +msgid "j F, Y" +msgstr "F j Y" + +#: ../../include/identity.php:1278 +msgid "j F" +msgstr "F j" + +#: ../../include/identity.php:1285 +msgid "Birthday:" +msgstr "Geboortedatum:" + +#: ../../include/identity.php:1289 ../../mod/directory.php:299 +msgid "Age:" +msgstr "Leeftijd:" + +#: ../../include/identity.php:1298 #, php-format -msgid "%1$s's bookmarks" -msgstr "Bladwijzers van %1$s" +msgid "for %1$d %2$s" +msgstr "voor %1$d %2$s" + +#: ../../include/identity.php:1301 ../../mod/profiles.php:699 +msgid "Sexual Preference:" +msgstr "Seksuele voorkeur:" -#: ../../include/acl_selectors.php:239 +#: ../../include/identity.php:1305 ../../mod/profiles.php:701 +#: ../../mod/directory.php:315 +msgid "Hometown:" +msgstr "Oorspronkelijk uit:" + +#: ../../include/identity.php:1307 +msgid "Tags:" +msgstr "Tags:" + +#: ../../include/identity.php:1309 ../../mod/profiles.php:702 +msgid "Political Views:" +msgstr "Politieke overtuigingen:" + +#: ../../include/identity.php:1311 +msgid "Religion:" +msgstr "Religie:" + +#: ../../include/identity.php:1313 ../../mod/directory.php:317 +msgid "About:" +msgstr "Over:" + +#: ../../include/identity.php:1315 +msgid "Hobbies/Interests:" +msgstr "Hobby's/interesses:" + +#: ../../include/identity.php:1317 ../../mod/profiles.php:705 +msgid "Likes:" +msgstr "Houdt van:" + +#: ../../include/identity.php:1319 ../../mod/profiles.php:706 +msgid "Dislikes:" +msgstr "Houdt niet van:" + +#: ../../include/identity.php:1321 +msgid "Contact information and Social Networks:" +msgstr "Contactinformatie en sociale netwerken:" + +#: ../../include/identity.php:1323 +msgid "My other channels:" +msgstr "Mijn andere kanalen" + +#: ../../include/identity.php:1325 +msgid "Musical interests:" +msgstr "Muzikale interesses:" + +#: ../../include/identity.php:1327 +msgid "Books, literature:" +msgstr "Boeken, literatuur:" + +#: ../../include/identity.php:1329 +msgid "Television:" +msgstr "Televisie:" + +#: ../../include/identity.php:1331 +msgid "Film/dance/culture/entertainment:" +msgstr "Films/dansen/cultuur/vermaak:" + +#: ../../include/identity.php:1333 +msgid "Love/Romance:" +msgstr "Liefde/romantiek:" + +#: ../../include/identity.php:1335 +msgid "Work/employment:" +msgstr "Werk/beroep:" + +#: ../../include/identity.php:1337 +msgid "School/education:" +msgstr "School/opleiding:" + +#: ../../include/identity.php:1357 +msgid "Like this thing" +msgstr "Vind dit ding leuk" + +#: ../../include/taxonomy.php:240 ../../include/taxonomy.php:261 +msgid "Tags" +msgstr "Tags" + +#: ../../include/taxonomy.php:282 ../../include/widgets.php:36 +#: ../../include/contact_widgets.php:95 +msgid "Categories" +msgstr "Categorieën" + +#: ../../include/taxonomy.php:305 +msgid "Keywords" +msgstr "Trefwoorden" + +#: ../../include/taxonomy.php:326 +msgid "have" +msgstr "heb" + +#: ../../include/taxonomy.php:326 +msgid "has" +msgstr "heeft" + +#: ../../include/taxonomy.php:327 +msgid "want" +msgstr "wil" + +#: ../../include/taxonomy.php:327 +msgid "wants" +msgstr "wil" + +#: ../../include/taxonomy.php:328 ../../include/ItemObject.php:254 +msgid "like" +msgstr "vind dit leuk" + +#: ../../include/taxonomy.php:328 +msgid "likes" +msgstr "vindt dit leuk" + +#: ../../include/taxonomy.php:329 ../../include/ItemObject.php:255 +msgid "dislike" +msgstr "vind dit niet leuk" + +#: ../../include/taxonomy.php:329 +msgid "dislikes" +msgstr "vindt dit niet leuk" + +#: ../../include/acl_selectors.php:240 msgid "Visible to your default audience" msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld" -#: ../../include/acl_selectors.php:240 +#: ../../include/acl_selectors.php:241 msgid "Show" msgstr "Tonen" -#: ../../include/acl_selectors.php:241 +#: ../../include/acl_selectors.php:242 msgid "Don't show" msgstr "Niet tonen" -#: ../../include/acl_selectors.php:247 ../../mod/filestorage.php:147 -#: ../../mod/chat.php:211 ../../mod/photos.php:631 ../../mod/photos.php:1001 -#: ../../mod/events.php:708 ../../mod/thing.php:310 ../../mod/thing.php:356 +#: ../../include/acl_selectors.php:247 +msgid "Other networks and post services" +msgstr "Andere netwerken en diensten" + +#: ../../include/acl_selectors.php:249 ../../mod/filestorage.php:147 +#: ../../mod/photos.php:631 ../../mod/photos.php:1001 ../../mod/thing.php:310 +#: ../../mod/thing.php:356 ../../mod/chat.php:211 msgid "Permissions" msgstr "Permissies" -#: ../../include/acl_selectors.php:248 ../../include/ItemObject.php:370 +#: ../../include/acl_selectors.php:250 ../../include/ItemObject.php:384 #: ../../mod/photos.php:1218 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/activities.php:42 +msgid " and " +msgstr " en " -#: ../../include/import.php:70 -msgid "Channel clone failed. Import failed." -msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt." +#: ../../include/activities.php:50 +msgid "public profile" +msgstr "openbaar profiel" -#: ../../include/import.php:80 ../../mod/import.php:138 -msgid "Cloned channel not found. Import failed." -msgstr "Gekloond kanaal niet gevonden. Importeren mislukt." +#: ../../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/photos.php:112 +#: ../../include/activities.php:60 #, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes" +msgid "Visit %1$s's %2$s" +msgstr "Bezoek het %2$s van %1$s" -#: ../../include/photos.php:119 -msgid "Image file is empty." -msgstr "Afbeeldingsbestand is leeg" +#: ../../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/photos.php:146 ../../mod/profile_photo.php:222 -msgid "Unable to process image" -msgstr "Afbeelding kan niet verwerkt worden" +#: ../../include/attach.php:246 ../../include/attach.php:332 +msgid "Item was not found." +msgstr "Item niet gevonden" -#: ../../include/photos.php:257 -msgid "Photo storage failed." -msgstr "Foto kan niet worden opgeslagen" +#: ../../include/attach.php:496 +msgid "No source file." +msgstr "Geen bronbestand." -#: ../../include/photos.php:487 -msgid "Upload New Photos" -msgstr "Nieuwe foto's uploaden" +#: ../../include/attach.php:514 +msgid "Cannot locate file to replace" +msgstr "Kan het te vervangen bestand niet vinden" + +#: ../../include/attach.php:532 +msgid "Cannot locate file to revise/update" +msgstr "Kan het bestand wat aangepast moet worden niet vinden" + +#: ../../include/attach.php:667 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Bestand is groter dan de toegelaten %d" + +#: ../../include/attach.php:681 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt." + +#: ../../include/attach.php:837 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken." + +#: ../../include/attach.php:850 +msgid "Stored file could not be verified. Upload failed." +msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt." + +#: ../../include/attach.php:898 ../../include/attach.php:914 +msgid "Path not available." +msgstr "Pad niet beschikbaar." + +#: ../../include/attach.php:960 ../../include/attach.php:1112 +msgid "Empty pathname" +msgstr "Padnaam leeg" + +#: ../../include/attach.php:986 +msgid "duplicate filename or path" +msgstr "dubbele bestandsnaam of pad" + +#: ../../include/attach.php:1008 +msgid "Path not found." +msgstr "Pad niet gevonden" + +#: ../../include/attach.php:1066 +msgid "mkdir failed." +msgstr "directory aanmaken (mkdir) mislukt." + +#: ../../include/attach.php:1070 +msgid "database storage failed." +msgstr "opslag in database mislukt." + +#: ../../include/attach.php:1118 +msgid "Empty path" +msgstr "Ontbrekend bestandspad" + +#: ../../include/bb2diaspora.php:382 +msgid "Attachments:" +msgstr "Bijlagen:" + +#: ../../include/bb2diaspora.php:473 +msgid "$Projectname event notification:" +msgstr "Notificatie $Projectname-gebeurtenis:" #: ../../include/notify.php:20 msgid "created a new post" @@ -1986,42 +1223,603 @@ msgstr "maakte een nieuw bericht aan" msgid "commented on %s's post" msgstr "gaf een reactie op een bericht van %s" -#: ../../include/page_widgets.php:6 -msgid "New Page" -msgstr "Nieuwe pagina" +#: ../../include/widgets.php:92 ../../include/nav.php:157 +#: ../../mod/apps.php:36 +msgid "Apps" +msgstr "Apps" -#: ../../include/page_widgets.php:39 ../../mod/layouts.php:188 -#: ../../mod/webpages.php:187 ../../mod/blocks.php:159 -msgid "View" -msgstr "Weergeven" +#: ../../include/widgets.php:93 +msgid "System" +msgstr "Systeem" -#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 -msgid "Actions" -msgstr "Acties" +#: ../../include/widgets.php:95 ../../include/conversation.php:1526 +msgid "Personal" +msgstr "Persoonlijk" -#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 -msgid "Page Link" -msgstr "Paginalink" +#: ../../include/widgets.php:96 +msgid "Create Personal App" +msgstr "Persoonlijke app maken" -#: ../../include/page_widgets.php:43 -msgid "Title" -msgstr "Titel" +#: ../../include/widgets.php:97 +msgid "Edit Personal App" +msgstr "Persoonlijke app bewerken" -#: ../../include/page_widgets.php:44 ../../mod/layouts.php:181 -#: ../../mod/menu.php:110 ../../mod/webpages.php:192 ../../mod/blocks.php:150 -msgid "Created" -msgstr "Aangemaakt" +#: ../../include/widgets.php:139 ../../mod/suggest.php:54 +msgid "Ignore/Hide" +msgstr "Negeren/Verbergen" -#: ../../include/page_widgets.php:45 ../../mod/layouts.php:182 -#: ../../mod/menu.php:111 ../../mod/webpages.php:193 ../../mod/blocks.php:151 -msgid "Edited" -msgstr "Bewerkt" +#: ../../include/widgets.php:144 ../../mod/connections.php:125 +msgid "Suggestions" +msgstr "Voorgestelde kanalen" -#: ../../include/photo/photo_driver.php:708 ../../mod/photos.php:94 -#: ../../mod/photos.php:699 ../../mod/profile_photo.php:146 -#: ../../mod/profile_photo.php:236 ../../mod/profile_photo.php:376 -msgid "Profile Photos" -msgstr "Profielfoto's" +#: ../../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:868 +#: ../../include/text.php:880 ../../mod/rbmark.php:28 ../../mod/rbmark.php:100 +#: ../../mod/admin.php:1442 ../../mod/admin.php:1462 ../../mod/filer.php:49 +msgid "Save" +msgstr "Opslaan" + +#: ../../include/widgets.php:266 +msgid "Remove term" +msgstr "Verwijder zoekterm" + +#: ../../include/widgets.php:274 ../../include/features.php:72 +msgid "Saved Searches" +msgstr "Opgeslagen zoekopdrachten" + +#: ../../include/widgets.php:275 ../../include/group.php:300 +msgid "add" +msgstr "toevoegen" + +#: ../../include/widgets.php:304 ../../include/features.php:85 +#: ../../include/contact_widgets.php:57 +msgid "Saved Folders" +msgstr "Bewaarde mappen" + +#: ../../include/widgets.php:307 ../../include/contact_widgets.php:60 +#: ../../include/contact_widgets.php:98 +msgid "Everything" +msgstr "Alles" + +#: ../../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:546 ../../include/features.php:59 +#: ../../mod/sources.php:88 +msgid "Channel Sources" +msgstr "Kanaalbronnen" + +#: ../../include/widgets.php:554 ../../include/nav.php:202 +#: ../../include/apps.php:134 ../../mod/admin.php:1064 +#: ../../mod/admin.php:1264 +msgid "Settings" +msgstr "Instellingen" + +#: ../../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:669 +msgid "Export" +msgstr "Exporteren" + +#: ../../include/widgets.php:675 ../../mod/events.php:672 +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/bookmarks.php:35 +#, php-format +msgid "%1$s's bookmarks" +msgstr "Bladwijzers van %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 +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 +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 +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/profile_selectors.php:6 #: ../../include/profile_selectors.php:23 ../../mod/id.php:103 @@ -2074,6 +1872,13 @@ msgid "Non-specific" msgstr "Niet gespecificeerd" #: ../../include/profile_selectors.php:6 +#: ../../include/profile_selectors.php:23 +#: ../../include/profile_selectors.php:61 +#: ../../include/profile_selectors.php:97 ../../include/permissions.php:871 +msgid "Other" +msgstr "Anders" + +#: ../../include/profile_selectors.php:6 msgid "Undecided" msgstr "Nog niet beslist" @@ -2169,15 +1974,6 @@ 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:568 -#: ../../mod/settings.php:338 ../../mod/settings.php:342 -#: ../../mod/settings.php:343 ../../mod/settings.php:346 -#: ../../mod/settings.php:357 -msgid "Friends" -msgstr "Vrienden" - #: ../../include/profile_selectors.php:80 msgid "Friends/Benefits" msgstr "Vriendschap plus" @@ -2268,502 +2064,797 @@ msgstr "Maakt mij niks uit" msgid "Ask me" msgstr "Vraag het me" -#: ../../include/oembed.php:213 -msgid "Embedded content" -msgstr "Ingesloten inhoud" +#: ../../include/datetime.php:48 +msgid "Miscellaneous" +msgstr "Diversen" -#: ../../include/oembed.php:222 -msgid "Embedding disabled" -msgstr "Insluiten uitgeschakeld" +#: ../../include/datetime.php:132 +msgid "YYYY-MM-DD or MM-DD" +msgstr "JJJJ-MM-DD of MM-DD" -#: ../../include/event.php:22 ../../include/bb2diaspora.php:471 -msgid "l F d, Y \\@ g:i A" -msgstr "l d F Y \\@ G:i" +#: ../../include/datetime.php:236 ../../mod/appman.php:91 +#: ../../mod/appman.php:92 ../../mod/events.php:452 ../../mod/events.php:457 +msgid "Required" +msgstr "Vereist" -#: ../../include/event.php:30 ../../include/bb2diaspora.php:477 -msgid "Starts:" -msgstr "Start:" +#: ../../include/datetime.php:263 ../../boot.php:2289 +msgid "never" +msgstr "nooit" -#: ../../include/event.php:40 ../../include/bb2diaspora.php:485 -msgid "Finishes:" -msgstr "Einde:" +#: ../../include/datetime.php:269 +msgid "less than a second ago" +msgstr "minder dan een seconde geleden" -#: ../../include/event.php:50 ../../include/identity.php:1016 -#: ../../include/bb2diaspora.php:493 ../../mod/directory.php:302 -#: ../../mod/events.php:701 -msgid "Location:" -msgstr "Plaats:" +#: ../../include/datetime.php:272 +msgid "year" +msgstr "jaar" -#: ../../include/event.php:766 -msgid "This event has been added to your calendar." -msgstr "Dit evenement is aan jouw agenda toegevoegd." +#: ../../include/datetime.php:272 +msgid "years" +msgstr "jaren" -#: ../../include/event.php:953 -msgid "Not specified" -msgstr "Niet aangegeven" +#: ../../include/datetime.php:273 +msgid "month" +msgstr "maand" -#: ../../include/event.php:954 -msgid "Needs Action" -msgstr "Actie vereist" +#: ../../include/datetime.php:273 +msgid "months" +msgstr "maanden" -#: ../../include/event.php:955 -msgid "Completed" -msgstr "Voltooid" +#: ../../include/datetime.php:274 +msgid "week" +msgstr "week" -#: ../../include/event.php:956 -msgid "In Process" -msgstr "In behandeling" +#: ../../include/datetime.php:274 +msgid "weeks" +msgstr "weken" -#: ../../include/event.php:957 -msgid "Cancelled" -msgstr "Geannuleerd" +#: ../../include/datetime.php:275 +msgid "day" +msgstr "dag" -#: ../../include/apps.php:128 -msgid "Site Admin" -msgstr "Hubbeheerder" +#: ../../include/datetime.php:275 +msgid "days" +msgstr "dagen" -#: ../../include/apps.php:130 -msgid "Address Book" -msgstr "Connecties" +#: ../../include/datetime.php:276 +msgid "hour" +msgstr "uur" -#: ../../include/apps.php:131 ../../include/nav.php:111 ../../boot.php:1503 -msgid "Login" -msgstr "Inloggen" +#: ../../include/datetime.php:276 +msgid "hours" +msgstr "uren" -#: ../../include/apps.php:132 ../../include/nav.php:200 -#: ../../mod/manage.php:160 -msgid "Channel Manager" -msgstr "Kanaalbeheer" +#: ../../include/datetime.php:277 +msgid "minute" +msgstr "minuut" -#: ../../include/apps.php:133 ../../include/nav.php:174 -msgid "Grid" -msgstr "Grid" +#: ../../include/datetime.php:277 +msgid "minutes" +msgstr "minuten" -#: ../../include/apps.php:134 ../../include/widgets.php:553 -#: ../../include/nav.php:202 ../../mod/admin.php:1058 ../../mod/admin.php:1258 -msgid "Settings" -msgstr "Instellingen" +#: ../../include/datetime.php:278 +msgid "second" +msgstr "seconde" -#: ../../include/apps.php:137 ../../include/nav.php:177 -msgid "Channel Home" -msgstr "Tijdlijn kanaal" +#: ../../include/datetime.php:278 +msgid "seconds" +msgstr "seconden" -#: ../../include/apps.php:138 ../../include/identity.php:1250 -#: ../../include/identity.php:1367 ../../mod/profperm.php:112 -msgid "Profile" -msgstr "Profiel" +#: ../../include/datetime.php:286 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s geleden" -#: ../../include/apps.php:140 ../../include/nav.php:196 -#: ../../mod/events.php:526 -msgid "Events" -msgstr "Agenda" +#: ../../include/datetime.php:520 +#, php-format +msgid "%1$s's birthday" +msgstr "Verjaardag van %1$s" -#: ../../include/apps.php:141 ../../include/nav.php:162 -msgid "Directory" -msgstr "Kanalengids" +#: ../../include/datetime.php:521 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Gefeliciteerd met je verjaardag %1$s" -#: ../../include/apps.php:142 ../../include/nav.php:154 ../../mod/help.php:202 -#: ../../mod/help.php:207 ../../mod/layouts.php:176 -msgid "Help" -msgstr "Hulp" +#: ../../include/api.php:1302 +msgid "Public Timeline" +msgstr "Openbare tijdlijn" -#: ../../include/apps.php:143 ../../include/nav.php:188 -msgid "Mail" -msgstr "Privéberichten" +#: ../../include/conversation.php:120 ../../include/text.php:1916 +#: ../../mod/tagger.php:43 ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "photo" +msgstr "foto" -#: ../../include/apps.php:144 ../../mod/mood.php:131 -msgid "Mood" -msgstr "Stemming" +#: ../../include/conversation.php:126 ../../mod/like.php:113 +msgid "channel" +msgstr "kanaal" -#: ../../include/apps.php:146 ../../include/nav.php:97 -msgid "Chat" -msgstr "Chatten" +#: ../../include/conversation.php:148 ../../include/text.php:1922 +#: ../../mod/like.php:361 ../../mod/subthread.php:83 +msgid "status" +msgstr "bericht" -#: ../../include/apps.php:147 ../../include/text.php:857 -#: ../../include/text.php:869 ../../include/nav.php:159 -#: ../../mod/search.php:40 -msgid "Search" -msgstr "Zoeken" +#: ../../include/conversation.php:150 ../../include/text.php:1924 +#: ../../mod/tagger.php:53 +msgid "comment" +msgstr "reactie" -#: ../../include/apps.php:148 -msgid "Probe" -msgstr "Onderzoeken" +#: ../../include/conversation.php:164 ../../mod/like.php:410 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s vindt %3$s van %2$s leuk" -#: ../../include/apps.php:149 -msgid "Suggest" -msgstr "Voorstellen" +#: ../../include/conversation.php:167 ../../mod/like.php:412 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s vindt %3$s van %2$s niet leuk" -#: ../../include/apps.php:150 -msgid "Random Channel" -msgstr "Willekeurig kanaal" +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "%1$s is nu met %2$s verbonden" -#: ../../include/apps.php:151 -msgid "Invite" -msgstr "Uitnodigen " +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s heeft %2$s aangestoten" -#: ../../include/apps.php:152 -msgid "Features" -msgstr "Extra functies" +#: ../../include/conversation.php:243 ../../include/text.php:954 +msgid "poked" +msgstr "aangestoten" -#: ../../include/apps.php:153 ../../mod/id.php:28 -msgid "Language" -msgstr "Taal" +#: ../../include/conversation.php:260 ../../mod/mood.php:63 +#, php-format +msgctxt "mood" +msgid "%1$s is %2$s" +msgstr "%1$s is %2$s" -#: ../../include/apps.php:154 -msgid "Post" -msgstr "Bericht" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Likes" +msgstr "vinden dit leuk" -#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 -#: ../../mod/id.php:19 -msgid "Profile Photo" -msgstr "Profielfoto" +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 +msgctxt "title" +msgid "Dislikes" +msgstr "vinden dit niet leuk" -#: ../../include/apps.php:252 ../../mod/settings.php:84 -#: ../../mod/settings.php:610 -msgid "Update" -msgstr "Bijwerken" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Agree" +msgstr "eens" -#: ../../include/apps.php:252 -msgid "Install" -msgstr "Installeren" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Disagree" +msgstr "oneens" -#: ../../include/apps.php:257 -msgid "Purchase" -msgstr "Aanschaffen" +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 +msgctxt "title" +msgid "Abstain" +msgstr "onthoudingen" -#: ../../include/auth.php:131 -msgid "Logged out." -msgstr "Uitgelogd." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Attending" +msgstr "aanwezig" -#: ../../include/auth.php:272 -msgid "Failed authentication" -msgstr "Mislukte authenticatie" +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Not attending" +msgstr "niet aanwezig" -#: ../../include/auth.php:286 ../../mod/openid.php:189 -msgid "Login failed." -msgstr "Inloggen mislukt." +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 +msgctxt "title" +msgid "Might attend" +msgstr "mogelijk aanwezig" -#: ../../include/enotify.php:96 -#, php-format -msgid "%s <!item_type!>" -msgstr "%s <!item_type!>" +#: ../../include/conversation.php:656 ../../include/ItemObject.php:126 +msgid "Select" +msgstr "Kies" -#: ../../include/enotify.php:100 -#, php-format -msgid "[Hubzilla:Notify] New mail received at %s" -msgstr "[Hubzilla:Notificatie] Nieuw privébericht ontvangen op %s" +#: ../../include/conversation.php:664 ../../include/ItemObject.php:89 +msgid "Private Message" +msgstr "Privébericht" -#: ../../include/enotify.php:102 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." -msgstr "%1$s, %2$s zond jou een nieuw privébericht om %3$s." +#: ../../include/conversation.php:671 ../../include/ItemObject.php:227 +msgid "Message signature validated" +msgstr "Berichtkenmerk gevalideerd" -#: ../../include/enotify.php:103 +#: ../../include/conversation.php:672 ../../include/ItemObject.php:228 +msgid "Message signature incorrect" +msgstr "Berichtkenmerk onjuist" + +#: ../../include/conversation.php:691 #, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s zond jou %2$s." +msgid "View %s's profile @ %s" +msgstr "Bekijk het profiel van %s @ %s" -#: ../../include/enotify.php:103 -msgid "a private message" -msgstr "een privébericht" +#: ../../include/conversation.php:710 +msgid "Categories:" +msgstr "Categorieën:" -#: ../../include/enotify.php:104 -#, php-format -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/conversation.php:711 +msgid "Filed under:" +msgstr "Bewaard onder:" -#: ../../include/enotify.php:158 +#: ../../include/conversation.php:719 ../../include/ItemObject.php:334 #, 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]" +msgid "from %s" +msgstr "van %s" -#: ../../include/enotify.php:166 +#: ../../include/conversation.php:722 ../../include/ItemObject.php:337 #, 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]" +msgid "last edited: %s" +msgstr "laatst bewerkt: %s" -#: ../../include/enotify.php:175 +#: ../../include/conversation.php:723 ../../include/ItemObject.php:338 #, 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]" +msgid "Expires: %s" +msgstr "Verloopt: %s" -#: ../../include/enotify.php:186 -#, 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/conversation.php:738 +msgid "View in context" +msgstr "In context bekijken" -#: ../../include/enotify.php:187 -#, 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/conversation.php:740 ../../include/conversation.php:1227 +#: ../../include/ItemObject.php:389 ../../mod/editwebpage.php:190 +#: ../../mod/photos.php:1029 ../../mod/editblock.php:150 +#: ../../mod/editlayout.php:148 ../../mod/editpost.php:129 +msgid "Please wait" +msgstr "Even wachten" -#: ../../include/enotify.php:190 ../../include/enotify.php:205 -#: ../../include/enotify.php:231 ../../include/enotify.php:249 -#: ../../include/enotify.php:263 -#, 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/conversation.php:850 +msgid "remove" +msgstr "verwijderen" -#: ../../include/enotify.php:196 -#, php-format -msgid "[Hubzilla:Notify] %s posted to your profile wall" -msgstr "[Hubzilla:Notificatie] %s heeft een bericht op jouw kanaal geplaatst" +#: ../../include/conversation.php:854 ../../include/nav.php:241 +msgid "Loading..." +msgstr "Aan het laden..." -#: ../../include/enotify.php:198 -#, 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/conversation.php:855 +msgid "Delete Selected Items" +msgstr "Verwijder de geselecteerde items" -#: ../../include/enotify.php:200 -#, 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/conversation.php:946 +msgid "View Source" +msgstr "Bron weergeven" -#: ../../include/enotify.php:224 -#, php-format -msgid "[Hubzilla:Notify] %s tagged you" -msgstr "[Hubzilla:Notificatie] %s heeft je genoemd" +#: ../../include/conversation.php:947 +msgid "Follow Thread" +msgstr "Conversatie volgen" -#: ../../include/enotify.php:225 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s noemde jou op %3$s" +#: ../../include/conversation.php:948 +msgid "Unfollow Thread" +msgstr "Conversatie niet meer volgen" -#: ../../include/enotify.php:226 -#, 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/conversation.php:949 +msgid "View Status" +msgstr "Status weergeven" -#: ../../include/enotify.php:238 -#, php-format -msgid "[Hubzilla:Notify] %1$s poked you" -msgstr "[Hubzilla:Notificatie] %1$s heeft je aangestoten" +#: ../../include/conversation.php:950 ../../include/nav.php:86 +#: ../../mod/connedit.php:498 +msgid "View Profile" +msgstr "Profiel weergeven" -#: ../../include/enotify.php:239 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s heeft je aangestoten op %3$s" +#: ../../include/conversation.php:951 +msgid "View Photos" +msgstr "Foto's weergeven" -#: ../../include/enotify.php:240 +#: ../../include/conversation.php:952 +msgid "Activity/Posts" +msgstr "Kanaal-activiteit" + +#: ../../include/conversation.php:954 +msgid "Edit Connection" +msgstr "Connectie bewerken" + +#: ../../include/conversation.php:955 +msgid "Send PM" +msgstr "Privébericht verzenden" + +#: ../../include/conversation.php:956 ../../include/apps.php:145 +msgid "Poke" +msgstr "Aanstoten" + +#: ../../include/conversation.php:1070 #, 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]." +msgid "%s likes this." +msgstr "%s vindt dit leuk." -#: ../../include/enotify.php:256 +#: ../../include/conversation.php:1070 #, php-format -msgid "[Hubzilla:Notify] %s tagged your post" -msgstr "[Hubzilla:Notificatie] %s heeft jouw bericht getagd" +msgid "%s doesn't like this." +msgstr "%s vindt dit niet leuk." -#: ../../include/enotify.php:257 +#: ../../include/conversation.php:1074 #, 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" +msgid "<span %1$s>%2$d people</span> like this." +msgid_plural "<span %1$s>%2$d people</span> like this." +msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit leuk." +msgstr[1] "<span %1$s>%2$d personen</span> vinden dit leuk." -#: ../../include/enotify.php:258 +#: ../../include/conversation.php:1076 #, 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" +msgid "<span %1$s>%2$d people</span> don't like this." +msgid_plural "<span %1$s>%2$d people</span> don't like this." +msgstr[0] "<span %1$s>%2$d persoon</span> vindt dit niet leuk." +msgstr[1] "<span %1$s>%2$d personen</span> vinden dit niet leuk." -#: ../../include/enotify.php:270 -msgid "[Hubzilla:Notify] Introduction received" -msgstr "[Hubzilla:Notificatie] Connectieverzoek ontvangen" +#: ../../include/conversation.php:1082 +msgid "and" +msgstr "en" -#: ../../include/enotify.php:271 +#: ../../include/conversation.php:1085 #, 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" +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] ", en %d ander persoon" +msgstr[1] ", en %d andere personen" -#: ../../include/enotify.php:272 +#: ../../include/conversation.php:1086 #, 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." +msgid "%s like this." +msgstr "%s vinden dit leuk." -#: ../../include/enotify.php:276 ../../include/enotify.php:295 +#: ../../include/conversation.php:1086 #, php-format -msgid "You may visit their profile at %s" -msgstr "Je kan het profiel bekijken op %s" +msgid "%s don't like this." +msgstr "%s vinden dit niet leuk." -#: ../../include/enotify.php:278 -#, 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/conversation.php:1154 +msgid "Visible to <strong>everybody</strong>" +msgstr "Voor <strong>iedereen</strong> zichtbaar" -#: ../../include/enotify.php:285 -msgid "[Hubzilla:Notify] Friend suggestion received" -msgstr "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen" +#: ../../include/conversation.php:1155 ../../mod/mail.php:194 +#: ../../mod/mail.php:308 +msgid "Please enter a link URL:" +msgstr "Vul een internetadres/URL in:" -#: ../../include/enotify.php:286 -#, 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/conversation.php:1156 +msgid "Please enter a video link/URL:" +msgstr "Vul een videolink/URL in:" -#: ../../include/enotify.php:287 -#, 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/conversation.php:1157 +msgid "Please enter an audio link/URL:" +msgstr "Vul een audiolink/URL in:" -#: ../../include/enotify.php:293 -msgid "Name:" -msgstr "Naam:" +#: ../../include/conversation.php:1158 +msgid "Tag term:" +msgstr "Tag:" -#: ../../include/enotify.php:294 -msgid "Photo:" -msgstr "Foto:" +#: ../../include/conversation.php:1159 ../../mod/filer.php:48 +msgid "Save to Folder:" +msgstr "Bewaar in map: " -#: ../../include/enotify.php:297 -#, 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/conversation.php:1160 +msgid "Where are you right now?" +msgstr "Waar bevind je je op dit moment?" -#: ../../include/enotify.php:511 -msgid "[Hubzilla:Notify]" -msgstr "[Hubzilla:Notificatie]" +#: ../../include/conversation.php:1161 ../../mod/mail.php:195 +#: ../../mod/mail.php:309 ../../mod/editpost.php:56 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Verloopt op DD-MM-YYYY om HH:MM" -#: ../../include/ItemObject.php:130 -msgid "Save to Folder" -msgstr "In map opslaan" +#: ../../include/conversation.php:1169 ../../include/page_widgets.php:40 +#: ../../include/ItemObject.php:706 ../../mod/editwebpage.php:212 +#: ../../mod/photos.php:1049 ../../mod/editblock.php:171 +#: ../../mod/webpages.php:188 ../../mod/editpost.php:149 +#: ../../mod/events.php:473 +msgid "Preview" +msgstr "Voorvertoning" -#: ../../include/ItemObject.php:151 -msgid "I will attend" -msgstr "Aanwezig" +#: ../../include/conversation.php:1192 ../../mod/blocks.php:154 +#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 +#: ../../mod/layouts.php:184 +msgid "Share" +msgstr "Delen" -#: ../../include/ItemObject.php:151 -msgid "I will not attend" -msgstr "Niet aanwezig" +#: ../../include/conversation.php:1194 +msgid "Page link name" +msgstr "Linknaam pagina" -#: ../../include/ItemObject.php:151 -msgid "I might attend" -msgstr "Mogelijk aanwezig" +#: ../../include/conversation.php:1197 +msgid "Post as" +msgstr "Bericht plaatsen als" -#: ../../include/ItemObject.php:161 -msgid "I agree" -msgstr "Eens" +#: ../../include/conversation.php:1199 ../../include/ItemObject.php:698 +#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:136 +#: ../../mod/editlayout.php:135 ../../mod/editpost.php:113 +msgid "Bold" +msgstr "Vet" -#: ../../include/ItemObject.php:161 -msgid "I disagree" -msgstr "Oneens" +#: ../../include/conversation.php:1200 ../../include/ItemObject.php:699 +#: ../../mod/editwebpage.php:178 ../../mod/editblock.php:137 +#: ../../mod/editlayout.php:136 ../../mod/editpost.php:114 +msgid "Italic" +msgstr "Cursief" -#: ../../include/ItemObject.php:161 -msgid "I abstain" -msgstr "Onthouding" +#: ../../include/conversation.php:1201 ../../include/ItemObject.php:700 +#: ../../mod/editwebpage.php:179 ../../mod/editblock.php:138 +#: ../../mod/editlayout.php:137 ../../mod/editpost.php:115 +msgid "Underline" +msgstr "Onderstrepen" -#: ../../include/ItemObject.php:212 -msgid "Add Star" -msgstr "Ster toevoegen" +#: ../../include/conversation.php:1202 ../../include/ItemObject.php:701 +#: ../../mod/editwebpage.php:180 ../../mod/editblock.php:139 +#: ../../mod/editlayout.php:138 ../../mod/editpost.php:116 +msgid "Quote" +msgstr "Citeren" -#: ../../include/ItemObject.php:213 -msgid "Remove Star" -msgstr "Ster verwijderen" +#: ../../include/conversation.php:1203 ../../include/ItemObject.php:702 +#: ../../mod/editwebpage.php:181 ../../mod/editblock.php:140 +#: ../../mod/editlayout.php:139 ../../mod/editpost.php:117 +msgid "Code" +msgstr "Broncode" -#: ../../include/ItemObject.php:214 -msgid "Toggle Star Status" -msgstr "Ster toevoegen of verwijderen" +#: ../../include/conversation.php:1204 ../../mod/editwebpage.php:182 +#: ../../mod/editblock.php:142 ../../mod/editlayout.php:140 +#: ../../mod/editpost.php:118 +msgid "Upload photo" +msgstr "Foto uploaden" -#: ../../include/ItemObject.php:218 -msgid "starred" -msgstr "met ster" +#: ../../include/conversation.php:1205 +msgid "upload photo" +msgstr "foto uploaden" -#: ../../include/ItemObject.php:236 -msgid "Add Tag" -msgstr "Tag toevoegen" +#: ../../include/conversation.php:1206 ../../mod/editwebpage.php:183 +#: ../../mod/editblock.php:143 ../../mod/editlayout.php:141 +#: ../../mod/mail.php:240 ../../mod/mail.php:369 ../../mod/editpost.php:119 +msgid "Attach file" +msgstr "Bestand toevoegen" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 -msgid "I like this (toggle)" -msgstr "Vind ik leuk" +#: ../../include/conversation.php:1207 +msgid "attach file" +msgstr "bestand toevoegen" -#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:317 -msgid "like" -msgstr "vind dit leuk" +#: ../../include/conversation.php:1208 ../../mod/editwebpage.php:184 +#: ../../mod/editblock.php:144 ../../mod/editlayout.php:142 +#: ../../mod/mail.php:241 ../../mod/mail.php:370 ../../mod/editpost.php:120 +msgid "Insert web link" +msgstr "Weblink invoegen" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 -msgid "I don't like this (toggle)" -msgstr "Vind ik niet leuk" +#: ../../include/conversation.php:1209 +msgid "web link" +msgstr "Weblink" -#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:318 -msgid "dislike" -msgstr "vind dit niet leuk" +#: ../../include/conversation.php:1210 +msgid "Insert video link" +msgstr "Videolink invoegen" -#: ../../include/ItemObject.php:259 -msgid "Share This" -msgstr "Delen" +#: ../../include/conversation.php:1211 +msgid "video link" +msgstr "videolink" -#: ../../include/ItemObject.php:259 -msgid "share" -msgstr "delen" +#: ../../include/conversation.php:1212 +msgid "Insert audio link" +msgstr "Audiolink invoegen" -#: ../../include/ItemObject.php:277 -#, php-format -msgid "%d comment" -msgid_plural "%d comments" -msgstr[0] "%d reactie" -msgstr[1] "%d reacties weergeven" +#: ../../include/conversation.php:1213 +msgid "audio link" +msgstr "audiolink" -#: ../../include/ItemObject.php:302 ../../include/ItemObject.php:303 -#, php-format -msgid "View %s's profile - %s" -msgstr "Profiel van %s bekijken - %s" +#: ../../include/conversation.php:1214 ../../mod/editwebpage.php:188 +#: ../../mod/editblock.php:148 ../../mod/editlayout.php:146 +#: ../../mod/editpost.php:124 +msgid "Set your location" +msgstr "Locatie instellen" -#: ../../include/ItemObject.php:306 -msgid "to" -msgstr "aan" +#: ../../include/conversation.php:1215 +msgid "set location" +msgstr "locatie instellen" -#: ../../include/ItemObject.php:307 -msgid "via" -msgstr "via" +#: ../../include/conversation.php:1216 ../../mod/editpost.php:126 +msgid "Toggle voting" +msgstr "Peiling in- of uitschakelen" -#: ../../include/ItemObject.php:308 -msgid "Wall-to-Wall" -msgstr "Kanaal-naar-kanaal" +#: ../../include/conversation.php:1219 ../../mod/editwebpage.php:189 +#: ../../mod/editblock.php:149 ../../mod/editlayout.php:147 +#: ../../mod/editpost.php:125 +msgid "Clear browser location" +msgstr "Locatie van webbrowser wissen" -#: ../../include/ItemObject.php:309 -msgid "via Wall-To-Wall:" -msgstr "via kanaal-naar-kanaal" +#: ../../include/conversation.php:1220 +msgid "clear location" +msgstr "locatie wissen" -#: ../../include/ItemObject.php:312 -msgid "Delivery Report" -msgstr "Afleveringsrapport" +#: ../../include/conversation.php:1222 ../../mod/editwebpage.php:205 +#: ../../mod/editblock.php:162 ../../mod/editpost.php:141 +msgid "Title (optional)" +msgstr "Titel (optioneel)" -#: ../../include/ItemObject.php:348 -msgid "Save Bookmarks" -msgstr "Bladwijzers opslaan" +#: ../../include/conversation.php:1226 ../../mod/editwebpage.php:207 +#: ../../mod/editblock.php:165 ../../mod/editlayout.php:163 +#: ../../mod/editpost.php:143 +msgid "Categories (optional, comma-separated list)" +msgstr "Categorieën (optioneel, door komma's gescheiden lijst)" -#: ../../include/ItemObject.php:349 -msgid "Add to Calendar" -msgstr "Aan agenda toevoegen" +#: ../../include/conversation.php:1228 ../../mod/editwebpage.php:191 +#: ../../mod/editblock.php:151 ../../mod/editlayout.php:149 +#: ../../mod/editpost.php:130 ../../mod/events.php:474 +msgid "Permission settings" +msgstr "Permissies" -#: ../../include/ItemObject.php:358 -msgid "Mark all seen" -msgstr "Markeer alles als bekeken" +#: ../../include/conversation.php:1229 +msgid "permissions" +msgstr "permissies" + +#: ../../include/conversation.php:1237 ../../mod/editwebpage.php:200 +#: ../../mod/editblock.php:159 ../../mod/editlayout.php:156 +#: ../../mod/editpost.php:138 +msgid "Public post" +msgstr "Openbaar bericht" + +#: ../../include/conversation.php:1239 ../../mod/editwebpage.php:208 +#: ../../mod/editblock.php:166 ../../mod/editlayout.php:164 +#: ../../mod/editpost.php:144 +msgid "Example: bob@example.com, mary@example.com" +msgstr "Voorbeeld: bob@voorbeeld.nl, mary@voorbeeld.be" + +#: ../../include/conversation.php:1252 ../../mod/editwebpage.php:217 +#: ../../mod/editblock.php:176 ../../mod/editlayout.php:173 +#: ../../mod/mail.php:245 ../../mod/mail.php:374 ../../mod/editpost.php:155 +msgid "Set expiration date" +msgstr "Verloopdatum instellen" + +#: ../../include/conversation.php:1255 +msgid "Set publish date" +msgstr "Publicatiedatum instellen" + +#: ../../include/conversation.php:1257 ../../include/ItemObject.php:709 +#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:157 +msgid "Encrypt text" +msgstr "Tekst versleutelen" + +#: ../../include/conversation.php:1259 ../../mod/editpost.php:159 +msgid "OK" +msgstr "OK" + +#: ../../include/conversation.php:1260 ../../mod/fbrowser.php:82 +#: ../../mod/fbrowser.php:117 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 +#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/editpost.php:160 +msgid "Cancel" +msgstr "Annuleren" + +#: ../../include/conversation.php:1503 +msgid "Discover" +msgstr "Ontdekken" + +#: ../../include/conversation.php:1506 +msgid "Imported public streams" +msgstr "Openbare streams importeren" + +#: ../../include/conversation.php:1511 +msgid "Commented Order" +msgstr "Nieuwe reacties bovenaan" + +#: ../../include/conversation.php:1514 +msgid "Sort by Comment Date" +msgstr "Berichten met nieuwe reacties bovenaan" + +#: ../../include/conversation.php:1518 +msgid "Posted Order" +msgstr "Nieuwe berichten bovenaan" + +#: ../../include/conversation.php:1521 +msgid "Sort by Post Date" +msgstr "Nieuwe berichten bovenaan" + +#: ../../include/conversation.php:1529 +msgid "Posts that mention or involve you" +msgstr "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent" + +#: ../../include/conversation.php:1535 ../../mod/connections.php:72 +#: ../../mod/connections.php:82 ../../mod/menu.php:112 +msgid "New" +msgstr "Nieuw" + +#: ../../include/conversation.php:1538 +msgid "Activity Stream - by date" +msgstr "Activiteitenstroom - volgens datum" + +#: ../../include/conversation.php:1544 +msgid "Starred" +msgstr "Met ster" + +#: ../../include/conversation.php:1547 +msgid "Favourite Posts" +msgstr "Favoriete berichten" + +#: ../../include/conversation.php:1554 +msgid "Spam" +msgstr "Spam" + +#: ../../include/conversation.php:1557 +msgid "Posts flagged as SPAM" +msgstr "Berichten gemarkeerd als SPAM" + +#: ../../include/conversation.php:1601 ../../mod/admin.php:973 +msgid "Channel" +msgstr "Kanaal" + +#: ../../include/conversation.php:1604 +msgid "Status Messages and Posts" +msgstr "Berichten in dit kanaal" -#: ../../include/ItemObject.php:364 ../../mod/photos.php:1212 +#: ../../include/conversation.php:1613 +msgid "About" +msgstr "Over" + +#: ../../include/conversation.php:1616 +msgid "Profile Details" +msgstr "Profiel" + +#: ../../include/conversation.php:1622 ../../include/nav.php:92 +#: ../../include/apps.php:139 ../../mod/fbrowser.php:25 +msgid "Photos" +msgstr "Foto's" + +#: ../../include/conversation.php:1625 ../../include/photos.php:483 +msgid "Photo Albums" +msgstr "Fotoalbums" + +#: ../../include/conversation.php:1632 +msgid "Files and Storage" +msgstr "Bestanden en opslagruimte" + +#: ../../include/conversation.php:1642 ../../include/conversation.php:1645 +msgid "Chatrooms" +msgstr "Chatkanalen" + +#: ../../include/conversation.php:1655 ../../include/nav.php:103 +#: ../../include/apps.php:129 +msgid "Bookmarks" +msgstr "Bladwijzers" + +#: ../../include/conversation.php:1658 +msgid "Saved Bookmarks" +msgstr "Opgeslagen bladwijzers" + +#: ../../include/conversation.php:1665 ../../include/nav.php:107 +#: ../../include/apps.php:136 ../../mod/webpages.php:178 +msgid "Webpages" +msgstr "Webpagina's" + +#: ../../include/conversation.php:1668 +msgid "Manage Webpages" +msgstr "Webpagina's beheren" + +#: ../../include/conversation.php:1697 ../../include/ItemObject.php:175 +#: ../../include/ItemObject.php:187 ../../mod/photos.php:1082 +#: ../../mod/photos.php:1094 +msgid "View all" +msgstr "Toon alles" + +#: ../../include/conversation.php:1724 ../../include/ItemObject.php:184 +#: ../../mod/photos.php:1091 msgctxt "noun" -msgid "Likes" -msgstr "vinden dit leuk" +msgid "Dislike" +msgid_plural "Dislikes" +msgstr[0] "vindt dit niet leuk" +msgstr[1] "vinden dit niet leuk" -#: ../../include/ItemObject.php:365 ../../mod/photos.php:1213 +#: ../../include/conversation.php:1727 msgctxt "noun" -msgid "Dislikes" -msgstr "vinden dit niet leuk" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "aanwezig" +msgstr[1] "aanwezig" -#: ../../include/ItemObject.php:680 ../../mod/photos.php:1045 -#: ../../mod/photos.php:1163 -msgid "This is you" -msgstr "Dit ben jij" +#: ../../include/conversation.php:1730 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "niet aanwezig" +msgstr[1] "niet aanwezig" -#: ../../include/ItemObject.php:689 -msgid "Image" -msgstr "Afbeelding" +#: ../../include/conversation.php:1733 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "nog niet beslist" +msgstr[1] "nog niet beslist" -#: ../../include/ItemObject.php:690 -msgid "Insert Link" -msgstr "Link invoegen" +#: ../../include/conversation.php:1736 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "eens" +msgstr[1] "eens" -#: ../../include/ItemObject.php:691 -msgid "Video" -msgstr "Video" +#: ../../include/conversation.php:1739 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "oneens" +msgstr[1] "oneens" + +#: ../../include/conversation.php:1742 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "onthouding" +msgstr[1] "onthoudingen" + +#: ../../include/auth.php:132 +msgid "Logged out." +msgstr "Uitgelogd." + +#: ../../include/auth.php:273 +msgid "Failed authentication" +msgstr "Mislukte authenticatie" + +#: ../../include/auth.php:287 ../../mod/openid.php:189 +msgid "Login failed." +msgstr "Inloggen mislukt." + +#: ../../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/zot.php:685 msgid "Invalid data packet" @@ -2773,19 +2864,15 @@ 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" -#: ../../include/api.php:1389 -msgid "Public Timeline" -msgstr "Openbare tijdlijn" - #: ../../include/bbcode.php:123 ../../include/bbcode.php:794 #: ../../include/bbcode.php:797 ../../include/bbcode.php:802 #: ../../include/bbcode.php:805 ../../include/bbcode.php:808 @@ -2849,116 +2936,6 @@ msgstr "$1 spoiler" msgid "$1 wrote:" msgstr "$1 schreef:" -#: ../../include/account.php:27 -msgid "Not a valid email address" -msgstr "Geen geldig e-mailadres" - -#: ../../include/account.php:29 -msgid "Your email domain is not among those allowed on this site" -msgstr "Jouw e-maildomein is op deze hub niet toegestaan" - -#: ../../include/account.php:35 -msgid "Your email address is already registered at this site." -msgstr "Jouw e-mailadres is al op deze hub geregistreerd." - -#: ../../include/account.php:67 -msgid "An invitation is required." -msgstr "Een uitnodiging is vereist" - -#: ../../include/account.php:71 -msgid "Invitation could not be verified." -msgstr "Uitnodiging kon niet geverifieerd worden" - -#: ../../include/account.php:121 -msgid "Please enter the required information." -msgstr "Vul de vereiste informatie in." - -#: ../../include/account.php:188 -msgid "Failed to store account information." -msgstr "Account-informatie kon niet opgeslagen worden." - -#: ../../include/account.php:248 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:314 -#, php-format -msgid "Registration request at %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:338 -msgid "your registration password" -msgstr "jouw registratiewachtwoord" - -#: ../../include/account.php:341 ../../include/account.php:401 -#, php-format -msgid "Registration details for %s" -msgstr "Registratiegegevens voor %s" - -#: ../../include/account.php:410 -msgid "Account approved." -msgstr "Account goedgekeurd" - -#: ../../include/account.php:449 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registratie ingetrokken voor %s" - -#: ../../include/account.php:494 -msgid "Account verified. Please login." -msgstr "Account is geverifieerd. Je kan inloggen." - -#: ../../include/account.php:707 ../../include/account.php:709 -msgid "Click here to upgrade." -msgstr "Klik hier om te upgraden." - -#: ../../include/account.php:715 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden." - -#: ../../include/account.php:720 -msgid "This action is not available under your subscription plan." -msgstr "Deze handeling is niet mogelijk met jouw abonnement." - -#: ../../include/follow.php:28 -msgid "Channel is blocked on this site." -msgstr "Kanaal is op deze hub geblokkeerd." - -#: ../../include/follow.php:33 -msgid "Channel location missing." -msgstr "Ontbrekende kanaallocatie." - -#: ../../include/follow.php:82 -msgid "Response from remote channel was incomplete." -msgstr "Antwoord van het kanaal op afstand was niet volledig." - -#: ../../include/follow.php:99 -msgid "Channel was deleted and no longer exists." -msgstr "Kanaal is verwijderd en bestaat niet meer." - -#: ../../include/follow.php:152 ../../include/follow.php:180 -msgid "Protocol disabled." -msgstr "Protocol uitgeschakeld." - -#: ../../include/follow.php:170 -msgid "Channel discovery failed." -msgstr "Kanaal ontdekken mislukt." - -#: ../../include/follow.php:196 -msgid "local account not found." -msgstr "lokale account niet gevonden." - -#: ../../include/follow.php:220 -msgid "Cannot connect to yourself." -msgstr "Kan niet met jezelf verbinden" - -#: ../../include/security.php:381 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." -msgstr "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. " - #: ../../include/contact_widgets.php:14 #, php-format msgid "%d invitation available" @@ -2966,7 +2943,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" @@ -2986,12 +2963,12 @@ msgstr "Verbinden/volgen" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Voorbeeld: Robert Morgenstein, vissen" -#: ../../include/contact_widgets.php:26 ../../mod/directory.php:379 -#: ../../mod/directory.php:384 ../../mod/connections.php:266 +#: ../../include/contact_widgets.php:26 ../../mod/directory.php:381 +#: ../../mod/directory.php:386 ../../mod/connections.php:266 msgid "Find" msgstr "Vinden" -#: ../../include/contact_widgets.php:27 ../../mod/directory.php:383 +#: ../../include/contact_widgets.php:27 ../../mod/directory.php:385 #: ../../mod/suggest.php:60 msgid "Channel Suggestions" msgstr "Voorgestelde kanalen" @@ -3008,16 +2985,6 @@ msgstr "Vrienden uitnodigen" 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 -msgid "Everything" -msgstr "Alles" - -#: ../../include/contact_widgets.php:95 ../../include/taxonomy.php:271 -#: ../../include/widgets.php:35 -msgid "Categories" -msgstr "Categorieën" - #: ../../include/contact_widgets.php:128 #, php-format msgid "%d connection in common" @@ -3029,1248 +2996,1414 @@ msgstr[1] "%d gemeenschappelijke connecties" msgid "show more" msgstr "meer connecties weergeven" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"<strong>may</strong> apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken." - -#: ../../include/group.php:232 -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 -msgid "All Channels" -msgstr "Alle kanalen" - -#: ../../include/group.php:273 -msgid "edit" -msgstr "bewerken" - -#: ../../include/group.php:295 -msgid "Collections" -msgstr "Collecties" - -#: ../../include/group.php:296 -msgid "Edit collection" -msgstr "Collectie bewerken" - -#: ../../include/group.php:297 -msgid "Add new collection" -msgstr "Nieuwe collectie toevoegen" - -#: ../../include/group.php:298 -msgid "Channels not in any collection" -msgstr "Kanalen die zich in geen enkele collectie bevinden" - -#: ../../include/group.php:300 ../../include/widgets.php:274 -msgid "add" -msgstr "toevoegen" - -#: ../../include/message.php:18 -msgid "No recipient provided." -msgstr "Geen ontvanger opgegeven." - -#: ../../include/message.php:23 -msgid "[no subject]" -msgstr "[geen onderwerp]" - -#: ../../include/message.php:43 -msgid "Unable to determine sender." -msgstr "Afzender kan niet bepaald worden." - -#: ../../include/message.php:218 -msgid "Stored post could not be verified." -msgstr "Opgeslagen bericht kon niet worden geverifieerd." - -#: ../../include/identity.php:32 -msgid "Unable to obtain identity information from database" -msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen" - -#: ../../include/identity.php:66 -msgid "Empty name" -msgstr "Ontbrekende naam" +#: ../../include/dir_fns.php:139 +msgid "Directory Options" +msgstr "Opties kanalengids" -#: ../../include/identity.php:69 -msgid "Name too long" -msgstr "Naam te lang" +#: ../../include/dir_fns.php:141 +msgid "Safe Mode" +msgstr "Veilig zoeken" -#: ../../include/identity.php:181 -msgid "No account identifier" -msgstr "Geen account-identificator" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/connedit.php:635 ../../mod/connedit.php:684 ../../mod/api.php:106 +#: ../../mod/photos.php:626 ../../mod/admin.php:410 ../../mod/settings.php:577 +#: ../../mod/menu.php:96 ../../mod/menu.php:153 ../../mod/events.php:462 +#: ../../mod/events.php:463 ../../mod/events.php:472 ../../mod/mitem.php:154 +#: ../../mod/mitem.php:155 ../../mod/mitem.php:228 ../../mod/mitem.php:229 +#: ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "No" +msgstr "Nee" -#: ../../include/identity.php:193 -msgid "Nickname is required." -msgstr "Bijnaam is verplicht" +#: ../../include/dir_fns.php:141 ../../include/dir_fns.php:142 +#: ../../include/dir_fns.php:143 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/removeme.php:60 +#: ../../mod/api.php:105 ../../mod/photos.php:626 ../../mod/admin.php:412 +#: ../../mod/settings.php:577 ../../mod/menu.php:96 ../../mod/menu.php:153 +#: ../../mod/events.php:462 ../../mod/events.php:463 ../../mod/events.php:472 +#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 +#: ../../mod/mitem.php:229 ../../view/theme/redbasic/php/config.php:104 +#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1490 +msgid "Yes" +msgstr "Ja" -#: ../../include/identity.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Deze naam is gereserveerd. Kies een andere." +#: ../../include/dir_fns.php:142 +msgid "Public Forums Only" +msgstr "Alleen openbare forums" -#: ../../include/identity.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik." +#: ../../include/dir_fns.php:143 +msgid "This Website Only" +msgstr "Alleen deze hub" -#: ../../include/identity.php:288 -msgid "Unable to retrieve created identity" -msgstr "Niet in staat om aangemaakte identiteit te vinden" +#: ../../include/enotify.php:96 +#, php-format +msgid "%s <!item_type!>" +msgstr "%s <!item_type!>" -#: ../../include/identity.php:346 -msgid "Default Profile" -msgstr "Standaardprofiel" +#: ../../include/enotify.php:100 +#, php-format +msgid "[Hubzilla:Notify] New mail received at %s" +msgstr "[Hubzilla:Notificatie] Nieuw privébericht ontvangen op %s" -#: ../../include/identity.php:769 -msgid "Requested channel is not available." -msgstr "Opgevraagd kanaal is niet beschikbaar." +#: ../../include/enotify.php:102 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." +msgstr "%1$s, %2$s zond jou een nieuw privébericht om %3$s." -#: ../../include/identity.php:815 ../../mod/achievements.php:11 -#: ../../mod/filestorage.php:54 ../../mod/hcard.php:8 ../../mod/layouts.php:29 -#: ../../mod/editblock.php:29 ../../mod/profile.php:16 -#: ../../mod/webpages.php:29 ../../mod/blocks.php:29 -#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28 -#: ../../mod/connect.php:13 -msgid "Requested profile is not available." -msgstr "Opgevraagd profiel is niet beschikbaar" +#: ../../include/enotify.php:103 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s zond jou %2$s." -#: ../../include/identity.php:978 ../../mod/profiles.php:774 -msgid "Change profile photo" -msgstr "Profielfoto veranderen" +#: ../../include/enotify.php:103 +msgid "a private message" +msgstr "een privébericht" -#: ../../include/identity.php:984 -msgid "Profiles" -msgstr "Profielen" +#: ../../include/enotify.php:104 +#, php-format +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/identity.php:984 -msgid "Manage/edit profiles" -msgstr "Profielen beheren/bewerken" +#: ../../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/identity.php:985 ../../mod/profiles.php:775 -msgid "Create New Profile" -msgstr "Nieuw profiel aanmaken" +#: ../../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/identity.php:988 ../../include/nav.php:90 -msgid "Edit Profile" -msgstr "Profiel bewerken" +#: ../../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/identity.php:1000 ../../mod/profiles.php:786 -msgid "Profile Image" -msgstr "Profielfoto" +#: ../../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/identity.php:1003 -msgid "visible to everybody" -msgstr "Voor iedereen zichtbaar" +#: ../../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/identity.php:1004 ../../mod/profiles.php:669 -#: ../../mod/profiles.php:790 -msgid "Edit visibility" -msgstr "Zichtbaarheid bewerken" +#: ../../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/identity.php:1020 ../../include/identity.php:1260 -msgid "Gender:" -msgstr "Geslacht:" +#: ../../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/identity.php:1021 ../../include/identity.php:1304 -msgid "Status:" -msgstr "Status:" +#: ../../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/identity.php:1022 ../../include/identity.php:1315 -msgid "Homepage:" -msgstr "Homepagina:" +#: ../../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/identity.php:1023 -msgid "Online Now" -msgstr "Nu online" +#: ../../include/enotify.php:226 +#, php-format +msgid "[Hubzilla:Notify] %s tagged you" +msgstr "[Hubzilla:Notificatie] %s heeft je genoemd" -#: ../../include/identity.php:1107 ../../include/identity.php:1185 -#: ../../mod/ping.php:318 -msgid "g A l F d" -msgstr "G:i, l d F" +#: ../../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/identity.php:1108 ../../include/identity.php:1186 -msgid "F d" -msgstr "d F" +#: ../../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/identity.php:1153 ../../include/identity.php:1225 -#: ../../mod/ping.php:341 -msgid "[today]" -msgstr "[vandaag]" +#: ../../include/enotify.php:240 +#, php-format +msgid "[Hubzilla:Notify] %1$s poked you" +msgstr "[Hubzilla:Notificatie] %1$s heeft je aangestoten" -#: ../../include/identity.php:1164 -msgid "Birthday Reminders" -msgstr "Verjaardagsherinneringen" +#: ../../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/identity.php:1165 -msgid "Birthdays this week:" -msgstr "Verjaardagen deze week:" +#: ../../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/identity.php:1218 -msgid "[No description]" -msgstr "[Geen omschrijving]" +#: ../../include/enotify.php:258 +#, php-format +msgid "[Hubzilla:Notify] %s tagged your post" +msgstr "[Hubzilla:Notificatie] %s heeft jouw bericht getagd" -#: ../../include/identity.php:1236 -msgid "Event Reminders" -msgstr "Herinneringen" +#: ../../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/identity.php:1237 -msgid "Events this week:" -msgstr "Gebeurtenissen deze week:" +#: ../../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/identity.php:1258 ../../mod/settings.php:1027 -msgid "Full Name:" -msgstr "Volledige naam:" +#: ../../include/enotify.php:272 +msgid "[Hubzilla:Notify] Introduction received" +msgstr "[Hubzilla:Notificatie] Connectieverzoek ontvangen" -#: ../../include/identity.php:1265 -msgid "Like this channel" -msgstr "Vind dit kanaal leuk" +#: ../../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/identity.php:1289 -msgid "j F, Y" -msgstr "F j Y" +#: ../../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/identity.php:1290 -msgid "j F" -msgstr "F j" +#: ../../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/identity.php:1297 -msgid "Birthday:" -msgstr "Geboortedatum:" +#: ../../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/identity.php:1301 ../../mod/directory.php:297 -msgid "Age:" -msgstr "Leeftijd:" +#: ../../include/enotify.php:287 +msgid "[Hubzilla:Notify] Friend suggestion received" +msgstr "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen" -#: ../../include/identity.php:1310 +#: ../../include/enotify.php:288 #, php-format -msgid "for %1$d %2$s" -msgstr "voor %1$d %2$s" - -#: ../../include/identity.php:1313 ../../mod/profiles.php:691 -msgid "Sexual Preference:" -msgstr "Seksuele voorkeur:" +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/identity.php:1317 ../../mod/directory.php:313 -#: ../../mod/profiles.php:693 -msgid "Hometown:" -msgstr "Oorspronkelijk uit:" +#: ../../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/identity.php:1319 -msgid "Tags:" -msgstr "Tags:" +#: ../../include/enotify.php:295 +msgid "Name:" +msgstr "Naam:" -#: ../../include/identity.php:1321 ../../mod/profiles.php:694 -msgid "Political Views:" -msgstr "Politieke overtuigingen:" +#: ../../include/enotify.php:296 +msgid "Photo:" +msgstr "Foto:" -#: ../../include/identity.php:1323 -msgid "Religion:" -msgstr "Religie:" +#: ../../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/identity.php:1325 ../../mod/directory.php:315 -msgid "About:" -msgstr "Over:" +#: ../../include/enotify.php:514 +msgid "[Hubzilla:Notify]" +msgstr "[Hubzilla:Notificatie]" -#: ../../include/identity.php:1327 -msgid "Hobbies/Interests:" -msgstr "Hobby's/interesses:" +#: ../../include/follow.php:28 +msgid "Channel is blocked on this site." +msgstr "Kanaal is op deze hub geblokkeerd." -#: ../../include/identity.php:1329 ../../mod/profiles.php:697 -msgid "Likes:" -msgstr "Houdt van:" +#: ../../include/follow.php:33 +msgid "Channel location missing." +msgstr "Ontbrekende kanaallocatie." -#: ../../include/identity.php:1331 ../../mod/profiles.php:698 -msgid "Dislikes:" -msgstr "Houdt niet van:" +#: ../../include/follow.php:82 +msgid "Response from remote channel was incomplete." +msgstr "Antwoord van het kanaal op afstand was niet volledig." -#: ../../include/identity.php:1333 -msgid "Contact information and Social Networks:" -msgstr "Contactinformatie en sociale netwerken:" +#: ../../include/follow.php:99 +msgid "Channel was deleted and no longer exists." +msgstr "Kanaal is verwijderd en bestaat niet meer." -#: ../../include/identity.php:1335 -msgid "My other channels:" -msgstr "Mijn andere kanalen" +#: ../../include/follow.php:152 ../../include/follow.php:180 +msgid "Protocol disabled." +msgstr "Protocol uitgeschakeld." -#: ../../include/identity.php:1337 -msgid "Musical interests:" -msgstr "Muzikale interesses:" +#: ../../include/follow.php:170 +msgid "Channel discovery failed." +msgstr "Kanaal ontdekken mislukt." -#: ../../include/identity.php:1339 -msgid "Books, literature:" -msgstr "Boeken, literatuur:" +#: ../../include/follow.php:196 +msgid "local account not found." +msgstr "lokale account niet gevonden." -#: ../../include/identity.php:1341 -msgid "Television:" -msgstr "Televisie:" +#: ../../include/follow.php:220 +msgid "Cannot connect to yourself." +msgstr "Kan niet met jezelf verbinden" -#: ../../include/identity.php:1343 -msgid "Film/dance/culture/entertainment:" -msgstr "Films/dansen/cultuur/vermaak:" +#: ../../include/oembed.php:213 +msgid "Embedded content" +msgstr "Ingesloten inhoud" -#: ../../include/identity.php:1345 -msgid "Love/Romance:" -msgstr "Liefde/romantiek:" +#: ../../include/oembed.php:222 +msgid "Embedding disabled" +msgstr "Insluiten uitgeschakeld" -#: ../../include/identity.php:1347 -msgid "Work/employment:" -msgstr "Werk/beroep:" +#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1485 +msgid "Logout" +msgstr "Uitloggen" -#: ../../include/identity.php:1349 -msgid "School/education:" -msgstr "School/opleiding:" +#: ../../include/nav.php:82 ../../include/nav.php:114 +msgid "End this session" +msgstr "Beëindig deze sessie" -#: ../../include/identity.php:1369 -msgid "Like this thing" -msgstr "Vind dit ding leuk" +#: ../../include/nav.php:85 ../../include/nav.php:145 +msgid "Home" +msgstr "Home" -#: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 -msgid "Tags" -msgstr "Tags" +#: ../../include/nav.php:85 +msgid "Your posts and conversations" +msgstr "Jouw berichten en conversaties" -#: ../../include/taxonomy.php:294 -msgid "Keywords" -msgstr "Trefwoorden" +#: ../../include/nav.php:86 +msgid "Your profile page" +msgstr "Jouw profielpagina" -#: ../../include/taxonomy.php:315 -msgid "have" -msgstr "heb" +#: ../../include/nav.php:88 +msgid "Edit Profiles" +msgstr "Bewerk profielen" -#: ../../include/taxonomy.php:315 -msgid "has" -msgstr "heeft" +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" +msgstr "Beheer/wijzig profielen" -#: ../../include/taxonomy.php:316 -msgid "want" -msgstr "wil" +#: ../../include/nav.php:90 +msgid "Edit your profile" +msgstr "Jouw profiel bewerken" -#: ../../include/taxonomy.php:316 -msgid "wants" -msgstr "wil" +#: ../../include/nav.php:92 +msgid "Your photos" +msgstr "Jouw foto's" -#: ../../include/taxonomy.php:317 -msgid "likes" -msgstr "vindt dit leuk" +#: ../../include/nav.php:93 +msgid "Your files" +msgstr "Jouw bestanden" -#: ../../include/taxonomy.php:318 -msgid "dislikes" -msgstr "vindt dit niet leuk" +#: ../../include/nav.php:97 ../../include/apps.php:146 +msgid "Chat" +msgstr "Chatten" -#: ../../include/attach.php:246 ../../include/attach.php:332 -msgid "Item was not found." -msgstr "Item niet gevonden" +#: ../../include/nav.php:97 +msgid "Your chatrooms" +msgstr "Jouw chatkanalen" -#: ../../include/attach.php:496 -msgid "No source file." -msgstr "Geen bronbestand." +#: ../../include/nav.php:103 +msgid "Your bookmarks" +msgstr "Jouw bladwijzers" -#: ../../include/attach.php:514 -msgid "Cannot locate file to replace" -msgstr "Kan het te vervangen bestand niet vinden" +#: ../../include/nav.php:107 +msgid "Your webpages" +msgstr "Jouw webpagina's" -#: ../../include/attach.php:532 -msgid "Cannot locate file to revise/update" -msgstr "Kan het bestand wat aangepast moet worden niet vinden" +#: ../../include/nav.php:111 ../../include/apps.php:131 ../../boot.php:1486 +msgid "Login" +msgstr "Inloggen" -#: ../../include/attach.php:667 -#, php-format -msgid "File exceeds size limit of %d" -msgstr "Bestand is groter dan de toegelaten %d" +#: ../../include/nav.php:111 +msgid "Sign in" +msgstr "Inloggen" -#: ../../include/attach.php:681 +#: ../../include/nav.php:128 #, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt." - -#: ../../include/attach.php:837 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken." - -#: ../../include/attach.php:850 -msgid "Stored file could not be verified. Upload failed." -msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt." - -#: ../../include/attach.php:898 ../../include/attach.php:914 -msgid "Path not available." -msgstr "Pad niet beschikbaar." - -#: ../../include/attach.php:960 ../../include/attach.php:1112 -msgid "Empty pathname" -msgstr "Padnaam leeg" +msgid "%s - click to logout" +msgstr "%s - klik om uit te loggen" -#: ../../include/attach.php:986 -msgid "duplicate filename or path" -msgstr "dubbele bestandsnaam of pad" +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "Authenticatie op afstand" -#: ../../include/attach.php:1008 -msgid "Path not found." -msgstr "Pad niet gevonden" +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub" -#: ../../include/attach.php:1066 -msgid "mkdir failed." -msgstr "directory aanmaken (mkdir) mislukt." +#: ../../include/nav.php:145 +msgid "Home Page" +msgstr "Homepage" -#: ../../include/attach.php:1070 -msgid "database storage failed." -msgstr "opslag in database mislukt." +#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1462 +msgid "Register" +msgstr "Registreren" -#: ../../include/attach.php:1118 -msgid "Empty path" -msgstr "Ontbrekend bestandspad" +#: ../../include/nav.php:149 +msgid "Create an account" +msgstr "Maak een account aan" -#: ../../include/bb2diaspora.php:382 -msgid "Attachments:" -msgstr "Bijlagen:" +#: ../../include/nav.php:154 ../../include/apps.php:142 +#: ../../mod/layouts.php:176 ../../mod/help.php:202 ../../mod/help.php:207 +msgid "Help" +msgstr "Hulp" -#: ../../include/bb2diaspora.php:473 -msgid "$Projectname event notification:" -msgstr "Notificatie $Projectname-gebeurtenis:" +#: ../../include/nav.php:154 +msgid "Help and documentation" +msgstr "Hulp en documentatie" -#: ../../include/widgets.php:91 ../../include/nav.php:157 -#: ../../mod/apps.php:36 -msgid "Apps" +#: ../../include/nav.php:157 +msgid "Applications, utilities, links, games" 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:858 -#: ../../include/text.php:870 ../../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/nav.php:159 ../../include/text.php:867 +#: ../../include/text.php:879 ../../include/apps.php:147 +#: ../../mod/search.php:40 +msgid "Search" +msgstr "Zoeken" -#: ../../include/widgets.php:427 ../../mod/connedit.php:566 -msgid "Me" -msgstr "Ik" +#: ../../include/nav.php:159 +msgid "Search site @name, #tag, ?docs, content" +msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie " -#: ../../include/widgets.php:428 ../../mod/connedit.php:567 -msgid "Family" -msgstr "Familie" +#: ../../include/nav.php:162 ../../include/apps.php:141 +msgid "Directory" +msgstr "Kanalengids" -#: ../../include/widgets.php:430 ../../mod/connedit.php:569 -msgid "Acquaintances" -msgstr "Kennissen" +#: ../../include/nav.php:162 +msgid "Channel Directory" +msgstr "Kanalengids" -#: ../../include/widgets.php:431 ../../mod/connedit.php:570 -#: ../../mod/connections.php:88 ../../mod/connections.php:103 -msgid "All" -msgstr "Alles" +#: ../../include/nav.php:174 ../../include/apps.php:133 +msgid "Grid" +msgstr "Grid" -#: ../../include/widgets.php:450 -msgid "Refresh" -msgstr "Vernieuwen" +#: ../../include/nav.php:174 +msgid "Your grid" +msgstr "Jouw grid" -#: ../../include/widgets.php:484 -msgid "Account settings" -msgstr "Account" +#: ../../include/nav.php:175 +msgid "Mark all grid notifications seen" +msgstr "Markeer alle gridnotificaties als bekeken" -#: ../../include/widgets.php:490 -msgid "Channel settings" -msgstr "Kanaal" +#: ../../include/nav.php:177 ../../include/apps.php:137 +msgid "Channel Home" +msgstr "Tijdlijn kanaal" -#: ../../include/widgets.php:496 -msgid "Additional features" -msgstr "Extra functies" +#: ../../include/nav.php:177 +msgid "Channel home" +msgstr "Tijdlijn kanaal" -#: ../../include/widgets.php:502 -msgid "Feature/Addon settings" -msgstr "Extra functie- en plugin-instellingen" +#: ../../include/nav.php:178 +msgid "Mark all channel notifications seen" +msgstr "Alle kanaalnotificaties als gelezen markeren" -#: ../../include/widgets.php:508 -msgid "Display settings" -msgstr "Weergave" +#: ../../include/nav.php:181 ../../mod/connections.php:260 +msgid "Connections" +msgstr "Connecties" -#: ../../include/widgets.php:514 -msgid "Connected apps" -msgstr "Verbonden applicaties" +#: ../../include/nav.php:184 +msgid "Notices" +msgstr "Notificaties" -#: ../../include/widgets.php:520 -msgid "Export channel" -msgstr "Kanaal exporteren" +#: ../../include/nav.php:184 +msgid "Notifications" +msgstr "Notificaties" -#: ../../include/widgets.php:529 ../../mod/connedit.php:674 -msgid "Connection Default Permissions" -msgstr "Standaard permissies voor connecties" +#: ../../include/nav.php:185 +msgid "See all notifications" +msgstr "Alle notificaties weergeven" -#: ../../include/widgets.php:537 -msgid "Premium Channel Settings" -msgstr "Instellingen premiumkanaal" +#: ../../include/nav.php:186 ../../mod/notifications.php:99 +msgid "Mark all system notifications seen" +msgstr "Markeer alle systeemnotificaties als bekeken" -#: ../../include/widgets.php:567 -msgid "Private Mail Menu" +#: ../../include/nav.php:188 ../../include/apps.php:143 +msgid "Mail" 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/nav.php:188 +msgid "Private mail" +msgstr "Privéberichten" -#: ../../include/widgets.php:1160 -msgid "For Developers" -msgstr "Voor ontwikkelaars" +#: ../../include/nav.php:189 +msgid "See all private messages" +msgstr "Alle privéberichten weergeven" -#: ../../include/widgets.php:1185 ../../mod/admin.php:433 -msgid "Site" -msgstr "Hub-instellingen" +#: ../../include/nav.php:190 +msgid "Mark all private messages seen" +msgstr "Markeer alle privéberichten als bekeken" -#: ../../include/widgets.php:1186 -msgid "Accounts" -msgstr "Accounts" +#: ../../include/nav.php:196 ../../include/apps.php:140 +msgid "Events" +msgstr "Agenda" -#: ../../include/widgets.php:1187 ../../mod/admin.php:964 -msgid "Channels" -msgstr "Kanalen" +#: ../../include/nav.php:196 +msgid "Event Calendar" +msgstr "Agenda" -#: ../../include/widgets.php:1188 ../../mod/admin.php:1056 -#: ../../mod/admin.php:1096 -msgid "Plugins" -msgstr "Plug-ins" +#: ../../include/nav.php:197 +msgid "See all events" +msgstr "Alle gebeurtenissen weergeven" -#: ../../include/widgets.php:1189 ../../mod/admin.php:1256 -#: ../../mod/admin.php:1290 -msgid "Themes" -msgstr "Thema's" +#: ../../include/nav.php:198 +msgid "Mark all events seen" +msgstr "Markeer alle gebeurtenissen als bekeken" -#: ../../include/widgets.php:1190 -msgid "Inspect queue" -msgstr "Inspecteer berichtenwachtrij" +#: ../../include/nav.php:200 ../../include/apps.php:132 +#: ../../mod/manage.php:160 +msgid "Channel Manager" +msgstr "Kanaalbeheer" -#: ../../include/widgets.php:1191 -msgid "Profile Config" -msgstr "Profielconfiguratie" +#: ../../include/nav.php:200 +msgid "Manage Your Channels" +msgstr "Beheer je kanalen" -#: ../../include/widgets.php:1192 -msgid "DB updates" -msgstr "Database-updates" +#: ../../include/nav.php:202 +msgid "Account/Channel Settings" +msgstr "Account-/kanaal-instellingen" -#: ../../include/widgets.php:1210 ../../include/widgets.php:1216 -#: ../../mod/admin.php:1375 -msgid "Logs" -msgstr "Logboeken" +#: ../../include/nav.php:210 +msgid "Site Setup and Configuration" +msgstr "Hub instellen en beheren" -#: ../../include/widgets.php:1214 ../../include/nav.php:210 -msgid "Admin" -msgstr "Beheer" +#: ../../include/nav.php:246 +msgid "@name, #tag, ?doc, content" +msgstr "@kanaal, #tag, inhoud, ?hulp" -#: ../../include/widgets.php:1215 -msgid "Plugin Features" -msgstr "Plug-in-opties" +#: ../../include/nav.php:247 +msgid "Please wait..." +msgstr "Wachten aub..." -#: ../../include/widgets.php:1217 -msgid "User registrations waiting for confirmation" -msgstr "Accounts die op goedkeuring wachten" +#: ../../include/security.php:381 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." +msgstr "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. " -#: ../../include/text.php:391 +#: ../../include/text.php:394 msgid "prev" msgstr "vorige" -#: ../../include/text.php:393 +#: ../../include/text.php:396 msgid "first" msgstr "eerste" -#: ../../include/text.php:422 +#: ../../include/text.php:425 msgid "last" msgstr "laatste" -#: ../../include/text.php:425 +#: ../../include/text.php:428 msgid "next" msgstr "volgende" -#: ../../include/text.php:435 +#: ../../include/text.php:438 msgid "older" msgstr "ouder" -#: ../../include/text.php:437 +#: ../../include/text.php:440 msgid "newer" msgstr "nieuwer" -#: ../../include/text.php:775 +#: ../../include/text.php:785 msgid "No connections" msgstr "Geen connecties" -#: ../../include/text.php:787 +#: ../../include/text.php:797 #, php-format msgid "%d Connection" msgid_plural "%d Connections" msgstr[0] "%d connectie" msgstr[1] "%d connecties" -#: ../../include/text.php:800 ../../mod/viewconnections.php:101 +#: ../../include/text.php:810 ../../mod/viewconnections.php:101 msgid "View Connections" msgstr "Connecties weergeven" -#: ../../include/text.php:942 +#: ../../include/text.php:954 msgid "poke" msgstr "aanstoten" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "ping" msgstr "ping" -#: ../../include/text.php:943 +#: ../../include/text.php:955 msgid "pinged" msgstr "gepingd" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prod" msgstr "por" -#: ../../include/text.php:944 +#: ../../include/text.php:956 msgid "prodded" msgstr "gepord" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slap" msgstr "slaan" -#: ../../include/text.php:945 +#: ../../include/text.php:957 msgid "slapped" msgstr "sloeg" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "finger" msgstr "finger" -#: ../../include/text.php:946 +#: ../../include/text.php:958 msgid "fingered" msgstr "gefingerd" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuff" msgstr "afpoeieren" -#: ../../include/text.php:947 +#: ../../include/text.php:959 msgid "rebuffed" msgstr "afgepoeierd" -#: ../../include/text.php:957 +#: ../../include/text.php:969 msgid "happy" msgstr "gelukkig" -#: ../../include/text.php:958 +#: ../../include/text.php:970 msgid "sad" msgstr "bedroefd" -#: ../../include/text.php:959 +#: ../../include/text.php:971 msgid "mellow" msgstr "mellow" -#: ../../include/text.php:960 +#: ../../include/text.php:972 msgid "tired" msgstr "moe" -#: ../../include/text.php:961 +#: ../../include/text.php:973 msgid "perky" msgstr "parmantig" -#: ../../include/text.php:962 +#: ../../include/text.php:974 msgid "angry" msgstr "boos" -#: ../../include/text.php:963 +#: ../../include/text.php:975 msgid "stupified" msgstr "beteuterd" -#: ../../include/text.php:964 +#: ../../include/text.php:976 msgid "puzzled" msgstr "verward" -#: ../../include/text.php:965 +#: ../../include/text.php:977 msgid "interested" msgstr "geïnteresseerd" -#: ../../include/text.php:966 +#: ../../include/text.php:978 msgid "bitter" msgstr "verbitterd" -#: ../../include/text.php:967 +#: ../../include/text.php:979 msgid "cheerful" msgstr "vrolijk" -#: ../../include/text.php:968 +#: ../../include/text.php:980 msgid "alive" msgstr "levendig" -#: ../../include/text.php:969 +#: ../../include/text.php:981 msgid "annoyed" msgstr "geërgerd" -#: ../../include/text.php:970 +#: ../../include/text.php:982 msgid "anxious" msgstr "bezorgd" -#: ../../include/text.php:971 +#: ../../include/text.php:983 msgid "cranky" msgstr "humeurig" -#: ../../include/text.php:972 +#: ../../include/text.php:984 msgid "disturbed" msgstr "verontrust" -#: ../../include/text.php:973 +#: ../../include/text.php:985 msgid "frustrated" msgstr "gefrustreerd " -#: ../../include/text.php:974 +#: ../../include/text.php:986 msgid "depressed" msgstr "gedeprimeerd" -#: ../../include/text.php:975 +#: ../../include/text.php:987 msgid "motivated" msgstr "gemotiveerd" -#: ../../include/text.php:976 +#: ../../include/text.php:988 msgid "relaxed" msgstr "ontspannen" -#: ../../include/text.php:977 +#: ../../include/text.php:989 msgid "surprised" msgstr "verrast" -#: ../../include/text.php:1153 +#: ../../include/text.php:1165 msgid "May" msgstr "mei" -#: ../../include/text.php:1230 ../../include/text.php:1234 +#: ../../include/text.php:1242 ../../include/text.php:1246 msgid "Unknown Attachment" msgstr "Onbekende bijlage" -#: ../../include/text.php:1236 +#: ../../include/text.php:1248 msgid "unknown" msgstr "onbekend" -#: ../../include/text.php:1272 +#: ../../include/text.php:1284 msgid "remove category" msgstr "categorie verwijderen" -#: ../../include/text.php:1349 +#: ../../include/text.php:1361 msgid "remove from file" msgstr "uit map verwijderen" -#: ../../include/text.php:1461 ../../include/text.php:1472 +#: ../../include/text.php:1507 ../../include/text.php:1518 msgid "Click to open/close" msgstr "Klik om te openen of te sluiten" -#: ../../include/text.php:1640 ../../mod/events.php:497 +#: ../../include/text.php:1692 ../../mod/events.php:638 msgid "Link to Source" msgstr "Originele locatie" -#: ../../include/text.php:1661 ../../include/text.php:1732 +#: ../../include/text.php:1713 ../../include/text.php:1785 msgid "default" msgstr "standaard" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 msgid "Page layout" msgstr "Pagina-lay-out" -#: ../../include/text.php:1669 +#: ../../include/text.php:1721 msgid "You can create your own with the layouts tool" msgstr "Je kan jouw eigen lay-out ontwerpen onder lay-outs" -#: ../../include/text.php:1710 +#: ../../include/text.php:1763 msgid "Page content type" msgstr "Opmaaktype pagina" -#: ../../include/text.php:1744 +#: ../../include/text.php:1797 msgid "Select an alternate language" msgstr "Kies een andere taal" -#: ../../include/text.php:1876 +#: ../../include/text.php:1929 msgid "activity" msgstr "activiteit" -#: ../../include/text.php:2171 +#: ../../include/text.php:2224 msgid "Design Tools" msgstr "Ontwerp-hulpmiddelen" -#: ../../include/text.php:2174 ../../mod/blocks.php:147 +#: ../../include/text.php:2227 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Blokken" -#: ../../include/text.php:2175 ../../mod/menu.php:103 +#: ../../include/text.php:2228 ../../mod/menu.php:103 msgid "Menus" msgstr "Menu's" -#: ../../include/text.php:2176 ../../mod/layouts.php:174 +#: ../../include/text.php:2229 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Lay-outs" -#: ../../include/text.php:2177 +#: ../../include/text.php:2230 msgid "Pages" msgstr "Pagina's" -#: ../../include/nav.php:82 ../../include/nav.php:114 ../../boot.php:1502 -msgid "Logout" -msgstr "Uitloggen" +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"<strong>may</strong> apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken." -#: ../../include/nav.php:82 ../../include/nav.php:114 -msgid "End this session" -msgstr "Beëindig deze sessie" +#: ../../include/group.php:232 +msgid "Add new connections to this collection (privacy group)" +msgstr "Voeg nieuwe connecties aan deze collectie toe (privacy-groep)" -#: ../../include/nav.php:85 ../../include/nav.php:145 -msgid "Home" -msgstr "Home" +#: ../../include/group.php:251 ../../mod/admin.php:814 +msgid "All Channels" +msgstr "Alle kanalen" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" -msgstr "Jouw berichten en conversaties" +#: ../../include/group.php:273 +msgid "edit" +msgstr "bewerken" -#: ../../include/nav.php:86 -msgid "Your profile page" -msgstr "Jouw profielpagina" +#: ../../include/group.php:295 +msgid "Collections" +msgstr "Collecties" -#: ../../include/nav.php:88 -msgid "Edit Profiles" -msgstr "Bewerk profielen" +#: ../../include/group.php:296 +msgid "Edit collection" +msgstr "Collectie bewerken" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" -msgstr "Beheer/wijzig profielen" +#: ../../include/group.php:297 +msgid "Add new collection" +msgstr "Nieuwe collectie toevoegen" -#: ../../include/nav.php:90 -msgid "Edit your profile" -msgstr "Jouw profiel bewerken" +#: ../../include/group.php:298 +msgid "Channels not in any collection" +msgstr "Kanalen die zich in geen enkele collectie bevinden" -#: ../../include/nav.php:92 -msgid "Your photos" -msgstr "Jouw foto's" +#: ../../include/page_widgets.php:6 +msgid "New Page" +msgstr "Nieuwe pagina" -#: ../../include/nav.php:93 -msgid "Your files" -msgstr "Jouw bestanden" +#: ../../include/page_widgets.php:39 ../../mod/blocks.php:159 +#: ../../mod/webpages.php:187 ../../mod/layouts.php:188 +msgid "View" +msgstr "Weergeven" -#: ../../include/nav.php:97 -msgid "Your chatrooms" -msgstr "Jouw chatkanalen" +#: ../../include/page_widgets.php:41 ../../mod/webpages.php:189 +msgid "Actions" +msgstr "Acties" -#: ../../include/nav.php:103 -msgid "Your bookmarks" -msgstr "Jouw bladwijzers" +#: ../../include/page_widgets.php:42 ../../mod/webpages.php:190 +msgid "Page Link" +msgstr "Paginalink" -#: ../../include/nav.php:107 -msgid "Your webpages" -msgstr "Jouw webpagina's" +#: ../../include/page_widgets.php:43 +msgid "Title" +msgstr "Titel" -#: ../../include/nav.php:111 -msgid "Sign in" -msgstr "Inloggen" +#: ../../include/page_widgets.php:44 ../../mod/blocks.php:150 +#: ../../mod/webpages.php:192 ../../mod/layouts.php:181 ../../mod/menu.php:110 +msgid "Created" +msgstr "Aangemaakt" -#: ../../include/nav.php:128 +#: ../../include/page_widgets.php:45 ../../mod/blocks.php:151 +#: ../../mod/webpages.php:193 ../../mod/layouts.php:182 ../../mod/menu.php:111 +msgid "Edited" +msgstr "Bewerkt" + +#: ../../include/dba/dba_driver.php:141 #, php-format -msgid "%s - click to logout" -msgstr "%s - klik om uit te loggen" +msgid "Cannot locate DNS info for database server '%s'" +msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden" -#: ../../include/nav.php:131 -msgid "Remote authentication" -msgstr "Authenticatie op afstand" +#: ../../include/photos.php:112 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" +msgstr "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes" -#: ../../include/nav.php:131 -msgid "Click to authenticate to your home hub" -msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub" +#: ../../include/photos.php:119 +msgid "Image file is empty." +msgstr "Afbeeldingsbestand is leeg" -#: ../../include/nav.php:145 -msgid "Home Page" -msgstr "Homepage" +#: ../../include/photos.php:146 ../../mod/profile_photo.php:225 +msgid "Unable to process image" +msgstr "Afbeelding kan niet verwerkt worden" -#: ../../include/nav.php:149 ../../mod/register.php:224 ../../boot.php:1479 -msgid "Register" -msgstr "Registreren" +#: ../../include/photos.php:257 +msgid "Photo storage failed." +msgstr "Foto kan niet worden opgeslagen" -#: ../../include/nav.php:149 -msgid "Create an account" -msgstr "Maak een account aan" +#: ../../include/photos.php:487 +msgid "Upload New Photos" +msgstr "Nieuwe foto's uploaden" -#: ../../include/nav.php:154 -msgid "Help and documentation" -msgstr "Hulp en documentatie" +#: ../../include/ItemObject.php:130 +msgid "Save to Folder" +msgstr "In map opslaan" -#: ../../include/nav.php:157 -msgid "Applications, utilities, links, games" -msgstr "Apps" +#: ../../include/ItemObject.php:151 +msgid "I will attend" +msgstr "Aanwezig" -#: ../../include/nav.php:159 -msgid "Search site @name, #tag, ?docs, content" -msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie " +#: ../../include/ItemObject.php:151 +msgid "I will not attend" +msgstr "Niet aanwezig" -#: ../../include/nav.php:162 -msgid "Channel Directory" -msgstr "Kanalengids" +#: ../../include/ItemObject.php:151 +msgid "I might attend" +msgstr "Mogelijk aanwezig" -#: ../../include/nav.php:174 -msgid "Your grid" -msgstr "Jouw grid" +#: ../../include/ItemObject.php:161 +msgid "I agree" +msgstr "Eens" -#: ../../include/nav.php:175 -msgid "Mark all grid notifications seen" -msgstr "Markeer alle gridnotificaties als bekeken" +#: ../../include/ItemObject.php:161 +msgid "I disagree" +msgstr "Oneens" -#: ../../include/nav.php:177 -msgid "Channel home" -msgstr "Tijdlijn kanaal" +#: ../../include/ItemObject.php:161 +msgid "I abstain" +msgstr "Onthouding" -#: ../../include/nav.php:178 -msgid "Mark all channel notifications seen" -msgstr "Alle kanaalnotificaties als gelezen markeren" +#: ../../include/ItemObject.php:212 +msgid "Add Star" +msgstr "Ster toevoegen" -#: ../../include/nav.php:181 ../../mod/connections.php:260 -msgid "Connections" -msgstr "Connecties" +#: ../../include/ItemObject.php:213 +msgid "Remove Star" +msgstr "Ster verwijderen" -#: ../../include/nav.php:184 -msgid "Notices" -msgstr "Notificaties" +#: ../../include/ItemObject.php:214 +msgid "Toggle Star Status" +msgstr "Ster toevoegen of verwijderen" -#: ../../include/nav.php:184 -msgid "Notifications" -msgstr "Notificaties" +#: ../../include/ItemObject.php:218 +msgid "starred" +msgstr "met ster" -#: ../../include/nav.php:185 -msgid "See all notifications" -msgstr "Alle notificaties weergeven" +#: ../../include/ItemObject.php:236 +msgid "Add Tag" +msgstr "Tag toevoegen" -#: ../../include/nav.php:186 ../../mod/notifications.php:99 -msgid "Mark all system notifications seen" -msgstr "Markeer alle systeemnotificaties als bekeken" +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 +msgid "I like this (toggle)" +msgstr "Vind ik leuk" -#: ../../include/nav.php:188 -msgid "Private mail" -msgstr "Privéberichten" +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 +msgid "I don't like this (toggle)" +msgstr "Vind ik niet leuk" -#: ../../include/nav.php:189 -msgid "See all private messages" -msgstr "Alle privéberichten weergeven" +#: ../../include/ItemObject.php:259 +msgid "Share This" +msgstr "Delen" -#: ../../include/nav.php:190 -msgid "Mark all private messages seen" -msgstr "Markeer alle privéberichten als bekeken" +#: ../../include/ItemObject.php:259 +msgid "share" +msgstr "delen" -#: ../../include/nav.php:196 -msgid "Event Calendar" -msgstr "Agenda" +#: ../../include/ItemObject.php:268 +msgid "Delivery Report" +msgstr "Afleveringsrapport" -#: ../../include/nav.php:197 -msgid "See all events" -msgstr "Alle gebeurtenissen weergeven" +#: ../../include/ItemObject.php:286 +#, php-format +msgid "%d comment" +msgid_plural "%d comments" +msgstr[0] "%d reactie" +msgstr[1] "%d reacties weergeven" -#: ../../include/nav.php:198 -msgid "Mark all events seen" -msgstr "Markeer alle gebeurtenissen als bekeken" +#: ../../include/ItemObject.php:315 ../../include/ItemObject.php:316 +#, php-format +msgid "View %s's profile - %s" +msgstr "Profiel van %s bekijken - %s" -#: ../../include/nav.php:200 -msgid "Manage Your Channels" -msgstr "Beheer je kanalen" +#: ../../include/ItemObject.php:319 +msgid "to" +msgstr "aan" -#: ../../include/nav.php:202 -msgid "Account/Channel Settings" -msgstr "Account-/kanaal-instellingen" +#: ../../include/ItemObject.php:320 +msgid "via" +msgstr "via" -#: ../../include/nav.php:210 -msgid "Site Setup and Configuration" -msgstr "Hub instellen en beheren" +#: ../../include/ItemObject.php:321 +msgid "Wall-to-Wall" +msgstr "Kanaal-naar-kanaal" -#: ../../include/nav.php:246 -msgid "@name, #tag, ?doc, content" -msgstr "@kanaal, #tag, inhoud, ?hulp" +#: ../../include/ItemObject.php:322 +msgid "via Wall-To-Wall:" +msgstr "via kanaal-naar-kanaal" -#: ../../include/nav.php:247 -msgid "Please wait..." -msgstr "Wachten aub..." +#: ../../include/ItemObject.php:362 +msgid "Save Bookmarks" +msgstr "Bladwijzers opslaan" -#: ../../include/dir_fns.php:126 -msgid "Directory Options" -msgstr "Opties kanalengids" +#: ../../include/ItemObject.php:363 +msgid "Add to Calendar" +msgstr "Aan agenda toevoegen" -#: ../../include/dir_fns.php:128 -msgid "Safe Mode" -msgstr "Veilig zoeken" +#: ../../include/ItemObject.php:372 +msgid "Mark all seen" +msgstr "Markeer alles als bekeken" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 -#: ../../mod/mitem.php:229 ../../mod/connedit.php:630 -#: ../../mod/connedit.php:675 ../../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/settings.php:575 ../../mod/api.php:106 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "No" -msgstr "Nee" +#: ../../include/ItemObject.php:378 ../../mod/photos.php:1212 +msgctxt "noun" +msgid "Likes" +msgstr "vinden dit leuk" -#: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 -#: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 -#: ../../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/settings.php:575 ../../mod/api.php:105 -#: ../../view/theme/redbasic/php/config.php:104 -#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1507 -msgid "Yes" -msgstr "Ja" +#: ../../include/ItemObject.php:379 ../../mod/photos.php:1213 +msgctxt "noun" +msgid "Dislikes" +msgstr "vinden dit niet leuk" -#: ../../include/dir_fns.php:129 -msgid "Public Forums Only" -msgstr "Alleen openbare forums" +#: ../../include/ItemObject.php:694 ../../mod/photos.php:1045 +#: ../../mod/photos.php:1163 +msgid "This is you" +msgstr "Dit ben jij" -#: ../../include/dir_fns.php:130 -msgid "This Website Only" -msgstr "Alleen deze hub" +#: ../../include/ItemObject.php:703 +msgid "Image" +msgstr "Afbeelding" -#: ../../mod/achievements.php:34 -msgid "Some blurb about what to do when you're new here" -msgstr "Welkom op $Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van $Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met $Projectname klik je op het vraagteken." +#: ../../include/ItemObject.php:704 +msgid "Insert Link" +msgstr "Link invoegen" -#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 -msgid "Contact not found." -msgstr "Contact niet gevonden" +#: ../../include/ItemObject.php:705 +msgid "Video" +msgstr "Video" -#: ../../mod/fsuggest.php:63 -msgid "Friend suggestion sent." -msgstr "Kanaalvoorstel verzonden." +#: ../../include/account.php:27 +msgid "Not a valid email address" +msgstr "Geen geldig e-mailadres" -#: ../../mod/fsuggest.php:97 -msgid "Suggest Friends" -msgstr "Kanalen voorstellen" +#: ../../include/account.php:29 +msgid "Your email domain is not among those allowed on this site" +msgstr "Jouw e-maildomein is op deze hub niet toegestaan" -#: ../../mod/fsuggest.php:99 +#: ../../include/account.php:35 +msgid "Your email address is already registered at this site." +msgstr "Jouw e-mailadres is al op deze hub geregistreerd." + +#: ../../include/account.php:67 +msgid "An invitation is required." +msgstr "Een uitnodiging is vereist" + +#: ../../include/account.php:71 +msgid "Invitation could not be verified." +msgstr "Uitnodiging kon niet geverifieerd worden" + +#: ../../include/account.php:121 +msgid "Please enter the required information." +msgstr "Vul de vereiste informatie in." + +#: ../../include/account.php:188 +msgid "Failed to store account information." +msgstr "Account-informatie kon niet opgeslagen worden." + +#: ../../include/account.php:248 #, php-format -msgid "Suggest a friend for %s" -msgstr "Stel een kanaal voor aan %s" +msgid "Registration confirmation for %s" +msgstr "Registratiebevestiging voor %s" -#: ../../mod/directory.php:59 ../../mod/display.php:13 ../../mod/search.php:13 -#: ../../mod/photos.php:490 ../../mod/ratings.php:82 -#: ../../mod/viewconnections.php:17 -msgid "Public access denied." -msgstr "Openbare toegang geweigerd." +#: ../../include/account.php:314 +#, php-format +msgid "Registration request at %s" +msgstr "Registratiebevestiging voor %s" + +#: ../../include/account.php:338 +msgid "your registration password" +msgstr "jouw registratiewachtwoord" -#: ../../mod/directory.php:234 +#: ../../include/account.php:341 ../../include/account.php:401 #, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d beoordeling" -msgstr[1] "%d beoordelingen" +msgid "Registration details for %s" +msgstr "Registratiegegevens voor %s" -#: ../../mod/directory.php:245 -msgid "Gender: " -msgstr "Geslacht:" +#: ../../include/account.php:410 +msgid "Account approved." +msgstr "Account goedgekeurd" -#: ../../mod/directory.php:247 -msgid "Status: " -msgstr "Status: " +#: ../../include/account.php:449 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registratie ingetrokken voor %s" -#: ../../mod/directory.php:249 -msgid "Homepage: " -msgstr "Homepage: " +#: ../../include/account.php:494 +msgid "Account verified. Please login." +msgstr "Account is geverifieerd. Je kan inloggen." -#: ../../mod/directory.php:308 ../../mod/events.php:699 -msgid "Description:" -msgstr "Omschrijving:" +#: ../../include/account.php:707 ../../include/account.php:709 +msgid "Click here to upgrade." +msgstr "Klik hier om te upgraden." -#: ../../mod/directory.php:317 -msgid "Public Forum:" -msgstr "Openbaar forum:" +#: ../../include/account.php:715 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden." -#: ../../mod/directory.php:320 -msgid "Keywords: " -msgstr "Trefwoorden: " +#: ../../include/account.php:720 +msgid "This action is not available under your subscription plan." +msgstr "Deze handeling is niet mogelijk met jouw abonnement." -#: ../../mod/directory.php:323 -msgid "Don't suggest" -msgstr "Niet voorstellen" +#: ../../include/apps.php:128 +msgid "Site Admin" +msgstr "Hubbeheerder" -#: ../../mod/directory.php:325 -msgid "Common connections:" -msgstr "Gemeenschappelijke connecties:" +#: ../../include/apps.php:130 +msgid "Address Book" +msgstr "Connecties" -#: ../../mod/directory.php:374 -msgid "Global Directory" -msgstr "Volledige kanalengids" +#: ../../include/apps.php:144 ../../mod/mood.php:131 +msgid "Mood" +msgstr "Stemming" -#: ../../mod/directory.php:374 -msgid "Local Directory" -msgstr "Lokale kanalengids" +#: ../../include/apps.php:148 +msgid "Probe" +msgstr "Onderzoeken" -#: ../../mod/directory.php:380 -msgid "Finding:" -msgstr "Gezocht naar:" +#: ../../include/apps.php:149 +msgid "Suggest" +msgstr "Voorstellen" -#: ../../mod/directory.php:385 -msgid "next page" -msgstr "volgende pagina" +#: ../../include/apps.php:150 +msgid "Random Channel" +msgstr "Willekeurig kanaal" -#: ../../mod/directory.php:385 -msgid "previous page" -msgstr "vorige pagina" +#: ../../include/apps.php:151 +msgid "Invite" +msgstr "Uitnodigen " -#: ../../mod/directory.php:386 -msgid "Sort options" -msgstr "Sorteeropties" +#: ../../include/apps.php:152 +msgid "Features" +msgstr "Extra functies" -#: ../../mod/directory.php:387 -msgid "Alphabetic" -msgstr "Alfabetisch" +#: ../../include/apps.php:153 ../../mod/id.php:28 +msgid "Language" +msgstr "Taal" -#: ../../mod/directory.php:388 -msgid "Reverse Alphabetic" -msgstr "Omgekeerd alfabetisch" +#: ../../include/apps.php:154 +msgid "Post" +msgstr "Bericht" -#: ../../mod/directory.php:389 -msgid "Newest to Oldest" -msgstr "Nieuw naar oud" +#: ../../include/apps.php:155 ../../mod/id.php:17 ../../mod/id.php:18 +#: ../../mod/id.php:19 +msgid "Profile Photo" +msgstr "Profielfoto" -#: ../../mod/directory.php:390 -msgid "Oldest to Newest" -msgstr "Oud naar nieuw" +#: ../../include/apps.php:252 ../../mod/settings.php:84 +#: ../../mod/settings.php:612 +msgid "Update" +msgstr "Bijwerken" -#: ../../mod/directory.php:407 -msgid "No entries (some entries may be hidden)." -msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)." +#: ../../include/apps.php:252 +msgid "Install" +msgstr "Installeren" -#: ../../mod/bookmarks.php:40 -msgid "Bookmark added" -msgstr "Bladwijzer toegevoegd" +#: ../../include/apps.php:257 +msgid "Purchase" +msgstr "Aanschaffen" -#: ../../mod/bookmarks.php:62 -msgid "My Bookmarks" -msgstr "Mijn bladwijzers" +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" +msgstr "Kan mijn normale kanaalstream en berichten bekijken" -#: ../../mod/bookmarks.php:73 -msgid "My Connections Bookmarks" -msgstr "Bladwijzers van mijn connecties" +#: ../../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 +msgid "Custom/Expert Mode" +msgstr "Expertmodus/handmatig aanpassen" + +#: ../../include/photo/photo_driver.php:719 ../../mod/photos.php:94 +#: ../../mod/photos.php:699 ../../mod/profile_photo.php:147 +#: ../../mod/profile_photo.php:239 ../../mod/profile_photo.php:379 +msgid "Profile Photos" +msgstr "Profielfoto's" + +#: ../../mod/filestorage.php:82 +msgid "Permission Denied." +msgstr "Toegang geweigerd" + +#: ../../mod/filestorage.php:98 +msgid "File not found." +msgstr "Bestand niet gevonden." + +#: ../../mod/filestorage.php:141 +msgid "Edit file permissions" +msgstr "Bestandsrechten bewerken" + +#: ../../mod/filestorage.php:150 +msgid "Set/edit permissions" +msgstr "Rechten instellen/bewerken" + +#: ../../mod/filestorage.php:151 +msgid "Include all files and sub folders" +msgstr "Toepassen op alle bestanden en submappen" + +#: ../../mod/filestorage.php:152 +msgid "Return to file list" +msgstr "Terugkeren naar bestandlijst " + +#: ../../mod/filestorage.php:154 +msgid "Copy/paste this code to attach file to a post" +msgstr "Kopieer/plak deze code om het bestand aan een bericht te koppelen" + +#: ../../mod/filestorage.php:155 +msgid "Copy/paste this URL to link file from a web page" +msgstr "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen" + +#: ../../mod/filestorage.php:157 +msgid "Share this file" +msgstr "Dit bestand delen" + +#: ../../mod/filestorage.php:158 +msgid "Show URL to this file" +msgstr "Toon URL van dit bestand" + +#: ../../mod/filestorage.php:159 +msgid "Notify your contacts about this file" +msgstr "Jouw connecties over dit bestand berichten" + +#: ../../mod/group.php:20 +msgid "Collection created." +msgstr "Collectie aangemaakt" + +#: ../../mod/group.php:26 +msgid "Could not create collection." +msgstr "Collectie kon niet aangemaakt worden" + +#: ../../mod/group.php:54 +msgid "Collection updated." +msgstr "Collectie bijgewerkt." + +#: ../../mod/group.php:86 +msgid "Create a collection of channels." +msgstr "Kanaalcollectie aanmaken" + +#: ../../mod/group.php:87 ../../mod/group.php:180 +msgid "Collection Name: " +msgstr "Naam collectie:" + +#: ../../mod/group.php:89 ../../mod/group.php:183 +msgid "Members are visible to other channels" +msgstr "Kanalen in deze collectie zijn zichtbaar voor andere kanalen" + +#: ../../mod/group.php:107 +msgid "Collection removed." +msgstr "Collectie verwijderd" + +#: ../../mod/group.php:109 +msgid "Unable to remove collection." +msgstr "Verwijderen collectie mislukt" + +#: ../../mod/group.php:179 +msgid "Collection Editor" +msgstr "Collectiebewerker" + +#: ../../mod/group.php:193 +msgid "Members" +msgstr "Kanalen" + +#: ../../mod/group.php:195 +msgid "All Connected Channels" +msgstr "Alle kanaalconnecties" + +#: ../../mod/group.php:227 +msgid "Click on a channel to add or remove." +msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen." + +#: ../../mod/item.php:173 +msgid "Unable to locate original post." +msgstr "Niet in staat om de originele locatie van het bericht te vinden. " + +#: ../../mod/item.php:417 +msgid "Empty post discarded." +msgstr "Leeg bericht geannuleerd" + +#: ../../mod/item.php:457 +msgid "Executable content type not permitted to this channel." +msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal." + +#: ../../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: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: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:1234 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt." + +#: ../../mod/common.php:10 +msgid "No channel." +msgstr "Geen kanaal." + +#: ../../mod/common.php:39 +msgid "Common connections" +msgstr "Veel voorkomende connecties" + +#: ../../mod/common.php:44 +msgid "No connections in common." +msgstr "Geen gemeenschappelijke connecties." + +#: ../../mod/connect.php:56 ../../mod/connect.php:104 +msgid "Continue" +msgstr "Ga verder" + +#: ../../mod/connect.php:85 +msgid "Premium Channel Setup" +msgstr "Instellen premiumkanaal " + +#: ../../mod/connect.php:87 +msgid "Enable premium channel connection restrictions" +msgstr "Restricties voor connecties van premiumkanaal toestaan" + +#: ../../mod/connect.php:88 +msgid "" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." +msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz." + +#: ../../mod/connect.php:90 ../../mod/connect.php:110 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" +msgstr "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:" + +#: ../../mod/connect.php:91 +msgid "" +"Potential connections will then see the following text before proceeding:" +msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:" + +#: ../../mod/connect.php:92 ../../mod/connect.php:113 +msgid "" +"By continuing, I certify that I have complied with any instructions provided" +" on this page." +msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina." + +#: ../../mod/connect.php:101 +msgid "(No specific instructions have been provided by the channel owner.)" +msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) " + +#: ../../mod/connect.php:109 +msgid "Restricted or Premium Channel" +msgstr "Beperkt of premiumkanaal" + +#: ../../mod/match.php:22 +msgid "Profile Match" +msgstr "Profielovereenkomst" + +#: ../../mod/match.php:31 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe." + +#: ../../mod/match.php:63 +msgid "is interested in:" +msgstr "is geïnteresseerd in:" + +#: ../../mod/match.php:70 +msgid "No matches" +msgstr "Geen overeenkomsten" #: ../../mod/openid.php:26 msgid "OpenID protocol error. No ID returned." @@ -4281,18 +4414,92 @@ msgstr "OpenID-protocolfout. Geen ID terugontvangen." msgid "Welcome %s. Remote authentication successful." msgstr "Welkom %s. Authenticatie op afstand geslaagd." -#: ../../mod/block.php:27 ../../mod/page.php:36 -msgid "Invalid item." -msgstr "Ongeldig item." +#: ../../mod/achievements.php:34 +msgid "Some blurb about what to do when you're new here" +msgstr "Welkom op $Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van $Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met $Projectname klik je op het vraagteken." -#: ../../mod/block.php:39 ../../mod/page.php:52 ../../mod/wall_upload.php:29 -msgid "Channel not found." -msgstr "Kanaal niet gevonden." +#: ../../mod/chatsvc.php:111 +msgid "Away" +msgstr "Afwezig" -#: ../../mod/block.php:75 ../../mod/display.php:110 ../../mod/help.php:214 -#: ../../mod/page.php:89 ../../index.php:237 -msgid "Page not found." -msgstr "Pagina niet gevonden." +#: ../../mod/chatsvc.php:115 +msgid "Online" +msgstr "Online" + +#: ../../mod/pubsites.php:18 +msgid "Public Sites" +msgstr "Openbare hubs" + +#: ../../mod/pubsites.php:21 +msgid "" +"The listed sites allow public registration for the $Projectname network. All" +" sites in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some sites may require subscription or" +" provide tiered service plans. The provider links <strong>may</strong> " +"provide additional details." +msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het $Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven." + +#: ../../mod/pubsites.php:27 +msgid "Rate this hub" +msgstr "Beoordeel deze hub" + +#: ../../mod/pubsites.php:28 +msgid "Site URL" +msgstr "URL hub" + +#: ../../mod/pubsites.php:28 +msgid "Access Type" +msgstr "Toegangstype" + +#: ../../mod/pubsites.php:28 +msgid "Registration Policy" +msgstr "Registratiebeleid" + +#: ../../mod/pubsites.php:28 +msgid "Project" +msgstr "Project" + +#: ../../mod/pubsites.php:28 +msgid "View hub ratings" +msgstr "Bekijk hubbeoordelingen" + +#: ../../mod/pubsites.php:32 +msgid "Rate" +msgstr "Beoordeel" + +#: ../../mod/pubsites.php:33 +msgid "View ratings" +msgstr "Bekijk beoordelingen" + +#: ../../mod/tagger.php:96 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "%1$s heeft het %3$s van %2$s getagd met %4$s" + +#: ../../mod/rate.php:158 +msgid "Website:" +msgstr "Website:" + +#: ../../mod/rate.php:161 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)" + +#: ../../mod/rate.php:162 +msgid "Rating (this information is public)" +msgstr "Beoordeling (deze informatie is openbaar)" + +#: ../../mod/rate.php:163 +msgid "Optionally explain your rating (this information is public)" +msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)" + +#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 +msgid "Block Name" +msgstr "Bloknaam" + +#: ../../mod/blocks.php:149 +msgid "Block Title" +msgstr "Bloktitel" #: ../../mod/id.php:11 msgid "First Name" @@ -4358,7 +4565,7 @@ msgstr "Geboortedag" msgid "Birthdate" msgstr "Geboortedatum" -#: ../../mod/id.php:33 ../../mod/profiles.php:431 +#: ../../mod/id.php:33 ../../mod/profiles.php:441 msgid "Gender" msgstr "Geslacht" @@ -4430,116 +4637,28 @@ msgstr "Actie voltooid" msgid "Thank you." msgstr "Bedankt" -#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 -msgid "Export Channel" -msgstr "Kanaal exporteren" - -#: ../../mod/uexport.php:53 -msgid "" -"Export your basic channel information to a file. This acts as a backup of " -"your connections, permissions, profile and basic data, which can be used to " -"import your data to a new server hub, but does not contain your content." -msgstr "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal." - -#: ../../mod/uexport.php:54 -msgid "Export Content" -msgstr "Inhoud exporteren" - -#: ../../mod/uexport.php:55 -msgid "" -"Export your channel information and recent content to a JSON backup that can" -" be restored or imported to another server hub. This backs up all of your " -"connections, permissions, profile data and several months of posts. This " -"file may be VERY large. Please be patient - it may take several minutes for" -" this download to begin." -msgstr "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint." - -#: ../../mod/uexport.php:56 -msgid "Export your posts from a given year." -msgstr "Exporteer jouw berichten uit een bepaald jaar." - -#: ../../mod/uexport.php:58 -msgid "" -"You may also export your posts and conversations for a particular year or " -"month. Adjust the date in your browser location bar to select other dates. " -"If the export fails (possibly due to memory exhaustion on your server hub), " -"please try again selecting a more limited date range." -msgstr "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak." +#: ../../mod/page.php:36 ../../mod/block.php:27 +msgid "Invalid item." +msgstr "Ongeldig item." -#: ../../mod/uexport.php:59 -#, php-format -msgid "" -"To select all posts for a given year, such as this year, visit <a " -"href=\"%1$s\">%2$s</a>" -msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. " +#: ../../mod/page.php:52 ../../mod/wall_upload.php:29 ../../mod/block.php:39 +msgid "Channel not found." +msgstr "Kanaal niet gevonden." -#: ../../mod/uexport.php:60 -#, php-format -msgid "" -"To select all posts for a given month, such as January of this year, visit " -"<a href=\"%1$s\">%2$s</a>" -msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren." +#: ../../mod/page.php:89 ../../mod/display.php:110 ../../mod/help.php:214 +#: ../../mod/block.php:75 ../../index.php:241 +msgid "Page not found." +msgstr "Pagina niet gevonden." -#: ../../mod/uexport.php:61 -#, php-format +#: ../../mod/page.php:126 msgid "" -"These content files may be imported or restored by visiting <a " -"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" -" please import or restore these in date order (oldest first)." -msgstr "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1$s\">%2$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen." - -#: ../../mod/chatsvc.php:111 -msgid "Away" -msgstr "Afwezig" - -#: ../../mod/chatsvc.php:115 -msgid "Online" -msgstr "Online" - -#: ../../mod/tagger.php:96 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" -msgstr "%1$s heeft het %3$s van %2$s getagd met %4$s" - -#: ../../mod/common.php:10 -msgid "No channel." -msgstr "Geen kanaal." - -#: ../../mod/common.php:39 -msgid "Common connections" -msgstr "Veel voorkomende connecties" - -#: ../../mod/common.php:44 -msgid "No connections in common." -msgstr "Geen gemeenschappelijke connecties." - -#: ../../mod/ping.php:260 -msgid "sent you a private message" -msgstr "stuurde jou een privébericht" - -#: ../../mod/ping.php:308 -msgid "added your channel" -msgstr "voegde jouw kanaal toe" - -#: ../../mod/ping.php:350 -msgid "posted an event" -msgstr "plaatste een gebeurtenis" - -#: ../../mod/help.php:147 -msgid "Documentation Search" -msgstr "Zoek documentatie" - -#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 -msgid "Help:" -msgstr "Hulp:" - -#: ../../mod/help.php:211 ../../index.php:234 -msgid "Not Found" -msgstr "Niet gevonden" - -#: ../../mod/help.php:235 -msgid "$Projectname Documentation" -msgstr "$Projectname-documentatie" +"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " +"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," +" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " +"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " +"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " +"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." #: ../../mod/removeme.php:29 msgid "" @@ -4577,137 +4696,820 @@ msgid "" "removed from the network" msgstr "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het $Projectname-netwerk verwijderd" -#: ../../mod/removeme.php:61 ../../mod/settings.php:1110 +#: ../../mod/removeme.php:61 ../../mod/settings.php:1112 msgid "Remove Channel" msgstr "Kanaal verwijderen" -#: ../../mod/filer.php:48 -msgid "- select -" -msgstr "- kies map -" +#: ../../mod/mood.php:132 +msgid "Set your current mood and tell your friends" +msgstr "Noteer je huidige stemming en toon het aan je connecties" -#: ../../mod/mitem.php:24 ../../mod/menu.php:140 -msgid "Menu not found." -msgstr "Menu niet gevonden." +#: ../../mod/new_channel.php:109 +msgid "Add a Channel" +msgstr "Kanaal toevoegen" -#: ../../mod/mitem.php:48 -msgid "Unable to create element." -msgstr "Niet in staat om onderdeel aan te maken." +#: ../../mod/new_channel.php:110 +msgid "" +"A channel is your own collection of related web pages. A channel can be used" +" to hold social network profiles, blogs, conversation groups and forums, " +"celebrity pages, and much more. You may create as many channels as your " +"service provider allows." +msgstr "Naast een account moet je tenminste één kanaal aanmaken. Een kanaal is een persoonlijke verzameling (gerelateerde) berichten en media, zoals je misschien gewend bent van sociale netwerken. Een kanaal kan gebruikt worden voor social media, een blog, forum, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat." -#: ../../mod/mitem.php:72 -msgid "Unable to update menu element." -msgstr "Menu-onderdeel kan niet worden geüpdatet." +#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 +#: ../../mod/sources.php:137 +msgid "Channel Name" +msgstr "Kanaalnaam" -#: ../../mod/mitem.php:88 -msgid "Unable to add menu element." -msgstr "Menu-onderdeel kan niet worden toegevoegd." +#: ../../mod/new_channel.php:113 +msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " +msgstr "Jouw naam of een andere relevante naam. Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Familieforum\"" -#: ../../mod/mitem.php:116 ../../mod/menu.php:162 ../../mod/xchan.php:37 -msgid "Not found." -msgstr "Niet gevonden." +#: ../../mod/new_channel.php:114 +msgid "Choose a short nickname" +msgstr "Korte bijnaam" -#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 -msgid "Menu Item Permissions" -msgstr "Permissies menu-item" +#: ../../mod/new_channel.php:115 +msgid "" +"Your nickname will be used to create an easily remembered channel address " +"(like an email address) which you can share with others." +msgstr "Deze bijnaam (geen spaties) wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) en het internetadres (URL) van jouw kanaal aan te maken, die je dan met anderen kunt delen. Voorbeeld: <b>janp</b> wordt <em>janp@jouw_hub.nl</em> en <em>https://jouw_hub.nl/channel/janp</em>." -#: ../../mod/mitem.php:150 ../../mod/mitem.php:223 ../../mod/settings.php:1054 -msgid "(click to open/close)" -msgstr "(klik om te openen/sluiten)" +#: ../../mod/new_channel.php:116 +msgid "Or <a href=\"import\">import an existing channel</a> from another location" +msgstr "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie." -#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 -msgid "Link Name" -msgstr "Linknaam" +#: ../../mod/new_channel.php:118 +msgid "" +"Please choose a channel type (such as social networking or community forum) " +"and privacy requirements so we can select the best permissions for you" +msgstr "Kies een kanaaltype en het door jouw gewenste privacy-niveau, zodat automatisch de beste permissies kunnen worden ingesteld. Dit kan later, indien gewenst, worden veranderd." -#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 -msgid "Link or Submenu Target" -msgstr "Linkdoel of submenu-doel" +#: ../../mod/new_channel.php:119 +msgid "Channel Type" +msgstr "Kanaaltype" -#: ../../mod/mitem.php:153 -msgid "Enter URL of the link or select a menu name to create a submenu" -msgstr "Geef de URL van de link of kies een menunaam om een submenu aan te maken" +#: ../../mod/new_channel.php:119 +msgid "Read more about roles" +msgstr "Lees meer over kanaaltypes" -#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 -msgid "Use magic-auth if available" -msgstr "Gebruik magic-auth wanneer beschikbaar" +#: ../../mod/ratings.php:69 +msgid "No ratings" +msgstr "Geen beoordelingen" -#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 -msgid "Open link in new window" -msgstr "Open link in nieuw venster" +#: ../../mod/ratings.php:82 ../../mod/search.php:13 ../../mod/directory.php:59 +#: ../../mod/photos.php:490 ../../mod/display.php:13 +#: ../../mod/viewconnections.php:17 +msgid "Public access denied." +msgstr "Openbare toegang geweigerd." -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Order in list" -msgstr "Volgorde in lijst" +#: ../../mod/ratings.php:99 +msgid "Ratings" +msgstr "Waarderingen" -#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 -msgid "Higher numbers will sink to bottom of listing" -msgstr "Hogere nummers komen onderaan de lijst terecht" +#: ../../mod/ratings.php:100 +msgid "Rating: " +msgstr "Waardering: " -#: ../../mod/mitem.php:157 -msgid "Submit and finish" -msgstr "Opslaan en afsluiten" +#: ../../mod/ratings.php:101 +msgid "Website: " +msgstr "Website: " -#: ../../mod/mitem.php:158 -msgid "Submit and continue" -msgstr "Opslaan en doorgaan" +#: ../../mod/ratings.php:103 +msgid "Description: " +msgstr "Omschrijving: " -#: ../../mod/mitem.php:166 -msgid "Menu:" -msgstr "Menu:" +#: ../../mod/setup.php:191 +msgid "$Projectname Server - Setup" +msgstr "$Projectname Server - Setup" -#: ../../mod/mitem.php:169 -msgid "Link Target" -msgstr "Linkdoel" +#: ../../mod/setup.php:195 +msgid "Could not connect to database." +msgstr "Could not connect to database." -#: ../../mod/mitem.php:172 -msgid "Edit menu" -msgstr "Menu bewerken" +#: ../../mod/setup.php:199 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." +msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue." -#: ../../mod/mitem.php:175 -msgid "Edit element" -msgstr "Onderdeel bewerken" +#: ../../mod/setup.php:206 +msgid "Could not create table." +msgstr "Could not create table." -#: ../../mod/mitem.php:176 -msgid "Drop element" -msgstr "Onderdeel verwijderen" +#: ../../mod/setup.php:211 +msgid "Your site database has been installed." +msgstr "Your hub database has been installed." -#: ../../mod/mitem.php:177 -msgid "New element" -msgstr "Nieuw element" +#: ../../mod/setup.php:215 +msgid "" +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." +msgstr "You may need to import the file \"install/schema_xxx.sql\" manually using a database client." -#: ../../mod/mitem.php:178 -msgid "Edit this menu container" -msgstr "Deze menu-container bewerken" +#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Please see the file \"install/INSTALL.txt\"." -#: ../../mod/mitem.php:179 -msgid "Add menu element" -msgstr "Menu-element toevoegen" +#: ../../mod/setup.php:281 +msgid "System check" +msgstr "System check" -#: ../../mod/mitem.php:180 -msgid "Delete this menu item" -msgstr "Dit menu-item verwijderen" +#: ../../mod/setup.php:285 ../../mod/photos.php:914 ../../mod/events.php:668 +#: ../../mod/events.php:675 +msgid "Next" +msgstr "Volgende" -#: ../../mod/mitem.php:181 -msgid "Edit this menu item" -msgstr "Dit menu-item bewerken" +#: ../../mod/setup.php:286 +msgid "Check again" +msgstr "Check again" -#: ../../mod/mitem.php:198 -msgid "Menu item not found." -msgstr "Menu-item niet gevonden." +#: ../../mod/setup.php:308 +msgid "Database connection" +msgstr "Database connection" -#: ../../mod/mitem.php:211 -msgid "Menu item deleted." -msgstr "Menu-item verwijderd." +#: ../../mod/setup.php:309 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." +msgstr "In order to install $Projectname we need to know how to connect to your database." -#: ../../mod/mitem.php:213 -msgid "Menu item could not be deleted." -msgstr "Menu-item kon niet worden verwijderd." +#: ../../mod/setup.php:310 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Please contact your hosting provider or site administrator if you have questions about these settings." -#: ../../mod/mitem.php:220 -msgid "Edit Menu Element" -msgstr "Menu-element bewerken" +#: ../../mod/setup.php:311 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "The database you specify below should already exist. If it does not, please create it before continuing." -#: ../../mod/mitem.php:226 -msgid "Link text" -msgstr "Linktekst" +#: ../../mod/setup.php:315 +msgid "Database Server Name" +msgstr "Database Server Name" + +#: ../../mod/setup.php:315 +msgid "Default is 127.0.0.1" +msgstr "Default is 127.0.0.1" + +#: ../../mod/setup.php:316 +msgid "Database Port" +msgstr "Database Port" + +#: ../../mod/setup.php:316 +msgid "Communication port number - use 0 for default" +msgstr "Communication port number - use 0 for default" + +#: ../../mod/setup.php:317 +msgid "Database Login Name" +msgstr "Database Login Name" + +#: ../../mod/setup.php:318 +msgid "Database Login Password" +msgstr "Database Login Password" + +#: ../../mod/setup.php:319 +msgid "Database Name" +msgstr "Database Name" + +#: ../../mod/setup.php:320 +msgid "Database Type" +msgstr "Database Type" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "Site administrator email address" +msgstr "Hub administrator email address" + +#: ../../mod/setup.php:322 ../../mod/setup.php:363 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Your account email address must match this in order to use the web admin panel." + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Website URL" +msgstr "Hub URL" + +#: ../../mod/setup.php:323 ../../mod/setup.php:365 +msgid "Please use SSL (https) URL if available." +msgstr "Please use SSL (https) URL if available." + +#: ../../mod/setup.php:325 ../../mod/setup.php:367 +msgid "Please select a default timezone for your website" +msgstr "Please select a default timezone for your hub" + +#: ../../mod/setup.php:352 +msgid "Site settings" +msgstr "Hub settings" + +#: ../../mod/setup.php:417 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Could not find a command line version of PHP in the web server PATH." + +#: ../../mod/setup.php:418 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron." +msgstr "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron." + +#: ../../mod/setup.php:422 +msgid "PHP executable path" +msgstr "PHP executable path" + +#: ../../mod/setup.php:422 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Enter full path to php executable. You can leave this blank to continue the installation." + +#: ../../mod/setup.php:427 +msgid "Command line PHP" +msgstr "Command line PHP" + +#: ../../mod/setup.php:436 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled." + +#: ../../mod/setup.php:437 +msgid "This is required for message delivery to work." +msgstr "This is required for message delivery to work." + +#: ../../mod/setup.php:440 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../mod/setup.php:458 +#, php-format +msgid "" +"Your max allowed total upload size is set to %s. Maximum size of one file to" +" upload is set to %s. You are allowed to upload up to %d files at once." +msgstr "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once." + +#: ../../mod/setup.php:463 +msgid "You can adjust these settings in the servers php.ini." +msgstr "You can adjust these settings in the servers php.ini." + +#: ../../mod/setup.php:465 +msgid "PHP upload limits" +msgstr "PHP upload limits" + +#: ../../mod/setup.php:488 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys" + +#: ../../mod/setup.php:489 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"." + +#: ../../mod/setup.php:492 +msgid "Generate encryption keys" +msgstr "Generate encryption keys" + +#: ../../mod/setup.php:504 +msgid "libCurl PHP module" +msgstr "libCurl PHP module" + +#: ../../mod/setup.php:505 +msgid "GD graphics PHP module" +msgstr "GD graphics PHP module" + +#: ../../mod/setup.php:506 +msgid "OpenSSL PHP module" +msgstr "OpenSSL PHP module" + +#: ../../mod/setup.php:507 +msgid "mysqli or postgres PHP module" +msgstr "mysqli or postgres PHP module" + +#: ../../mod/setup.php:508 +msgid "mb_string PHP module" +msgstr "mb_string PHP module" + +#: ../../mod/setup.php:509 +msgid "mcrypt PHP module" +msgstr "mcrypt PHP module" + +#: ../../mod/setup.php:510 +msgid "xml PHP module" +msgstr "xml PHP module" + +#: ../../mod/setup.php:514 ../../mod/setup.php:516 +msgid "Apache mod_rewrite module" +msgstr "Apache mod_rewrite module" + +#: ../../mod/setup.php:514 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Error: Apache webserver mod-rewrite module is required but not installed." + +#: ../../mod/setup.php:520 ../../mod/setup.php:523 +msgid "proc_open" +msgstr "proc_open" + +#: ../../mod/setup.php:520 +msgid "" +"Error: proc_open is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini" + +#: ../../mod/setup.php:528 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Error: libCURL PHP module required but not installed." + +#: ../../mod/setup.php:532 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Error: GD graphics PHP module with JPEG support required but not installed." + +#: ../../mod/setup.php:536 +msgid "Error: openssl PHP module required but not installed." +msgstr "Error: openssl PHP module required but not installed." + +#: ../../mod/setup.php:540 +msgid "" +"Error: mysqli or postgres PHP module required but neither are installed." +msgstr "Error: mysqli or postgres PHP module required but neither are installed." + +#: ../../mod/setup.php:544 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Error: mb_string PHP module required but not installed." + +#: ../../mod/setup.php:548 +msgid "Error: mcrypt PHP module required but not installed." +msgstr "Error: mcrypt PHP module required but not installed." + +#: ../../mod/setup.php:552 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "Error: xml PHP module required for DAV but not installed." + +#: ../../mod/setup.php:570 +msgid "" +"The web installer needs to be able to create a file called \".htconfig.php\"" +" in the top folder of your web server and it is unable to do so." +msgstr "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so." + +#: ../../mod/setup.php:571 +msgid "" +"This is most often a permission setting, as the web server may not be able " +"to write files in your folder - even if you can." +msgstr "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can." + +#: ../../mod/setup.php:572 +msgid "" +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Red top folder." +msgstr "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder." + +#: ../../mod/setup.php:573 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions." + +#: ../../mod/setup.php:576 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php is writable" + +#: ../../mod/setup.php:590 +msgid "" +"Red uses the Smarty3 template engine to render its web views. Smarty3 " +"compiles templates to PHP to speed up rendering." +msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering." + +#: ../../mod/setup.php:591 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the Red top level folder." +msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder." + +#: ../../mod/setup.php:592 ../../mod/setup.php:613 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder." + +#: ../../mod/setup.php:593 +#, php-format +msgid "" +"Note: as a security measure, you should give the web server write access to " +"%s only--not the template files (.tpl) that it contains." +msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains." + +#: ../../mod/setup.php:596 +#, php-format +msgid "%s is writable" +msgstr "%s is writable" + +#: ../../mod/setup.php:612 +msgid "" +"Red uses the store directory to save uploaded files. The web server needs to" +" have write access to the store directory under the Red top level folder" +msgstr "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder" + +#: ../../mod/setup.php:616 +msgid "store is writable" +msgstr "store is writable" + +#: ../../mod/setup.php:649 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access" +" to this site." +msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub." + +#: ../../mod/setup.php:650 +msgid "" +"If you have https access to your website or allow connections to TCP port " +"443 (the https: port), you MUST use a browser-valid certificate. You MUST " +"NOT use self-signed certificates!" +msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!" + +#: ../../mod/setup.php:651 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." +msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub." + +#: ../../mod/setup.php:652 +msgid "" +"If your certificate is not recognized, members of other sites (who may " +"themselves have valid certificates) will get a warning message on their own " +"site complaining about security issues." +msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues." + +#: ../../mod/setup.php:653 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." +msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement." + +#: ../../mod/setup.php:654 +msgid "" +"Providers are available that issue free certificates which are browser-" +"valid." +msgstr "Providers are available that issue free certificates which are browser-valid." + +#: ../../mod/setup.php:656 +msgid "SSL certificate validation" +msgstr "SSL certificate validation" + +#: ../../mod/setup.php:662 +msgid "" +"Url rewrite in .htaccess is not working. Check your server " +"configuration.Test: " +msgstr "Url rewrite in .htaccess is not working. Check your server configuration.Test: " + +#: ../../mod/setup.php:665 +msgid "Url rewrite is working" +msgstr "Url rewrite is working" + +#: ../../mod/setup.php:674 +msgid "" +"The database configuration file \".htconfig.php\" could not be written. " +"Please use the enclosed text to create a configuration file in your web " +"server root." +msgstr "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root." + +#: ../../mod/setup.php:698 +msgid "Errors encountered creating database tables." +msgstr "Errors encountered creating database tables." + +#: ../../mod/setup.php:732 +msgid "<h1>What next</h1>" +msgstr "<h1>Wat nu</h1>" + +#: ../../mod/setup.php:733 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." + +#: ../../mod/bookmarks.php:40 +msgid "Bookmark added" +msgstr "Bladwijzer toegevoegd" + +#: ../../mod/bookmarks.php:62 +msgid "My Bookmarks" +msgstr "Mijn bladwijzers" + +#: ../../mod/bookmarks.php:73 +msgid "My Connections Bookmarks" +msgstr "Bladwijzers van mijn connecties" + +#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 +msgid "$Projectname" +msgstr "$Projectname" + +#: ../../mod/home.php:75 +#, php-format +msgid "Welcome to %s" +msgstr "Welkom op %s" + +#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 +msgid "This setting requires special processing and editing has been blocked." +msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd." + +#: ../../mod/pconfig.php:49 +msgid "Configuration Editor" +msgstr "Configuratiebewerker" + +#: ../../mod/pconfig.php:50 +msgid "" +"Warning: Changing some settings could render your channel inoperable. Please" +" leave this page unless you are comfortable with and knowledgeable about how" +" to correctly use this feature." +msgstr "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. " + +#: ../../mod/poke.php:164 +msgid "Poke/Prod" +msgstr "Aanstoten/porren" + +#: ../../mod/poke.php:165 +msgid "poke, prod or do other things to somebody" +msgstr "aanstoten, porren of andere dingen met iemand doen" + +#: ../../mod/poke.php:166 +msgid "Recipient" +msgstr "Ontvanger" + +#: ../../mod/poke.php:167 +msgid "Choose what you wish to do to recipient" +msgstr "Kies wat je met de ontvanger wil doen" + +#: ../../mod/poke.php:170 +msgid "Make this post private" +msgstr "Maak dit bericht privé" + +#: ../../mod/profiles.php:19 ../../mod/profiles.php:184 +#: ../../mod/profiles.php:241 ../../mod/profiles.php:608 +msgid "Profile not found." +msgstr "Profiel niet gevonden." + +#: ../../mod/profiles.php:39 +msgid "Profile deleted." +msgstr "Profiel verwijderd." + +#: ../../mod/profiles.php:63 ../../mod/profiles.php:99 +msgid "Profile-" +msgstr "Profiel-" + +#: ../../mod/profiles.php:84 ../../mod/profiles.php:127 +msgid "New profile created." +msgstr "Nieuw profiel aangemaakt." + +#: ../../mod/profiles.php:105 +msgid "Profile unavailable to clone." +msgstr "Profiel niet beschikbaar om te klonen" + +#: ../../mod/profiles.php:146 +msgid "Profile unavailable to export." +msgstr "Geen profiel beschikbaar om te exporteren" + +#: ../../mod/profiles.php:251 +msgid "Profile Name is required." +msgstr "Profielnaam is vereist" + +#: ../../mod/profiles.php:414 +msgid "Marital Status" +msgstr "Huwelijke status" + +#: ../../mod/profiles.php:418 +msgid "Romantic Partner" +msgstr "Romantische partner" + +#: ../../mod/profiles.php:422 +msgid "Likes" +msgstr "Houdt van" + +#: ../../mod/profiles.php:426 +msgid "Dislikes" +msgstr "Houdt niet van" + +#: ../../mod/profiles.php:430 +msgid "Work/Employment" +msgstr "Werk/arbeid" + +#: ../../mod/profiles.php:433 +msgid "Religion" +msgstr "Religie" + +#: ../../mod/profiles.php:437 +msgid "Political Views" +msgstr "Politieke overtuigingen" + +#: ../../mod/profiles.php:445 +msgid "Sexual Preference" +msgstr "Seksuele voorkeur" + +#: ../../mod/profiles.php:449 +msgid "Homepage" +msgstr "Homepage" + +#: ../../mod/profiles.php:453 +msgid "Interests" +msgstr "Interesses" + +#: ../../mod/profiles.php:457 ../../mod/admin.php:974 +msgid "Address" +msgstr "Kanaaladres" + +#: ../../mod/profiles.php:547 +msgid "Profile updated." +msgstr "Profiel bijgewerkt" + +#: ../../mod/profiles.php:634 +msgid "Hide your contact/friend list from viewers of this profile?" +msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien." + +#: ../../mod/profiles.php:674 +msgid "Edit Profile Details" +msgstr "Profiel bewerken" + +#: ../../mod/profiles.php:676 +msgid "View this profile" +msgstr "Profiel weergeven" + +#: ../../mod/profiles.php:678 +msgid "Change Profile Photo" +msgstr "Profielfoto wijzigen" + +#: ../../mod/profiles.php:679 +msgid "Create a new profile using these settings" +msgstr "Een nieuw profiel aanmaken met dit profiel als basis" + +#: ../../mod/profiles.php:680 +msgid "Clone this profile" +msgstr "Dit profiel klonen" + +#: ../../mod/profiles.php:681 +msgid "Delete this profile" +msgstr "Dit profiel verwijderen" + +#: ../../mod/profiles.php:683 +msgid "Import profile from file" +msgstr "Profiel vanuit bestand importeren" + +#: ../../mod/profiles.php:684 +msgid "Export profile to file" +msgstr "Profiel naar bestand exporteren" + +#: ../../mod/profiles.php:685 +msgid "Profile Name:" +msgstr "Profielnaam:" + +#: ../../mod/profiles.php:686 +msgid "Your Full Name:" +msgstr "Jouw volledige naam:" + +#: ../../mod/profiles.php:687 +msgid "Title/Description:" +msgstr "Titel/omschrijving:" + +#: ../../mod/profiles.php:688 +msgid "Your Gender:" +msgstr "Jouw geslacht" + +#: ../../mod/profiles.php:689 +msgid "Birthday :" +msgstr "Verjaardag: " + +#: ../../mod/profiles.php:690 +msgid "Street Address:" +msgstr "Straat en huisnummer:" + +#: ../../mod/profiles.php:691 +msgid "Locality/City:" +msgstr "Woonplaats:" + +#: ../../mod/profiles.php:692 +msgid "Postal/Zip Code:" +msgstr "Postcode:" + +#: ../../mod/profiles.php:693 +msgid "Country:" +msgstr "Land:" + +#: ../../mod/profiles.php:694 +msgid "Region/State:" +msgstr "Provincie/gewest/deelstaat:" + +#: ../../mod/profiles.php:695 +msgid "<span class=\"heart\">♥</span> Marital Status:" +msgstr "<span class=\"heart\">♥</span> Huwelijkse staat:" + +#: ../../mod/profiles.php:696 +msgid "Who: (if applicable)" +msgstr "Wie (wanneer toepasselijk):" + +#: ../../mod/profiles.php:697 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl" + +#: ../../mod/profiles.php:698 +msgid "Since [date]:" +msgstr "Sinds [datum]:" + +#: ../../mod/profiles.php:700 +msgid "Homepage URL:" +msgstr "Adres homepage:" + +#: ../../mod/profiles.php:703 +msgid "Religious Views:" +msgstr "Religieuze overtuigingen" + +#: ../../mod/profiles.php:704 +msgid "Keywords:" +msgstr "Trefwoorden" + +#: ../../mod/profiles.php:707 +msgid "Example: fishing photography software" +msgstr "Voorbeeld: muziek, fotografie, software" + +#: ../../mod/profiles.php:708 +msgid "Used in directory listings" +msgstr "Wordt in de kanalengids gebruikt" + +#: ../../mod/profiles.php:709 +msgid "Tell us about yourself..." +msgstr "Vertel ons iets over jezelf..." + +#: ../../mod/profiles.php:710 +msgid "Hobbies/Interests" +msgstr "Hobby's/interesses" + +#: ../../mod/profiles.php:711 +msgid "Contact information and Social Networks" +msgstr "Contactinformatie en sociale netwerken" + +#: ../../mod/profiles.php:712 +msgid "My other channels" +msgstr "Mijn andere kanalen" + +#: ../../mod/profiles.php:713 +msgid "Musical interests" +msgstr "Muzikale interesses" + +#: ../../mod/profiles.php:714 +msgid "Books, literature" +msgstr "Boeken/literatuur" + +#: ../../mod/profiles.php:715 +msgid "Television" +msgstr "Televisie" + +#: ../../mod/profiles.php:716 +msgid "Film/dance/culture/entertainment" +msgstr "Film/dans/cultuur/entertainment" + +#: ../../mod/profiles.php:717 +msgid "Love/romance" +msgstr "Liefde/romantiek" + +#: ../../mod/profiles.php:718 +msgid "Work/employment" +msgstr "Werk/arbeid" + +#: ../../mod/profiles.php:719 +msgid "School/education" +msgstr "School/onderwijs" + +#: ../../mod/profiles.php:725 +msgid "This is your default profile." +msgstr "Dit is jouw standaardprofiel" + +#: ../../mod/profiles.php:736 +msgid "Age: " +msgstr "Leeftijd:" + +#: ../../mod/profiles.php:779 +msgid "Edit/Manage Profiles" +msgstr "Profielen bewerken/beheren" + +#: ../../mod/profiles.php:780 +msgid "Add profile things" +msgstr "Dingen aan je profiel toevoegen" + +#: ../../mod/profiles.php:781 +msgid "Include desirable objects in your profile" +msgstr "Voeg door jou gewenste dingen aan jouw profiel toe" + +#: ../../mod/search.php:212 +#, php-format +msgid "Items tagged with: %s" +msgstr "Items getagd met %s" + +#: ../../mod/search.php:214 +#, php-format +msgid "Search results for: %s" +msgstr "Zoekresultaten voor %s" #: ../../mod/connedit.php:75 msgid "Could not access contact record." @@ -4717,249 +5519,249 @@ msgstr "Kon geen toegang krijgen tot de connectie-gegevens." msgid "Could not locate selected profile." msgstr "Kon het gekozen profiel niet vinden." -#: ../../mod/connedit.php:218 +#: ../../mod/connedit.php:223 msgid "Connection updated." msgstr "Connectie bijgewerkt." -#: ../../mod/connedit.php:220 +#: ../../mod/connedit.php:225 msgid "Failed to update connection record." msgstr "Bijwerken van connectie-gegevens mislukt." -#: ../../mod/connedit.php:267 +#: ../../mod/connedit.php:272 msgid "is now connected to" msgstr "is nu verbonden met" -#: ../../mod/connedit.php:390 +#: ../../mod/connedit.php:395 msgid "Could not access address book record." msgstr "Kon geen toegang krijgen tot de record van de connectie." -#: ../../mod/connedit.php:404 +#: ../../mod/connedit.php:409 msgid "Refresh failed - channel is currently unavailable." msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar" -#: ../../mod/connedit.php:413 ../../mod/connedit.php:422 -#: ../../mod/connedit.php:431 ../../mod/connedit.php:440 -#: ../../mod/connedit.php:453 +#: ../../mod/connedit.php:418 ../../mod/connedit.php:427 +#: ../../mod/connedit.php:436 ../../mod/connedit.php:445 +#: ../../mod/connedit.php:458 msgid "Unable to set address book parameters." msgstr "Niet in staat om de parameters van connecties in te stellen." -#: ../../mod/connedit.php:477 +#: ../../mod/connedit.php:482 msgid "Connection has been removed." msgstr "Connectie is verwijderd" -#: ../../mod/connedit.php:496 +#: ../../mod/connedit.php:501 #, php-format msgid "View %s's profile" msgstr "Profiel van %s weergeven" -#: ../../mod/connedit.php:500 +#: ../../mod/connedit.php:505 msgid "Refresh Permissions" msgstr "Permissies vernieuwen" -#: ../../mod/connedit.php:503 +#: ../../mod/connedit.php:508 msgid "Fetch updated permissions" msgstr "Aangepaste permissies ophalen" -#: ../../mod/connedit.php:507 +#: ../../mod/connedit.php:512 msgid "Recent Activity" msgstr "Kanaal-activiteit" -#: ../../mod/connedit.php:510 +#: ../../mod/connedit.php:515 msgid "View recent posts and comments" msgstr "Recente berichten en reacties weergeven" -#: ../../mod/connedit.php:514 ../../mod/admin.php:810 +#: ../../mod/connedit.php:519 ../../mod/admin.php:811 msgid "Unblock" msgstr "Deblokkeren" -#: ../../mod/connedit.php:514 ../../mod/admin.php:809 +#: ../../mod/connedit.php:519 ../../mod/admin.php:810 msgid "Block" msgstr "Blokkeren" -#: ../../mod/connedit.php:517 +#: ../../mod/connedit.php:522 msgid "Block (or Unblock) all communications with this connection" msgstr "Blokkeer (of deblokkeer) alle communicatie met deze connectie" -#: ../../mod/connedit.php:518 +#: ../../mod/connedit.php:523 msgid "This connection is blocked!" msgstr "Deze connectie is geblokkeerd!" -#: ../../mod/connedit.php:522 +#: ../../mod/connedit.php:527 msgid "Unignore" msgstr "Niet meer negeren" -#: ../../mod/connedit.php:522 ../../mod/notifications.php:51 +#: ../../mod/connedit.php:527 ../../mod/notifications.php:51 msgid "Ignore" msgstr "Negeren" -#: ../../mod/connedit.php:525 +#: ../../mod/connedit.php:530 msgid "Ignore (or Unignore) all inbound communications from this connection" msgstr "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie" -#: ../../mod/connedit.php:526 +#: ../../mod/connedit.php:531 msgid "This connection is ignored!" msgstr "Deze connectie wordt genegeerd!" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Unarchive" msgstr "Niet meer archiveren" -#: ../../mod/connedit.php:530 +#: ../../mod/connedit.php:535 msgid "Archive" msgstr "Archiveren" -#: ../../mod/connedit.php:533 +#: ../../mod/connedit.php:538 msgid "" "Archive (or Unarchive) this connection - mark channel dead but keep content" msgstr "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud" -#: ../../mod/connedit.php:534 +#: ../../mod/connedit.php:539 msgid "This connection is archived!" msgstr "Deze connectie is gearchiveerd!" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Unhide" msgstr "Niet meer verbergen" -#: ../../mod/connedit.php:538 +#: ../../mod/connedit.php:543 msgid "Hide" msgstr "Verbergen" -#: ../../mod/connedit.php:541 +#: ../../mod/connedit.php:546 msgid "Hide or Unhide this connection from your other connections" msgstr "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties" -#: ../../mod/connedit.php:542 +#: ../../mod/connedit.php:547 msgid "This connection is hidden!" msgstr "Deze connectie is verborgen!" -#: ../../mod/connedit.php:549 +#: ../../mod/connedit.php:554 msgid "Delete this connection" msgstr "Deze connectie verwijderen" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Approve this connection" msgstr "Deze connectie accepteren" -#: ../../mod/connedit.php:630 +#: ../../mod/connedit.php:635 msgid "Accept connection to allow communication" msgstr "Keur deze connectie goed om communicatie toe te staan" -#: ../../mod/connedit.php:635 +#: ../../mod/connedit.php:640 msgid "Set Affinity" msgstr "Verwantschapsfilter instellen" -#: ../../mod/connedit.php:638 +#: ../../mod/connedit.php:643 msgid "Set Profile" msgstr "Profiel instellen" -#: ../../mod/connedit.php:641 +#: ../../mod/connedit.php:646 msgid "Set Affinity & Profile" msgstr "Verwantschapsfilter en profiel instellen" -#: ../../mod/connedit.php:670 +#: ../../mod/connedit.php:679 msgid "none" msgstr "geen" -#: ../../mod/connedit.php:675 +#: ../../mod/connedit.php:684 msgid "Apply these permissions automatically" msgstr "Deze permissies automatisch toepassen" -#: ../../mod/connedit.php:677 +#: ../../mod/connedit.php:686 msgid "This connection's primary address is" msgstr "Het primaire kanaaladres van deze connectie is" -#: ../../mod/connedit.php:678 +#: ../../mod/connedit.php:687 msgid "Available locations:" msgstr "Beschikbare locaties:" -#: ../../mod/connedit.php:682 +#: ../../mod/connedit.php:691 msgid "" "The permissions indicated on this page will be applied to all new " "connections." msgstr "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast." -#: ../../mod/connedit.php:684 +#: ../../mod/connedit.php:693 msgid "Slide to adjust your degree of friendship" msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag" -#: ../../mod/connedit.php:686 +#: ../../mod/connedit.php:695 msgid "Slide to adjust your rating" msgstr "Gebruik de schuif om je beoordeling te geven" -#: ../../mod/connedit.php:687 ../../mod/connedit.php:692 +#: ../../mod/connedit.php:696 ../../mod/connedit.php:701 msgid "Optionally explain your rating" msgstr "Verklaar jouw beoordeling (niet verplicht)" -#: ../../mod/connedit.php:689 +#: ../../mod/connedit.php:698 msgid "Custom Filter" msgstr "Berichtenfilter" -#: ../../mod/connedit.php:690 +#: ../../mod/connedit.php:699 msgid "Only import posts with this text" msgstr "Importeer alleen berichten met deze tekst" -#: ../../mod/connedit.php:690 ../../mod/connedit.php:691 +#: ../../mod/connedit.php:699 ../../mod/connedit.php:700 msgid "" "words one per line or #tags or /patterns/ or lang=xx, leave blank to import " "all posts" msgstr "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren" -#: ../../mod/connedit.php:691 +#: ../../mod/connedit.php:700 msgid "Do not import posts with this text" msgstr "Importeer geen berichten met deze tekst" -#: ../../mod/connedit.php:693 +#: ../../mod/connedit.php:702 msgid "This information is public!" msgstr "Deze informatie is openbaar!" -#: ../../mod/connedit.php:698 +#: ../../mod/connedit.php:707 msgid "Connection Pending Approval" msgstr "Connectie moet nog goedgekeurd worden" -#: ../../mod/connedit.php:699 +#: ../../mod/connedit.php:708 msgid "Connection Request" msgstr "Connectieverzoek" -#: ../../mod/connedit.php:700 +#: ../../mod/connedit.php:709 #, php-format msgid "" "(%s) would like to connect with you. Please approve this connection to allow" " communication." msgstr "(%s) wil met jou verbinden. Keur dit connectieverzoek goed om onderling te kunnen communiceren." -#: ../../mod/connedit.php:701 ../../mod/admin.php:806 +#: ../../mod/connedit.php:710 ../../mod/admin.php:807 msgid "Approve" msgstr "Goedkeuren" -#: ../../mod/connedit.php:702 +#: ../../mod/connedit.php:711 msgid "Approve Later" msgstr "Later goedkeuren" -#: ../../mod/connedit.php:705 +#: ../../mod/connedit.php:714 msgid "inherited" msgstr "geërfd" -#: ../../mod/connedit.php:707 +#: ../../mod/connedit.php:716 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken." -#: ../../mod/connedit.php:709 +#: ../../mod/connedit.php:718 msgid "Their Settings" msgstr "Hun instellingen" -#: ../../mod/connedit.php:710 +#: ../../mod/connedit.php:719 msgid "My Settings" msgstr "Mijn instellingen" -#: ../../mod/connedit.php:712 +#: ../../mod/connedit.php:721 msgid "Individual Permissions" msgstr "Individuele permissies" -#: ../../mod/connedit.php:713 +#: ../../mod/connedit.php:722 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4967,7 +5769,7 @@ msgid "" " settings here." msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen." -#: ../../mod/connedit.php:714 +#: ../../mod/connedit.php:723 msgid "" "Some permissions may be inherited from your channel's <a " "href=\"settings\"><strong>privacy settings</strong></a>, which have higher " @@ -4975,221 +5777,541 @@ msgid "" "they wont have any impact unless the inherited setting changes." msgstr "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. " -#: ../../mod/connedit.php:715 +#: ../../mod/connedit.php:724 msgid "Last update:" msgstr "Laatste wijziging:" -#: ../../mod/mood.php:132 -msgid "Set your current mood and tell your friends" -msgstr "Noteer je huidige stemming en toon het aan je connecties" +#: ../../mod/acl.php:222 +msgid "network" +msgstr "netwerk" -#: ../../mod/magic.php:69 -msgid "Hub not found." -msgstr "Hub niet gevonden." +#: ../../mod/acl.php:232 +msgid "RSS" +msgstr "RSS" -#: ../../mod/pconfig.php:27 ../../mod/pconfig.php:60 -msgid "This setting requires special processing and editing has been blocked." -msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd." +#: ../../mod/dav.php:121 +msgid "$Projectname channel" +msgstr "$Projectname-kanaal" -#: ../../mod/pconfig.php:49 -msgid "Configuration Editor" -msgstr "Configuratiebewerker" +#: ../../mod/dreport.php:23 +msgid "Invalid message" +msgstr "Ongeldig bericht" -#: ../../mod/pconfig.php:50 +#: ../../mod/dreport.php:55 +msgid "no results" +msgstr "geen resultaten" + +#: ../../mod/dreport.php:60 +#, php-format +msgid "Delivery report for %1$s" +msgstr "Afleveringsrapport voor %1$s" + +#: ../../mod/dreport.php:74 +msgid "channel sync processed" +msgstr "kanaalsync verwerkt" + +#: ../../mod/dreport.php:78 +msgid "queued" +msgstr "in wachtrij" + +#: ../../mod/dreport.php:82 +msgid "posted" +msgstr "verstuurd" + +#: ../../mod/dreport.php:86 +msgid "accepted for delivery" +msgstr "geaccepteerd om afgeleverd te worden" + +#: ../../mod/dreport.php:90 +msgid "updated" +msgstr "geüpdatet" + +#: ../../mod/dreport.php:93 +msgid "update ignored" +msgstr "update genegeerd" + +#: ../../mod/dreport.php:96 +msgid "permission denied" +msgstr "toegang geweigerd" + +#: ../../mod/dreport.php:100 +msgid "recipient not found" +msgstr "ontvanger niet gevonden" + +#: ../../mod/dreport.php:103 +msgid "mail recalled" +msgstr "Privébericht ingetrokken" + +#: ../../mod/dreport.php:106 +msgid "duplicate mail received" +msgstr "dubbel privébericht ontvangen" + +#: ../../mod/dreport.php:109 +msgid "mail delivered" +msgstr "privébericht afgeleverd" + +#: ../../mod/editwebpage.php:77 ../../mod/editblock.php:78 +#: ../../mod/editblock.php:94 ../../mod/editlayout.php:76 +#: ../../mod/editpost.php:20 +msgid "Item not found" +msgstr "Item niet gevonden" + +#: ../../mod/editwebpage.php:153 +msgid "Delete webpage?" +msgstr "Webpagina verwijderen?" + +#: ../../mod/editwebpage.php:172 +msgid "Page link title" +msgstr "Titel van paginalink" + +#: ../../mod/editwebpage.php:185 ../../mod/editblock.php:145 +#: ../../mod/editlayout.php:143 ../../mod/editpost.php:121 +msgid "Insert YouTube video" +msgstr "YouTube-video invoegen" + +#: ../../mod/editwebpage.php:186 ../../mod/editblock.php:146 +#: ../../mod/editlayout.php:144 ../../mod/editpost.php:122 +msgid "Insert Vorbis [.ogg] video" +msgstr "Vorbis-video [.ogg] invoegen" + +#: ../../mod/editwebpage.php:187 ../../mod/editblock.php:147 +#: ../../mod/editlayout.php:145 ../../mod/editpost.php:123 +msgid "Insert Vorbis [.ogg] audio" +msgstr "Vorbis-audio [.ogg] invoegen" + +#: ../../mod/editwebpage.php:222 +msgid "Edit Webpage" +msgstr "Webpagina bewerken" + +#: ../../mod/oexchange.php:23 +msgid "Unable to find your hub." +msgstr "Niet in staat om je hub te vinden" + +#: ../../mod/oexchange.php:37 +msgid "Post successful." +msgstr "Verzenden bericht geslaagd." + +#: ../../mod/ping.php:260 +msgid "sent you a private message" +msgstr "stuurde jou een privébericht" + +#: ../../mod/ping.php:308 +msgid "added your channel" +msgstr "voegde jouw kanaal toe" + +#: ../../mod/ping.php:350 +msgid "posted an event" +msgstr "plaatste een gebeurtenis" + +#: ../../mod/api.php:76 ../../mod/api.php:102 +msgid "Authorize application connection" +msgstr "Geef toestemming voor applicatiekoppeling" + +#: ../../mod/api.php:77 +msgid "Return to your app and insert this Securty Code:" +msgstr "Ga terug naar je app en voeg deze beveiligingscode in:" + +#: ../../mod/api.php:89 +msgid "Please login to continue." +msgstr "Inloggen om verder te kunnen gaan." + +#: ../../mod/api.php:104 msgid "" -"Warning: Changing some settings could render your channel inoperable. Please" -" leave this page unless you are comfortable with and knowledgeable about how" -" to correctly use this feature." -msgstr "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. " +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?" -#: ../../mod/filestorage.php:82 -msgid "Permission Denied." -msgstr "Toegang geweigerd" +#: ../../mod/notify.php:53 ../../mod/notifications.php:94 +msgid "No more system notifications." +msgstr "Geen systeemnotificaties meer." -#: ../../mod/filestorage.php:98 -msgid "File not found." -msgstr "Bestand niet gevonden." +#: ../../mod/notify.php:57 ../../mod/notifications.php:98 +msgid "System Notifications" +msgstr "Systeemnotificaties" -#: ../../mod/filestorage.php:141 -msgid "Edit file permissions" -msgstr "Bestandsrechten bewerken" +#: ../../mod/rbmark.php:90 +msgid "Select a bookmark folder" +msgstr "Kies een bladwijzermap" -#: ../../mod/filestorage.php:150 -msgid "Set/edit permissions" -msgstr "Rechten instellen/bewerken" +#: ../../mod/rbmark.php:95 +msgid "Save Bookmark" +msgstr "Bladwijzer opslaan" -#: ../../mod/filestorage.php:151 -msgid "Include all files and sub folders" -msgstr "Toepassen op alle bestanden en submappen" +#: ../../mod/rbmark.php:96 +msgid "URL of bookmark" +msgstr "URL van bladwijzer" -#: ../../mod/filestorage.php:152 -msgid "Return to file list" -msgstr "Terugkeren naar bestandlijst " +#: ../../mod/rbmark.php:97 ../../mod/appman.php:93 ../../mod/events.php:465 +msgid "Description" +msgstr "Omschrijving" -#: ../../mod/filestorage.php:154 -msgid "Copy/paste this code to attach file to a post" -msgstr "Kopieer/plak deze code om het bestand aan een bericht te koppelen" +#: ../../mod/rbmark.php:101 +msgid "Or enter new bookmark folder name" +msgstr "Of geef de naam op van een nieuwe bladwijzermap" -#: ../../mod/filestorage.php:155 -msgid "Copy/paste this URL to link file from a web page" -msgstr "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen" +#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92 +msgid "Contact not found." +msgstr "Contact niet gevonden" -#: ../../mod/filestorage.php:157 -msgid "Share this file" -msgstr "Dit bestand delen" +#: ../../mod/fsuggest.php:63 +msgid "Friend suggestion sent." +msgstr "Kanaalvoorstel verzonden." -#: ../../mod/filestorage.php:158 -msgid "Show URL to this file" -msgstr "Toon URL van dit bestand" +#: ../../mod/fsuggest.php:97 +msgid "Suggest Friends" +msgstr "Kanalen voorstellen" -#: ../../mod/filestorage.php:159 -msgid "Notify your contacts about this file" -msgstr "Jouw connecties over dit bestand berichten" +#: ../../mod/fsuggest.php:99 +#, php-format +msgid "Suggest a friend for %s" +msgstr "Stel een kanaal voor aan %s" -#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 -msgid "This site is not a directory server" -msgstr "Deze hub is geen kanalengidshub (directoryserver)" +#: ../../mod/sources.php:32 +msgid "Failed to create source. No channel selected." +msgstr "Aanmaken bron mislukt. Geen kanaal geselecteerd." -#: ../../mod/layouts.php:121 ../../mod/layouts.php:179 -#: ../../mod/editlayout.php:161 -msgid "Layout Name" -msgstr "Naam lay-out" +#: ../../mod/sources.php:45 +msgid "Source created." +msgstr "Bron aangemaakt." -#: ../../mod/layouts.php:124 ../../mod/editlayout.php:159 -msgid "Layout Description (Optional)" -msgstr "Lay-out-omschrijving (optioneel)" +#: ../../mod/sources.php:57 +msgid "Source updated." +msgstr "Bron aangemaakt." -#: ../../mod/layouts.php:176 -msgid "Comanche page description language help" -msgstr "Hulp met de paginabeschrijvingstaal Comanche" +#: ../../mod/sources.php:82 +msgid "*" +msgstr "*" -#: ../../mod/layouts.php:180 -msgid "Layout Description" -msgstr "Lay-out-omschrijving" +#: ../../mod/sources.php:89 +msgid "Manage remote sources of content for your channel." +msgstr "Beheer externe bronnen met inhoud voor jouw kanaal" -#: ../../mod/layouts.php:185 -msgid "Download PDL file" -msgstr "Download PDL-bestand" +#: ../../mod/sources.php:90 ../../mod/sources.php:100 +msgid "New Source" +msgstr "Nieuwe bron" -#: ../../mod/poke.php:164 -msgid "Poke/Prod" -msgstr "Aanstoten/porren" +#: ../../mod/sources.php:101 ../../mod/sources.php:133 +msgid "" +"Import all or selected content from the following channel into this channel " +"and distribute it according to your channel settings." +msgstr "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen." -#: ../../mod/poke.php:165 -msgid "poke, prod or do other things to somebody" -msgstr "aanstoten, porren of andere dingen met iemand doen" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Only import content with these words (one per line)" +msgstr "Importeer alleen inhoud met deze woorden (één per regel)" -#: ../../mod/poke.php:166 -msgid "Recipient" -msgstr "Ontvanger" +#: ../../mod/sources.php:102 ../../mod/sources.php:134 +msgid "Leave blank to import all public content" +msgstr "Laat leeg om alle openbare inhoud te importeren" -#: ../../mod/poke.php:167 -msgid "Choose what you wish to do to recipient" -msgstr "Kies wat je met de ontvanger wil doen" +#: ../../mod/sources.php:123 ../../mod/sources.php:150 +msgid "Source not found." +msgstr "Bron niet gevonden" -#: ../../mod/poke.php:170 -msgid "Make this post private" -msgstr "Maak dit bericht privé" +#: ../../mod/sources.php:130 +msgid "Edit Source" +msgstr "Bron bewerken" -#: ../../mod/network.php:91 -msgid "No such group" -msgstr "Collectie niet gevonden" +#: ../../mod/sources.php:131 +msgid "Delete Source" +msgstr "Bron verwijderen" -#: ../../mod/network.php:131 -msgid "No such channel" -msgstr "Niet zo'n kanaal" +#: ../../mod/sources.php:158 +msgid "Source removed" +msgstr "Bron verwijderd" -#: ../../mod/network.php:136 -msgid "forum" -msgstr "forum" +#: ../../mod/sources.php:160 +msgid "Unable to remove source." +msgstr "Verwijderen bron mislukt." -#: ../../mod/network.php:148 -msgid "Search Results For:" -msgstr "Zoekresultaten voor:" +#: ../../mod/notifications.php:26 +msgid "Invalid request identifier." +msgstr "Ongeldige verzoek identificator (request identifier)" -#: ../../mod/network.php:207 -msgid "Collection is empty" -msgstr "Collectie is leeg" +#: ../../mod/notifications.php:35 +msgid "Discard" +msgstr "Annuleren" -#: ../../mod/network.php:216 -msgid "Collection: " -msgstr "Collectie: " +#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 +msgid "Tag removed" +msgstr "Tag verwijderd" -#: ../../mod/network.php:242 -msgid "Invalid connection." -msgstr "Ongeldige connectie." +#: ../../mod/tagrm.php:119 +msgid "Remove Item Tag" +msgstr "Verwijder item-tag" -#: ../../mod/chat.php:19 ../../mod/channel.php:25 -msgid "You must be logged in to see this page." -msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken." +#: ../../mod/tagrm.php:121 +msgid "Select a tag to remove: " +msgstr "Kies een tag om te verwijderen" -#: ../../mod/chat.php:174 -msgid "Room not found" -msgstr "Chatkanaal niet gevonden" +#: ../../mod/tagrm.php:133 ../../mod/photos.php:954 +msgid "Remove" +msgstr "Verwijderen" -#: ../../mod/chat.php:185 -msgid "Leave Room" -msgstr "Chatkanaal verlaten" +#: ../../mod/directory.php:236 +#, php-format +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d beoordeling" +msgstr[1] "%d beoordelingen" -#: ../../mod/chat.php:186 -msgid "Delete This Room" -msgstr "Chatkanaal verwijderen" +#: ../../mod/directory.php:247 +msgid "Gender: " +msgstr "Geslacht:" -#: ../../mod/chat.php:187 -msgid "I am away right now" -msgstr "Ik ben momenteel afwezig" +#: ../../mod/directory.php:249 +msgid "Status: " +msgstr "Status: " -#: ../../mod/chat.php:188 -msgid "I am online" -msgstr "Ik ben online" +#: ../../mod/directory.php:251 +msgid "Homepage: " +msgstr "Homepage: " -#: ../../mod/chat.php:190 -msgid "Bookmark this room" -msgstr "Chatkanaal aan bladwijzers toevoegen" +#: ../../mod/directory.php:310 +msgid "Description:" +msgstr "Omschrijving:" -#: ../../mod/chat.php:208 ../../mod/chat.php:231 -msgid "New Chatroom" -msgstr "Nieuw chatkanaal" +#: ../../mod/directory.php:319 +msgid "Public Forum:" +msgstr "Openbaar forum:" -#: ../../mod/chat.php:209 -msgid "Chatroom Name" -msgstr "Naam chatkanaal" +#: ../../mod/directory.php:322 +msgid "Keywords: " +msgstr "Trefwoorden: " -#: ../../mod/chat.php:210 -msgid "Expiration of chats (minutes)" -msgstr "Aantal minuten voordat chatberichten worden verwijderd" +#: ../../mod/directory.php:325 +msgid "Don't suggest" +msgstr "Niet voorstellen" -#: ../../mod/chat.php:227 +#: ../../mod/directory.php:327 +msgid "Common connections:" +msgstr "Gemeenschappelijke connecties:" + +#: ../../mod/directory.php:376 +msgid "Global Directory" +msgstr "Volledige kanalengids" + +#: ../../mod/directory.php:376 +msgid "Local Directory" +msgstr "Lokale kanalengids" + +#: ../../mod/directory.php:382 +msgid "Finding:" +msgstr "Gezocht naar:" + +#: ../../mod/directory.php:387 +msgid "next page" +msgstr "volgende pagina" + +#: ../../mod/directory.php:387 +msgid "previous page" +msgstr "vorige pagina" + +#: ../../mod/directory.php:388 +msgid "Sort options" +msgstr "Sorteeropties" + +#: ../../mod/directory.php:389 +msgid "Alphabetic" +msgstr "Alfabetisch" + +#: ../../mod/directory.php:390 +msgid "Reverse Alphabetic" +msgstr "Omgekeerd alfabetisch" + +#: ../../mod/directory.php:391 +msgid "Newest to Oldest" +msgstr "Nieuw naar oud" + +#: ../../mod/directory.php:392 +msgid "Oldest to Newest" +msgstr "Oud naar nieuw" + +#: ../../mod/directory.php:409 +msgid "No entries (some entries may be hidden)." +msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)." + +#: ../../mod/lostpass.php:15 +msgid "No valid account found." +msgstr "Geen geldige account gevonden." + +#: ../../mod/lostpass.php:29 +msgid "Password reset request issued. Check your email." +msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail." + +#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 #, php-format -msgid "%1$s's Chatrooms" -msgstr "Chatkanalen van %1$s" +msgid "Site Member (%s)" +msgstr "Lid van hub (%s)" -#: ../../mod/search.php:211 +#: ../../mod/lostpass.php:40 #, php-format -msgid "Items tagged with: %s" -msgstr "Items getagd met %s" +msgid "Password reset requested at %s" +msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend" -#: ../../mod/search.php:213 +#: ../../mod/lostpass.php:63 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"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:1494 +msgid "Password Reset" +msgstr "Wachtwoord vergeten?" + +#: ../../mod/lostpass.php:87 +msgid "Your password has been reset as requested." +msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht." + +#: ../../mod/lostpass.php:88 +msgid "Your new password is" +msgstr "Jouw nieuwe wachtwoord is" + +#: ../../mod/lostpass.php:89 +msgid "Save or copy your new password - and then" +msgstr "Kopieer of sla je nieuwe wachtwoord op - en" + +#: ../../mod/lostpass.php:90 +msgid "click here to login" +msgstr "klik dan hier om in te loggen" + +#: ../../mod/lostpass.php:91 +msgid "" +"Your password may be changed from the <em>Settings</em> page after " +"successful login." +msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd." + +#: ../../mod/lostpass.php:108 #, php-format -msgid "Search results for: %s" -msgstr "Zoekresultaten voor %s" +msgid "Your password has changed at %s" +msgstr "Jouw wachtwoord op %s is veranderd" -#: ../../mod/rate.php:158 -msgid "Website:" -msgstr "Website:" +#: ../../mod/lostpass.php:123 +msgid "Forgot your Password?" +msgstr "Wachtwoord vergeten?" -#: ../../mod/rate.php:161 +#: ../../mod/lostpass.php:124 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies." + +#: ../../mod/lostpass.php:125 +msgid "Email Address" +msgstr "E-mailadres" + +#: ../../mod/lostpass.php:126 +msgid "Reset" +msgstr "Opnieuw instellen" + +#: ../../mod/regdir.php:45 ../../mod/dirsearch.php:21 +msgid "This site is not a directory server" +msgstr "Deze hub is geen kanalengidshub (directoryserver)" + +#: ../../mod/impel.php:192 #, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)" +msgid "%s element installed" +msgstr "%s onderdeel geïnstalleerd" -#: ../../mod/rate.php:162 -msgid "Rating (this information is public)" -msgstr "Beoordeling (deze informatie is openbaar)" +#: ../../mod/impel.php:195 +#, php-format +msgid "%s element installation failed" +msgstr "Installatie %s-element mislukt" -#: ../../mod/rate.php:163 -msgid "Optionally explain your rating (this information is public)" -msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)" +#: ../../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: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" + +#: ../../mod/import.php:28 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Jouw abonnement staat maar %d kanalen toe." + +#: ../../mod/import.php:66 ../../mod/import_items.php:38 +msgid "Nothing to import." +msgstr "Niets gevonden om te importeren" + +#: ../../mod/import.php:90 ../../mod/import_items.php:62 +msgid "Unable to download data from old server" +msgstr "Niet in staat om gegevens van de oude hub te downloaden" + +#: ../../mod/import.php:96 ../../mod/import_items.php:68 +msgid "Imported file is empty." +msgstr "Geïmporteerde bestand is leeg" + +#: ../../mod/import.php:116 ../../mod/import_items.php:82 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." +msgstr "Waarschuwing: database-versies lopen %1$d updates achter." + +#: ../../mod/import.php:149 +msgid "No channel. Import failed." +msgstr "Geen kanaal. Importeren mislukt." + +#: ../../mod/import.php:509 +msgid "You must be logged in to use this feature." +msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken." + +#: ../../mod/import.php:514 +msgid "Import Channel" +msgstr "Kanaal importeren" + +#: ../../mod/import.php:515 +msgid "" +"Use this form to import an existing channel from a different server/hub. You" +" may retrieve the channel identity from the old server/hub via the network " +"or provide an export file." +msgstr "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken." + +#: ../../mod/import.php:516 ../../mod/import_items.php:121 +msgid "File to Upload" +msgstr "Bestand om te uploaden" + +#: ../../mod/import.php:517 +msgid "Or provide the old server/hub details" +msgstr "Of vul de gegevens van de oude hub in" + +#: ../../mod/import.php:518 +msgid "Your old identity address (xyz@example.com)" +msgstr "Jouw oude kanaaladres (xyz@example.com)" + +#: ../../mod/import.php:519 +msgid "Your old login email address" +msgstr "Het e-mailadres van je oude account" + +#: ../../mod/import.php:520 +msgid "Your old login password" +msgstr "Wachtwoord van jouw oude account" + +#: ../../mod/import.php:521 +msgid "" +"For either option, please choose whether to make this hub your new primary " +"address, or whether your old location should continue this role. You will be" +" able to post from either location, but only one can be marked as the " +"primary location for files, photos, and media." +msgstr "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen." + +#: ../../mod/import.php:522 +msgid "Make this hub my primary location" +msgstr "Stel deze hub als mijn primaire locatie in" + +#: ../../mod/import.php:523 +msgid "" +"Import existing posts if possible (experimental - limited by available " +"memory" +msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)" + +#: ../../mod/import.php:524 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." +msgstr "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid." #: ../../mod/photos.php:79 msgid "Page owner information could not be retrieved." @@ -5266,14 +6388,6 @@ msgstr "Nieuwste eerst weergeven" msgid "Show Oldest First" msgstr "Oudste eerst weergeven" -#: ../../mod/photos.php:753 ../../mod/photos.php:1286 -msgid "View Photo" -msgstr "Foto weergeven" - -#: ../../mod/photos.php:782 -msgid "Edit Album" -msgstr "Album bewerken" - #: ../../mod/photos.php:827 msgid "Permission denied. Access to this item may be restricted." msgstr "Toegang geweigerd. Toegang tot dit item kan zijn beperkt." @@ -5290,7 +6404,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:667 ../../mod/events.php:674 msgid "Previous" msgstr "Vorige" @@ -5298,14 +6412,6 @@ msgstr "Vorige" msgid "View Full Size" msgstr "Volledige grootte weergeven" -#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 -msgid "Next" -msgstr "Volgende" - -#: ../../mod/photos.php:954 ../../mod/tagrm.php:133 -msgid "Remove" -msgstr "Verwijderen" - #: ../../mod/photos.php:988 msgid "Edit photo" msgstr "Foto bewerken" @@ -5358,115 +6464,340 @@ msgstr "Album weergeven" msgid "Recent Photos" msgstr "Recente foto's" -#: ../../mod/dreport.php:23 -msgid "Invalid message" -msgstr "Ongeldig bericht" +#: ../../mod/probe.php:24 ../../mod/probe.php:30 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "Ophalen URL gaf een foutmelding terug: %1$s" -#: ../../mod/dreport.php:55 -msgid "no results" -msgstr "geen resultaten" +#: ../../mod/profile_photo.php:112 +msgid "Image uploaded but image cropping failed." +msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. " -#: ../../mod/dreport.php:60 +#: ../../mod/profile_photo.php:166 +msgid "Image resize failed." +msgstr "Afbeelding kon niet van grootte veranderd worden." + +#: ../../mod/profile_photo.php:212 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven." + +#: ../../mod/profile_photo.php:250 +msgid "Image upload failed." +msgstr "Uploaden afbeelding mislukt" + +#: ../../mod/profile_photo.php:269 +msgid "Unable to process image." +msgstr "Niet in staat om afbeelding te verwerken." + +#: ../../mod/profile_photo.php:297 +msgid "female" +msgstr "vrouw" + +#: ../../mod/profile_photo.php:298 #, php-format -msgid "Delivery report for %1$s" -msgstr "Afleveringsrapport voor %1$s" +msgid "%1$s updated her %2$s" +msgstr "%1$s heeft haar %2$s bijgewerkt" -#: ../../mod/dreport.php:74 -msgid "channel sync processed" -msgstr "kanaalsync verwerkt" +#: ../../mod/profile_photo.php:299 +msgid "male" +msgstr "man" -#: ../../mod/dreport.php:78 -msgid "queued" -msgstr "in wachtrij" +#: ../../mod/profile_photo.php:300 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "%1$s heeft zijn %2$s bijgewerkt" -#: ../../mod/dreport.php:82 -msgid "posted" -msgstr "verstuurd" +#: ../../mod/profile_photo.php:302 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "%1$s hebben hun %2$s bijgewerkt" -#: ../../mod/dreport.php:86 -msgid "accepted for delivery" -msgstr "geaccepteerd om afgeleverd te worden" +#: ../../mod/profile_photo.php:304 +msgid "profile photo" +msgstr "profielfoto" -#: ../../mod/dreport.php:90 -msgid "updated" -msgstr "geüpdatet" +#: ../../mod/profile_photo.php:368 ../../mod/profile_photo.php:409 +msgid "Photo not available." +msgstr "Foto niet beschikbaar." -#: ../../mod/dreport.php:93 -msgid "update ignored" -msgstr "update genegeerd" +#: ../../mod/profile_photo.php:450 +msgid "Upload File:" +msgstr "Bestand uploaden:" -#: ../../mod/dreport.php:96 -msgid "permission denied" -msgstr "toegang geweigerd" +#: ../../mod/profile_photo.php:451 +msgid "Select a profile:" +msgstr "Kies een profiel:" -#: ../../mod/dreport.php:100 -msgid "recipient not found" -msgstr "ontvanger niet gevonden" +#: ../../mod/profile_photo.php:452 +msgid "Upload Profile Photo" +msgstr "Profielfoto uploaden" -#: ../../mod/dreport.php:103 -msgid "mail recalled" -msgstr "Privébericht ingetrokken" +#: ../../mod/profile_photo.php:457 ../../mod/settings.php:975 +msgid "or" +msgstr "of" -#: ../../mod/dreport.php:106 -msgid "duplicate mail received" -msgstr "dubbel privébericht ontvangen" +#: ../../mod/profile_photo.php:457 +msgid "skip this step" +msgstr "sla deze stap over" -#: ../../mod/dreport.php:109 -msgid "mail delivered" -msgstr "privébericht afgeleverd" +#: ../../mod/profile_photo.php:457 +msgid "select a photo from your photo albums" +msgstr "Kies een foto uit jouw fotoalbums" -#: ../../mod/editblock.php:78 ../../mod/editblock.php:94 -#: ../../mod/editpost.php:20 ../../mod/editlayout.php:76 -#: ../../mod/editwebpage.php:77 -msgid "Item not found" +#: ../../mod/profile_photo.php:473 +msgid "Crop Image" +msgstr "Afbeelding bijsnijden" + +#: ../../mod/profile_photo.php:474 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven." + +#: ../../mod/profile_photo.php:476 +msgid "Done Editing" +msgstr "Klaar met bewerken" + +#: ../../mod/thing.php:111 +msgid "Thing updated" +msgstr "Ding bijgewerkt" + +#: ../../mod/thing.php:163 +msgid "Object store: failed" +msgstr "Opslaan van ding mislukt" + +#: ../../mod/thing.php:167 +msgid "Thing added" +msgstr "Ding toegevoegd" + +#: ../../mod/thing.php:193 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../mod/thing.php:256 +msgid "Show Thing" +msgstr "Ding weergeven" + +#: ../../mod/thing.php:263 +msgid "item not found." msgstr "Item niet gevonden" -#: ../../mod/editblock.php:118 -msgid "Delete block?" -msgstr "Blok verwijderen" +#: ../../mod/thing.php:296 +msgid "Edit Thing" +msgstr "Ding bewerken" -#: ../../mod/editblock.php:145 ../../mod/editpost.php:121 -#: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:185 -msgid "Insert YouTube video" -msgstr "YouTube-video invoegen" +#: ../../mod/thing.php:298 ../../mod/thing.php:348 +msgid "Select a profile" +msgstr "Kies een profiel" -#: ../../mod/editblock.php:146 ../../mod/editpost.php:122 -#: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:186 -msgid "Insert Vorbis [.ogg] video" -msgstr "Vorbis-video [.ogg] invoegen" +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Post an activity" +msgstr "Plaats een bericht" -#: ../../mod/editblock.php:147 ../../mod/editpost.php:123 -#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:187 -msgid "Insert Vorbis [.ogg] audio" -msgstr "Vorbis-audio [.ogg] invoegen" +#: ../../mod/thing.php:302 ../../mod/thing.php:351 +msgid "Only sends to viewers of the applicable profile" +msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien." -#: ../../mod/editblock.php:180 -msgid "Edit Block" -msgstr "Blok bewerken" +#: ../../mod/thing.php:304 ../../mod/thing.php:353 +msgid "Name of thing e.g. something" +msgstr "Naam van ding" + +#: ../../mod/thing.php:306 ../../mod/thing.php:354 +msgid "URL of thing (optional)" +msgstr "URL van ding (optioneel)" + +#: ../../mod/thing.php:308 ../../mod/thing.php:355 +msgid "URL for photo of thing (optional)" +msgstr "URL van foto van ding (optioneel)" + +#: ../../mod/thing.php:346 +msgid "Add Thing to your Profile" +msgstr "Ding aan je profiel toevoegen" #: ../../mod/dirsearch.php:29 msgid "This directory server requires an access token" msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig" -#: ../../mod/editpost.php:31 -msgid "Item is not editable" -msgstr "Item is niet te bewerken" +#: ../../mod/editblock.php:118 +msgid "Delete block?" +msgstr "Blok verwijderen" -#: ../../mod/editpost.php:55 -msgid "Delete item?" -msgstr "Item verwijderen?" +#: ../../mod/editblock.php:180 +msgid "Edit Block" +msgstr "Blok bewerken" -#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 -msgid "Edit post" -msgstr "Bericht bewerken" +#: ../../mod/removeaccount.php:30 +msgid "" +"Account removals are not allowed within 48 hours of changing the account " +"password." +msgstr "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd." -#: ../../mod/oexchange.php:23 -msgid "Unable to find your hub." -msgstr "Niet in staat om je hub te vinden" +#: ../../mod/removeaccount.php:57 +msgid "Remove This Account" +msgstr "Verwijder dit account" -#: ../../mod/oexchange.php:37 -msgid "Post successful." -msgstr "Verzenden bericht geslaagd." +#: ../../mod/removeaccount.php:58 +msgid "" +"This account and all its channels will be completely removed from the " +"network. " +msgstr "Dit account en al zijn kanalen worden volledig uit het $Projectname-netwerk verwijderd." + +#: ../../mod/removeaccount.php:60 +msgid "" +"Remove this account, all its channels and all its channel clones from the " +"network" +msgstr "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het $Projectname-netwerk verwijderen" + +#: ../../mod/removeaccount.php:60 +msgid "" +"By default only the instances of the channels located on this hub will be " +"removed from the network" +msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het $Projectname-netwerk verwijderd" + +#: ../../mod/removeaccount.php:61 ../../mod/settings.php:700 +msgid "Remove Account" +msgstr "Account verwijderen" + +#: ../../mod/import_items.php:101 +msgid "Import completed" +msgstr "Importeren voltooid" + +#: ../../mod/import_items.php:119 +msgid "Import Items" +msgstr "Importeer items" + +#: ../../mod/import_items.php:120 +msgid "" +"Use this form to import existing posts and content from an export file." +msgstr "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren." + +#: ../../mod/network.php:91 +msgid "No such group" +msgstr "Collectie niet gevonden" + +#: ../../mod/network.php:131 +msgid "No such channel" +msgstr "Niet zo'n kanaal" + +#: ../../mod/network.php:136 +msgid "forum" +msgstr "forum" + +#: ../../mod/network.php:148 +msgid "Search Results For:" +msgstr "Zoekresultaten voor:" + +#: ../../mod/network.php:207 +msgid "Collection is empty" +msgstr "Collectie is leeg" + +#: ../../mod/network.php:216 +msgid "Collection: " +msgstr "Collectie: " + +#: ../../mod/network.php:242 +msgid "Invalid connection." +msgstr "Ongeldige connectie." + +#: ../../mod/pdledit.php:13 +msgid "Layout updated." +msgstr "Lay-out bijgewerkt." + +#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 +msgid "Edit System Page Description" +msgstr "Systeempagina's bewerken" + +#: ../../mod/pdledit.php:48 +msgid "Layout not found." +msgstr "Lay-out niet gevonden." + +#: ../../mod/pdledit.php:54 +msgid "Module Name:" +msgstr "Modulenaam:" + +#: ../../mod/pdledit.php:55 +msgid "Layout Help" +msgstr "Lay-out-hulp" + +#: ../../mod/register.php:44 +msgid "Maximum daily site registrations exceeded. Please try again tomorrow." +msgstr "Maximum toegestane dagelijkse registraties op deze $Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals." + +#: ../../mod/register.php:50 +msgid "" +"Please indicate acceptance of the Terms of Service. Registration failed." +msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden." + +#: ../../mod/register.php:84 +msgid "Passwords do not match." +msgstr "Wachtwoorden komen niet met elkaar overeen." + +#: ../../mod/register.php:117 +msgid "" +"Registration successful. Please check your email for validation " +"instructions." +msgstr "Registratie geslaagd. Controleer je e-mail voor instructies." + +#: ../../mod/register.php:123 +msgid "Your registration is pending approval by the site owner." +msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze $Projectname-hub." + +#: ../../mod/register.php:126 +msgid "Your registration can not be processed." +msgstr "Jouw registratie kan niet verwerkt worden." + +#: ../../mod/register.php:163 +msgid "Registration on this site/hub is by approval only." +msgstr "Registraties op deze $Projectname-hub moeten eerst worden goedgekeurd." + +#: ../../mod/register.php:164 +msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" +msgstr "<a href=\"pubsites\">Registreer op een andere $Projectname-hub</a>" + +#: ../../mod/register.php:174 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Deze $Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals." + +#: ../../mod/register.php:185 +msgid "Terms of Service" +msgstr "Gebruiksvoorwaarden" + +#: ../../mod/register.php:191 +#, php-format +msgid "I accept the %s for this website" +msgstr "Ik accepteer de %s van deze $Projectname-hub" + +#: ../../mod/register.php:193 +#, php-format +msgid "I am over 13 years of age and accept the %s for this website" +msgstr "Ik accepteer de %s van deze $Projectname-hub" + +#: ../../mod/register.php:207 ../../mod/admin.php:436 +msgid "Registration" +msgstr "Registratie" + +#: ../../mod/register.php:212 +msgid "Membership on this site is by invitation only." +msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging." + +#: ../../mod/register.php:213 +msgid "Please enter your invitation code" +msgstr "Vul jouw uitnodigingscode in" + +#: ../../mod/register.php:216 +msgid "Your email address" +msgstr "Jouw e-mailadres" + +#: ../../mod/register.php:217 +msgid "Choose a password" +msgstr "Geef een wachtwoord op" + +#: ../../mod/register.php:218 +msgid "Please re-enter your password" +msgstr "Geef het wachtwoord opnieuw op" #: ../../mod/admin.php:52 msgid "Theme settings updated." @@ -5504,10 +6835,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" @@ -5519,7 +6850,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" @@ -5527,7 +6858,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" @@ -5539,7 +6870,7 @@ msgstr "Versie" msgid "Site settings updated." msgstr "Hub-instellingen bijgewerkt." -#: ../../mod/admin.php:361 ../../mod/settings.php:791 +#: ../../mod/admin.php:361 ../../mod/settings.php:793 msgid "mobile" msgstr "mobiel" @@ -5551,1935 +6882,677 @@ 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 -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 - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - <a href='#' id='cnftheme'>verander thema-instellingen</a>" -#: ../../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 -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" -#: ../../mod/appman.php:28 ../../mod/appman.php:44 -msgid "App installed." -msgstr "App geïnstalleerd" - -#: ../../mod/appman.php:37 -msgid "Malformed app." -msgstr "Misvormde app." - -#: ../../mod/appman.php:80 -msgid "Embed code" -msgstr "Insluitcode" - -#: ../../mod/appman.php:86 -msgid "Edit App" -msgstr "App bewerken" - -#: ../../mod/appman.php:86 -msgid "Create App" -msgstr "App maken" - -#: ../../mod/appman.php:91 -msgid "Name of app" -msgstr "Naam van app" - -#: ../../mod/appman.php:92 -msgid "Location (URL) of app" -msgstr "Locatie (URL) van app" - -#: ../../mod/appman.php:93 ../../mod/rbmark.php:97 -msgid "Description" -msgstr "Omschrijving" - -#: ../../mod/appman.php:94 -msgid "Photo icon URL" -msgstr "URL van pictogram" - -#: ../../mod/appman.php:94 -msgid "80 x 80 pixels - optional" -msgstr "80 x 80 pixels (optioneel)" - -#: ../../mod/appman.php:95 -msgid "Version ID" -msgstr "Versie-ID" - -#: ../../mod/appman.php:96 -msgid "Price of app" -msgstr "Prijs van de app" - -#: ../../mod/appman.php:97 -msgid "Location (URL) to purchase app" -msgstr "Locatie (URL) om de app aan te schaffen" - -#: ../../mod/menu.php:45 -msgid "Unable to update menu." -msgstr "Niet in staat om menu aan te passen" - -#: ../../mod/menu.php:56 -msgid "Unable to create menu." -msgstr "Niet in staat om menu aan te maken." - -#: ../../mod/menu.php:94 ../../mod/menu.php:106 -msgid "Menu Name" -msgstr "Menunaam" - -#: ../../mod/menu.php:94 -msgid "Unique name (not visible on webpage) - required" -msgstr "Unieke naam vereist (niet zichtbaar op webpagina)" - -#: ../../mod/menu.php:95 ../../mod/menu.php:107 -msgid "Menu Title" -msgstr "Menutitel" - -#: ../../mod/menu.php:95 -msgid "Visible on webpage - leave empty for no title" -msgstr "Zichtbaar op webpagina (leeg laten voor geen titel)" - -#: ../../mod/menu.php:96 -msgid "Allow Bookmarks" -msgstr "Bladwijzers toestaan" - -#: ../../mod/menu.php:96 ../../mod/menu.php:153 -msgid "Menu may be used to store saved bookmarks" -msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan" - -#: ../../mod/menu.php:97 ../../mod/menu.php:155 -msgid "Submit and proceed" -msgstr "Opslaan en doorgaan" - -#: ../../mod/menu.php:109 -msgid "Drop" -msgstr "Verwijderen" - -#: ../../mod/menu.php:113 -msgid "Bookmarks allowed" -msgstr "Bladwijzers toegestaan" - -#: ../../mod/menu.php:115 -msgid "Delete this menu" -msgstr "Menu verwijderen" - -#: ../../mod/menu.php:116 ../../mod/menu.php:150 -msgid "Edit menu contents" -msgstr "Bewerk de inhoud van het menu" - -#: ../../mod/menu.php:117 -msgid "Edit this menu" -msgstr "Dit menu bewerken" - -#: ../../mod/menu.php:132 -msgid "Menu could not be deleted." -msgstr "Menu kon niet verwijderd worden." - -#: ../../mod/menu.php:145 -msgid "Edit Menu" -msgstr "Menu bewerken" - -#: ../../mod/menu.php:149 -msgid "Add or remove entries to this menu" -msgstr "Items aan dit menu toevoegen of verwijder" - -#: ../../mod/menu.php:151 -msgid "Menu name" -msgstr "Naam van menu" - -#: ../../mod/menu.php:151 -msgid "Must be unique, only seen by you" -msgstr "Moet uniek zijn en is alleen zichtbaar voor jou." - -#: ../../mod/menu.php:152 -msgid "Menu title" -msgstr "Titel van menu" - -#: ../../mod/menu.php:152 -msgid "Menu title as seen by others" -msgstr "Titel van menu zoals anderen dat zien." - -#: ../../mod/menu.php:153 -msgid "Allow bookmarks" -msgstr "Bladwijzers toestaan" - -#: ../../mod/notify.php:53 ../../mod/notifications.php:94 -msgid "No more system notifications." -msgstr "Geen systeemnotificaties meer." - -#: ../../mod/notify.php:57 ../../mod/notifications.php:98 -msgid "System Notifications" -msgstr "Systeemnotificaties" - -#: ../../mod/page.php:126 -msgid "" -"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " -"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam," -" quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " -"consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse " -"cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " -"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." -msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." - -#: ../../mod/new_channel.php:109 -msgid "Add a Channel" -msgstr "Kanaal toevoegen" - -#: ../../mod/new_channel.php:110 -msgid "" -"A channel is your own collection of related web pages. A channel can be used" -" to hold social network profiles, blogs, conversation groups and forums, " -"celebrity pages, and much more. You may create as many channels as your " -"service provider allows." -msgstr "Naast een account moet je tenminste één kanaal aanmaken. Een kanaal is een persoonlijke verzameling (gerelateerde) berichten en media, zoals je misschien gewend bent van sociale netwerken. Een kanaal kan gebruikt worden voor social media, een blog, forum, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat." - -#: ../../mod/new_channel.php:112 ../../mod/sources.php:103 -#: ../../mod/sources.php:137 -msgid "Channel Name" -msgstr "Kanaalnaam" - -#: ../../mod/new_channel.php:113 -msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" " -msgstr "Jouw naam of een andere relevante naam. Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Familieforum\"" - -#: ../../mod/new_channel.php:114 -msgid "Choose a short nickname" -msgstr "Korte bijnaam" - -#: ../../mod/new_channel.php:115 -msgid "" -"Your nickname will be used to create an easily remembered channel address " -"(like an email address) which you can share with others." -msgstr "Deze bijnaam (geen spaties) wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) en het internetadres (URL) van jouw kanaal aan te maken, die je dan met anderen kunt delen. Voorbeeld: <b>janp</b> wordt <em>janp@jouw_hub.nl</em> en <em>https://jouw_hub.nl/channel/janp</em>." - -#: ../../mod/new_channel.php:116 -msgid "Or <a href=\"import\">import an existing channel</a> from another location" -msgstr "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie." - -#: ../../mod/new_channel.php:118 -msgid "" -"Please choose a channel type (such as social networking or community forum) " -"and privacy requirements so we can select the best permissions for you" -msgstr "Kies een kanaaltype en het door jouw gewenste privacy-niveau, zodat automatisch de beste permissies kunnen worden ingesteld. Dit kan later, indien gewenst, worden veranderd." - -#: ../../mod/new_channel.php:119 -msgid "Channel Type" -msgstr "Kanaaltype" - -#: ../../mod/new_channel.php:119 -msgid "Read more about roles" -msgstr "Lees meer over kanaaltypes" - -#: ../../mod/notifications.php:26 -msgid "Invalid request identifier." -msgstr "Ongeldige verzoek identificator (request identifier)" - -#: ../../mod/notifications.php:35 -msgid "Discard" -msgstr "Annuleren" - -#: ../../mod/pdledit.php:13 -msgid "Layout updated." -msgstr "Lay-out bijgewerkt." - -#: ../../mod/pdledit.php:28 ../../mod/pdledit.php:53 -msgid "Edit System Page Description" -msgstr "Systeempagina's bewerken" - -#: ../../mod/pdledit.php:48 -msgid "Layout not found." -msgstr "Lay-out niet gevonden." - -#: ../../mod/pdledit.php:54 -msgid "Module Name:" -msgstr "Modulenaam:" - -#: ../../mod/pdledit.php:55 -msgid "Layout Help" -msgstr "Lay-out-hulp" - -#: ../../mod/subthread.php:108 -#, 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 -#, php-format -msgid "%1$s stopped following %2$s's %3$s" -msgstr "%1$s volgt het %3$s van %2$s niet meer" - -#: ../../mod/lostpass.php:15 -msgid "No valid account found." -msgstr "Geen geldige account gevonden." - -#: ../../mod/lostpass.php:29 -msgid "Password reset request issued. Check your email." -msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail." - -#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:103 -#, php-format -msgid "Site Member (%s)" -msgstr "Lid van hub (%s)" - -#: ../../mod/lostpass.php:40 -#, php-format -msgid "Password reset requested at %s" -msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend" - -#: ../../mod/lostpass.php:63 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"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:1511 -msgid "Password Reset" -msgstr "Wachtwoord vergeten?" - -#: ../../mod/lostpass.php:87 -msgid "Your password has been reset as requested." -msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht." - -#: ../../mod/lostpass.php:88 -msgid "Your new password is" -msgstr "Jouw nieuwe wachtwoord is" - -#: ../../mod/lostpass.php:89 -msgid "Save or copy your new password - and then" -msgstr "Kopieer of sla je nieuwe wachtwoord op - en" - -#: ../../mod/lostpass.php:90 -msgid "click here to login" -msgstr "klik dan hier om in te loggen" - -#: ../../mod/lostpass.php:91 -msgid "" -"Your password may be changed from the <em>Settings</em> page after " -"successful login." -msgstr "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd." - -#: ../../mod/lostpass.php:108 -#, php-format -msgid "Your password has changed at %s" -msgstr "Jouw wachtwoord op %s is veranderd" - -#: ../../mod/lostpass.php:123 -msgid "Forgot your Password?" -msgstr "Wachtwoord vergeten?" - -#: ../../mod/lostpass.php:124 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies." - -#: ../../mod/lostpass.php:125 -msgid "Email Address" -msgstr "E-mailadres" - -#: ../../mod/lostpass.php:126 -msgid "Reset" -msgstr "Opnieuw instellen" - -#: ../../mod/home.php:57 ../../mod/home.php:65 ../../mod/siteinfo.php:157 -msgid "$Projectname" -msgstr "$Projectname" - -#: ../../mod/home.php:75 -#, php-format -msgid "Welcome to %s" -msgstr "Welkom op %s" - -#: ../../mod/dav.php:121 -msgid "$Projectname channel" -msgstr "$Projectname-kanaal" - -#: ../../mod/events.php:21 -msgid "Calendar entries imported." -msgstr "Agenda-items geïmporteerd." - -#: ../../mod/events.php:23 -msgid "No calendar entries found." -msgstr "Geen agenda-items gevonden." - -#: ../../mod/events.php:96 -msgid "Event can not end before it has started." -msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen" - -#: ../../mod/events.php:98 ../../mod/events.php:107 ../../mod/events.php:127 -msgid "Unable to generate preview." -msgstr "Niet in staat om voorvertoning te genereren" - -#: ../../mod/events.php:105 -msgid "Event title and start time are required." -msgstr "Titel en begintijd van gebeurtenis zijn vereist." - -#: ../../mod/events.php:125 ../../mod/events.php:250 -msgid "Event not found." -msgstr "Gebeurtenis niet gevonden" - -#: ../../mod/events.php:448 -msgid "l, F j" -msgstr "l j F" - -#: ../../mod/events.php:470 -msgid "Edit event" -msgstr "Gebeurtenis bewerken" - -#: ../../mod/events.php:472 -msgid "Delete event" -msgstr "Gebeurtenis verwijderen" - -#: ../../mod/events.php:506 -msgid "calendar" -msgstr "agenda" - -#: ../../mod/events.php:527 -msgid "Create New Event" -msgstr "Nieuwe gebeurtenis aanmaken" - -#: ../../mod/events.php:530 -msgid "Export" -msgstr "Exporteren" - -#: ../../mod/events.php:533 -msgid "Import" -msgstr "Importeren" - -#: ../../mod/events.php:564 -msgid "Event removed" -msgstr "Gebeurtenis verwijderd" - -#: ../../mod/events.php:567 -msgid "Failed to remove event" -msgstr "Verwijderen gebeurtenis mislukt" - -#: ../../mod/events.php:681 -msgid "Event details" -msgstr "Details van gebeurtenis" - -#: ../../mod/events.php:682 -msgid "Starting date and Title are required." -msgstr "Begintijd en titel zijn vereist." - -#: ../../mod/events.php:684 -msgid "Categories (comma-separated list)" -msgstr "Categorieën (door komma's gescheiden lijst)" - -#: ../../mod/events.php:686 -msgid "Event Starts:" -msgstr "Begin gebeurtenis:" - -#: ../../mod/events.php:693 -msgid "Finish date/time is not known or not relevant" -msgstr "Einddatum/-tijd is niet bekend of niet relevant" - -#: ../../mod/events.php:695 -msgid "Event Finishes:" -msgstr "Einde gebeurtenis:" - -#: ../../mod/events.php:697 ../../mod/events.php:698 -msgid "Adjust for viewer timezone" -msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt" - -#: ../../mod/events.php:697 -msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." -msgstr "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen." - -#: ../../mod/events.php:703 -msgid "Title:" -msgstr "Titel:" - -#: ../../mod/events.php:705 -msgid "Share this event" -msgstr "Deel deze gebeurtenis" - -#: ../../mod/impel.php:192 -#, php-format -msgid "%s element installed" -msgstr "%s onderdeel geïnstalleerd" - -#: ../../mod/impel.php:195 -#, php-format -msgid "%s element installation failed" -msgstr "Installatie %s-element mislukt" - -#: ../../mod/probe.php:24 ../../mod/probe.php:30 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "Ophalen URL gaf een foutmelding terug: %1$s" - -#: ../../mod/match.php:22 -msgid "Profile Match" -msgstr "Profielovereenkomst" - -#: ../../mod/match.php:31 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe." - -#: ../../mod/match.php:63 -msgid "is interested in:" -msgstr "is geïnteresseerd in:" - -#: ../../mod/match.php:70 -msgid "No matches" -msgstr "Geen overeenkomsten" - -#: ../../mod/profile_photo.php:111 -msgid "Image uploaded but image cropping failed." -msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. " - -#: ../../mod/profile_photo.php:165 -msgid "Image resize failed." -msgstr "Afbeelding kon niet van grootte veranderd worden." - -#: ../../mod/profile_photo.php:209 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven." - -#: ../../mod/profile_photo.php:247 -msgid "Image upload failed." -msgstr "Uploaden afbeelding mislukt" - -#: ../../mod/profile_photo.php:266 -msgid "Unable to process image." -msgstr "Niet in staat om afbeelding te verwerken." - -#: ../../mod/profile_photo.php:294 -msgid "female" -msgstr "vrouw" - -#: ../../mod/profile_photo.php:295 -#, php-format -msgid "%1$s updated her %2$s" -msgstr "%1$s heeft haar %2$s bijgewerkt" - -#: ../../mod/profile_photo.php:296 -msgid "male" -msgstr "man" - -#: ../../mod/profile_photo.php:297 -#, php-format -msgid "%1$s updated his %2$s" -msgstr "%1$s heeft zijn %2$s bijgewerkt" - -#: ../../mod/profile_photo.php:299 -#, php-format -msgid "%1$s updated their %2$s" -msgstr "%1$s hebben hun %2$s bijgewerkt" - -#: ../../mod/profile_photo.php:301 -msgid "profile photo" -msgstr "profielfoto" - -#: ../../mod/profile_photo.php:365 ../../mod/profile_photo.php:406 -msgid "Photo not available." -msgstr "Foto niet beschikbaar." - -#: ../../mod/profile_photo.php:447 -msgid "Upload File:" -msgstr "Bestand uploaden:" - -#: ../../mod/profile_photo.php:448 -msgid "Select a profile:" -msgstr "Kies een profiel:" - -#: ../../mod/profile_photo.php:449 -msgid "Upload Profile Photo" -msgstr "Profielfoto uploaden" - -#: ../../mod/profile_photo.php:454 ../../mod/settings.php:973 -msgid "or" -msgstr "of" - -#: ../../mod/profile_photo.php:454 -msgid "skip this step" -msgstr "sla deze stap over" - -#: ../../mod/profile_photo.php:454 -msgid "select a photo from your photo albums" -msgstr "Kies een foto uit jouw fotoalbums" - -#: ../../mod/profile_photo.php:470 -msgid "Crop Image" -msgstr "Afbeelding bijsnijden" - -#: ../../mod/profile_photo.php:471 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven." - -#: ../../mod/profile_photo.php:473 -msgid "Done Editing" -msgstr "Klaar met bewerken" - -#: ../../mod/follow.php:25 -msgid "Channel added." -msgstr "Kanaal toegevoegd." - -#: ../../mod/tagrm.php:44 ../../mod/tagrm.php:94 -msgid "Tag removed" -msgstr "Tag verwijderd" - -#: ../../mod/tagrm.php:119 -msgid "Remove Item Tag" -msgstr "Verwijder item-tag" - -#: ../../mod/tagrm.php:121 -msgid "Select a tag to remove: " -msgstr "Kies een tag om te verwijderen" - -#: ../../mod/ratings.php:69 -msgid "No ratings" -msgstr "Geen beoordelingen" - -#: ../../mod/ratings.php:99 -msgid "Ratings" -msgstr "Waarderingen" - -#: ../../mod/ratings.php:100 -msgid "Rating: " -msgstr "Waardering: " - -#: ../../mod/ratings.php:101 -msgid "Website: " -msgstr "Website: " - -#: ../../mod/ratings.php:103 -msgid "Description: " -msgstr "Omschrijving: " - -#: ../../mod/item.php:173 -msgid "Unable to locate original post." -msgstr "Niet in staat om de originele locatie van het bericht te vinden. " - -#: ../../mod/item.php:417 -msgid "Empty post discarded." -msgstr "Leeg bericht geannuleerd" - -#: ../../mod/item.php:457 -msgid "Executable content type not permitted to this channel." -msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal." - -#: ../../mod/item.php:908 -msgid "System error. Post not saved." -msgstr "Systeemfout. Bericht niet opgeslagen." - -#: ../../mod/item.php:1175 -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:1182 -#, 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:1189 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt." - -#: ../../mod/webpages.php:191 -msgid "Page Title" -msgstr "Paginatitel" - -#: ../../mod/register.php:44 -msgid "Maximum daily site registrations exceeded. Please try again tomorrow." -msgstr "Maximum toegestane dagelijkse registraties op deze $Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals." - -#: ../../mod/register.php:50 -msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." -msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden." - -#: ../../mod/register.php:84 -msgid "Passwords do not match." -msgstr "Wachtwoorden komen niet met elkaar overeen." - -#: ../../mod/register.php:117 -msgid "" -"Registration successful. Please check your email for validation " -"instructions." -msgstr "Registratie geslaagd. Controleer je e-mail voor instructies." - -#: ../../mod/register.php:123 -msgid "Your registration is pending approval by the site owner." -msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze $Projectname-hub." - -#: ../../mod/register.php:126 -msgid "Your registration can not be processed." -msgstr "Jouw registratie kan niet verwerkt worden." - -#: ../../mod/register.php:163 -msgid "Registration on this site/hub is by approval only." -msgstr "Registraties op deze $Projectname-hub moeten eerst worden goedgekeurd." - -#: ../../mod/register.php:164 -msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>" -msgstr "<a href=\"pubsites\">Registreer op een andere $Projectname-hub</a>" - -#: ../../mod/register.php:174 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Deze $Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals." - -#: ../../mod/register.php:185 -msgid "Terms of Service" -msgstr "Gebruiksvoorwaarden" - -#: ../../mod/register.php:191 -#, php-format -msgid "I accept the %s for this website" -msgstr "Ik accepteer de %s van deze $Projectname-hub" - -#: ../../mod/register.php:193 -#, php-format -msgid "I am over 13 years of age and accept the %s for this website" -msgstr "Ik accepteer de %s van deze $Projectname-hub" - -#: ../../mod/register.php:212 -msgid "Membership on this site is by invitation only." -msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging." - -#: ../../mod/register.php:213 -msgid "Please enter your invitation code" -msgstr "Vul jouw uitnodigingscode in" - -#: ../../mod/register.php:216 -msgid "Your email address" -msgstr "Jouw e-mailadres" - -#: ../../mod/register.php:217 -msgid "Choose a password" -msgstr "Geef een wachtwoord op" - -#: ../../mod/register.php:218 -msgid "Please re-enter your password" -msgstr "Geef het wachtwoord opnieuw op" - -#: ../../mod/blocks.php:95 ../../mod/blocks.php:148 -msgid "Block Name" -msgstr "Bloknaam" - -#: ../../mod/blocks.php:149 -msgid "Block Title" -msgstr "Bloktitel" - -#: ../../mod/removeaccount.php:30 -msgid "" -"Account removals are not allowed within 48 hours of changing the account " -"password." -msgstr "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd." - -#: ../../mod/removeaccount.php:57 -msgid "Remove This Account" -msgstr "Verwijder dit account" - -#: ../../mod/removeaccount.php:58 -msgid "" -"This account and all its channels will be completely removed from the " -"network. " -msgstr "Dit account en al zijn kanalen worden volledig uit het $Projectname-netwerk verwijderd." - -#: ../../mod/removeaccount.php:60 -msgid "" -"Remove this account, all its channels and all its channel clones from the " -"network" -msgstr "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het $Projectname-netwerk verwijderen" - -#: ../../mod/removeaccount.php:60 -msgid "" -"By default only the instances of the channels located on this hub will be " -"removed from the network" -msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het $Projectname-netwerk verwijderd" - -#: ../../mod/removeaccount.php:61 ../../mod/settings.php:698 -msgid "Remove Account" -msgstr "Account verwijderen" - -#: ../../mod/service_limits.php:19 -msgid "No service class restrictions found." -msgstr "Geen abonnementsbeperkingen gevonden." - -#: ../../mod/attach.php:9 -msgid "Item not available." -msgstr "Item is niet aanwezig." - -#: ../../mod/pubsites.php:18 -msgid "Public Sites" -msgstr "Openbare hubs" - -#: ../../mod/pubsites.php:21 -msgid "" -"The listed sites allow public registration for the $Projectname network. All" -" sites in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some sites may require subscription or" -" provide tiered service plans. The provider links <strong>may</strong> " -"provide additional details." -msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het $Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven." - -#: ../../mod/pubsites.php:27 -msgid "Rate this hub" -msgstr "Beoordeel deze hub" - -#: ../../mod/pubsites.php:28 -msgid "Site URL" -msgstr "URL hub" - -#: ../../mod/pubsites.php:28 -msgid "Access Type" -msgstr "Toegangstype" - -#: ../../mod/pubsites.php:28 -msgid "Registration Policy" -msgstr "Registratiebeleid" - -#: ../../mod/pubsites.php:28 ../../mod/profiles.php:454 -msgid "Location" -msgstr "Locatie" - -#: ../../mod/pubsites.php:28 -msgid "Project" -msgstr "Project" - -#: ../../mod/pubsites.php:28 -msgid "View hub ratings" -msgstr "Bekijk hubbeoordelingen" - -#: ../../mod/pubsites.php:32 -msgid "Rate" -msgstr "Beoordeel" - -#: ../../mod/pubsites.php:33 -msgid "View ratings" -msgstr "Bekijk beoordelingen" - -#: ../../mod/sources.php:32 -msgid "Failed to create source. No channel selected." -msgstr "Aanmaken bron mislukt. Geen kanaal geselecteerd." - -#: ../../mod/sources.php:45 -msgid "Source created." -msgstr "Bron aangemaakt." - -#: ../../mod/sources.php:57 -msgid "Source updated." -msgstr "Bron aangemaakt." - -#: ../../mod/sources.php:82 -msgid "*" -msgstr "*" - -#: ../../mod/sources.php:89 -msgid "Manage remote sources of content for your channel." -msgstr "Beheer externe bronnen met inhoud voor jouw kanaal" - -#: ../../mod/sources.php:90 ../../mod/sources.php:100 -msgid "New Source" -msgstr "Nieuwe bron" - -#: ../../mod/sources.php:101 ../../mod/sources.php:133 -msgid "" -"Import all or selected content from the following channel into this channel " -"and distribute it according to your channel settings." -msgstr "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen." - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Only import content with these words (one per line)" -msgstr "Importeer alleen inhoud met deze woorden (één per regel)" - -#: ../../mod/sources.php:102 ../../mod/sources.php:134 -msgid "Leave blank to import all public content" -msgstr "Laat leeg om alle openbare inhoud te importeren" - -#: ../../mod/sources.php:123 ../../mod/sources.php:150 -msgid "Source not found." -msgstr "Bron niet gevonden" - -#: ../../mod/sources.php:130 -msgid "Edit Source" -msgstr "Bron bewerken" - -#: ../../mod/sources.php:131 -msgid "Delete Source" -msgstr "Bron verwijderen" - -#: ../../mod/sources.php:158 -msgid "Source removed" -msgstr "Bron verwijderd" - -#: ../../mod/sources.php:160 -msgid "Unable to remove source." -msgstr "Verwijderen bron mislukt." - -#: ../../mod/lockview.php:37 -msgid "Remote privacy information not available." -msgstr "Privacy-informatie op afstand niet beschikbaar." - -#: ../../mod/lockview.php:58 -msgid "Visible to:" -msgstr "Zichtbaar voor:" - -#: ../../mod/acl.php:222 -msgid "network" -msgstr "netwerk" - -#: ../../mod/acl.php:232 -msgid "RSS" -msgstr "RSS" - -#: ../../mod/regmod.php:11 -msgid "Please login." -msgstr "Inloggen." - -#: ../../mod/rmagic.php:40 -msgid "" -"We encountered a problem while logging in with the OpenID you provided. " -"Please check the correct spelling of the ID." -msgstr "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten." - -#: ../../mod/rmagic.php:40 -msgid "The error message was:" -msgstr "Het foutbericht was:" - -#: ../../mod/rmagic.php:44 -msgid "Authentication failed." -msgstr "Authenticatie mislukt." - -#: ../../mod/rmagic.php:84 -msgid "Remote Authentication" -msgstr "Authenticatie op afstand" - -#: ../../mod/rmagic.php:85 -msgid "Enter your channel address (e.g. channel@example.com)" -msgstr "Vul jouw kanaaladres in (bijv. channel@example.com)" - -#: ../../mod/rmagic.php:86 -msgid "Authenticate" -msgstr "Authenticeren" - -#: ../../mod/channel.php:97 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina." - -#: ../../mod/siteinfo.php:111 -#, php-format -msgid "Version %s" -msgstr "Versie %s" - -#: ../../mod/siteinfo.php:132 -msgid "Installed plugins/addons/apps:" -msgstr "Ingeschakelde plug-ins/add-ons/apps:" - -#: ../../mod/siteinfo.php:145 -msgid "No installed plugins/addons/apps" -msgstr "Geen ingeschakelde plug-ins/add-ons/apps" - -#: ../../mod/siteinfo.php:158 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." -msgstr "Dit is een $Projectname-hub - $Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy." - -#: ../../mod/siteinfo.php:160 -msgid "Tag: " -msgstr "Tag: " - -#: ../../mod/siteinfo.php:162 -msgid "Last background fetch: " -msgstr "Meest recente achtergrond-fetch:" - -#: ../../mod/siteinfo.php:164 -msgid "Current load average: " -msgstr "Gemiddelde systeembelasting is nu:" - -#: ../../mod/siteinfo.php:167 -msgid "Running at web location" -msgstr "Draaiend op weblocatie" - -#: ../../mod/siteinfo.php:168 -msgid "" -"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " -"about $Projectname." -msgstr "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> " - -#: ../../mod/siteinfo.php:169 -msgid "Bug reports and issues: please visit" -msgstr "Bugrapporten en andere kwesties: bezoek" - -#: ../../mod/siteinfo.php:171 -msgid "$projectname issues" -msgstr "$projectname-issues" - -#: ../../mod/siteinfo.php:172 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " -"com" -msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com" - -#: ../../mod/siteinfo.php:174 -msgid "Site Administrators" -msgstr "Hubbeheerders: " - -#: ../../mod/import.php:27 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "Jouw abonnement staat maar %d kanalen toe." - -#: ../../mod/import.php:65 ../../mod/import_items.php:38 -msgid "Nothing to import." -msgstr "Niets gevonden om te importeren" - -#: ../../mod/import.php:89 ../../mod/import_items.php:62 -msgid "Unable to download data from old server" -msgstr "Niet in staat om gegevens van de oude hub te downloaden" - -#: ../../mod/import.php:95 ../../mod/import_items.php:68 -msgid "Imported file is empty." -msgstr "Geïmporteerde bestand is leeg" - -#: ../../mod/import.php:115 ../../mod/import_items.php:82 -#, php-format -msgid "Warning: Database versions differ by %1$d updates." -msgstr "Waarschuwing: database-versies lopen %1$d updates achter." - -#: ../../mod/import.php:148 -msgid "No channel. Import failed." -msgstr "Geen kanaal. Importeren mislukt." - -#: ../../mod/import.php:499 -msgid "You must be logged in to use this feature." -msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken." - -#: ../../mod/import.php:504 -msgid "Import Channel" -msgstr "Kanaal importeren" - -#: ../../mod/import.php:505 -msgid "" -"Use this form to import an existing channel from a different server/hub. You" -" may retrieve the channel identity from the old server/hub via the network " -"or provide an export file." -msgstr "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken." - -#: ../../mod/import.php:506 ../../mod/import_items.php:121 -msgid "File to Upload" -msgstr "Bestand om te uploaden" - -#: ../../mod/import.php:507 -msgid "Or provide the old server/hub details" -msgstr "Of vul de gegevens van de oude hub in" - -#: ../../mod/import.php:508 -msgid "Your old identity address (xyz@example.com)" -msgstr "Jouw oude kanaaladres (xyz@example.com)" - -#: ../../mod/import.php:509 -msgid "Your old login email address" -msgstr "Het e-mailadres van je oude account" - -#: ../../mod/import.php:510 -msgid "Your old login password" -msgstr "Wachtwoord van jouw oude account" - -#: ../../mod/import.php:511 -msgid "" -"For either option, please choose whether to make this hub your new primary " -"address, or whether your old location should continue this role. You will be" -" able to post from either location, but only one can be marked as the " -"primary location for files, photos, and media." -msgstr "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen." - -#: ../../mod/import.php:512 -msgid "Make this hub my primary location" -msgstr "Stel deze hub als mijn primaire locatie in" - -#: ../../mod/import.php:513 -msgid "" -"Import existing posts if possible (experimental - limited by available " -"memory" -msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)" - -#: ../../mod/import.php:514 -msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid." - -#: ../../mod/thing.php:111 -msgid "Thing updated" -msgstr "Ding bijgewerkt" - -#: ../../mod/thing.php:163 -msgid "Object store: failed" -msgstr "Opslaan van ding mislukt" - -#: ../../mod/thing.php:167 -msgid "Thing added" -msgstr "Ding toegevoegd" - -#: ../../mod/thing.php:193 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" - -#: ../../mod/thing.php:256 -msgid "Show Thing" -msgstr "Ding weergeven" - -#: ../../mod/thing.php:263 -msgid "item not found." -msgstr "Item niet gevonden" - -#: ../../mod/thing.php:296 -msgid "Edit Thing" -msgstr "Ding bewerken" - -#: ../../mod/thing.php:298 ../../mod/thing.php:348 -msgid "Select a profile" -msgstr "Kies een profiel" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Post an activity" -msgstr "Plaats een bericht" - -#: ../../mod/thing.php:302 ../../mod/thing.php:351 -msgid "Only sends to viewers of the applicable profile" -msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien." - -#: ../../mod/thing.php:304 ../../mod/thing.php:353 -msgid "Name of thing e.g. something" -msgstr "Naam van ding" - -#: ../../mod/thing.php:306 ../../mod/thing.php:354 -msgid "URL of thing (optional)" -msgstr "URL van ding (optioneel)" - -#: ../../mod/thing.php:308 ../../mod/thing.php:355 -msgid "URL for photo of thing (optional)" -msgstr "URL van foto van ding (optioneel)" - -#: ../../mod/thing.php:346 -msgid "Add Thing to your Profile" -msgstr "Ding aan je profiel toevoegen" - -#: ../../mod/invite.php:25 -msgid "Total invitation limit exceeded." -msgstr "Limiet voor aantal uitnodigingen overschreden." - -#: ../../mod/invite.php:49 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Geen geldig e-mailadres." - -#: ../../mod/invite.php:76 -msgid "Please join us on $Projectname" -msgstr "Uitnodiging voor $Projectname" - -#: ../../mod/invite.php:87 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." - -#: ../../mod/invite.php:92 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: Aflevering bericht mislukt." - -#: ../../mod/invite.php:96 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d bericht verzonden." -msgstr[1] "%d berichten verzonden." - -#: ../../mod/invite.php:115 -msgid "You have no more invitations available" -msgstr "Je hebt geen uitnodigingen meer beschikbaar" - -#: ../../mod/invite.php:129 -msgid "Send invitations" -msgstr "Uitnodigingen verzenden" - -#: ../../mod/invite.php:130 -msgid "Enter email addresses, one per line:" -msgstr "Voer e-mailadressen in, één per regel:" - -#: ../../mod/invite.php:131 ../../mod/mail.php:238 -msgid "Your message:" -msgstr "Jouw bericht:" - -#: ../../mod/invite.php:132 -msgid "Please join my community on $Projectname." -msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op https://redmatrix.me." - -#: ../../mod/invite.php:134 -msgid "You will need to supply this invitation code: " -msgstr "Je moet deze uitnodigingscode opgeven:" - -#: ../../mod/invite.php:135 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):" - -#: ../../mod/invite.php:137 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:" - -#: ../../mod/invite.php:138 -msgid "or visit " -msgstr "of bezoek " - -#: ../../mod/invite.php:140 -msgid "3. Click [Connect]" -msgstr "3. Klik op [+ Verbinden]" - -#: ../../mod/mail.php:33 -msgid "Unable to lookup recipient." -msgstr "Niet in staat om ontvanger op te zoeken." - -#: ../../mod/mail.php:41 -msgid "Unable to communicate with requested channel." -msgstr "Niet in staat om met het aangevraagde kanaal te communiceren." - -#: ../../mod/mail.php:48 -msgid "Cannot verify requested channel." -msgstr "Kan opgevraagd kanaal niet verifieren" - -#: ../../mod/mail.php:74 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt." - -#: ../../mod/mail.php:132 -msgid "Messages" -msgstr "Berichten" - -#: ../../mod/mail.php:167 -msgid "Message recalled." -msgstr "Bericht ingetrokken." - -#: ../../mod/mail.php:180 -msgid "Conversation removed." -msgstr "Conversatie verwijderd" - -#: ../../mod/mail.php:223 -msgid "Requested channel is not in this network" -msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar" - -#: ../../mod/mail.php:231 -msgid "Send Private Message" -msgstr "Privébericht versturen" - -#: ../../mod/mail.php:232 ../../mod/mail.php:361 -msgid "To:" -msgstr "Aan:" - -#: ../../mod/mail.php:235 ../../mod/mail.php:363 -msgid "Subject:" -msgstr "Onderwerp:" - -#: ../../mod/mail.php:242 -msgid "Send" -msgstr "Verzenden" - -#: ../../mod/mail.php:333 -msgid "Delete message" -msgstr "Bericht verwijderen" - -#: ../../mod/mail.php:334 -msgid "Delivery report" -msgstr "Afleveringsrapport" - -#: ../../mod/mail.php:335 -msgid "Recall message" -msgstr "Bericht intrekken" - -#: ../../mod/mail.php:337 -msgid "Message has been recalled." -msgstr "Bericht is ingetrokken." - -#: ../../mod/mail.php:354 -msgid "Delete Conversation" -msgstr "Verwijder conversatie" - -#: ../../mod/mail.php:356 -msgid "" -"No secure communications available. You <strong>may</strong> be able to " -"respond from the sender's profile page." -msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender." - -#: ../../mod/mail.php:360 -msgid "Send Reply" -msgstr "Antwoord versturen" +#: ../../mod/editlayout.php:112 +msgid "Delete layout?" +msgstr "Lay-out verwijderen?" -#: ../../mod/mail.php:365 -#, php-format -msgid "Your message for %s (%s):" -msgstr "Jouw privébericht aan %s (%s):" +#: ../../mod/editlayout.php:159 ../../mod/layouts.php:124 +msgid "Layout Description (Optional)" +msgstr "Lay-out-omschrijving (optioneel)" -#: ../../mod/update_channel.php:43 ../../mod/update_display.php:25 -#: ../../mod/update_home.php:21 ../../mod/update_network.php:23 -#: ../../mod/update_search.php:46 ../../mod/update_public.php:21 -msgid "[Embedded content - reload page to view]" -msgstr "[Ingesloten inhoud - ververs pagina om te bekijken] " +#: ../../mod/editlayout.php:161 ../../mod/layouts.php:121 +#: ../../mod/layouts.php:179 +msgid "Layout Name" +msgstr "Naam lay-out" -#: ../../mod/viewsrc.php:40 -msgid "Source of Item" -msgstr "Bron van item" +#: ../../mod/editlayout.php:178 +msgid "Edit Layout" +msgstr "Lay-out bewerken" #: ../../mod/settings.php:76 msgid "Name is required" @@ -7517,797 +7590,611 @@ msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken." msgid "System failure storing new email. Please try again." msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer." -#: ../../mod/settings.php:519 +#: ../../mod/settings.php:521 msgid "Settings updated." msgstr "Instellingen bijgewerkt." -#: ../../mod/settings.php:583 ../../mod/settings.php:609 -#: ../../mod/settings.php:645 +#: ../../mod/settings.php:585 ../../mod/settings.php:611 +#: ../../mod/settings.php:647 msgid "Add application" msgstr "Applicatie toevoegen" -#: ../../mod/settings.php:586 +#: ../../mod/settings.php:588 msgid "Name of application" msgstr "Naam van applicatie" -#: ../../mod/settings.php:587 ../../mod/settings.php:613 +#: ../../mod/settings.php:589 ../../mod/settings.php:615 msgid "Consumer Key" msgstr "Consumer key" -#: ../../mod/settings.php:587 ../../mod/settings.php:588 +#: ../../mod/settings.php:589 ../../mod/settings.php:590 msgid "Automatically generated - change if desired. Max length 20" msgstr "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20" -#: ../../mod/settings.php:588 ../../mod/settings.php:614 +#: ../../mod/settings.php:590 ../../mod/settings.php:616 msgid "Consumer Secret" msgstr "Consumer secret" -#: ../../mod/settings.php:589 ../../mod/settings.php:615 +#: ../../mod/settings.php:591 ../../mod/settings.php:617 msgid "Redirect" msgstr "Redirect/doorverwijzing" -#: ../../mod/settings.php:589 +#: ../../mod/settings.php:591 msgid "" "Redirect URI - leave blank unless your application specifically requires " "this" msgstr "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist" -#: ../../mod/settings.php:590 ../../mod/settings.php:616 +#: ../../mod/settings.php:592 ../../mod/settings.php:618 msgid "Icon url" msgstr "URL van pictogram" -#: ../../mod/settings.php:590 +#: ../../mod/settings.php:592 msgid "Optional" msgstr "Optioneel" -#: ../../mod/settings.php:601 +#: ../../mod/settings.php:603 msgid "You can't edit this application." msgstr "Je kan deze applicatie niet bewerken" -#: ../../mod/settings.php:644 +#: ../../mod/settings.php:646 msgid "Connected Apps" msgstr "Verbonden applicaties" -#: ../../mod/settings.php:648 +#: ../../mod/settings.php:650 msgid "Client key starts with" msgstr "Client key begint met" -#: ../../mod/settings.php:649 +#: ../../mod/settings.php:651 msgid "No name" msgstr "Geen naam" -#: ../../mod/settings.php:650 +#: ../../mod/settings.php:652 msgid "Remove authorization" msgstr "Autorisatie verwijderen" -#: ../../mod/settings.php:663 +#: ../../mod/settings.php:665 msgid "No feature settings configured" msgstr "Geen extra functie- of plugin-instellingen" -#: ../../mod/settings.php:670 +#: ../../mod/settings.php:672 msgid "Feature/Addon Settings" msgstr "Extra functie- en plugin-instellingen" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Account Settings" msgstr "Account-instellingen" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Enter New Password:" msgstr "Nieuw wachtwoord invoeren:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Confirm New Password:" msgstr "Nieuw wachtwoord bevestigen:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Leave password fields blank unless changing" msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen" -#: ../../mod/settings.php:697 ../../mod/settings.php:1028 +#: ../../mod/settings.php:699 ../../mod/settings.php:1030 msgid "Email Address:" msgstr "E-mailadres:" -#: ../../mod/settings.php:699 +#: ../../mod/settings.php:701 msgid "Remove this account including all its channels" msgstr "Dit account en al zijn kanalen verwijderen" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "Off" msgstr "Uit" -#: ../../mod/settings.php:715 +#: ../../mod/settings.php:717 msgid "On" msgstr "Aan" -#: ../../mod/settings.php:722 +#: ../../mod/settings.php:724 msgid "Additional Features" msgstr "Extra functies" -#: ../../mod/settings.php:746 +#: ../../mod/settings.php:748 msgid "Connector Settings" msgstr "Instellingen externe koppelingen" -#: ../../mod/settings.php:785 +#: ../../mod/settings.php:787 msgid "No special theme for mobile devices" msgstr "Geen speciaal thema voor mobiele apparaten" -#: ../../mod/settings.php:788 +#: ../../mod/settings.php:790 #, php-format msgid "%s - (Experimental)" msgstr "%s - (experimenteel)" -#: ../../mod/settings.php:827 +#: ../../mod/settings.php:829 msgid "Display Settings" msgstr "Weergave-instellingen" -#: ../../mod/settings.php:828 +#: ../../mod/settings.php:830 msgid "Theme Settings" msgstr "Thema-instellingen" -#: ../../mod/settings.php:829 +#: ../../mod/settings.php:831 msgid "Custom Theme Settings" msgstr "Handmatige thema-instellingen" -#: ../../mod/settings.php:830 +#: ../../mod/settings.php:832 msgid "Content Settings" msgstr "Inhoudsinstellingen" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:838 msgid "Display Theme:" msgstr "Gebruik thema:" -#: ../../mod/settings.php:837 +#: ../../mod/settings.php:839 msgid "Mobile Theme:" msgstr "Mobiel thema:" -#: ../../mod/settings.php:838 +#: ../../mod/settings.php:840 msgid "Enable user zoom on mobile devices" msgstr "Inzoomen op smartphones en tablets toestaan" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Update browser every xx seconds" msgstr "Ververs de webbrowser om de zoveel seconde" -#: ../../mod/settings.php:839 +#: ../../mod/settings.php:841 msgid "Minimum of 10 seconds, no maximum" msgstr "Minimaal 10 seconde, geen maximum" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum number of conversations to load at any time:" msgstr "Maximaal aantal conversaties die per keer geladen worden:" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:842 msgid "Maximum of 100 items" msgstr "Maximaal 100 conversaties" -#: ../../mod/settings.php:841 +#: ../../mod/settings.php:843 msgid "Show emoticons (smilies) as images" msgstr "Toon emoticons (smilies) als afbeeldingen" -#: ../../mod/settings.php:842 +#: ../../mod/settings.php:844 msgid "Link post titles to source" msgstr "Berichtkoppen naar originele locatie linken" -#: ../../mod/settings.php:843 +#: ../../mod/settings.php:845 msgid "System Page Layout Editor - (advanced)" msgstr "Lay-out bewerken van systeempagina's (geavanceerd)" -#: ../../mod/settings.php:846 +#: ../../mod/settings.php:848 msgid "Use blog/list mode on channel page" msgstr "Gebruik blog/lijst-modus op kanaalpagina" -#: ../../mod/settings.php:846 ../../mod/settings.php:847 +#: ../../mod/settings.php:848 ../../mod/settings.php:849 msgid "(comments displayed separately)" msgstr "(reacties worden afzonderlijk weergeven)" -#: ../../mod/settings.php:847 +#: ../../mod/settings.php:849 msgid "Use blog/list mode on matrix page" msgstr "Gebruik blog/lijst-modus op matrixpagina" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:850 msgid "Channel page max height of content (in pixels)" msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)" -#: ../../mod/settings.php:848 ../../mod/settings.php:849 +#: ../../mod/settings.php:850 ../../mod/settings.php:851 msgid "click to expand content exceeding this height" msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt" -#: ../../mod/settings.php:849 +#: ../../mod/settings.php:851 msgid "Matrix page max height of content (in pixels)" msgstr "Maximale hoogte berichtinhoud op matrixpagina (in pixels)" -#: ../../mod/settings.php:883 +#: ../../mod/settings.php:885 msgid "Nobody except yourself" msgstr "Niemand, behalve jezelf" -#: ../../mod/settings.php:884 +#: ../../mod/settings.php:886 msgid "Only those you specifically allow" msgstr "Alleen connecties met uitdrukkelijke toestemming" -#: ../../mod/settings.php:885 +#: ../../mod/settings.php:887 msgid "Approved connections" msgstr "Geaccepteerde connecties" -#: ../../mod/settings.php:886 +#: ../../mod/settings.php:888 msgid "Any connections" msgstr "Alle connecties" -#: ../../mod/settings.php:887 +#: ../../mod/settings.php:889 msgid "Anybody on this website" msgstr "Iedereen op deze hub" -#: ../../mod/settings.php:888 +#: ../../mod/settings.php:890 msgid "Anybody in this network" msgstr "Iedereen in dit netwerk" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:891 msgid "Anybody authenticated" msgstr "Geauthenticeerd" -#: ../../mod/settings.php:890 +#: ../../mod/settings.php:892 msgid "Anybody on the internet" msgstr "Iedereen op het internet" -#: ../../mod/settings.php:964 +#: ../../mod/settings.php:966 msgid "Publish your default profile in the network directory" msgstr "Publiceer je standaardprofiel in de kanalengids" -#: ../../mod/settings.php:969 +#: ../../mod/settings.php:971 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:980 msgid "Your channel address is" msgstr "Jouw kanaaladres is" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1021 msgid "Channel Settings" msgstr "Kanaal-instellingen" -#: ../../mod/settings.php:1026 +#: ../../mod/settings.php:1028 msgid "Basic Settings" msgstr "Basis-instellingen" -#: ../../mod/settings.php:1029 +#: ../../mod/settings.php:1031 msgid "Your Timezone:" msgstr "Jouw tijdzone:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Default Post Location:" msgstr "Standaardlocatie bericht:" -#: ../../mod/settings.php:1030 +#: ../../mod/settings.php:1032 msgid "Geographical location to display on your posts" msgstr "Geografische locatie die bij het bericht moet worden vermeld" -#: ../../mod/settings.php:1031 +#: ../../mod/settings.php:1033 msgid "Use Browser Location:" msgstr "Locatie van webbrowser gebruiken:" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "Adult Content" msgstr "Inhoud voor volwassenen" -#: ../../mod/settings.php:1033 +#: ../../mod/settings.php:1035 msgid "" "This channel frequently or regularly publishes adult content. (Please tag " "any adult material and/or nudity with #NSFW)" msgstr "Dit kanaal publiceert regelmatig of vaak materiaal dat alleen geschikt is voor volwassenen. (Gebruik de tag #NSFW in berichten met een seksueel getinte inhoud of ander voor minderjarigen ongeschikt materiaal)" -#: ../../mod/settings.php:1035 +#: ../../mod/settings.php:1037 msgid "Security and Privacy Settings" msgstr "Veiligheids- en privacy-instellingen" -#: ../../mod/settings.php:1037 +#: ../../mod/settings.php:1039 msgid "Your permissions are already configured. Click to view/adjust" msgstr "Jouw permissies zijn al ingesteld. Klik om ze te bekijken of aan te passen." -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Hide my online presence" msgstr "Verberg mijn aanwezigheid" -#: ../../mod/settings.php:1039 +#: ../../mod/settings.php:1041 msgid "Prevents displaying in your profile that you are online" msgstr "Voorkomt dat op je kanaalpagina te zien valt dat je momenteel op $Projectname aanwezig bent" -#: ../../mod/settings.php:1041 +#: ../../mod/settings.php:1043 msgid "Simple Privacy Settings:" msgstr "Eenvoudige privacy-instellingen:" -#: ../../mod/settings.php:1042 +#: ../../mod/settings.php:1044 msgid "" "Very Public - <em>extremely permissive (should be used with caution)</em>" msgstr "Zeer openbaar <em>(kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)</em>" -#: ../../mod/settings.php:1043 +#: ../../mod/settings.php:1045 msgid "" "Typical - <em>default public, privacy when desired (similar to social " "network permissions but with improved privacy)</em>" msgstr "Normaal <em>(standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)</em>" -#: ../../mod/settings.php:1044 +#: ../../mod/settings.php:1046 msgid "Private - <em>default private, never open or public</em>" msgstr "Privé <em>(standaard privé en nooit openbaar)</em>" -#: ../../mod/settings.php:1045 +#: ../../mod/settings.php:1047 msgid "Blocked - <em>default blocked to/from everybody</em>" msgstr "Geblokkeerd <em>(standaard geblokkeerd naar/van iedereen)</em>" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "Allow others to tag your posts" msgstr "Anderen toestaan om je berichten te taggen" -#: ../../mod/settings.php:1047 +#: ../../mod/settings.php:1049 msgid "" "Often used by the community to retro-actively flag inappropriate content" msgstr "Vaak in groepen/forums gebruikt om met terugwerkende kracht ongepast materiaal te markeren" -#: ../../mod/settings.php:1049 +#: ../../mod/settings.php:1051 msgid "Advanced Privacy Settings" msgstr "Geavanceerde privacy-instellingen" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "Expire other channel content after this many days" msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:" -#: ../../mod/settings.php:1051 +#: ../../mod/settings.php:1053 msgid "0 or blank prevents expiration" msgstr "0 of leeg voorkomt het verlopen" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "Maximum Friend Requests/Day:" msgstr "Maximum aantal connectieverzoeken per dag:" -#: ../../mod/settings.php:1052 +#: ../../mod/settings.php:1054 msgid "May reduce spam activity" msgstr "Kan eventuele spam verminderen" -#: ../../mod/settings.php:1053 +#: ../../mod/settings.php:1055 msgid "Default Post Permissions" msgstr "Standaard permissies voor nieuwe berichten" -#: ../../mod/settings.php:1058 +#: ../../mod/settings.php:1056 ../../mod/mitem.php:150 ../../mod/mitem.php:223 +msgid "(click to open/close)" +msgstr "(klik om te openen/sluiten)" + +#: ../../mod/settings.php:1060 msgid "Channel permissions category:" msgstr "Kanaaltype en -permissies:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Maximum private messages per day from unknown people:" msgstr "Maximum aantal privé-berichten per dag van onbekende personen:" -#: ../../mod/settings.php:1064 +#: ../../mod/settings.php:1066 msgid "Useful to reduce spamming" msgstr "Kan eventuele spam verminderen" -#: ../../mod/settings.php:1067 +#: ../../mod/settings.php:1069 msgid "Notification Settings" msgstr "Notificatie-instellingen" -#: ../../mod/settings.php:1068 +#: ../../mod/settings.php:1070 msgid "By default post a status message when:" msgstr "Plaats automatisch een statusbericht wanneer:" -#: ../../mod/settings.php:1069 +#: ../../mod/settings.php:1071 msgid "accepting a friend request" msgstr "Een connectieverzoek wordt geaccepteerd" -#: ../../mod/settings.php:1070 +#: ../../mod/settings.php:1072 msgid "joining a forum/community" msgstr "Je lid wordt van een forum/groep" -#: ../../mod/settings.php:1071 +#: ../../mod/settings.php:1073 msgid "making an <em>interesting</em> profile change" msgstr "Er sprake is van een <em>interessante</em> profielwijziging" -#: ../../mod/settings.php:1072 +#: ../../mod/settings.php:1074 msgid "Send a notification email when:" msgstr "Verzend een notificatie per e-mail wanneer:" -#: ../../mod/settings.php:1073 +#: ../../mod/settings.php:1075 msgid "You receive a connection request" msgstr "Je een connectieverzoek ontvangt" -#: ../../mod/settings.php:1074 +#: ../../mod/settings.php:1076 msgid "Your connections are confirmed" msgstr "Jouw connecties zijn bevestigd" -#: ../../mod/settings.php:1075 +#: ../../mod/settings.php:1077 msgid "Someone writes on your profile wall" msgstr "Iemand iets op jouw kanaal heeft geschreven" -#: ../../mod/settings.php:1076 +#: ../../mod/settings.php:1078 msgid "Someone writes a followup comment" msgstr "Iemand een reactie schrijft" -#: ../../mod/settings.php:1077 +#: ../../mod/settings.php:1079 msgid "You receive a private message" msgstr "Je een privé-bericht ontvangt" -#: ../../mod/settings.php:1078 +#: ../../mod/settings.php:1080 msgid "You receive a friend suggestion" msgstr "Je een kanaalvoorstel ontvangt" -#: ../../mod/settings.php:1079 +#: ../../mod/settings.php:1081 msgid "You are tagged in a post" msgstr "Je expliciet in een bericht bent genoemd" -#: ../../mod/settings.php:1080 +#: ../../mod/settings.php:1082 msgid "You are poked/prodded/etc. in a post" msgstr "Je bent in een bericht aangestoten/gepord/etc." -#: ../../mod/settings.php:1083 +#: ../../mod/settings.php:1085 msgid "Show visual notifications including:" msgstr "Toon de volgende zichtbare notificaties:" -#: ../../mod/settings.php:1085 +#: ../../mod/settings.php:1087 msgid "Unseen matrix activity" msgstr "Niet bekeken matrix-activiteit" -#: ../../mod/settings.php:1086 +#: ../../mod/settings.php:1088 msgid "Unseen channel activity" msgstr "Niet bekeken kanaal-activiteit" -#: ../../mod/settings.php:1087 +#: ../../mod/settings.php:1089 msgid "Unseen private messages" msgstr "Niet bekeken privéberichten" -#: ../../mod/settings.php:1087 ../../mod/settings.php:1092 -#: ../../mod/settings.php:1093 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1089 ../../mod/settings.php:1094 +#: ../../mod/settings.php:1095 ../../mod/settings.php:1096 msgid "Recommended" msgstr "Aanbevolen" -#: ../../mod/settings.php:1088 +#: ../../mod/settings.php:1090 msgid "Upcoming events" msgstr "Aankomende gebeurtenissen" -#: ../../mod/settings.php:1089 +#: ../../mod/settings.php:1091 msgid "Events today" msgstr "Gebeurtissen van vandaag" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Upcoming birthdays" msgstr "Aankomende verjaardagen" -#: ../../mod/settings.php:1090 +#: ../../mod/settings.php:1092 msgid "Not available in all themes" msgstr "Niet in alle thema's beschikbaar" -#: ../../mod/settings.php:1091 +#: ../../mod/settings.php:1093 msgid "System (personal) notifications" msgstr "(Persoonlijke) systeemnotificaties" -#: ../../mod/settings.php:1092 +#: ../../mod/settings.php:1094 msgid "System info messages" msgstr "Systeemmededelingen" -#: ../../mod/settings.php:1093 +#: ../../mod/settings.php:1095 msgid "System critical alerts" msgstr "Kritische systeemwaarschuwingen" -#: ../../mod/settings.php:1094 +#: ../../mod/settings.php:1096 msgid "New connections" msgstr "Nieuwe connecties" -#: ../../mod/settings.php:1095 +#: ../../mod/settings.php:1097 msgid "System Registrations" msgstr "Nieuwe accountregistraties op deze hub" -#: ../../mod/settings.php:1096 +#: ../../mod/settings.php:1098 msgid "" "Also show new wall posts, private messages and connections under Notices" msgstr "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Notify me of events this many days in advance" msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen" -#: ../../mod/settings.php:1098 +#: ../../mod/settings.php:1100 msgid "Must be greater than 0" msgstr "Moet hoger dan 0 zijn" -#: ../../mod/settings.php:1100 +#: ../../mod/settings.php:1102 msgid "Advanced Account/Page Type Settings" msgstr "Instellingen geavanceerd account/paginatype" -#: ../../mod/settings.php:1101 +#: ../../mod/settings.php:1103 msgid "Change the behaviour of this account for special situations" msgstr "Verander het gedrag van dit account voor speciale situaties" -#: ../../mod/settings.php:1104 +#: ../../mod/settings.php:1106 msgid "" "Please enable expert mode (in <a href=\"settings/features\">Settings > " "Additional features</a>) to adjust!" msgstr "Schakel de expertmodus in (in <a href=\"settings/features\">Instellingen > Extra functies</a>) om aan te kunnen passen!" -#: ../../mod/settings.php:1105 +#: ../../mod/settings.php:1107 msgid "Miscellaneous Settings" msgstr "Diverse instellingen" -#: ../../mod/settings.php:1106 +#: ../../mod/settings.php:1108 msgid "Default photo upload folder" msgstr "Standaard fotoalbum voor uploads" -#: ../../mod/settings.php:1106 ../../mod/settings.php:1107 +#: ../../mod/settings.php:1108 ../../mod/settings.php:1109 msgid "%Y - current year, %m - current month" msgstr "%Y - dit jaar, %m - deze maand" -#: ../../mod/settings.php:1107 +#: ../../mod/settings.php:1109 msgid "Default file upload folder" msgstr "Standaard bestandsmap voor uploads" -#: ../../mod/settings.php:1109 +#: ../../mod/settings.php:1111 msgid "Personal menu to display in your channel pages" msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven" -#: ../../mod/settings.php:1111 +#: ../../mod/settings.php:1113 msgid "Remove this channel." msgstr "Verwijder dit kanaal." -#: ../../mod/settings.php:1112 +#: ../../mod/settings.php:1114 msgid "Firefox Share $Projectname provider" msgstr "$Projectname-service voor Firefox Share" -#: ../../mod/xchan.php:6 -msgid "Xchan Lookup" -msgstr "Xchan opzoeken" - -#: ../../mod/xchan.php:9 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Zoek een xchan (of webbie) die begint met:" - -#: ../../mod/manage.php:130 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt." - -#: ../../mod/manage.php:138 -msgid "Create a new channel" -msgstr "Nieuw kanaal aanmaken" - -#: ../../mod/manage.php:161 -msgid "Current Channel" -msgstr "Huidig kanaal" - -#: ../../mod/manage.php:163 -msgid "Switch to one of your channels by selecting it." -msgstr "Activeer een van jouw andere kanalen door er op te klikken." - -#: ../../mod/manage.php:164 -msgid "Default Channel" -msgstr "Standaardkanaal" - -#: ../../mod/manage.php:165 -msgid "Make Default" -msgstr "Als standaard instellen" - -#: ../../mod/manage.php:168 -#, php-format -msgid "%d new messages" -msgstr "%d nieuwe berichten" - -#: ../../mod/manage.php:169 -#, php-format -msgid "%d new introductions" -msgstr "%d nieuwe connectieverzoeken" - -#: ../../mod/manage.php:171 -msgid "Delegated Channels" -msgstr "Uitbestede kanalen" - -#: ../../mod/api.php:76 ../../mod/api.php:102 -msgid "Authorize application connection" -msgstr "Geef toestemming voor applicatiekoppeling" - -#: ../../mod/api.php:77 -msgid "Return to your app and insert this Securty Code:" -msgstr "Ga terug naar je app en voeg deze beveiligingscode in:" - -#: ../../mod/api.php:89 -msgid "Please login to continue." -msgstr "Inloggen om verder te kunnen gaan." - -#: ../../mod/api.php:104 -msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?" - -#: ../../mod/connections.php:52 ../../mod/connections.php:150 -msgid "Blocked" -msgstr "Geblokkeerd" - -#: ../../mod/connections.php:57 ../../mod/connections.php:157 -msgid "Ignored" -msgstr "Genegeerd" - -#: ../../mod/connections.php:62 ../../mod/connections.php:171 -msgid "Hidden" -msgstr "Verborgen" - -#: ../../mod/connections.php:67 ../../mod/connections.php:164 -msgid "Archived" -msgstr "Gearchiveerd" - -#: ../../mod/connections.php:128 -msgid "Suggest new connections" -msgstr "Nieuwe kanalen voorstellen" - -#: ../../mod/connections.php:131 -msgid "New Connections" -msgstr "Nieuwe connecties" - -#: ../../mod/connections.php:134 -msgid "Show pending (new) connections" -msgstr "Nog te accepteren (nieuwe) connecties weergeven" - -#: ../../mod/connections.php:137 ../../mod/profperm.php:139 -msgid "All Connections" -msgstr "Alle connecties" - -#: ../../mod/connections.php:140 -msgid "Show all connections" -msgstr "Toon alle connecties" - -#: ../../mod/connections.php:143 -msgid "Unblocked" -msgstr "Niet geblokkeerd" - -#: ../../mod/connections.php:146 -msgid "Only show unblocked connections" -msgstr "Toon alleen niet geblokkeerde connecties" - -#: ../../mod/connections.php:153 -msgid "Only show blocked connections" -msgstr "Toon alleen geblokkeerde connecties" - -#: ../../mod/connections.php:160 -msgid "Only show ignored connections" -msgstr "Toon alleen genegeerde connecties" - -#: ../../mod/connections.php:167 -msgid "Only show archived connections" -msgstr "Toon alleen gearchiveerde connecties" - -#: ../../mod/connections.php:174 -msgid "Only show hidden connections" -msgstr "Toon alleen verborgen connecties" - -#: ../../mod/connections.php:225 -#, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" - -#: ../../mod/connections.php:226 -msgid "Edit connection" -msgstr "Connectie bewerken" - -#: ../../mod/connections.php:264 -msgid "Search your connections" -msgstr "Doorzoek jouw connecties" - -#: ../../mod/connections.php:265 -msgid "Finding: " -msgstr "Zoeken naar: " - -#: ../../mod/editlayout.php:112 -msgid "Delete layout?" -msgstr "Lay-out verwijderen?" - -#: ../../mod/editlayout.php:178 -msgid "Edit Layout" -msgstr "Lay-out bewerken" - -#: ../../mod/editwebpage.php:153 -msgid "Delete webpage?" -msgstr "Webpagina verwijderen?" - -#: ../../mod/editwebpage.php:172 -msgid "Page link title" -msgstr "Titel van paginalink" - -#: ../../mod/editwebpage.php:222 -msgid "Edit Webpage" -msgstr "Webpagina bewerken" - -#: ../../mod/group.php:20 -msgid "Collection created." -msgstr "Collectie aangemaakt" +#: ../../mod/settings.php:1115 +msgid "Start calendar week on monday" +msgstr "Begin in de agenda de week op maandag" -#: ../../mod/group.php:26 -msgid "Could not create collection." -msgstr "Collectie kon niet aangemaakt worden" - -#: ../../mod/group.php:54 -msgid "Collection updated." -msgstr "Collectie bijgewerkt." - -#: ../../mod/group.php:86 -msgid "Create a collection of channels." -msgstr "Kanaalcollectie aanmaken" - -#: ../../mod/group.php:87 ../../mod/group.php:180 -msgid "Collection Name: " -msgstr "Naam collectie:" - -#: ../../mod/group.php:89 ../../mod/group.php:183 -msgid "Members are visible to other channels" -msgstr "Kanalen in deze collectie zijn zichtbaar voor andere kanalen" - -#: ../../mod/group.php:107 -msgid "Collection removed." -msgstr "Collectie verwijderd" +#: ../../mod/webpages.php:191 +msgid "Page Title" +msgstr "Paginatitel" -#: ../../mod/group.php:109 -msgid "Unable to remove collection." -msgstr "Verwijderen collectie mislukt" +#: ../../mod/appman.php:28 ../../mod/appman.php:44 +msgid "App installed." +msgstr "App geïnstalleerd" -#: ../../mod/group.php:179 -msgid "Collection Editor" -msgstr "Collectiebewerker" +#: ../../mod/appman.php:37 +msgid "Malformed app." +msgstr "Misvormde app." -#: ../../mod/group.php:193 -msgid "Members" -msgstr "Kanalen" +#: ../../mod/appman.php:80 +msgid "Embed code" +msgstr "Insluitcode" -#: ../../mod/group.php:195 -msgid "All Connected Channels" -msgstr "Alle kanaalconnecties" +#: ../../mod/appman.php:86 +msgid "Edit App" +msgstr "App bewerken" -#: ../../mod/group.php:227 -msgid "Click on a channel to add or remove." -msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen." +#: ../../mod/appman.php:86 +msgid "Create App" +msgstr "App maken" -#: ../../mod/connect.php:56 ../../mod/connect.php:104 -msgid "Continue" -msgstr "Ga verder" +#: ../../mod/appman.php:91 +msgid "Name of app" +msgstr "Naam van app" -#: ../../mod/connect.php:85 -msgid "Premium Channel Setup" -msgstr "Instellen premiumkanaal " +#: ../../mod/appman.php:92 +msgid "Location (URL) of app" +msgstr "Locatie (URL) van app" -#: ../../mod/connect.php:87 -msgid "Enable premium channel connection restrictions" -msgstr "Restricties voor connecties van premiumkanaal toestaan" +#: ../../mod/appman.php:94 +msgid "Photo icon URL" +msgstr "URL van pictogram" -#: ../../mod/connect.php:88 -msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." -msgstr "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz." +#: ../../mod/appman.php:94 +msgid "80 x 80 pixels - optional" +msgstr "80 x 80 pixels (optioneel)" -#: ../../mod/connect.php:90 ../../mod/connect.php:110 -msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" -msgstr "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:" +#: ../../mod/appman.php:95 +msgid "Version ID" +msgstr "Versie-ID" -#: ../../mod/connect.php:91 -msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:" +#: ../../mod/appman.php:96 +msgid "Price of app" +msgstr "Prijs van de app" -#: ../../mod/connect.php:92 ../../mod/connect.php:113 -msgid "" -"By continuing, I certify that I have complied with any instructions provided" -" on this page." -msgstr "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina." +#: ../../mod/appman.php:97 +msgid "Location (URL) to purchase app" +msgstr "Locatie (URL) om de app aan te schaffen" -#: ../../mod/connect.php:101 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) " +#: ../../mod/filer.php:48 +msgid "- select -" +msgstr "- kies map -" -#: ../../mod/connect.php:109 -msgid "Restricted or Premium Channel" -msgstr "Beperkt of premiumkanaal" +#: ../../mod/layouts.php:176 +msgid "Comanche page description language help" +msgstr "Hulp met de paginabeschrijvingstaal Comanche" -#: ../../mod/viewconnections.php:59 -msgid "No connections." -msgstr "Geen connecties." +#: ../../mod/layouts.php:180 +msgid "Layout Description" +msgstr "Lay-out-omschrijving" -#: ../../mod/viewconnections.php:72 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Bezoek het profiel van %s [%s]" +#: ../../mod/layouts.php:185 +msgid "Download PDL file" +msgstr "Download PDL-bestand" #: ../../mod/locs.php:21 ../../mod/locs.php:50 msgid "Location not found." @@ -8365,698 +8252,748 @@ msgstr "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen msgid "Use this form to drop the location if the hub is no longer operating." msgstr "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is." -#: ../../mod/post.php:234 -msgid "" -"Remote authentication blocked. You are logged into this site locally. Please" -" logout and retry." -msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen." +#: ../../mod/mail.php:33 +msgid "Unable to lookup recipient." +msgstr "Niet in staat om ontvanger op te zoeken." -#: ../../mod/ffsapi.php:8 -msgid "Share content from Firefox to $Projectname" -msgstr "Deel webpagina's vanuit Firefox met " +#: ../../mod/mail.php:41 +msgid "Unable to communicate with requested channel." +msgstr "Niet in staat om met het aangevraagde kanaal te communiceren." -#: ../../mod/ffsapi.php:11 -msgid "Activate the Firefox $Projectname provider" -msgstr "Activeer de $Projectname-service in Firefox" +#: ../../mod/mail.php:48 +msgid "Cannot verify requested channel." +msgstr "Kan opgevraagd kanaal niet verifieren" -#: ../../mod/setup.php:191 -msgid "$Projectname Server - Setup" -msgstr "$Projectname Server - Setup" +#: ../../mod/mail.php:74 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt." -#: ../../mod/setup.php:195 -msgid "Could not connect to database." -msgstr "Could not connect to database." +#: ../../mod/mail.php:132 +msgid "Messages" +msgstr "Berichten" -#: ../../mod/setup.php:199 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "Could not connect to specified hub URL. Possible SSL certificate or DNS issue." +#: ../../mod/mail.php:167 +msgid "Message recalled." +msgstr "Bericht ingetrokken." -#: ../../mod/setup.php:206 -msgid "Could not create table." -msgstr "Could not create table." +#: ../../mod/mail.php:180 +msgid "Conversation removed." +msgstr "Conversatie verwijderd" -#: ../../mod/setup.php:211 -msgid "Your site database has been installed." -msgstr "Your hub database has been installed." +#: ../../mod/mail.php:223 +msgid "Requested channel is not in this network" +msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar" -#: ../../mod/setup.php:215 -msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." -msgstr "You may need to import the file \"install/schema_xxx.sql\" manually using a database client." +#: ../../mod/mail.php:231 +msgid "Send Private Message" +msgstr "Privébericht versturen" -#: ../../mod/setup.php:216 ../../mod/setup.php:284 ../../mod/setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Please see the file \"install/INSTALL.txt\"." +#: ../../mod/mail.php:232 ../../mod/mail.php:361 +msgid "To:" +msgstr "Aan:" -#: ../../mod/setup.php:281 -msgid "System check" -msgstr "System check" +#: ../../mod/mail.php:235 ../../mod/mail.php:363 +msgid "Subject:" +msgstr "Onderwerp:" -#: ../../mod/setup.php:286 -msgid "Check again" -msgstr "Check again" +#: ../../mod/mail.php:238 ../../mod/invite.php:131 +msgid "Your message:" +msgstr "Jouw bericht:" -#: ../../mod/setup.php:308 -msgid "Database connection" -msgstr "Database connection" +#: ../../mod/mail.php:242 +msgid "Send" +msgstr "Verzenden" -#: ../../mod/setup.php:309 -msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." -msgstr "In order to install $Projectname we need to know how to connect to your database." +#: ../../mod/mail.php:333 +msgid "Delete message" +msgstr "Bericht verwijderen" -#: ../../mod/setup.php:310 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Please contact your hosting provider or site administrator if you have questions about these settings." +#: ../../mod/mail.php:334 +msgid "Delivery report" +msgstr "Afleveringsrapport" -#: ../../mod/setup.php:311 +#: ../../mod/mail.php:335 +msgid "Recall message" +msgstr "Bericht intrekken" + +#: ../../mod/mail.php:337 +msgid "Message has been recalled." +msgstr "Bericht is ingetrokken." + +#: ../../mod/mail.php:354 +msgid "Delete Conversation" +msgstr "Verwijder conversatie" + +#: ../../mod/mail.php:356 msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "The database you specify below should already exist. If it does not, please create it before continuing." +"No secure communications available. You <strong>may</strong> be able to " +"respond from the sender's profile page." +msgstr "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender." -#: ../../mod/setup.php:315 -msgid "Database Server Name" -msgstr "Database Server Name" +#: ../../mod/mail.php:360 +msgid "Send Reply" +msgstr "Antwoord versturen" -#: ../../mod/setup.php:315 -msgid "Default is 127.0.0.1" -msgstr "Default is 127.0.0.1" +#: ../../mod/mail.php:365 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Jouw privébericht aan %s (%s):" -#: ../../mod/setup.php:316 -msgid "Database Port" -msgstr "Database Port" +#: ../../mod/regmod.php:11 +msgid "Please login." +msgstr "Inloggen." -#: ../../mod/setup.php:316 -msgid "Communication port number - use 0 for default" -msgstr "Communication port number - use 0 for default" +#: ../../mod/xchan.php:6 +msgid "Xchan Lookup" +msgstr "Xchan opzoeken" -#: ../../mod/setup.php:317 -msgid "Database Login Name" -msgstr "Database Login Name" +#: ../../mod/xchan.php:9 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Zoek een xchan (of webbie) die begint met:" -#: ../../mod/setup.php:318 -msgid "Database Login Password" -msgstr "Database Login Password" +#: ../../mod/xchan.php:37 ../../mod/menu.php:162 ../../mod/mitem.php:116 +msgid "Not found." +msgstr "Niet gevonden." -#: ../../mod/setup.php:319 -msgid "Database Name" -msgstr "Database Name" +#: ../../mod/channel.php:25 ../../mod/chat.php:19 +msgid "You must be logged in to see this page." +msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken." -#: ../../mod/setup.php:320 -msgid "Database Type" -msgstr "Database Type" +#: ../../mod/channel.php:97 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina." -#: ../../mod/setup.php:322 ../../mod/setup.php:363 -msgid "Site administrator email address" -msgstr "Hub administrator email address" +#: ../../mod/attach.php:9 +msgid "Item not available." +msgstr "Item is niet aanwezig." -#: ../../mod/setup.php:322 ../../mod/setup.php:363 +#: ../../mod/invite.php:25 +msgid "Total invitation limit exceeded." +msgstr "Limiet voor aantal uitnodigingen overschreden." + +#: ../../mod/invite.php:49 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Geen geldig e-mailadres." + +#: ../../mod/invite.php:76 +msgid "Please join us on $Projectname" +msgstr "Uitnodiging voor $Projectname" + +#: ../../mod/invite.php:87 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." + +#: ../../mod/invite.php:92 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s: Aflevering bericht mislukt." + +#: ../../mod/invite.php:96 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d bericht verzonden." +msgstr[1] "%d berichten verzonden." + +#: ../../mod/invite.php:115 +msgid "You have no more invitations available" +msgstr "Je hebt geen uitnodigingen meer beschikbaar" + +#: ../../mod/invite.php:129 +msgid "Send invitations" +msgstr "Uitnodigingen verzenden" + +#: ../../mod/invite.php:130 +msgid "Enter email addresses, one per line:" +msgstr "Voer e-mailadressen in, één per regel:" + +#: ../../mod/invite.php:132 +msgid "Please join my community on $Projectname." +msgstr "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op $Projectname te vergezellen. Lees meer over $Projectname op https://redmatrix.me." + +#: ../../mod/invite.php:134 +msgid "You will need to supply this invitation code: " +msgstr "Je moet deze uitnodigingscode opgeven:" + +#: ../../mod/invite.php:135 msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Your account email address must match this in order to use the web admin panel." +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Registreer je op een willekeurige $Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Website URL" -msgstr "Hub URL" +#: ../../mod/invite.php:137 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn $Projectname-kanaaladres in het zoekveld invullen:" -#: ../../mod/setup.php:323 ../../mod/setup.php:365 -msgid "Please use SSL (https) URL if available." -msgstr "Please use SSL (https) URL if available." +#: ../../mod/invite.php:138 +msgid "or visit " +msgstr "of bezoek " -#: ../../mod/setup.php:325 ../../mod/setup.php:367 -msgid "Please select a default timezone for your website" -msgstr "Please select a default timezone for your hub" +#: ../../mod/invite.php:140 +msgid "3. Click [Connect]" +msgstr "3. Klik op [+ Verbinden]" -#: ../../mod/setup.php:352 -msgid "Site settings" -msgstr "Hub settings" +#: ../../mod/lockview.php:37 +msgid "Remote privacy information not available." +msgstr "Privacy-informatie op afstand niet beschikbaar." -#: ../../mod/setup.php:417 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Could not find a command line version of PHP in the web server PATH." +#: ../../mod/lockview.php:58 +msgid "Visible to:" +msgstr "Zichtbaar voor:" -#: ../../mod/setup.php:418 +#: ../../mod/uexport.php:51 ../../mod/uexport.php:52 +msgid "Export Channel" +msgstr "Kanaal exporteren" + +#: ../../mod/uexport.php:53 msgid "" -"If you don't have a command line version of PHP installed on server, you " -"will not be able to run background polling via cron." -msgstr "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron." +"Export your basic channel information to a file. This acts as a backup of " +"your connections, permissions, profile and basic data, which can be used to " +"import your data to a new server hub, but does not contain your content." +msgstr "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal." -#: ../../mod/setup.php:422 -msgid "PHP executable path" -msgstr "PHP executable path" +#: ../../mod/uexport.php:54 +msgid "Export Content" +msgstr "Inhoud exporteren" -#: ../../mod/setup.php:422 +#: ../../mod/uexport.php:55 msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Enter full path to php executable. You can leave this blank to continue the installation." +"Export your channel information and recent content to a JSON backup that can" +" be restored or imported to another server hub. This backs up all of your " +"connections, permissions, profile data and several months of posts. This " +"file may be VERY large. Please be patient - it may take several minutes for" +" this download to begin." +msgstr "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint." -#: ../../mod/setup.php:427 -msgid "Command line PHP" -msgstr "Command line PHP" +#: ../../mod/uexport.php:56 +msgid "Export your posts from a given year." +msgstr "Exporteer jouw berichten uit een bepaald jaar." -#: ../../mod/setup.php:436 +#: ../../mod/uexport.php:58 msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled." +"You may also export your posts and conversations for a particular year or " +"month. Adjust the date in your browser location bar to select other dates. " +"If the export fails (possibly due to memory exhaustion on your server hub), " +"please try again selecting a more limited date range." +msgstr "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak." -#: ../../mod/setup.php:437 -msgid "This is required for message delivery to work." -msgstr "This is required for message delivery to work." +#: ../../mod/uexport.php:59 +#, php-format +msgid "" +"To select all posts for a given year, such as this year, visit <a " +"href=\"%1$s\">%2$s</a>" +msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. " -#: ../../mod/setup.php:440 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" +#: ../../mod/uexport.php:60 +#, php-format +msgid "" +"To select all posts for a given month, such as January of this year, visit " +"<a href=\"%1$s\">%2$s</a>" +msgstr "Bezoek <a href=\"%1$s\">%2$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren." -#: ../../mod/setup.php:458 +#: ../../mod/uexport.php:61 #, php-format msgid "" -"Your max allowed total upload size is set to %s. Maximum size of one file to" -" upload is set to %s. You are allowed to upload up to %d files at once." -msgstr "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once." +"These content files may be imported or restored by visiting <a " +"href=\"%1$s\">%2$s</a> on any site containing your channel. For best results" +" please import or restore these in date order (oldest first)." +msgstr "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1$s\">%2$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen." -#: ../../mod/setup.php:463 -msgid "You can adjust these settings in the servers php.ini." -msgstr "You can adjust these settings in the servers php.ini." +#: ../../mod/editpost.php:31 +msgid "Item is not editable" +msgstr "Item is niet te bewerken" -#: ../../mod/setup.php:465 -msgid "PHP upload limits" -msgstr "PHP upload limits" +#: ../../mod/editpost.php:57 +msgid "Delete item?" +msgstr "Item verwijderen?" -#: ../../mod/setup.php:488 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys" +#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 +msgid "Edit post" +msgstr "Bericht bewerken" -#: ../../mod/setup.php:489 +#: ../../mod/follow.php:25 +msgid "Channel added." +msgstr "Kanaal toegevoegd." + +#: ../../mod/rmagic.php:40 msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"." +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten." -#: ../../mod/setup.php:492 -msgid "Generate encryption keys" -msgstr "Generate encryption keys" +#: ../../mod/rmagic.php:40 +msgid "The error message was:" +msgstr "Het foutbericht was:" -#: ../../mod/setup.php:504 -msgid "libCurl PHP module" -msgstr "libCurl PHP module" +#: ../../mod/rmagic.php:44 +msgid "Authentication failed." +msgstr "Authenticatie mislukt." -#: ../../mod/setup.php:505 -msgid "GD graphics PHP module" -msgstr "GD graphics PHP module" +#: ../../mod/rmagic.php:84 +msgid "Remote Authentication" +msgstr "Authenticatie op afstand" -#: ../../mod/setup.php:506 -msgid "OpenSSL PHP module" -msgstr "OpenSSL PHP module" +#: ../../mod/rmagic.php:85 +msgid "Enter your channel address (e.g. channel@example.com)" +msgstr "Vul jouw kanaaladres in (bijv. channel@example.com)" -#: ../../mod/setup.php:507 -msgid "mysqli or postgres PHP module" -msgstr "mysqli or postgres PHP module" +#: ../../mod/rmagic.php:86 +msgid "Authenticate" +msgstr "Authenticeren" -#: ../../mod/setup.php:508 -msgid "mb_string PHP module" -msgstr "mb_string PHP module" +#: ../../mod/chat.php:174 +msgid "Room not found" +msgstr "Chatkanaal niet gevonden" -#: ../../mod/setup.php:509 -msgid "mcrypt PHP module" -msgstr "mcrypt PHP module" +#: ../../mod/chat.php:185 +msgid "Leave Room" +msgstr "Chatkanaal verlaten" -#: ../../mod/setup.php:510 -msgid "xml PHP module" -msgstr "xml PHP module" +#: ../../mod/chat.php:186 +msgid "Delete This Room" +msgstr "Chatkanaal verwijderen" -#: ../../mod/setup.php:514 ../../mod/setup.php:516 -msgid "Apache mod_rewrite module" -msgstr "Apache mod_rewrite module" +#: ../../mod/chat.php:187 +msgid "I am away right now" +msgstr "Ik ben momenteel afwezig" -#: ../../mod/setup.php:514 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Error: Apache webserver mod-rewrite module is required but not installed." +#: ../../mod/chat.php:188 +msgid "I am online" +msgstr "Ik ben online" -#: ../../mod/setup.php:520 ../../mod/setup.php:523 -msgid "proc_open" -msgstr "proc_open" +#: ../../mod/chat.php:190 +msgid "Bookmark this room" +msgstr "Chatkanaal aan bladwijzers toevoegen" -#: ../../mod/setup.php:520 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "Error: proc_open is required but is either not installed or has been disabled in php.ini" +#: ../../mod/chat.php:208 ../../mod/chat.php:231 +msgid "New Chatroom" +msgstr "Nieuw chatkanaal" -#: ../../mod/setup.php:528 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Error: libCURL PHP module required but not installed." +#: ../../mod/chat.php:209 +msgid "Chatroom Name" +msgstr "Naam chatkanaal" -#: ../../mod/setup.php:532 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Error: GD graphics PHP module with JPEG support required but not installed." +#: ../../mod/chat.php:210 +msgid "Expiration of chats (minutes)" +msgstr "Aantal minuten voordat chatberichten worden verwijderd" -#: ../../mod/setup.php:536 -msgid "Error: openssl PHP module required but not installed." -msgstr "Error: openssl PHP module required but not installed." +#: ../../mod/chat.php:227 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "Chatkanalen van %1$s" -#: ../../mod/setup.php:540 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "Error: mysqli or postgres PHP module required but neither are installed." +#: ../../mod/viewsrc.php:40 +msgid "Source of Item" +msgstr "Bron van item" -#: ../../mod/setup.php:544 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Error: mb_string PHP module required but not installed." +#: ../../mod/ffsapi.php:8 +msgid "Share content from Firefox to $Projectname" +msgstr "Deel webpagina's vanuit Firefox met " -#: ../../mod/setup.php:548 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "Error: mcrypt PHP module required but not installed." +#: ../../mod/ffsapi.php:11 +msgid "Activate the Firefox $Projectname provider" +msgstr "Activeer de $Projectname-service in Firefox" -#: ../../mod/setup.php:552 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "Error: xml PHP module required for DAV but not installed." +#: ../../mod/magic.php:69 +msgid "Hub not found." +msgstr "Hub niet gevonden." -#: ../../mod/setup.php:570 -msgid "" -"The web installer needs to be able to create a file called \".htconfig.php\"" -" in the top folder of your web server and it is unable to do so." -msgstr "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so." +#: ../../mod/connections.php:52 ../../mod/connections.php:150 +msgid "Blocked" +msgstr "Geblokkeerd" -#: ../../mod/setup.php:571 -msgid "" -"This is most often a permission setting, as the web server may not be able " -"to write files in your folder - even if you can." -msgstr "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can." +#: ../../mod/connections.php:57 ../../mod/connections.php:157 +msgid "Ignored" +msgstr "Genegeerd" -#: ../../mod/setup.php:572 -msgid "" -"At the end of this procedure, we will give you a text to save in a file " -"named .htconfig.php in your Red top folder." -msgstr "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder." +#: ../../mod/connections.php:62 ../../mod/connections.php:171 +msgid "Hidden" +msgstr "Verborgen" -#: ../../mod/setup.php:573 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions." +#: ../../mod/connections.php:67 ../../mod/connections.php:164 +msgid "Archived" +msgstr "Gearchiveerd" -#: ../../mod/setup.php:576 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php is writable" +#: ../../mod/connections.php:128 +msgid "Suggest new connections" +msgstr "Nieuwe kanalen voorstellen" -#: ../../mod/setup.php:590 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering." +#: ../../mod/connections.php:131 +msgid "New Connections" +msgstr "Nieuwe connecties" -#: ../../mod/setup.php:591 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the Red top level folder." -msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder." +#: ../../mod/connections.php:134 +msgid "Show pending (new) connections" +msgstr "Nog te accepteren (nieuwe) connecties weergeven" -#: ../../mod/setup.php:592 ../../mod/setup.php:613 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder." +#: ../../mod/connections.php:137 ../../mod/profperm.php:139 +msgid "All Connections" +msgstr "Alle connecties" -#: ../../mod/setup.php:593 -#, php-format -msgid "" -"Note: as a security measure, you should give the web server write access to " -"%s only--not the template files (.tpl) that it contains." -msgstr "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains." +#: ../../mod/connections.php:140 +msgid "Show all connections" +msgstr "Toon alle connecties" -#: ../../mod/setup.php:596 -#, php-format -msgid "%s is writable" -msgstr "%s is writable" +#: ../../mod/connections.php:143 +msgid "Unblocked" +msgstr "Niet geblokkeerd" -#: ../../mod/setup.php:612 -msgid "" -"Red uses the store directory to save uploaded files. The web server needs to" -" have write access to the store directory under the Red top level folder" -msgstr "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder" +#: ../../mod/connections.php:146 +msgid "Only show unblocked connections" +msgstr "Toon alleen niet geblokkeerde connecties" -#: ../../mod/setup.php:616 -msgid "store is writable" -msgstr "store is writable" +#: ../../mod/connections.php:153 +msgid "Only show blocked connections" +msgstr "Toon alleen geblokkeerde connecties" -#: ../../mod/setup.php:649 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access" -" to this site." -msgstr "SSL certificate cannot be validated. Fix certificate or disable https access to this hub." +#: ../../mod/connections.php:160 +msgid "Only show ignored connections" +msgstr "Toon alleen genegeerde connecties" -#: ../../mod/setup.php:650 -msgid "" -"If you have https access to your website or allow connections to TCP port " -"443 (the https: port), you MUST use a browser-valid certificate. You MUST " -"NOT use self-signed certificates!" -msgstr "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!" +#: ../../mod/connections.php:167 +msgid "Only show archived connections" +msgstr "Toon alleen gearchiveerde connecties" -#: ../../mod/setup.php:651 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." -msgstr "This restriction is incorporated because public posts from you may for example contain references to images on your own hub." +#: ../../mod/connections.php:174 +msgid "Only show hidden connections" +msgstr "Toon alleen verborgen connecties" -#: ../../mod/setup.php:652 -msgid "" -"If your certificate is not recognized, members of other sites (who may " -"themselves have valid certificates) will get a warning message on their own " -"site complaining about security issues." -msgstr "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues." +#: ../../mod/connections.php:225 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" -#: ../../mod/setup.php:653 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." -msgstr "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement." +#: ../../mod/connections.php:226 +msgid "Edit connection" +msgstr "Connectie bewerken" -#: ../../mod/setup.php:654 -msgid "" -"Providers are available that issue free certificates which are browser-" -"valid." -msgstr "Providers are available that issue free certificates which are browser-valid." +#: ../../mod/connections.php:264 +msgid "Search your connections" +msgstr "Doorzoek jouw connecties" -#: ../../mod/setup.php:656 -msgid "SSL certificate validation" -msgstr "SSL certificate validation" +#: ../../mod/connections.php:265 +msgid "Finding: " +msgstr "Zoeken naar: " -#: ../../mod/setup.php:662 -msgid "" -"Url rewrite in .htaccess is not working. Check your server " -"configuration.Test: " -msgstr "Url rewrite in .htaccess is not working. Check your server configuration.Test: " +#: ../../mod/help.php:147 +msgid "Documentation Search" +msgstr "Zoek documentatie" -#: ../../mod/setup.php:665 -msgid "Url rewrite is working" -msgstr "Url rewrite is working" +#: ../../mod/help.php:184 ../../mod/help.php:190 ../../mod/help.php:196 +msgid "Help:" +msgstr "Hulp:" -#: ../../mod/setup.php:674 -msgid "" -"The database configuration file \".htconfig.php\" could not be written. " -"Please use the enclosed text to create a configuration file in your web " -"server root." -msgstr "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root." +#: ../../mod/help.php:211 ../../index.php:238 +msgid "Not Found" +msgstr "Niet gevonden" -#: ../../mod/setup.php:698 -msgid "Errors encountered creating database tables." -msgstr "Errors encountered creating database tables." +#: ../../mod/help.php:235 +msgid "$Projectname Documentation" +msgstr "$Projectname-documentatie" -#: ../../mod/setup.php:732 -msgid "<h1>What next</h1>" -msgstr "<h1>Wat nu</h1>" +#: ../../mod/manage.php:130 +#, php-format +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt." -#: ../../mod/setup.php:733 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." +#: ../../mod/manage.php:138 +msgid "Create a new channel" +msgstr "Nieuw kanaal aanmaken" -#: ../../mod/sharedwithme.php:94 -msgid "Files: shared with me" -msgstr "Bestanden: met mij gedeeld" +#: ../../mod/manage.php:161 +msgid "Current Channel" +msgstr "Huidig kanaal" -#: ../../mod/sharedwithme.php:96 -msgid "NEW" -msgstr "NIEUW" +#: ../../mod/manage.php:163 +msgid "Switch to one of your channels by selecting it." +msgstr "Activeer een van jouw andere kanalen door er op te klikken." -#: ../../mod/sharedwithme.php:99 -msgid "Remove all files" -msgstr "Verwijder alle bestanden" +#: ../../mod/manage.php:164 +msgid "Default Channel" +msgstr "Standaardkanaal" -#: ../../mod/sharedwithme.php:100 -msgid "Remove this file" -msgstr "Verwijder dit bestand" +#: ../../mod/manage.php:165 +msgid "Make Default" +msgstr "Als standaard instellen" -#: ../../mod/suggest.php:35 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer." +#: ../../mod/manage.php:168 +#, php-format +msgid "%d new messages" +msgstr "%d nieuwe berichten" -#: ../../mod/profiles.php:18 ../../mod/profiles.php:174 -#: ../../mod/profiles.php:231 ../../mod/profiles.php:600 -msgid "Profile not found." -msgstr "Profiel niet gevonden." +#: ../../mod/manage.php:169 +#, php-format +msgid "%d new introductions" +msgstr "%d nieuwe connectieverzoeken" -#: ../../mod/profiles.php:38 -msgid "Profile deleted." -msgstr "Profiel verwijderd." +#: ../../mod/manage.php:171 +msgid "Delegated Channels" +msgstr "Uitbestede kanalen" -#: ../../mod/profiles.php:56 ../../mod/profiles.php:92 -msgid "Profile-" -msgstr "Profiel-" +#: ../../mod/menu.php:45 +msgid "Unable to update menu." +msgstr "Niet in staat om menu aan te passen" -#: ../../mod/profiles.php:77 ../../mod/profiles.php:120 -msgid "New profile created." -msgstr "Nieuw profiel aangemaakt." +#: ../../mod/menu.php:56 +msgid "Unable to create menu." +msgstr "Niet in staat om menu aan te maken." -#: ../../mod/profiles.php:98 -msgid "Profile unavailable to clone." -msgstr "Profiel niet beschikbaar om te klonen" +#: ../../mod/menu.php:94 ../../mod/menu.php:106 +msgid "Menu Name" +msgstr "Menunaam" -#: ../../mod/profiles.php:136 -msgid "Profile unavailable to export." -msgstr "Geen profiel beschikbaar om te exporteren" +#: ../../mod/menu.php:94 +msgid "Unique name (not visible on webpage) - required" +msgstr "Unieke naam vereist (niet zichtbaar op webpagina)" -#: ../../mod/profiles.php:241 -msgid "Profile Name is required." -msgstr "Profielnaam is vereist" +#: ../../mod/menu.php:95 ../../mod/menu.php:107 +msgid "Menu Title" +msgstr "Menutitel" -#: ../../mod/profiles.php:404 -msgid "Marital Status" -msgstr "Huwelijke status" +#: ../../mod/menu.php:95 +msgid "Visible on webpage - leave empty for no title" +msgstr "Zichtbaar op webpagina (leeg laten voor geen titel)" -#: ../../mod/profiles.php:408 -msgid "Romantic Partner" -msgstr "Romantische partner" +#: ../../mod/menu.php:96 +msgid "Allow Bookmarks" +msgstr "Bladwijzers toestaan" -#: ../../mod/profiles.php:412 -msgid "Likes" -msgstr "Houdt van" +#: ../../mod/menu.php:96 ../../mod/menu.php:153 +msgid "Menu may be used to store saved bookmarks" +msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan" -#: ../../mod/profiles.php:416 -msgid "Dislikes" -msgstr "Houdt niet van" +#: ../../mod/menu.php:97 ../../mod/menu.php:155 +msgid "Submit and proceed" +msgstr "Opslaan en doorgaan" -#: ../../mod/profiles.php:420 -msgid "Work/Employment" -msgstr "Werk/arbeid" +#: ../../mod/menu.php:109 +msgid "Drop" +msgstr "Verwijderen" -#: ../../mod/profiles.php:423 -msgid "Religion" -msgstr "Religie" +#: ../../mod/menu.php:113 +msgid "Bookmarks allowed" +msgstr "Bladwijzers toegestaan" -#: ../../mod/profiles.php:427 -msgid "Political Views" -msgstr "Politieke overtuigingen" +#: ../../mod/menu.php:115 +msgid "Delete this menu" +msgstr "Menu verwijderen" -#: ../../mod/profiles.php:435 -msgid "Sexual Preference" -msgstr "Seksuele voorkeur" +#: ../../mod/menu.php:116 ../../mod/menu.php:150 +msgid "Edit menu contents" +msgstr "Bewerk de inhoud van het menu" -#: ../../mod/profiles.php:439 -msgid "Homepage" -msgstr "Homepage" +#: ../../mod/menu.php:117 +msgid "Edit this menu" +msgstr "Dit menu bewerken" -#: ../../mod/profiles.php:443 -msgid "Interests" -msgstr "Interesses" +#: ../../mod/menu.php:132 +msgid "Menu could not be deleted." +msgstr "Menu kon niet verwijderd worden." -#: ../../mod/profiles.php:537 -msgid "Profile updated." -msgstr "Profiel bijgewerkt" +#: ../../mod/menu.php:140 ../../mod/mitem.php:24 +msgid "Menu not found." +msgstr "Menu niet gevonden." -#: ../../mod/profiles.php:626 -msgid "Hide your contact/friend list from viewers of this profile?" -msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien." +#: ../../mod/menu.php:145 +msgid "Edit Menu" +msgstr "Menu bewerken" -#: ../../mod/profiles.php:666 -msgid "Edit Profile Details" -msgstr "Profiel bewerken" +#: ../../mod/menu.php:149 +msgid "Add or remove entries to this menu" +msgstr "Items aan dit menu toevoegen of verwijder" -#: ../../mod/profiles.php:668 -msgid "View this profile" -msgstr "Profiel weergeven" +#: ../../mod/menu.php:151 +msgid "Menu name" +msgstr "Naam van menu" -#: ../../mod/profiles.php:670 -msgid "Change Profile Photo" -msgstr "Profielfoto wijzigen" +#: ../../mod/menu.php:151 +msgid "Must be unique, only seen by you" +msgstr "Moet uniek zijn en is alleen zichtbaar voor jou." -#: ../../mod/profiles.php:671 -msgid "Create a new profile using these settings" -msgstr "Een nieuw profiel aanmaken met dit profiel als basis" +#: ../../mod/menu.php:152 +msgid "Menu title" +msgstr "Titel van menu" -#: ../../mod/profiles.php:672 -msgid "Clone this profile" -msgstr "Dit profiel klonen" +#: ../../mod/menu.php:152 +msgid "Menu title as seen by others" +msgstr "Titel van menu zoals anderen dat zien." -#: ../../mod/profiles.php:673 -msgid "Delete this profile" -msgstr "Dit profiel verwijderen" +#: ../../mod/menu.php:153 +msgid "Allow bookmarks" +msgstr "Bladwijzers toestaan" -#: ../../mod/profiles.php:675 -msgid "Import profile from file" -msgstr "Profiel vanuit bestand importeren" +#: ../../mod/post.php:234 +msgid "" +"Remote authentication blocked. You are logged into this site locally. Please" +" logout and retry." +msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen." -#: ../../mod/profiles.php:676 -msgid "Export profile to file" -msgstr "Profiel naar bestand exporteren" +#: ../../mod/service_limits.php:19 +msgid "No service class restrictions found." +msgstr "Geen abonnementsbeperkingen gevonden." -#: ../../mod/profiles.php:677 -msgid "Profile Name:" -msgstr "Profielnaam:" +#: ../../mod/siteinfo.php:111 +#, php-format +msgid "Version %s" +msgstr "Versie %s" -#: ../../mod/profiles.php:678 -msgid "Your Full Name:" -msgstr "Jouw volledige naam:" +#: ../../mod/siteinfo.php:132 +msgid "Installed plugins/addons/apps:" +msgstr "Ingeschakelde plug-ins/add-ons/apps:" -#: ../../mod/profiles.php:679 -msgid "Title/Description:" -msgstr "Titel/omschrijving:" +#: ../../mod/siteinfo.php:145 +msgid "No installed plugins/addons/apps" +msgstr "Geen ingeschakelde plug-ins/add-ons/apps" -#: ../../mod/profiles.php:680 -msgid "Your Gender:" -msgstr "Jouw geslacht" +#: ../../mod/siteinfo.php:158 +msgid "" +"This is a hub of $Projectname - a global cooperative network of " +"decentralized privacy enhanced websites." +msgstr "Dit is een $Projectname-hub - $Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy." -#: ../../mod/profiles.php:681 -msgid "Birthday :" -msgstr "Verjaardag: " +#: ../../mod/siteinfo.php:160 +msgid "Tag: " +msgstr "Tag: " -#: ../../mod/profiles.php:682 -msgid "Street Address:" -msgstr "Straat en huisnummer:" +#: ../../mod/siteinfo.php:162 +msgid "Last background fetch: " +msgstr "Meest recente achtergrond-fetch:" -#: ../../mod/profiles.php:683 -msgid "Locality/City:" -msgstr "Woonplaats:" +#: ../../mod/siteinfo.php:164 +msgid "Current load average: " +msgstr "Gemiddelde systeembelasting is nu:" -#: ../../mod/profiles.php:684 -msgid "Postal/Zip Code:" -msgstr "Postcode:" +#: ../../mod/siteinfo.php:167 +msgid "Running at web location" +msgstr "Draaiend op weblocatie" -#: ../../mod/profiles.php:685 -msgid "Country:" -msgstr "Land:" +#: ../../mod/siteinfo.php:168 +msgid "" +"Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more " +"about $Projectname." +msgstr "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> " -#: ../../mod/profiles.php:686 -msgid "Region/State:" -msgstr "Provincie/gewest/deelstaat:" +#: ../../mod/siteinfo.php:169 +msgid "Bug reports and issues: please visit" +msgstr "Bugrapporten en andere kwesties: bezoek" -#: ../../mod/profiles.php:687 -msgid "<span class=\"heart\">♥</span> Marital Status:" -msgstr "<span class=\"heart\">♥</span> Huwelijkse staat:" +#: ../../mod/siteinfo.php:171 +msgid "$projectname issues" +msgstr "$projectname-issues" -#: ../../mod/profiles.php:688 -msgid "Who: (if applicable)" -msgstr "Wie (wanneer toepasselijk):" +#: ../../mod/siteinfo.php:172 +msgid "" +"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " +"com" +msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com" -#: ../../mod/profiles.php:689 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl" +#: ../../mod/siteinfo.php:174 +msgid "Site Administrators" +msgstr "Hubbeheerders: " -#: ../../mod/profiles.php:690 -msgid "Since [date]:" -msgstr "Sinds [datum]:" +#: ../../mod/suggest.php:35 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer." -#: ../../mod/profiles.php:692 -msgid "Homepage URL:" -msgstr "Adres homepage:" +#: ../../mod/events.php:21 +msgid "Calendar entries imported." +msgstr "Agenda-items geïmporteerd." -#: ../../mod/profiles.php:695 -msgid "Religious Views:" -msgstr "Religieuze overtuigingen" +#: ../../mod/events.php:23 +msgid "No calendar entries found." +msgstr "Geen agenda-items gevonden." -#: ../../mod/profiles.php:696 -msgid "Keywords:" -msgstr "Trefwoorden" +#: ../../mod/events.php:100 +msgid "Event can not end before it has started." +msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen" -#: ../../mod/profiles.php:699 -msgid "Example: fishing photography software" -msgstr "Voorbeeld: muziek, fotografie, software" +#: ../../mod/events.php:102 ../../mod/events.php:111 ../../mod/events.php:131 +msgid "Unable to generate preview." +msgstr "Niet in staat om voorvertoning te genereren" -#: ../../mod/profiles.php:700 -msgid "Used in directory listings" -msgstr "Wordt in de kanalengids gebruikt" +#: ../../mod/events.php:109 +msgid "Event title and start time are required." +msgstr "Titel en begintijd van gebeurtenis zijn vereist." -#: ../../mod/profiles.php:701 -msgid "Tell us about yourself..." -msgstr "Vertel ons iets over jezelf..." +#: ../../mod/events.php:129 ../../mod/events.php:254 +msgid "Event not found." +msgstr "Gebeurtenis niet gevonden" -#: ../../mod/profiles.php:702 -msgid "Hobbies/Interests" -msgstr "Hobby's/interesses" +#: ../../mod/events.php:452 +msgid "Event Title" +msgstr "Titel" -#: ../../mod/profiles.php:703 -msgid "Contact information and Social Networks" -msgstr "Contactinformatie en sociale netwerken" +#: ../../mod/events.php:454 +msgid "Categories (comma-separated list)" +msgstr "Categorieën (door komma's gescheiden lijst)" -#: ../../mod/profiles.php:704 -msgid "My other channels" -msgstr "Mijn andere kanalen" +#: ../../mod/events.php:455 +msgid "Category" +msgstr "Categorie" -#: ../../mod/profiles.php:705 -msgid "Musical interests" -msgstr "Muzikale interesses" +#: ../../mod/events.php:458 +msgid "Start date and time" +msgstr "Begindatum en -tijd" -#: ../../mod/profiles.php:706 -msgid "Books, literature" -msgstr "Boeken/literatuur" +#: ../../mod/events.php:459 ../../mod/events.php:462 +msgid "Finish date and time are not known or not relevant" +msgstr "Einddatum en -tijd zijn niet bekend of niet van toepassing" -#: ../../mod/profiles.php:707 -msgid "Television" -msgstr "Televisie" +#: ../../mod/events.php:461 +msgid "Finish date and time" +msgstr "Einddatum en -tijd" -#: ../../mod/profiles.php:708 -msgid "Film/dance/culture/entertainment" -msgstr "Film/dans/cultuur/entertainment" +#: ../../mod/events.php:463 ../../mod/events.php:464 +msgid "Adjust for viewer timezone" +msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt" -#: ../../mod/profiles.php:709 -msgid "Love/romance" -msgstr "Liefde/romantiek" +#: ../../mod/events.php:463 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." +msgstr "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen." -#: ../../mod/profiles.php:710 -msgid "Work/employment" -msgstr "Werk/arbeid" +#: ../../mod/events.php:470 ../../mod/events.php:472 +msgid "Share this event" +msgstr "Deel deze gebeurtenis" -#: ../../mod/profiles.php:711 -msgid "School/education" -msgstr "School/onderwijs" +#: ../../mod/events.php:477 +msgid "Advanced Options" +msgstr "Geavenceerde opties" -#: ../../mod/profiles.php:717 -msgid "This is your default profile." -msgstr "Dit is jouw standaardprofiel" +#: ../../mod/events.php:589 +msgid "l, F j" +msgstr "l j F" -#: ../../mod/profiles.php:728 -msgid "Age: " -msgstr "Leeftijd:" +#: ../../mod/events.php:611 +msgid "Edit event" +msgstr "Gebeurtenis bewerken" -#: ../../mod/profiles.php:771 -msgid "Edit/Manage Profiles" -msgstr "Profielen bewerken/beheren" +#: ../../mod/events.php:613 +msgid "Delete event" +msgstr "Gebeurtenis verwijderen" -#: ../../mod/profiles.php:772 -msgid "Add profile things" -msgstr "Dingen aan je profiel toevoegen" +#: ../../mod/events.php:647 +msgid "calendar" +msgstr "agenda" -#: ../../mod/profiles.php:773 -msgid "Include desirable objects in your profile" -msgstr "Voeg door jou gewenste dingen aan jouw profiel toe" +#: ../../mod/events.php:666 +msgid "New Event" +msgstr "Nieuwe gebeurtenis" + +#: ../../mod/events.php:676 +msgid "Today" +msgstr "Vandaag" + +#: ../../mod/events.php:707 +msgid "Event removed" +msgstr "Gebeurtenis verwijderd" + +#: ../../mod/events.php:710 +msgid "Failed to remove event" +msgstr "Verwijderen gebeurtenis mislukt" #: ../../mod/profperm.php:29 ../../mod/profperm.php:58 msgid "Invalid profile identifier." @@ -9074,39 +9011,147 @@ msgstr "Klik op een connectie om deze toe te voegen of te verwijderen" msgid "Visible To" msgstr "Zichtbaar voor" -#: ../../mod/rbmark.php:90 -msgid "Select a bookmark folder" -msgstr "Kies een bladwijzermap" +#: ../../mod/mitem.php:48 +msgid "Unable to create element." +msgstr "Niet in staat om onderdeel aan te maken." -#: ../../mod/rbmark.php:95 -msgid "Save Bookmark" -msgstr "Bladwijzer opslaan" +#: ../../mod/mitem.php:72 +msgid "Unable to update menu element." +msgstr "Menu-onderdeel kan niet worden geüpdatet." -#: ../../mod/rbmark.php:96 -msgid "URL of bookmark" -msgstr "URL van bladwijzer" +#: ../../mod/mitem.php:88 +msgid "Unable to add menu element." +msgstr "Menu-onderdeel kan niet worden toegevoegd." -#: ../../mod/rbmark.php:101 -msgid "Or enter new bookmark folder name" -msgstr "Of geef de naam op van een nieuwe bladwijzermap" +#: ../../mod/mitem.php:149 ../../mod/mitem.php:222 +msgid "Menu Item Permissions" +msgstr "Permissies menu-item" -#: ../../mod/import_items.php:101 -msgid "Import completed" -msgstr "Importeren voltooid" +#: ../../mod/mitem.php:152 ../../mod/mitem.php:168 +msgid "Link Name" +msgstr "Linknaam" -#: ../../mod/import_items.php:119 -msgid "Import Items" -msgstr "Importeer items" +#: ../../mod/mitem.php:153 ../../mod/mitem.php:227 +msgid "Link or Submenu Target" +msgstr "Linkdoel of submenu-doel" -#: ../../mod/import_items.php:120 -msgid "" -"Use this form to import existing posts and content from an export file." -msgstr "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren." +#: ../../mod/mitem.php:153 +msgid "Enter URL of the link or select a menu name to create a submenu" +msgstr "Geef de URL van de link of kies een menunaam om een submenu aan te maken" + +#: ../../mod/mitem.php:154 ../../mod/mitem.php:228 +msgid "Use magic-auth if available" +msgstr "Gebruik magic-auth wanneer beschikbaar" + +#: ../../mod/mitem.php:155 ../../mod/mitem.php:229 +msgid "Open link in new window" +msgstr "Open link in nieuw venster" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Order in list" +msgstr "Volgorde in lijst" + +#: ../../mod/mitem.php:156 ../../mod/mitem.php:230 +msgid "Higher numbers will sink to bottom of listing" +msgstr "Hogere nummers komen onderaan de lijst terecht" + +#: ../../mod/mitem.php:157 +msgid "Submit and finish" +msgstr "Opslaan en afsluiten" + +#: ../../mod/mitem.php:158 +msgid "Submit and continue" +msgstr "Opslaan en doorgaan" + +#: ../../mod/mitem.php:166 +msgid "Menu:" +msgstr "Menu:" + +#: ../../mod/mitem.php:169 +msgid "Link Target" +msgstr "Linkdoel" + +#: ../../mod/mitem.php:172 +msgid "Edit menu" +msgstr "Menu bewerken" + +#: ../../mod/mitem.php:175 +msgid "Edit element" +msgstr "Onderdeel bewerken" + +#: ../../mod/mitem.php:176 +msgid "Drop element" +msgstr "Onderdeel verwijderen" + +#: ../../mod/mitem.php:177 +msgid "New element" +msgstr "Nieuw element" + +#: ../../mod/mitem.php:178 +msgid "Edit this menu container" +msgstr "Deze menu-container bewerken" + +#: ../../mod/mitem.php:179 +msgid "Add menu element" +msgstr "Menu-element toevoegen" + +#: ../../mod/mitem.php:180 +msgid "Delete this menu item" +msgstr "Dit menu-item verwijderen" + +#: ../../mod/mitem.php:181 +msgid "Edit this menu item" +msgstr "Dit menu-item bewerken" + +#: ../../mod/mitem.php:198 +msgid "Menu item not found." +msgstr "Menu-item niet gevonden." + +#: ../../mod/mitem.php:211 +msgid "Menu item deleted." +msgstr "Menu-item verwijderd." + +#: ../../mod/mitem.php:213 +msgid "Menu item could not be deleted." +msgstr "Menu-item kon niet worden verwijderd." + +#: ../../mod/mitem.php:220 +msgid "Edit Menu Element" +msgstr "Menu-element bewerken" + +#: ../../mod/mitem.php:226 +msgid "Link text" +msgstr "Linktekst" #: ../../mod/wholikesme.php:13 msgid "Who likes me?" msgstr "Wie vindt mij leuk?" +#: ../../mod/sharedwithme.php:94 +msgid "Files: shared with me" +msgstr "Bestanden: met mij gedeeld" + +#: ../../mod/sharedwithme.php:96 +msgid "NEW" +msgstr "NIEUW" + +#: ../../mod/sharedwithme.php:99 +msgid "Remove all files" +msgstr "Verwijder alle bestanden" + +#: ../../mod/sharedwithme.php:100 +msgid "Remove this file" +msgstr "Verwijder dit bestand" + +#: ../../mod/viewconnections.php:59 +msgid "No connections." +msgstr "Geen connecties." + +#: ../../mod/viewconnections.php:72 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Bezoek het profiel van %s [%s]" + #: ../../view/theme/redbasic/php/config.php:82 msgid "Focus (Hubzilla default)" msgstr "Focus (Hubzilla-standaard)" @@ -9243,51 +9288,51 @@ msgstr "Grootte profielfoto's van berichten instellen" msgid "Set size of followup author photos" msgstr "Grootte profielfoto's van reacties instellen" -#: ../../boot.php:1308 +#: ../../boot.php:1291 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s mislukt. Zie foutenlogboek." -#: ../../boot.php:1311 +#: ../../boot.php:1294 #, php-format msgid "Update Error at %s" msgstr "Update-fout op %s" -#: ../../boot.php:1478 +#: ../../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:1506 +#: ../../boot.php:1489 msgid "Password" msgstr "Wachtwoord" -#: ../../boot.php:1507 +#: ../../boot.php:1490 msgid "Remember me" msgstr "Aangemeld blijven" -#: ../../boot.php:1510 +#: ../../boot.php:1493 msgid "Forgot your password?" msgstr "Wachtwoord vergeten?" -#: ../../boot.php:2136 +#: ../../boot.php:2113 msgid "toggle mobile" msgstr "mobiele weergave omschakelen" -#: ../../boot.php:2271 +#: ../../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:2274 +#: ../../boot.php:2251 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Probleem met SSL-certificaat voor %s" -#: ../../boot.php:2311 +#: ../../boot.php:2288 msgid "Cron/Scheduled tasks not running." msgstr "Cron is niet actief" -#: ../../boot.php:2315 +#: ../../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 5e4773a46..685862895 100644 --- a/view/nl/hstrings.php +++ b/view/nl/hstrings.php @@ -5,176 +5,20 @@ 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["<span %1\$s>%2\$d people</span> like this."] = array( - 0 => "<span %1\$s>%2\$d persoon</span> vindt dit leuk.", - 1 => "<span %1\$s>%2\$d personen</span> vinden dit leuk.", -); -$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( - 0 => "<span %1\$s>%2\$d persoon</span> vindt dit niet leuk.", - 1 => "<span %1\$s>%2\$d personen</span> 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 <strong>everybody</strong>"] = "Voor <strong>iedereen</strong> 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["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"; +$a->strings["Missing room name"] = "Naam chatkanaal ontbreekt"; +$a->strings["Duplicate room name"] = "Naam chatkanaal bestaat al"; +$a->strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal"; +$a->strings["Room not found."] = "Chatkanaal niet gevonden"; +$a->strings["Permission denied."] = "Toegang geweigerd"; +$a->strings["Room is full"] = "Chatkanaal is vol"; +$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["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."; +$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["parent"] = "omhoog"; $a->strings["Collection"] = "map"; $a->strings["Principal"] = "principal"; @@ -182,6 +26,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,135 +37,12 @@ $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:"; $a->strings["Create new folder"] = "Nieuwe map aanmaken"; $a->strings["Upload file"] = "Bestand uploaden"; -$a->strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken"; -$a->strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken"; -$a->strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken"; -$a->strings["Can view my file storage and photos"] = "Kan mijn foto's en andere bestanden bekijken"; -$a->strings["Can view my webpages"] = "Kan mijn pagina's bekijken"; -$a->strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen"; -$a->strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen"; -$a->strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden"; -$a->strings["Can send me private mail messages"] = "Kan mij privéberichten sturen"; -$a->strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden"; -$a->strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties"; -$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"; -$a->strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums"; -$a->strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)"; -$a->strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"; -$a->strings["Can edit my webpages"] = "Kan mijn pagina's bewerken"; -$a->strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"; -$a->strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"; -$a->strings["Can administer my channel resources"] = "Kan mijn kanaal beheren"; -$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."; -$a->strings["Social Networking"] = "Sociaal netwerk"; -$a->strings["Mostly Public"] = "Vrijwel alles openbaar"; -$a->strings["Restricted"] = "Beperkt zichtbaar"; -$a->strings["Private"] = "Verborgen kanaal"; -$a->strings["Community Forum"] = "Groepsforum"; -$a->strings["Feed Republish"] = "Feed herpubliceren"; -$a->strings["Special Purpose"] = "Speciaal doel"; -$a->strings["Celebrity/Soapbox"] = "Beroemdheid/alleen volgen"; -$a->strings["Group Repository"] = "Groepsopslag"; -$a->strings["Other"] = "Anders"; -$a->strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen"; -$a->strings["Missing room name"] = "Naam chatkanaal ontbreekt"; -$a->strings["Duplicate room name"] = "Naam chatkanaal bestaat al"; -$a->strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal"; -$a->strings["Room not found."] = "Chatkanaal niet gevonden"; -$a->strings["Permission denied."] = "Toegang geweigerd"; -$a->strings["Room is full"] = "Chatkanaal is vol"; -$a->strings["Miscellaneous"] = "Diversen"; -$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD"; -$a->strings["Required"] = "Vereist"; -$a->strings["never"] = "nooit"; -$a->strings["less than a second ago"] = "minder dan een seconde geleden"; -$a->strings["year"] = "jaar"; -$a->strings["years"] = "jaren"; -$a->strings["month"] = "maand"; -$a->strings["months"] = "maanden"; -$a->strings["week"] = "week"; -$a->strings["weeks"] = "weken"; -$a->strings["day"] = "dag"; -$a->strings["days"] = "dagen"; -$a->strings["hour"] = "uur"; -$a->strings["hours"] = "uren"; -$a->strings["minute"] = "minuut"; -$a->strings["minutes"] = "minuten"; -$a->strings["second"] = "seconde"; -$a->strings["seconds"] = "seconden"; -$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden"; -$a->strings["%1\$s's birthday"] = "Verjaardag van %1\$s"; -$a->strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s"; -$a->strings["General Features"] = "Algemene functies"; -$a->strings["Content Expiration"] = "Inhoud laten verlopen"; -$a->strings["Remove posts/comments and/or private messages at a future time"] = "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"; -$a->strings["Multiple Profiles"] = "Meerdere profielen"; -$a->strings["Ability to create multiple profiles"] = "Mogelijkheid om meerdere profielen aan te maken"; -$a->strings["Advanced Profiles"] = "Geavanceerde profielen"; -$a->strings["Additional profile sections and selections"] = "Extra onderdelen en keuzes voor je profiel"; -$a->strings["Profile Import/Export"] = "Profiel importen/exporteren"; -$a->strings["Save and load profile details across sites/channels"] = "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."; -$a->strings["Web Pages"] = "Webpagina's"; -$a->strings["Provide managed web pages on your channel"] = "Sta beheerde webpagina's op jouw kanaal toe"; -$a->strings["Private Notes"] = "Privé-aantekeningen"; -$a->strings["Enables a tool to store notes and reminders"] = "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan"; -$a->strings["Navigation Channel Select"] = "Kanaal kiezen in navigatiemenu"; -$a->strings["Change channels directly from within the navigation dropdown menu"] = "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"; -$a->strings["Photo Location"] = "Fotolocatie"; -$a->strings["If location data is available on uploaded photos, link this to a map."] = "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart."; -$a->strings["Expert Mode"] = "Expertmodus"; -$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Schakel de expertmodus in voor geavanceerde instellingen"; -$a->strings["Premium Channel"] = "Premiumkanaal"; -$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"; -$a->strings["Post Composition Features"] = "Functies voor het opstellen van berichten"; -$a->strings["Use Markdown"] = "Markdown gebruiken"; -$a->strings["Allow use of \"Markdown\" to format posts"] = "Sta het gebruik van \"markdown\" toe om berichten mee op te maken."; -$a->strings["Large Photos"] = "Grote foto's"; -$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt."; -$a->strings["Channel Sources"] = "Kanaalbronnen"; -$a->strings["Automatically import channel content from other channels or feeds"] = "Automatisch inhoud uit andere kanalen of feeds importeren."; -$a->strings["Even More Encryption"] = "Extra encryptie"; -$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."; -$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["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 "; -$a->strings["Collections Filter"] = "Filter op collecties"; -$a->strings["Enable widget to display Network posts only from selected collections"] = "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties"; -$a->strings["Saved Searches"] = "Opgeslagen zoekopdrachten"; -$a->strings["Save search terms for re-use"] = "Sla zoekopdrachten op voor hergebruik"; -$a->strings["Network Personal Tab"] = "Persoonlijke netwerktab"; -$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"; -$a->strings["Network New Tab"] = "Nieuwe netwerktab"; -$a->strings["Enable tab to display all new Network activity"] = "Laat de tab alle nieuwe netwerkactiviteit tonen"; -$a->strings["Affinity Tool"] = "Verwantschapsfilter"; -$a->strings["Filter stream activity by depth of relationships"] = "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag"; -$a->strings["Connection Filtering"] = "Berichtenfilters"; -$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal"; -$a->strings["Suggest Channels"] = "Kanalen voorstellen"; -$a->strings["Show channel suggestions"] = "Voor jou mogelijk interessante kanalen voorstellen"; -$a->strings["Post/Comment Tools"] = "Bericht- en reactiehulpmiddelen"; -$a->strings["Tagging"] = "Taggen"; -$a->strings["Ability to tag existing posts"] = "Mogelijkheid om bestaande berichten te taggen"; -$a->strings["Post Categories"] = "Categorieën berichten"; -$a->strings["Add categories to your posts"] = "Voeg categorieën toe aan je berichten"; -$a->strings["Saved Folders"] = "Bewaarde mappen"; -$a->strings["Ability to file posts under folders"] = "Mogelijkheid om berichten in mappen op te slaan"; -$a->strings["Dislike Posts"] = "Vind berichten niet leuk"; -$a->strings["Ability to dislike posts/comments"] = "Mogelijkheid om berichten en reacties niet leuk te vinden"; -$a->strings["Star Posts"] = "Geef berichten een ster"; -$a->strings["Ability to mark special posts with a star indicator"] = "Mogelijkheid om speciale berichten met een ster te markeren"; -$a->strings["Tag Cloud"] = "Tagwolk"; -$a->strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina"; -$a->strings["Default"] = "Standaard"; $a->strings["Delete this item?"] = "Dit item verwijderen?"; $a->strings["Comment"] = "Reactie"; $a->strings["[+] show all"] = "[+] alle"; @@ -340,6 +63,7 @@ $a->strings["Describe (optional)"] = "Omschrijving (optioneel)"; $a->strings["Submit"] = "Opslaan"; $a->strings["Please enter a link URL"] = "Vul een internetadres/URL in:"; $a->strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Niet opgeslagen wijzigingen. Ben je er zeker van dat je deze pagina wil verlaten?"; +$a->strings["Location"] = "Locatie"; $a->strings["timeago.prefixAgo"] = "timeago.prefixAgo"; $a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow"; $a->strings["ago"] = "geleden"; @@ -400,31 +124,9 @@ $a->strings["__ctx:calendar__ month"] = "maand"; $a->strings["__ctx:calendar__ week"] = "week"; $a->strings["__ctx:calendar__ day"] = "dag"; $a->strings["__ctx:calendar__ All day"] = "hele dag"; -$a->strings["Frequently"] = "Regelmatig"; -$a->strings["Hourly"] = "Elk uur"; -$a->strings["Twice daily"] = "Twee keer per dag"; -$a->strings["Daily"] = "Dagelijks"; -$a->strings["Weekly"] = "Wekelijks"; -$a->strings["Monthly"] = "Maandelijks"; -$a->strings["Friendica"] = "Friendica"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Email"] = "E-mail"; -$a->strings["Diaspora"] = "Diaspora"; -$a->strings["Facebook"] = "Facebook"; -$a->strings["Zot!"] = "Zot!"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/IM"; -$a->strings["MySpace"] = "MySpace"; -$a->strings[" and "] = " en "; -$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["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"; -$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden"; +$a->strings["No username found in import file."] = "Geen gebruikersnaam in het importbestand gevonden."; +$a->strings["Import completed."] = "Import voltooid."; +$a->strings["Default"] = "Standaard"; $a->strings["Permission denied"] = "Toegang geweigerd"; $a->strings["(Unknown)"] = "(Onbekend)"; $a->strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar."; @@ -441,6 +143,10 @@ $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["No recipient provided."] = "Geen ontvanger opgegeven."; +$a->strings["[no subject]"] = "[geen onderwerp]"; +$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden."; +$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd."; $a->strings["view full size"] = "volledige grootte tonen"; $a->strings["\$Projectname Notification"] = "\$Projectname-notificatie"; $a->strings["\$projectname"] = "\$projectname"; @@ -448,279 +154,17 @@ $a->strings["Thank You,"] = "Bedankt,"; $a->strings["%s Administrator"] = "Beheerder %s"; $a->strings["Administrator"] = "Beheerder"; $a->strings["No Subject"] = "Geen onderwerp"; -$a->strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s"; -$a->strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld"; -$a->strings["Show"] = "Tonen"; -$a->strings["Don't show"] = "Niet tonen"; -$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"; -$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen"; -$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden"; -$a->strings["created a new post"] = "maakte een nieuw bericht aan"; -$a->strings["commented on %s's post"] = "gaf een reactie op een bericht van %s"; -$a->strings["New Page"] = "Nieuwe pagina"; -$a->strings["View"] = "Weergeven"; -$a->strings["Actions"] = "Acties"; -$a->strings["Page Link"] = "Paginalink"; -$a->strings["Title"] = "Titel"; -$a->strings["Created"] = "Aangemaakt"; -$a->strings["Edited"] = "Bewerkt"; -$a->strings["Profile Photos"] = "Profielfoto's"; -$a->strings["Male"] = "Man"; -$a->strings["Female"] = "Vrouw"; -$a->strings["Currently Male"] = "Momenteel man"; -$a->strings["Currently Female"] = "Momenteel vrouw"; -$a->strings["Mostly Male"] = "Voornamelijk man"; -$a->strings["Mostly Female"] = "Voornamelijk vrouw"; -$a->strings["Transgender"] = "Transgender"; -$a->strings["Intersex"] = "Interseksueel"; -$a->strings["Transsexual"] = "Transseksueel"; -$a->strings["Hermaphrodite"] = "Hermafrodiet"; -$a->strings["Neuter"] = "Genderneutraal"; -$a->strings["Non-specific"] = "Niet gespecificeerd"; -$a->strings["Undecided"] = "Nog niet beslist"; -$a->strings["Males"] = "Mannen"; -$a->strings["Females"] = "Vrouwen"; -$a->strings["Gay"] = "Homoseksueel"; -$a->strings["Lesbian"] = "Lesbisch"; -$a->strings["No Preference"] = "Geen voorkeur"; -$a->strings["Bisexual"] = "Biseksueel"; -$a->strings["Autosexual"] = "Autoseksueel"; -$a->strings["Abstinent"] = "Seksuele onthouding"; -$a->strings["Virgin"] = "Maagd"; -$a->strings["Deviant"] = "Afwijkend"; -$a->strings["Fetish"] = "Fetisj"; -$a->strings["Oodles"] = "Veel"; -$a->strings["Nonsexual"] = "Aseksueel"; -$a->strings["Single"] = "Alleen"; -$a->strings["Lonely"] = "Eenzaam"; -$a->strings["Available"] = "Beschikbaar"; -$a->strings["Unavailable"] = "Niet beschikbaar"; -$a->strings["Has crush"] = "Heeft een oogje op iemand"; -$a->strings["Infatuated"] = "Smoorverliefd"; -$a->strings["Dating"] = "Aan het daten"; -$a->strings["Unfaithful"] = "Ontrouw"; -$a->strings["Sex Addict"] = "Seksverslaafd"; -$a->strings["Friends"] = "Vrienden"; -$a->strings["Friends/Benefits"] = "Vriendschap plus"; -$a->strings["Casual"] = "Ongebonden/vluchtig"; -$a->strings["Engaged"] = "Verloofd"; -$a->strings["Married"] = "Getrouwd"; -$a->strings["Imaginarily married"] = "Denkbeeldig getrouwd"; -$a->strings["Partners"] = "Partners"; -$a->strings["Cohabiting"] = "Samenwonend"; -$a->strings["Common law"] = "Common-law-huwelijk"; -$a->strings["Happy"] = "Gelukkig"; -$a->strings["Not looking"] = "Niet op zoek"; -$a->strings["Swinger"] = "Swinger"; -$a->strings["Betrayed"] = "Verraden"; -$a->strings["Separated"] = "Uit elkaar"; -$a->strings["Unstable"] = "Onstabiel"; -$a->strings["Divorced"] = "Gescheiden"; -$a->strings["Imaginarily divorced"] = "Denkbeeldig gescheiden"; -$a->strings["Widowed"] = "Weduwnaar/weduwe"; -$a->strings["Uncertain"] = "Onzeker"; -$a->strings["It's complicated"] = "Het is ingewikkeld"; -$a->strings["Don't care"] = "Maakt mij niks uit"; -$a->strings["Ask me"] = "Vraag het me"; -$a->strings["Embedded content"] = "Ingesloten inhoud"; -$a->strings["Embedding disabled"] = "Insluiten uitgeschakeld"; $a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; $a->strings["Starts:"] = "Start:"; $a->strings["Finishes:"] = "Einde:"; $a->strings["Location:"] = "Plaats:"; $a->strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd."; +$a->strings["event"] = "gebeurtenis"; $a->strings["Not specified"] = "Niet aangegeven"; $a->strings["Needs Action"] = "Actie vereist"; $a->strings["Completed"] = "Voltooid"; $a->strings["In Process"] = "In behandeling"; $a->strings["Cancelled"] = "Geannuleerd"; -$a->strings["Site Admin"] = "Hubbeheerder"; -$a->strings["Address Book"] = "Connecties"; -$a->strings["Login"] = "Inloggen"; -$a->strings["Channel Manager"] = "Kanaalbeheer"; -$a->strings["Grid"] = "Grid"; -$a->strings["Settings"] = "Instellingen"; -$a->strings["Channel Home"] = "Tijdlijn kanaal"; -$a->strings["Profile"] = "Profiel"; -$a->strings["Events"] = "Agenda"; -$a->strings["Directory"] = "Kanalengids"; -$a->strings["Help"] = "Hulp"; -$a->strings["Mail"] = "Privéberichten"; -$a->strings["Mood"] = "Stemming"; -$a->strings["Chat"] = "Chatten"; -$a->strings["Search"] = "Zoeken"; -$a->strings["Probe"] = "Onderzoeken"; -$a->strings["Suggest"] = "Voorstellen"; -$a->strings["Random Channel"] = "Willekeurig kanaal"; -$a->strings["Invite"] = "Uitnodigen "; -$a->strings["Features"] = "Extra functies"; -$a->strings["Language"] = "Taal"; -$a->strings["Post"] = "Bericht"; -$a->strings["Profile Photo"] = "Profielfoto"; -$a->strings["Update"] = "Bijwerken"; -$a->strings["Install"] = "Installeren"; -$a->strings["Purchase"] = "Aanschaffen"; -$a->strings["Logged out."] = "Uitgelogd."; -$a->strings["Failed authentication"] = "Mislukte authenticatie"; -$a->strings["Login failed."] = "Inloggen mislukt."; -$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; -$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."; -$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s."; -$a->strings["a private message"] = "een privébericht"; -$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren."; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]"; -$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]"; -$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Notificatie] Reactie op conversatie #%1\$d door %2\$s"; -$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt."; -$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren."; -$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Notificatie] %s heeft een bericht op jouw kanaal geplaatst"; -$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst"; -$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst"; -$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Notificatie] %s heeft je genoemd"; -$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl]."; -$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Notificatie] %1\$s heeft je aangestoten"; -$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s"; -$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl]."; -$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Notificatie] %s heeft jouw bericht getagd"; -$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd"; -$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd"; -$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Notificatie] Connectieverzoek ontvangen"; -$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s."; -$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s"; -$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen."; -$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen"; -$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s"; -$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s."; -$a->strings["Name:"] = "Naam:"; -$a->strings["Photo:"] = "Foto:"; -$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen."; -$a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Notificatie]"; -$a->strings["Save to Folder"] = "In map opslaan"; -$a->strings["I will attend"] = "Aanwezig"; -$a->strings["I will not attend"] = "Niet aanwezig"; -$a->strings["I might attend"] = "Mogelijk aanwezig"; -$a->strings["I agree"] = "Eens"; -$a->strings["I disagree"] = "Oneens"; -$a->strings["I abstain"] = "Onthouding"; -$a->strings["Add Star"] = "Ster toevoegen"; -$a->strings["Remove Star"] = "Ster verwijderen"; -$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen"; -$a->strings["starred"] = "met ster"; -$a->strings["Add Tag"] = "Tag toevoegen"; -$a->strings["I like this (toggle)"] = "Vind ik leuk"; -$a->strings["like"] = "vind dit leuk"; -$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk"; -$a->strings["dislike"] = "vind dit niet leuk"; -$a->strings["Share This"] = "Delen"; -$a->strings["share"] = "delen"; -$a->strings["%d comment"] = array( - 0 => "%d reactie", - 1 => "%d reacties weergeven", -); -$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s"; -$a->strings["to"] = "aan"; -$a->strings["via"] = "via"; -$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal"; -$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal"; -$a->strings["Delivery Report"] = "Afleveringsrapport"; -$a->strings["Save Bookmarks"] = "Bladwijzers opslaan"; -$a->strings["Add to Calendar"] = "Aan agenda toevoegen"; -$a->strings["Mark all seen"] = "Markeer alles als bekeken"; -$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk"; -$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk"; -$a->strings["This is you"] = "Dit ben jij"; -$a->strings["Image"] = "Afbeelding"; -$a->strings["Insert Link"] = "Link invoegen"; -$a->strings["Video"] = "Video"; -$a->strings["Invalid data packet"] = "Datapakket ongeldig"; -$a->strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. "; -$a->strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd"; -$a->strings["invalid target signature"] = "ongeldig doelkenmerk"; -$a->strings["Public Timeline"] = "Openbare tijdlijn"; -$a->strings["Image/photo"] = "Afbeelding/foto"; -$a->strings["Encrypted content"] = "Versleutelde inhoud"; -$a->strings["Install %s element: "] = "Installeer %s-element: "; -$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren."; -$a->strings["webpage"] = "Webpagina"; -$a->strings["layout"] = "lay-out"; -$a->strings["block"] = "blok"; -$a->strings["menu"] = "menu"; -$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s"; -$a->strings["post"] = "bericht"; -$a->strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven."; -$a->strings["$1 spoiler"] = "$1 spoiler"; -$a->strings["$1 wrote:"] = "$1 schreef:"; -$a->strings["Not a valid email address"] = "Geen geldig e-mailadres"; -$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; -$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; -$a->strings["An invitation is required."] = "Een uitnodiging is vereist"; -$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; -$a->strings["Please enter the required information."] = "Vul de vereiste informatie in."; -$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; -$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; -$a->strings["Registration request at %s"] = "Registratiebevestiging voor %s"; -$a->strings["your registration password"] = "jouw registratiewachtwoord"; -$a->strings["Registration details for %s"] = "Registratiegegevens voor %s"; -$a->strings["Account approved."] = "Account goedgekeurd"; -$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; -$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen."; -$a->strings["Click here to upgrade."] = "Klik hier om te upgraden."; -$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; -$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; -$a->strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd."; -$a->strings["Channel location missing."] = "Ontbrekende kanaallocatie."; -$a->strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig."; -$a->strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer."; -$a->strings["Protocol disabled."] = "Protocol uitgeschakeld."; -$a->strings["Channel discovery failed."] = "Kanaal ontdekken mislukt."; -$a->strings["local account not found."] = "lokale account niet gevonden."; -$a->strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden"; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "; -$a->strings["%d invitation available"] = array( - 0 => "%d uitnodiging beschikbaar", - 1 => "%d uitnodigingen beschikbaar", -); -$a->strings["Advanced"] = "Geavanceerd"; -$a->strings["Find Channels"] = "Kanalen vinden"; -$a->strings["Enter name or interest"] = "Vul naam of interesse in"; -$a->strings["Connect/Follow"] = "Verbinden/volgen"; -$a->strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen"; -$a->strings["Find"] = "Vinden"; -$a->strings["Channel Suggestions"] = "Voorgestelde kanalen"; -$a->strings["Random Profile"] = "Willekeurig profiel"; -$a->strings["Invite Friends"] = "Vrienden uitnodigen"; -$a->strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"; -$a->strings["Everything"] = "Alles"; -$a->strings["Categories"] = "Categorieën"; -$a->strings["%d connection in common"] = array( - 0 => "%d gemeenschappelijke connectie", - 1 => "%d gemeenschappelijke connecties", -); -$a->strings["show more"] = "meer connecties weergeven"; -$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken."; -$a->strings["Add new connections to this collection (privacy group)"] = "Voeg nieuwe connecties aan deze collectie toe (privacy-groep)"; -$a->strings["All Channels"] = "Alle kanalen"; -$a->strings["edit"] = "bewerken"; -$a->strings["Collections"] = "Collecties"; -$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["No recipient provided."] = "Geen ontvanger opgegeven."; -$a->strings["[no subject]"] = "[geen onderwerp]"; -$a->strings["Unable to determine sender."] = "Afzender kan niet bepaald worden."; -$a->strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd."; $a->strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen"; $a->strings["Empty name"] = "Ontbrekende naam"; $a->strings["Name too long"] = "Naam te lang"; @@ -730,6 +174,7 @@ $a->strings["Reserved nickname. Please choose another."] = "Deze naam is gereser $a->strings["Nickname has unsupported characters or is already being used on this site."] = "Deze naam heeft niet ondersteunde karakters of is al op deze hub in gebruik."; $a->strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden"; $a->strings["Default Profile"] = "Standaardprofiel"; +$a->strings["Friends"] = "Vrienden"; $a->strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar."; $a->strings["Requested profile is not available."] = "Opgevraagd profiel is niet beschikbaar"; $a->strings["Change profile photo"] = "Profielfoto veranderen"; @@ -752,8 +197,13 @@ $a->strings["Birthdays this week:"] = "Verjaardagen deze week:"; $a->strings["[No description]"] = "[Geen omschrijving]"; $a->strings["Event Reminders"] = "Herinneringen"; $a->strings["Events this week:"] = "Gebeurtenissen deze week:"; +$a->strings["Profile"] = "Profiel"; $a->strings["Full Name:"] = "Volledige naam:"; $a->strings["Like this channel"] = "Vind dit kanaal leuk"; +$a->strings["__ctx:noun__ Like"] = array( + 0 => "vindt dit leuk", + 1 => "vinden dit leuk", +); $a->strings["j F, Y"] = "F j Y"; $a->strings["j F"] = "F j"; $a->strings["Birthday:"] = "Geboortedatum:"; @@ -779,13 +229,27 @@ $a->strings["Work/employment:"] = "Werk/beroep:"; $a->strings["School/education:"] = "School/opleiding:"; $a->strings["Like this thing"] = "Vind dit ding leuk"; $a->strings["Tags"] = "Tags"; +$a->strings["Categories"] = "Categorieën"; $a->strings["Keywords"] = "Trefwoorden"; $a->strings["have"] = "heb"; $a->strings["has"] = "heeft"; $a->strings["want"] = "wil"; $a->strings["wants"] = "wil"; +$a->strings["like"] = "vind dit leuk"; $a->strings["likes"] = "vindt dit leuk"; +$a->strings["dislike"] = "vind dit niet leuk"; $a->strings["dislikes"] = "vindt dit niet leuk"; +$a->strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld"; +$a->strings["Show"] = "Tonen"; +$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[" and "] = " en "; +$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["Item was not found."] = "Item niet gevonden"; $a->strings["No source file."] = "Geen bronbestand."; $a->strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden"; @@ -803,8 +267,11 @@ $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["created a new post"] = "maakte een nieuw bericht aan"; +$a->strings["commented on %s's post"] = "gaf een reactie op een bericht van %s"; $a->strings["Apps"] = "Apps"; $a->strings["System"] = "Systeem"; +$a->strings["Personal"] = "Persoonlijk"; $a->strings["Create Personal App"] = "Persoonlijke app maken"; $a->strings["Edit Personal App"] = "Persoonlijke app bewerken"; $a->strings["Ignore/Hide"] = "Negeren/Verbergen"; @@ -817,6 +284,10 @@ $a->strings["Example: bob@example.com, http://example.com/barbara"] = "Voorbeeld $a->strings["Notes"] = "Aantekeningen"; $a->strings["Save"] = "Opslaan"; $a->strings["Remove term"] = "Verwijder zoekterm"; +$a->strings["Saved Searches"] = "Opgeslagen zoekopdrachten"; +$a->strings["add"] = "toevoegen"; +$a->strings["Saved Folders"] = "Bewaarde mappen"; +$a->strings["Everything"] = "Alles"; $a->strings["Archives"] = "Archieven"; $a->strings["Me"] = "Ik"; $a->strings["Family"] = "Familie"; @@ -832,6 +303,8 @@ $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["Channel Sources"] = "Kanaalbronnen"; +$a->strings["Settings"] = "Instellingen"; $a->strings["Private Mail Menu"] = "Privéberichten"; $a->strings["Combined View"] = "Gecombineerd postvak"; $a->strings["Inbox"] = "Postvak IN"; @@ -842,6 +315,12 @@ $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"; @@ -868,6 +347,471 @@ $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["%1\$s's bookmarks"] = "Bladwijzers van %1\$s"; +$a->strings["General Features"] = "Algemene functies"; +$a->strings["Content Expiration"] = "Inhoud laten verlopen"; +$a->strings["Remove posts/comments and/or private messages at a future time"] = "Berichten, reacties en/of privéberichten na een bepaalde tijd verwijderen"; +$a->strings["Multiple Profiles"] = "Meerdere profielen"; +$a->strings["Ability to create multiple profiles"] = "Mogelijkheid om meerdere profielen aan te maken"; +$a->strings["Advanced Profiles"] = "Geavanceerde profielen"; +$a->strings["Additional profile sections and selections"] = "Extra onderdelen en keuzes voor je profiel"; +$a->strings["Profile Import/Export"] = "Profiel importen/exporteren"; +$a->strings["Save and load profile details across sites/channels"] = "Profielgegevens opslaan en in andere hubs/kanalen gebruiken."; +$a->strings["Web Pages"] = "Webpagina's"; +$a->strings["Provide managed web pages on your channel"] = "Sta beheerde webpagina's op jouw kanaal toe"; +$a->strings["Private Notes"] = "Privé-aantekeningen"; +$a->strings["Enables a tool to store notes and reminders"] = "Schakelt een eenvoudige toepassing in om aantekeningen en herinneringen in op te slaan"; +$a->strings["Navigation Channel Select"] = "Kanaal kiezen in navigatiemenu"; +$a->strings["Change channels directly from within the navigation dropdown menu"] = "Kies een ander kanaal direct vanuit het dropdown-menu op de navigatiebalk"; +$a->strings["Photo Location"] = "Fotolocatie"; +$a->strings["If location data is available on uploaded photos, link this to a map."] = "Wanneer in de geüploade foto's locatiegegevens aanwezig zijn, link dit dan aan een kaart."; +$a->strings["Expert Mode"] = "Expertmodus"; +$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Schakel de expertmodus in voor geavanceerde instellingen"; +$a->strings["Premium Channel"] = "Premiumkanaal"; +$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal"; +$a->strings["Post Composition Features"] = "Functies voor het opstellen van berichten"; +$a->strings["Use Markdown"] = "Markdown gebruiken"; +$a->strings["Allow use of \"Markdown\" to format posts"] = "Sta het gebruik van \"markdown\" toe om berichten mee op te maken."; +$a->strings["Large Photos"] = "Grote foto's"; +$a->strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Gebruik grotere foto's (1024px) in berichten. Wanneer dit is uitgeschakeld worden er kleinere foto's (640px) gebruikt."; +$a->strings["Automatically import channel content from other channels or feeds"] = "Automatisch inhoud uit andere kanalen of feeds importeren."; +$a->strings["Even More Encryption"] = "Extra encryptie"; +$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."; +$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 "; +$a->strings["Collections Filter"] = "Filter op collecties"; +$a->strings["Enable widget to display Network posts only from selected collections"] = "Sta de widget toe om netwerkberichten te tonen van bepaalde collecties"; +$a->strings["Save search terms for re-use"] = "Sla zoekopdrachten op voor hergebruik"; +$a->strings["Network Personal Tab"] = "Persoonlijke netwerktab"; +$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Sta het toe dat de tab netwerkberichten toont waarmee je interactie had"; +$a->strings["Network New Tab"] = "Nieuwe netwerktab"; +$a->strings["Enable tab to display all new Network activity"] = "Laat de tab alle nieuwe netwerkactiviteit tonen"; +$a->strings["Affinity Tool"] = "Verwantschapsfilter"; +$a->strings["Filter stream activity by depth of relationships"] = "Filter wat je in de Matrix ziet op hoe goed je iemand kent of mag"; +$a->strings["Connection Filtering"] = "Berichtenfilters"; +$a->strings["Filter incoming posts from connections based on keywords/content"] = "Filter binnenkomende berichten van connecties aan de hand van trefwoorden en taal"; +$a->strings["Suggest Channels"] = "Kanalen voorstellen"; +$a->strings["Show channel suggestions"] = "Voor jou mogelijk interessante kanalen voorstellen"; +$a->strings["Post/Comment Tools"] = "Bericht- en reactiehulpmiddelen"; +$a->strings["Tagging"] = "Taggen"; +$a->strings["Ability to tag existing posts"] = "Mogelijkheid om bestaande berichten te taggen"; +$a->strings["Post Categories"] = "Categorieën berichten"; +$a->strings["Add categories to your posts"] = "Voeg categorieën toe aan je berichten"; +$a->strings["Ability to file posts under folders"] = "Mogelijkheid om berichten in mappen op te slaan"; +$a->strings["Dislike Posts"] = "Vind berichten niet leuk"; +$a->strings["Ability to dislike posts/comments"] = "Mogelijkheid om berichten en reacties niet leuk te vinden"; +$a->strings["Star Posts"] = "Geef berichten een ster"; +$a->strings["Ability to mark special posts with a star indicator"] = "Mogelijkheid om speciale berichten met een ster te markeren"; +$a->strings["Tag Cloud"] = "Tagwolk"; +$a->strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina"; +$a->strings["Male"] = "Man"; +$a->strings["Female"] = "Vrouw"; +$a->strings["Currently Male"] = "Momenteel man"; +$a->strings["Currently Female"] = "Momenteel vrouw"; +$a->strings["Mostly Male"] = "Voornamelijk man"; +$a->strings["Mostly Female"] = "Voornamelijk vrouw"; +$a->strings["Transgender"] = "Transgender"; +$a->strings["Intersex"] = "Interseksueel"; +$a->strings["Transsexual"] = "Transseksueel"; +$a->strings["Hermaphrodite"] = "Hermafrodiet"; +$a->strings["Neuter"] = "Genderneutraal"; +$a->strings["Non-specific"] = "Niet gespecificeerd"; +$a->strings["Other"] = "Anders"; +$a->strings["Undecided"] = "Nog niet beslist"; +$a->strings["Males"] = "Mannen"; +$a->strings["Females"] = "Vrouwen"; +$a->strings["Gay"] = "Homoseksueel"; +$a->strings["Lesbian"] = "Lesbisch"; +$a->strings["No Preference"] = "Geen voorkeur"; +$a->strings["Bisexual"] = "Biseksueel"; +$a->strings["Autosexual"] = "Autoseksueel"; +$a->strings["Abstinent"] = "Seksuele onthouding"; +$a->strings["Virgin"] = "Maagd"; +$a->strings["Deviant"] = "Afwijkend"; +$a->strings["Fetish"] = "Fetisj"; +$a->strings["Oodles"] = "Veel"; +$a->strings["Nonsexual"] = "Aseksueel"; +$a->strings["Single"] = "Alleen"; +$a->strings["Lonely"] = "Eenzaam"; +$a->strings["Available"] = "Beschikbaar"; +$a->strings["Unavailable"] = "Niet beschikbaar"; +$a->strings["Has crush"] = "Heeft een oogje op iemand"; +$a->strings["Infatuated"] = "Smoorverliefd"; +$a->strings["Dating"] = "Aan het daten"; +$a->strings["Unfaithful"] = "Ontrouw"; +$a->strings["Sex Addict"] = "Seksverslaafd"; +$a->strings["Friends/Benefits"] = "Vriendschap plus"; +$a->strings["Casual"] = "Ongebonden/vluchtig"; +$a->strings["Engaged"] = "Verloofd"; +$a->strings["Married"] = "Getrouwd"; +$a->strings["Imaginarily married"] = "Denkbeeldig getrouwd"; +$a->strings["Partners"] = "Partners"; +$a->strings["Cohabiting"] = "Samenwonend"; +$a->strings["Common law"] = "Common-law-huwelijk"; +$a->strings["Happy"] = "Gelukkig"; +$a->strings["Not looking"] = "Niet op zoek"; +$a->strings["Swinger"] = "Swinger"; +$a->strings["Betrayed"] = "Verraden"; +$a->strings["Separated"] = "Uit elkaar"; +$a->strings["Unstable"] = "Onstabiel"; +$a->strings["Divorced"] = "Gescheiden"; +$a->strings["Imaginarily divorced"] = "Denkbeeldig gescheiden"; +$a->strings["Widowed"] = "Weduwnaar/weduwe"; +$a->strings["Uncertain"] = "Onzeker"; +$a->strings["It's complicated"] = "Het is ingewikkeld"; +$a->strings["Don't care"] = "Maakt mij niks uit"; +$a->strings["Ask me"] = "Vraag het me"; +$a->strings["Miscellaneous"] = "Diversen"; +$a->strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD"; +$a->strings["Required"] = "Vereist"; +$a->strings["never"] = "nooit"; +$a->strings["less than a second ago"] = "minder dan een seconde geleden"; +$a->strings["year"] = "jaar"; +$a->strings["years"] = "jaren"; +$a->strings["month"] = "maand"; +$a->strings["months"] = "maanden"; +$a->strings["week"] = "week"; +$a->strings["weeks"] = "weken"; +$a->strings["day"] = "dag"; +$a->strings["days"] = "dagen"; +$a->strings["hour"] = "uur"; +$a->strings["hours"] = "uren"; +$a->strings["minute"] = "minuut"; +$a->strings["minutes"] = "minuten"; +$a->strings["second"] = "seconde"; +$a->strings["seconds"] = "seconden"; +$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden"; +$a->strings["%1\$s's birthday"] = "Verjaardag van %1\$s"; +$a->strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s"; +$a->strings["Public Timeline"] = "Openbare tijdlijn"; +$a->strings["photo"] = "foto"; +$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["<span %1\$s>%2\$d people</span> like this."] = array( + 0 => "<span %1\$s>%2\$d persoon</span> vindt dit leuk.", + 1 => "<span %1\$s>%2\$d personen</span> vinden dit leuk.", +); +$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array( + 0 => "<span %1\$s>%2\$d persoon</span> vindt dit niet leuk.", + 1 => "<span %1\$s>%2\$d personen</span> 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 <strong>everybody</strong>"] = "Voor <strong>iedereen</strong> 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["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__ 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["Logged out."] = "Uitgelogd."; +$a->strings["Failed authentication"] = "Mislukte authenticatie"; +$a->strings["Login failed."] = "Inloggen mislukt."; +$a->strings["Frequently"] = "Regelmatig"; +$a->strings["Hourly"] = "Elk uur"; +$a->strings["Twice daily"] = "Twee keer per dag"; +$a->strings["Daily"] = "Dagelijks"; +$a->strings["Weekly"] = "Wekelijks"; +$a->strings["Monthly"] = "Maandelijks"; +$a->strings["Friendica"] = "Friendica"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "E-mail"; +$a->strings["Diaspora"] = "Diaspora"; +$a->strings["Facebook"] = "Facebook"; +$a->strings["Zot!"] = "Zot!"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/IM"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Invalid data packet"] = "Datapakket ongeldig"; +$a->strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. "; +$a->strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd"; +$a->strings["invalid target signature"] = "ongeldig doelkenmerk"; +$a->strings["Image/photo"] = "Afbeelding/foto"; +$a->strings["Encrypted content"] = "Versleutelde inhoud"; +$a->strings["Install %s element: "] = "Installeer %s-element: "; +$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren."; +$a->strings["webpage"] = "Webpagina"; +$a->strings["layout"] = "lay-out"; +$a->strings["block"] = "blok"; +$a->strings["menu"] = "menu"; +$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s"; +$a->strings["post"] = "bericht"; +$a->strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven."; +$a->strings["$1 spoiler"] = "$1 spoiler"; +$a->strings["$1 wrote:"] = "$1 schreef:"; +$a->strings["%d invitation available"] = array( + 0 => "%d uitnodiging beschikbaar", + 1 => "%d uitnodigingen beschikbaar", +); +$a->strings["Advanced"] = "Geavanceerd"; +$a->strings["Find Channels"] = "Kanalen vinden"; +$a->strings["Enter name or interest"] = "Vul naam of interesse in"; +$a->strings["Connect/Follow"] = "Verbinden/volgen"; +$a->strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen"; +$a->strings["Find"] = "Vinden"; +$a->strings["Channel Suggestions"] = "Voorgestelde kanalen"; +$a->strings["Random Profile"] = "Willekeurig profiel"; +$a->strings["Invite Friends"] = "Vrienden uitnodigen"; +$a->strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"; +$a->strings["%d connection in common"] = array( + 0 => "%d gemeenschappelijke connectie", + 1 => "%d gemeenschappelijke connecties", +); +$a->strings["show more"] = "meer connecties weergeven"; +$a->strings["Directory Options"] = "Opties kanalengids"; +$a->strings["Safe Mode"] = "Veilig zoeken"; +$a->strings["No"] = "Nee"; +$a->strings["Yes"] = "Ja"; +$a->strings["Public Forums Only"] = "Alleen openbare forums"; +$a->strings["This Website Only"] = "Alleen deze hub"; +$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; +$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."; +$a->strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s."; +$a->strings["a private message"] = "een privébericht"; +$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bezoek %s om je privéberichten te bekijken en/of er op te reageren."; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]een %5\$s van %4\$s[/zrl]"; +$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gaf een reactie op [zrl=%3\$s]jouw %4\$s[/zrl]"; +$a->strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Notificatie] Reactie op conversatie #%1\$d door %2\$s"; +$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie op een bericht/conversatie die jij volgt."; +$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bezoek %s om de conversatie te bekijken en/of er op te reageren."; +$a->strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Notificatie] %s heeft een bericht op jouw kanaal geplaatst"; +$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s heeft om %3\$s een bericht op jouw kanaal geplaatst"; +$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s heeft een bericht op [zrl=%3\$s]jouw kanaal[/zrl] geplaatst"; +$a->strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Notificatie] %s heeft je genoemd"; +$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl]."; +$a->strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Notificatie] %1\$s heeft je aangestoten"; +$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s"; +$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl]."; +$a->strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Notificatie] %s heeft jouw bericht getagd"; +$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd"; +$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd"; +$a->strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Notificatie] Connectieverzoek ontvangen"; +$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, je hebt een nieuw connectieverzoek ontvangen van '%2\$s' op %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, je hebt een [zrl=%2\$s]nieuw connectieverzoek[/zrl] ontvangen van %3\$s."; +$a->strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s"; +$a->strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen."; +$a->strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Notificatie] Kanaalvoorstel ontvangen"; +$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, je hebt een kanaalvoorstel ontvangen van '%2\$s' om %3\$s"; +$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, je hebt [zrl=%2\$s]een kanaalvoorstel[/zrl] ontvangen voor %3\$s van %4\$s."; +$a->strings["Name:"] = "Naam:"; +$a->strings["Photo:"] = "Foto:"; +$a->strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen."; +$a->strings["[Hubzilla:Notify]"] = "[Hubzilla:Notificatie]"; +$a->strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd."; +$a->strings["Channel location missing."] = "Ontbrekende kanaallocatie."; +$a->strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig."; +$a->strings["Channel was deleted and no longer exists."] = "Kanaal is verwijderd en bestaat niet meer."; +$a->strings["Protocol disabled."] = "Protocol uitgeschakeld."; +$a->strings["Channel discovery failed."] = "Kanaal ontdekken mislukt."; +$a->strings["local account not found."] = "lokale account niet gevonden."; +$a->strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden"; +$a->strings["Embedded content"] = "Ingesloten inhoud"; +$a->strings["Embedding disabled"] = "Insluiten uitgeschakeld"; +$a->strings["Logout"] = "Uitloggen"; +$a->strings["End this session"] = "Beëindig deze sessie"; +$a->strings["Home"] = "Home"; +$a->strings["Your posts and conversations"] = "Jouw berichten en conversaties"; +$a->strings["Your profile page"] = "Jouw profielpagina"; +$a->strings["Edit Profiles"] = "Bewerk profielen"; +$a->strings["Manage/Edit profiles"] = "Beheer/wijzig profielen"; +$a->strings["Edit your profile"] = "Jouw profiel bewerken"; +$a->strings["Your photos"] = "Jouw foto's"; +$a->strings["Your files"] = "Jouw bestanden"; +$a->strings["Chat"] = "Chatten"; +$a->strings["Your chatrooms"] = "Jouw chatkanalen"; +$a->strings["Your bookmarks"] = "Jouw bladwijzers"; +$a->strings["Your webpages"] = "Jouw webpagina's"; +$a->strings["Login"] = "Inloggen"; +$a->strings["Sign in"] = "Inloggen"; +$a->strings["%s - click to logout"] = "%s - klik om uit te loggen"; +$a->strings["Remote authentication"] = "Authenticatie op afstand"; +$a->strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub"; +$a->strings["Home Page"] = "Homepage"; +$a->strings["Register"] = "Registreren"; +$a->strings["Create an account"] = "Maak een account aan"; +$a->strings["Help"] = "Hulp"; +$a->strings["Help and documentation"] = "Hulp en documentatie"; +$a->strings["Applications, utilities, links, games"] = "Apps"; +$a->strings["Search"] = "Zoeken"; +$a->strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "; +$a->strings["Directory"] = "Kanalengids"; +$a->strings["Channel Directory"] = "Kanalengids"; +$a->strings["Grid"] = "Grid"; +$a->strings["Your grid"] = "Jouw grid"; +$a->strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken"; +$a->strings["Channel Home"] = "Tijdlijn kanaal"; +$a->strings["Channel home"] = "Tijdlijn kanaal"; +$a->strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren"; +$a->strings["Connections"] = "Connecties"; +$a->strings["Notices"] = "Notificaties"; +$a->strings["Notifications"] = "Notificaties"; +$a->strings["See all notifications"] = "Alle notificaties weergeven"; +$a->strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken"; +$a->strings["Mail"] = "Privéberichten"; +$a->strings["Private mail"] = "Privéberichten"; +$a->strings["See all private messages"] = "Alle privéberichten weergeven"; +$a->strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken"; +$a->strings["Events"] = "Agenda"; +$a->strings["Event Calendar"] = "Agenda"; +$a->strings["See all events"] = "Alle gebeurtenissen weergeven"; +$a->strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken"; +$a->strings["Channel Manager"] = "Kanaalbeheer"; +$a->strings["Manage Your Channels"] = "Beheer je kanalen"; +$a->strings["Account/Channel Settings"] = "Account-/kanaal-instellingen"; +$a->strings["Site Setup and Configuration"] = "Hub instellen en beheren"; +$a->strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp"; +$a->strings["Please wait..."] = "Wachten aub..."; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "De beveiligings-token van het tekstvak was ongeldig. Dit is mogelijk het gevolg van dat er te lang (meer dan 3 uur) gewacht is om de tekst op te slaan. "; $a->strings["prev"] = "vorige"; $a->strings["first"] = "eerste"; $a->strings["last"] = "laatste"; @@ -930,93 +874,193 @@ $a->strings["Blocks"] = "Blokken"; $a->strings["Menus"] = "Menu's"; $a->strings["Layouts"] = "Lay-outs"; $a->strings["Pages"] = "Pagina's"; -$a->strings["Logout"] = "Uitloggen"; -$a->strings["End this session"] = "Beëindig deze sessie"; -$a->strings["Home"] = "Home"; -$a->strings["Your posts and conversations"] = "Jouw berichten en conversaties"; -$a->strings["Your profile page"] = "Jouw profielpagina"; -$a->strings["Edit Profiles"] = "Bewerk profielen"; -$a->strings["Manage/Edit profiles"] = "Beheer/wijzig profielen"; -$a->strings["Edit your profile"] = "Jouw profiel bewerken"; -$a->strings["Your photos"] = "Jouw foto's"; -$a->strings["Your files"] = "Jouw bestanden"; -$a->strings["Your chatrooms"] = "Jouw chatkanalen"; -$a->strings["Your bookmarks"] = "Jouw bladwijzers"; -$a->strings["Your webpages"] = "Jouw webpagina's"; -$a->strings["Sign in"] = "Inloggen"; -$a->strings["%s - click to logout"] = "%s - klik om uit te loggen"; -$a->strings["Remote authentication"] = "Authenticatie op afstand"; -$a->strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub"; -$a->strings["Home Page"] = "Homepage"; -$a->strings["Register"] = "Registreren"; -$a->strings["Create an account"] = "Maak een account aan"; -$a->strings["Help and documentation"] = "Hulp en documentatie"; -$a->strings["Applications, utilities, links, games"] = "Apps"; -$a->strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "; -$a->strings["Channel Directory"] = "Kanalengids"; -$a->strings["Your grid"] = "Jouw grid"; -$a->strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken"; -$a->strings["Channel home"] = "Tijdlijn kanaal"; -$a->strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren"; -$a->strings["Connections"] = "Connecties"; -$a->strings["Notices"] = "Notificaties"; -$a->strings["Notifications"] = "Notificaties"; -$a->strings["See all notifications"] = "Alle notificaties weergeven"; -$a->strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken"; -$a->strings["Private mail"] = "Privéberichten"; -$a->strings["See all private messages"] = "Alle privéberichten weergeven"; -$a->strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken"; -$a->strings["Event Calendar"] = "Agenda"; -$a->strings["See all events"] = "Alle gebeurtenissen weergeven"; -$a->strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken"; -$a->strings["Manage Your Channels"] = "Beheer je kanalen"; -$a->strings["Account/Channel Settings"] = "Account-/kanaal-instellingen"; -$a->strings["Site Setup and Configuration"] = "Hub instellen en beheren"; -$a->strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp"; -$a->strings["Please wait..."] = "Wachten aub..."; -$a->strings["Directory Options"] = "Opties kanalengids"; -$a->strings["Safe Mode"] = "Veilig zoeken"; -$a->strings["No"] = "Nee"; -$a->strings["Yes"] = "Ja"; -$a->strings["Public Forums Only"] = "Alleen openbare forums"; -$a->strings["This Website Only"] = "Alleen deze hub"; -$a->strings["Some blurb about what to do when you're new here"] = "Welkom op \$Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van \$Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met \$Projectname klik je op het vraagteken."; -$a->strings["Contact not found."] = "Contact niet gevonden"; -$a->strings["Friend suggestion sent."] = "Kanaalvoorstel verzonden."; -$a->strings["Suggest Friends"] = "Kanalen voorstellen"; -$a->strings["Suggest a friend for %s"] = "Stel een kanaal voor aan %s"; -$a->strings["Public access denied."] = "Openbare toegang geweigerd."; -$a->strings["%d rating"] = array( - 0 => "%d beoordeling", - 1 => "%d beoordelingen", +$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Een verwijderde collectie met deze naam is gereactiveerd. Bestaande itemrechten <strong>kunnen</strong> van toepassing zijn op deze collectie en toekomstige leden. Wanneer je dit niet zo bedoeld hebt, moet je een nieuwe collectie met een andere naam aanmaken."; +$a->strings["Add new connections to this collection (privacy group)"] = "Voeg nieuwe connecties aan deze collectie toe (privacy-groep)"; +$a->strings["All Channels"] = "Alle kanalen"; +$a->strings["edit"] = "bewerken"; +$a->strings["Collections"] = "Collecties"; +$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["New Page"] = "Nieuwe pagina"; +$a->strings["View"] = "Weergeven"; +$a->strings["Actions"] = "Acties"; +$a->strings["Page Link"] = "Paginalink"; +$a->strings["Title"] = "Titel"; +$a->strings["Created"] = "Aangemaakt"; +$a->strings["Edited"] = "Bewerkt"; +$a->strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden"; +$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"; +$a->strings["Photo storage failed."] = "Foto kan niet worden opgeslagen"; +$a->strings["Upload New Photos"] = "Nieuwe foto's uploaden"; +$a->strings["Save to Folder"] = "In map opslaan"; +$a->strings["I will attend"] = "Aanwezig"; +$a->strings["I will not attend"] = "Niet aanwezig"; +$a->strings["I might attend"] = "Mogelijk aanwezig"; +$a->strings["I agree"] = "Eens"; +$a->strings["I disagree"] = "Oneens"; +$a->strings["I abstain"] = "Onthouding"; +$a->strings["Add Star"] = "Ster toevoegen"; +$a->strings["Remove Star"] = "Ster verwijderen"; +$a->strings["Toggle Star Status"] = "Ster toevoegen of verwijderen"; +$a->strings["starred"] = "met ster"; +$a->strings["Add Tag"] = "Tag toevoegen"; +$a->strings["I like this (toggle)"] = "Vind ik leuk"; +$a->strings["I don't like this (toggle)"] = "Vind ik niet leuk"; +$a->strings["Share This"] = "Delen"; +$a->strings["share"] = "delen"; +$a->strings["Delivery Report"] = "Afleveringsrapport"; +$a->strings["%d comment"] = array( + 0 => "%d reactie", + 1 => "%d reacties weergeven", ); -$a->strings["Gender: "] = "Geslacht:"; -$a->strings["Status: "] = "Status: "; -$a->strings["Homepage: "] = "Homepage: "; -$a->strings["Description:"] = "Omschrijving:"; -$a->strings["Public Forum:"] = "Openbaar forum:"; -$a->strings["Keywords: "] = "Trefwoorden: "; -$a->strings["Don't suggest"] = "Niet voorstellen"; -$a->strings["Common connections:"] = "Gemeenschappelijke connecties:"; -$a->strings["Global Directory"] = "Volledige kanalengids"; -$a->strings["Local Directory"] = "Lokale kanalengids"; -$a->strings["Finding:"] = "Gezocht naar:"; -$a->strings["next page"] = "volgende pagina"; -$a->strings["previous page"] = "vorige pagina"; -$a->strings["Sort options"] = "Sorteeropties"; -$a->strings["Alphabetic"] = "Alfabetisch"; -$a->strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch"; -$a->strings["Newest to Oldest"] = "Nieuw naar oud"; -$a->strings["Oldest to Newest"] = "Oud naar nieuw"; -$a->strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn)."; -$a->strings["Bookmark added"] = "Bladwijzer toegevoegd"; -$a->strings["My Bookmarks"] = "Mijn bladwijzers"; -$a->strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties"; +$a->strings["View %s's profile - %s"] = "Profiel van %s bekijken - %s"; +$a->strings["to"] = "aan"; +$a->strings["via"] = "via"; +$a->strings["Wall-to-Wall"] = "Kanaal-naar-kanaal"; +$a->strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal"; +$a->strings["Save Bookmarks"] = "Bladwijzers opslaan"; +$a->strings["Add to Calendar"] = "Aan agenda toevoegen"; +$a->strings["Mark all seen"] = "Markeer alles als bekeken"; +$a->strings["__ctx:noun__ Likes"] = "vinden dit leuk"; +$a->strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk"; +$a->strings["This is you"] = "Dit ben jij"; +$a->strings["Image"] = "Afbeelding"; +$a->strings["Insert Link"] = "Link invoegen"; +$a->strings["Video"] = "Video"; +$a->strings["Not a valid email address"] = "Geen geldig e-mailadres"; +$a->strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; +$a->strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; +$a->strings["An invitation is required."] = "Een uitnodiging is vereist"; +$a->strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; +$a->strings["Please enter the required information."] = "Vul de vereiste informatie in."; +$a->strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; +$a->strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; +$a->strings["Registration request at %s"] = "Registratiebevestiging voor %s"; +$a->strings["your registration password"] = "jouw registratiewachtwoord"; +$a->strings["Registration details for %s"] = "Registratiegegevens voor %s"; +$a->strings["Account approved."] = "Account goedgekeurd"; +$a->strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; +$a->strings["Account verified. Please login."] = "Account is geverifieerd. Je kan inloggen."; +$a->strings["Click here to upgrade."] = "Klik hier om te upgraden."; +$a->strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; +$a->strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; +$a->strings["Site Admin"] = "Hubbeheerder"; +$a->strings["Address Book"] = "Connecties"; +$a->strings["Mood"] = "Stemming"; +$a->strings["Probe"] = "Onderzoeken"; +$a->strings["Suggest"] = "Voorstellen"; +$a->strings["Random Channel"] = "Willekeurig kanaal"; +$a->strings["Invite"] = "Uitnodigen "; +$a->strings["Features"] = "Extra functies"; +$a->strings["Language"] = "Taal"; +$a->strings["Post"] = "Bericht"; +$a->strings["Profile Photo"] = "Profielfoto"; +$a->strings["Update"] = "Bijwerken"; +$a->strings["Install"] = "Installeren"; +$a->strings["Purchase"] = "Aanschaffen"; +$a->strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken"; +$a->strings["Can view my default channel profile"] = "Kan mijn standaard kanaalprofiel bekijken"; +$a->strings["Can view my connections"] = "Kan een lijst met mijn connecties bekijken"; +$a->strings["Can view my file storage and photos"] = "Kan mijn foto's en andere bestanden bekijken"; +$a->strings["Can view my webpages"] = "Kan mijn pagina's bekijken"; +$a->strings["Can send me their channel stream and posts"] = "Kan mij de inhoud van hun kanaal en berichten sturen"; +$a->strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen"; +$a->strings["Can comment on or like my posts"] = "Kan op mijn berichten reageren of deze (niet) leuk vinden"; +$a->strings["Can send me private mail messages"] = "Kan mij privéberichten sturen"; +$a->strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden"; +$a->strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties"; +$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"; +$a->strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums"; +$a->strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)"; +$a->strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"; +$a->strings["Can edit my webpages"] = "Kan mijn pagina's bewerken"; +$a->strings["Can source my public posts in derived channels"] = "Kan mijn openbare berichten als bron voor andere kanalen gebruiken"; +$a->strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"; +$a->strings["Can administer my channel resources"] = "Kan mijn kanaal beheren"; +$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Zeer geavanceerd. Laat dit met rust, behalve als je weet wat je doet."; +$a->strings["Social Networking"] = "Sociaal netwerk"; +$a->strings["Mostly Public"] = "Vrijwel alles openbaar"; +$a->strings["Restricted"] = "Beperkt zichtbaar"; +$a->strings["Private"] = "Verborgen kanaal"; +$a->strings["Community Forum"] = "Groepsforum"; +$a->strings["Feed Republish"] = "Feed herpubliceren"; +$a->strings["Special Purpose"] = "Speciaal doel"; +$a->strings["Celebrity/Soapbox"] = "Beroemdheid/alleen volgen"; +$a->strings["Group Repository"] = "Groepsopslag"; +$a->strings["Custom/Expert Mode"] = "Expertmodus/handmatig aanpassen"; +$a->strings["Profile Photos"] = "Profielfoto's"; +$a->strings["Permission Denied."] = "Toegang geweigerd"; +$a->strings["File not found."] = "Bestand niet gevonden."; +$a->strings["Edit file permissions"] = "Bestandsrechten bewerken"; +$a->strings["Set/edit permissions"] = "Rechten instellen/bewerken"; +$a->strings["Include all files and sub folders"] = "Toepassen op alle bestanden en submappen"; +$a->strings["Return to file list"] = "Terugkeren naar bestandlijst "; +$a->strings["Copy/paste this code to attach file to a post"] = "Kopieer/plak deze code om het bestand aan een bericht te koppelen"; +$a->strings["Copy/paste this URL to link file from a web page"] = "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen"; +$a->strings["Share this file"] = "Dit bestand delen"; +$a->strings["Show URL to this file"] = "Toon URL van dit bestand"; +$a->strings["Notify your contacts about this file"] = "Jouw connecties over dit bestand berichten"; +$a->strings["Collection created."] = "Collectie aangemaakt"; +$a->strings["Could not create collection."] = "Collectie kon niet aangemaakt worden"; +$a->strings["Collection updated."] = "Collectie bijgewerkt."; +$a->strings["Create a collection of channels."] = "Kanaalcollectie aanmaken"; +$a->strings["Collection Name: "] = "Naam collectie:"; +$a->strings["Members are visible to other channels"] = "Kanalen in deze collectie zijn zichtbaar voor andere kanalen"; +$a->strings["Collection removed."] = "Collectie verwijderd"; +$a->strings["Unable to remove collection."] = "Verwijderen collectie mislukt"; +$a->strings["Collection Editor"] = "Collectiebewerker"; +$a->strings["Members"] = "Kanalen"; +$a->strings["All Connected Channels"] = "Alle kanaalconnecties"; +$a->strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen."; +$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."; +$a->strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt."; +$a->strings["No channel."] = "Geen kanaal."; +$a->strings["Common connections"] = "Veel voorkomende connecties"; +$a->strings["No connections in common."] = "Geen gemeenschappelijke connecties."; +$a->strings["Continue"] = "Ga verder"; +$a->strings["Premium Channel Setup"] = "Instellen premiumkanaal "; +$a->strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan"; +$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz."; +$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"; +$a->strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"; +$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."; +$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "; +$a->strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal"; +$a->strings["Profile Match"] = "Profielovereenkomst"; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe."; +$a->strings["is interested in:"] = "is geïnteresseerd in:"; +$a->strings["No matches"] = "Geen overeenkomsten"; $a->strings["OpenID protocol error. No ID returned."] = "OpenID-protocolfout. Geen ID terugontvangen."; $a->strings["Welcome %s. Remote authentication successful."] = "Welkom %s. Authenticatie op afstand geslaagd."; -$a->strings["Invalid item."] = "Ongeldig item."; -$a->strings["Channel not found."] = "Kanaal niet gevonden."; -$a->strings["Page not found."] = "Pagina niet gevonden."; +$a->strings["Some blurb about what to do when you're new here"] = "Welkom op \$Projectname. Klik op de tab ontdekken of klik rechtsboven op de <a href=\"directory\">kanalengids</a>, om kanalen te vinden. Rechtsboven vind je ook <a href=\"directory\">apps</a>, waar je vrijwel alle functies van \$Projectname kunt vinden. Voor <a href=\"directory\">hulp</a> met \$Projectname klik je op het vraagteken."; +$a->strings["Away"] = "Afwezig"; +$a->strings["Online"] = "Online"; +$a->strings["Public Sites"] = "Openbare hubs"; +$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het \$Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven."; +$a->strings["Rate this hub"] = "Beoordeel deze hub"; +$a->strings["Site URL"] = "URL hub"; +$a->strings["Access Type"] = "Toegangstype"; +$a->strings["Registration Policy"] = "Registratiebeleid"; +$a->strings["Project"] = "Project"; +$a->strings["View hub ratings"] = "Bekijk hubbeoordelingen"; +$a->strings["Rate"] = "Beoordeel"; +$a->strings["View ratings"] = "Bekijk beoordelingen"; +$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s heeft het %3\$s van %2\$s getagd met %4\$s"; +$a->strings["Website:"] = "Website:"; +$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)"; +$a->strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)"; +$a->strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"; +$a->strings["Block Name"] = "Bloknaam"; +$a->strings["Block Title"] = "Bloktitel"; $a->strings["First Name"] = "Voornaam"; $a->strings["Last Name"] = "Achternaam"; $a->strings["Nickname"] = "Bijnaam"; @@ -1049,28 +1093,10 @@ $a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s is niet aanwezig op $a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s is mogelijk aanwezig op %2\$s's %3\$s"; $a->strings["Action completed."] = "Actie voltooid"; $a->strings["Thank you."] = "Bedankt"; -$a->strings["Export Channel"] = "Kanaal exporteren"; -$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal."; -$a->strings["Export Content"] = "Inhoud exporteren"; -$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint."; -$a->strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar."; -$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak."; -$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. "; -$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren."; -$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1\$s\">%2\$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."; -$a->strings["Away"] = "Afwezig"; -$a->strings["Online"] = "Online"; -$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s heeft het %3\$s van %2\$s getagd met %4\$s"; -$a->strings["No channel."] = "Geen kanaal."; -$a->strings["Common connections"] = "Veel voorkomende connecties"; -$a->strings["No connections in common."] = "Geen gemeenschappelijke connecties."; -$a->strings["sent you a private message"] = "stuurde jou een privébericht"; -$a->strings["added your channel"] = "voegde jouw kanaal toe"; -$a->strings["posted an event"] = "plaatste een gebeurtenis"; -$a->strings["Documentation Search"] = "Zoek documentatie"; -$a->strings["Help:"] = "Hulp:"; -$a->strings["Not Found"] = "Niet gevonden"; -$a->strings["\$Projectname Documentation"] = "\$Projectname-documentatie"; +$a->strings["Invalid item."] = "Ongeldig item."; +$a->strings["Channel not found."] = "Kanaal niet gevonden."; +$a->strings["Page not found."] = "Pagina niet gevonden."; +$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; $a->strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd."; $a->strings["Remove This Channel"] = "Verwijder dit kanaal"; $a->strings["WARNING: "] = "WAARSCHUWING: "; @@ -1080,38 +1106,186 @@ $a->strings["Please enter your password for verification:"] = "Vul je wachtwoord $a->strings["Remove this channel and all its clones from the network"] = "Dit kanaal en alle klonen hiervan uit het \$Projectname-netwerk verwijderen"; $a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het \$Projectname-netwerk verwijderd"; $a->strings["Remove Channel"] = "Kanaal verwijderen"; -$a->strings["- select -"] = "- kies map -"; -$a->strings["Menu not found."] = "Menu niet gevonden."; -$a->strings["Unable to create element."] = "Niet in staat om onderdeel aan te maken."; -$a->strings["Unable to update menu element."] = "Menu-onderdeel kan niet worden geüpdatet."; -$a->strings["Unable to add menu element."] = "Menu-onderdeel kan niet worden toegevoegd."; -$a->strings["Not found."] = "Niet gevonden."; -$a->strings["Menu Item Permissions"] = "Permissies menu-item"; -$a->strings["(click to open/close)"] = "(klik om te openen/sluiten)"; -$a->strings["Link Name"] = "Linknaam"; -$a->strings["Link or Submenu Target"] = "Linkdoel of submenu-doel"; -$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Geef de URL van de link of kies een menunaam om een submenu aan te maken"; -$a->strings["Use magic-auth if available"] = "Gebruik magic-auth wanneer beschikbaar"; -$a->strings["Open link in new window"] = "Open link in nieuw venster"; -$a->strings["Order in list"] = "Volgorde in lijst"; -$a->strings["Higher numbers will sink to bottom of listing"] = "Hogere nummers komen onderaan de lijst terecht"; -$a->strings["Submit and finish"] = "Opslaan en afsluiten"; -$a->strings["Submit and continue"] = "Opslaan en doorgaan"; -$a->strings["Menu:"] = "Menu:"; -$a->strings["Link Target"] = "Linkdoel"; -$a->strings["Edit menu"] = "Menu bewerken"; -$a->strings["Edit element"] = "Onderdeel bewerken"; -$a->strings["Drop element"] = "Onderdeel verwijderen"; -$a->strings["New element"] = "Nieuw element"; -$a->strings["Edit this menu container"] = "Deze menu-container bewerken"; -$a->strings["Add menu element"] = "Menu-element toevoegen"; -$a->strings["Delete this menu item"] = "Dit menu-item verwijderen"; -$a->strings["Edit this menu item"] = "Dit menu-item bewerken"; -$a->strings["Menu item not found."] = "Menu-item niet gevonden."; -$a->strings["Menu item deleted."] = "Menu-item verwijderd."; -$a->strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd."; -$a->strings["Edit Menu Element"] = "Menu-element bewerken"; -$a->strings["Link text"] = "Linktekst"; +$a->strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties"; +$a->strings["Add a Channel"] = "Kanaal toevoegen"; +$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Naast een account moet je tenminste één kanaal aanmaken. Een kanaal is een persoonlijke verzameling (gerelateerde) berichten en media, zoals je misschien gewend bent van sociale netwerken. Een kanaal kan gebruikt worden voor social media, een blog, forum, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat."; +$a->strings["Channel Name"] = "Kanaalnaam"; +$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Jouw naam of een andere relevante naam. Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Familieforum\""; +$a->strings["Choose a short nickname"] = "Korte bijnaam"; +$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Deze bijnaam (geen spaties) wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) en het internetadres (URL) van jouw kanaal aan te maken, die je dan met anderen kunt delen. Voorbeeld: <b>janp</b> wordt <em>janp@jouw_hub.nl</em> en <em>https://jouw_hub.nl/channel/janp</em>."; +$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie."; +$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Kies een kanaaltype en het door jouw gewenste privacy-niveau, zodat automatisch de beste permissies kunnen worden ingesteld. Dit kan later, indien gewenst, worden veranderd."; +$a->strings["Channel Type"] = "Kanaaltype"; +$a->strings["Read more about roles"] = "Lees meer over kanaaltypes"; +$a->strings["No ratings"] = "Geen beoordelingen"; +$a->strings["Public access denied."] = "Openbare toegang geweigerd."; +$a->strings["Ratings"] = "Waarderingen"; +$a->strings["Rating: "] = "Waardering: "; +$a->strings["Website: "] = "Website: "; +$a->strings["Description: "] = "Omschrijving: "; +$a->strings["\$Projectname Server - Setup"] = "\$Projectname Server - Setup"; +$a->strings["Could not connect to database."] = "Could not connect to database."; +$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."; +$a->strings["Could not create table."] = "Could not create table."; +$a->strings["Your site database has been installed."] = "Your hub database has been installed."; +$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "You may need to import the file \"install/schema_xxx.sql\" manually using a database client."; +$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\"."; +$a->strings["System check"] = "System check"; +$a->strings["Next"] = "Volgende"; +$a->strings["Check again"] = "Check again"; +$a->strings["Database connection"] = "Database connection"; +$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "In order to install \$Projectname we need to know how to connect to your database."; +$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings."; +$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing."; +$a->strings["Database Server Name"] = "Database Server Name"; +$a->strings["Default is 127.0.0.1"] = "Default is 127.0.0.1"; +$a->strings["Database Port"] = "Database Port"; +$a->strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default"; +$a->strings["Database Login Name"] = "Database Login Name"; +$a->strings["Database Login Password"] = "Database Login Password"; +$a->strings["Database Name"] = "Database Name"; +$a->strings["Database Type"] = "Database Type"; +$a->strings["Site administrator email address"] = "Hub administrator email address"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; +$a->strings["Website URL"] = "Hub URL"; +$a->strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available."; +$a->strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub"; +$a->strings["Site settings"] = "Hub settings"; +$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."; +$a->strings["PHP executable path"] = "PHP executable path"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation."; +$a->strings["Command line PHP"] = "Command line PHP"; +$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."; +$a->strings["This is required for message delivery to work."] = "This is required for message delivery to work."; +$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."; +$a->strings["You can adjust these settings in the servers php.ini."] = "You can adjust these settings in the servers php.ini."; +$a->strings["PHP upload limits"] = "PHP upload limits"; +$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"; +$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."; +$a->strings["Generate encryption keys"] = "Generate encryption keys"; +$a->strings["libCurl PHP module"] = "libCurl PHP module"; +$a->strings["GD graphics PHP module"] = "GD graphics PHP module"; +$a->strings["OpenSSL PHP module"] = "OpenSSL PHP module"; +$a->strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module"; +$a->strings["mb_string PHP module"] = "mb_string PHP module"; +$a->strings["mcrypt PHP module"] = "mcrypt PHP module"; +$a->strings["xml PHP module"] = "xml PHP module"; +$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; +$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed."; +$a->strings["proc_open"] = "proc_open"; +$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini"; +$a->strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed."; +$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed."; +$a->strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed."; +$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed."; +$a->strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed."; +$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: mcrypt PHP module required but not installed."; +$a->strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed."; +$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."; +$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."; +$a->strings[".htconfig.php is writable"] = ".htconfig.php is writable"; +$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."; +$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."; +$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."; +$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."; +$a->strings["%s is writable"] = "%s is writable"; +$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"; +$a->strings["store is writable"] = "store is writable"; +$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."; +$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"; +$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."; +$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."; +$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."; +$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid."; +$a->strings["SSL certificate validation"] = "SSL certificate validation"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite in .htaccess is not working. Check your server configuration.Test: "; +$a->strings["Url rewrite is working"] = "Url rewrite is working"; +$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."; +$a->strings["Errors encountered creating database tables."] = "Errors encountered creating database tables."; +$a->strings["<h1>What next</h1>"] = "<h1>Wat nu</h1>"; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."; +$a->strings["Bookmark added"] = "Bladwijzer toegevoegd"; +$a->strings["My Bookmarks"] = "Mijn bladwijzers"; +$a->strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties"; +$a->strings["\$Projectname"] = "\$Projectname"; +$a->strings["Welcome to %s"] = "Welkom op %s"; +$a->strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."; +$a->strings["Configuration Editor"] = "Configuratiebewerker"; +$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. "; +$a->strings["Poke/Prod"] = "Aanstoten/porren"; +$a->strings["poke, prod or do other things to somebody"] = "aanstoten, porren of andere dingen met iemand doen"; +$a->strings["Recipient"] = "Ontvanger"; +$a->strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen"; +$a->strings["Make this post private"] = "Maak dit bericht privé"; +$a->strings["Profile not found."] = "Profiel niet gevonden."; +$a->strings["Profile deleted."] = "Profiel verwijderd."; +$a->strings["Profile-"] = "Profiel-"; +$a->strings["New profile created."] = "Nieuw profiel aangemaakt."; +$a->strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen"; +$a->strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren"; +$a->strings["Profile Name is required."] = "Profielnaam is vereist"; +$a->strings["Marital Status"] = "Huwelijke status"; +$a->strings["Romantic Partner"] = "Romantische partner"; +$a->strings["Likes"] = "Houdt van"; +$a->strings["Dislikes"] = "Houdt niet van"; +$a->strings["Work/Employment"] = "Werk/arbeid"; +$a->strings["Religion"] = "Religie"; +$a->strings["Political Views"] = "Politieke overtuigingen"; +$a->strings["Sexual Preference"] = "Seksuele voorkeur"; +$a->strings["Homepage"] = "Homepage"; +$a->strings["Interests"] = "Interesses"; +$a->strings["Address"] = "Kanaaladres"; +$a->strings["Profile updated."] = "Profiel bijgewerkt"; +$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."; +$a->strings["Edit Profile Details"] = "Profiel bewerken"; +$a->strings["View this profile"] = "Profiel weergeven"; +$a->strings["Change Profile Photo"] = "Profielfoto wijzigen"; +$a->strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis"; +$a->strings["Clone this profile"] = "Dit profiel klonen"; +$a->strings["Delete this profile"] = "Dit profiel verwijderen"; +$a->strings["Import profile from file"] = "Profiel vanuit bestand importeren"; +$a->strings["Export profile to file"] = "Profiel naar bestand exporteren"; +$a->strings["Profile Name:"] = "Profielnaam:"; +$a->strings["Your Full Name:"] = "Jouw volledige naam:"; +$a->strings["Title/Description:"] = "Titel/omschrijving:"; +$a->strings["Your Gender:"] = "Jouw geslacht"; +$a->strings["Birthday :"] = "Verjaardag: "; +$a->strings["Street Address:"] = "Straat en huisnummer:"; +$a->strings["Locality/City:"] = "Woonplaats:"; +$a->strings["Postal/Zip Code:"] = "Postcode:"; +$a->strings["Country:"] = "Land:"; +$a->strings["Region/State:"] = "Provincie/gewest/deelstaat:"; +$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Huwelijkse staat:"; +$a->strings["Who: (if applicable)"] = "Wie (wanneer toepasselijk):"; +$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl"; +$a->strings["Since [date]:"] = "Sinds [datum]:"; +$a->strings["Homepage URL:"] = "Adres homepage:"; +$a->strings["Religious Views:"] = "Religieuze overtuigingen"; +$a->strings["Keywords:"] = "Trefwoorden"; +$a->strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software"; +$a->strings["Used in directory listings"] = "Wordt in de kanalengids gebruikt"; +$a->strings["Tell us about yourself..."] = "Vertel ons iets over jezelf..."; +$a->strings["Hobbies/Interests"] = "Hobby's/interesses"; +$a->strings["Contact information and Social Networks"] = "Contactinformatie en sociale netwerken"; +$a->strings["My other channels"] = "Mijn andere kanalen"; +$a->strings["Musical interests"] = "Muzikale interesses"; +$a->strings["Books, literature"] = "Boeken/literatuur"; +$a->strings["Television"] = "Televisie"; +$a->strings["Film/dance/culture/entertainment"] = "Film/dans/cultuur/entertainment"; +$a->strings["Love/romance"] = "Liefde/romantiek"; +$a->strings["Work/employment"] = "Werk/arbeid"; +$a->strings["School/education"] = "School/onderwijs"; +$a->strings["This is your default profile."] = "Dit is jouw standaardprofiel"; +$a->strings["Age: "] = "Leeftijd:"; +$a->strings["Edit/Manage Profiles"] = "Profielen bewerken/beheren"; +$a->strings["Add profile things"] = "Dingen aan je profiel toevoegen"; +$a->strings["Include desirable objects in your profile"] = "Voeg door jou gewenste dingen aan jouw profiel toe"; +$a->strings["Items tagged with: %s"] = "Items getagd met %s"; +$a->strings["Search results for: %s"] = "Zoekresultaten voor %s"; $a->strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens."; $a->strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden."; $a->strings["Connection updated."] = "Connectie bijgewerkt."; @@ -1174,57 +1348,132 @@ $a->strings["Individual Permissions"] = "Individuele permissies"; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can <strong>not</strong> change those settings here."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier <strong>niet</strong> veranderen."; $a->strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Sommige permissies worden mogelijk overgeërfd van de <a href=\"settings\">privacy-instellingen</a> van jouw kanaal, die een hogere prioriteit hebben dan deze individuele permissies. Je kan de permissies hier veranderen, maar die hebben geen effect, tenzij de overgeërfde permissies worden veranderd. "; $a->strings["Last update:"] = "Laatste wijziging:"; -$a->strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties"; -$a->strings["Hub not found."] = "Hub niet gevonden."; -$a->strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."; -$a->strings["Configuration Editor"] = "Configuratiebewerker"; -$a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Waarschuwing: het veranderen van sommige instellingen kunnen jouw kanaal onklaar maken. Verlaat deze pagina, tenzij je weet waar je mee bezig bent en voldoende kennis bezit over hoe je deze functies moet gebruiken. "; -$a->strings["Permission Denied."] = "Toegang geweigerd"; -$a->strings["File not found."] = "Bestand niet gevonden."; -$a->strings["Edit file permissions"] = "Bestandsrechten bewerken"; -$a->strings["Set/edit permissions"] = "Rechten instellen/bewerken"; -$a->strings["Include all files and sub folders"] = "Toepassen op alle bestanden en submappen"; -$a->strings["Return to file list"] = "Terugkeren naar bestandlijst "; -$a->strings["Copy/paste this code to attach file to a post"] = "Kopieer/plak deze code om het bestand aan een bericht te koppelen"; -$a->strings["Copy/paste this URL to link file from a web page"] = "Kopieer/plak deze URL om het bestand aan een externe webpagina te koppelen"; -$a->strings["Share this file"] = "Dit bestand delen"; -$a->strings["Show URL to this file"] = "Toon URL van dit bestand"; -$a->strings["Notify your contacts about this file"] = "Jouw connecties over dit bestand berichten"; +$a->strings["network"] = "netwerk"; +$a->strings["RSS"] = "RSS"; +$a->strings["\$Projectname channel"] = "\$Projectname-kanaal"; +$a->strings["Invalid message"] = "Ongeldig bericht"; +$a->strings["no results"] = "geen resultaten"; +$a->strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s"; +$a->strings["channel sync processed"] = "kanaalsync verwerkt"; +$a->strings["queued"] = "in wachtrij"; +$a->strings["posted"] = "verstuurd"; +$a->strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden"; +$a->strings["updated"] = "geüpdatet"; +$a->strings["update ignored"] = "update genegeerd"; +$a->strings["permission denied"] = "toegang geweigerd"; +$a->strings["recipient not found"] = "ontvanger niet gevonden"; +$a->strings["mail recalled"] = "Privébericht ingetrokken"; +$a->strings["duplicate mail received"] = "dubbel privébericht ontvangen"; +$a->strings["mail delivered"] = "privébericht afgeleverd"; +$a->strings["Item not found"] = "Item niet gevonden"; +$a->strings["Delete webpage?"] = "Webpagina verwijderen?"; +$a->strings["Page link title"] = "Titel van paginalink"; +$a->strings["Insert YouTube video"] = "YouTube-video invoegen"; +$a->strings["Insert Vorbis [.ogg] video"] = "Vorbis-video [.ogg] invoegen"; +$a->strings["Insert Vorbis [.ogg] audio"] = "Vorbis-audio [.ogg] invoegen"; +$a->strings["Edit Webpage"] = "Webpagina bewerken"; +$a->strings["Unable to find your hub."] = "Niet in staat om je hub te vinden"; +$a->strings["Post successful."] = "Verzenden bericht geslaagd."; +$a->strings["sent you a private message"] = "stuurde jou een privébericht"; +$a->strings["added your channel"] = "voegde jouw kanaal toe"; +$a->strings["posted an event"] = "plaatste een gebeurtenis"; +$a->strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling"; +$a->strings["Return to your app and insert this Securty Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:"; +$a->strings["Please login to continue."] = "Inloggen om verder te kunnen gaan."; +$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"; +$a->strings["No more system notifications."] = "Geen systeemnotificaties meer."; +$a->strings["System Notifications"] = "Systeemnotificaties"; +$a->strings["Select a bookmark folder"] = "Kies een bladwijzermap"; +$a->strings["Save Bookmark"] = "Bladwijzer opslaan"; +$a->strings["URL of bookmark"] = "URL van bladwijzer"; +$a->strings["Description"] = "Omschrijving"; +$a->strings["Or enter new bookmark folder name"] = "Of geef de naam op van een nieuwe bladwijzermap"; +$a->strings["Contact not found."] = "Contact niet gevonden"; +$a->strings["Friend suggestion sent."] = "Kanaalvoorstel verzonden."; +$a->strings["Suggest Friends"] = "Kanalen voorstellen"; +$a->strings["Suggest a friend for %s"] = "Stel een kanaal voor aan %s"; +$a->strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd."; +$a->strings["Source created."] = "Bron aangemaakt."; +$a->strings["Source updated."] = "Bron aangemaakt."; +$a->strings["*"] = "*"; +$a->strings["Manage remote sources of content for your channel."] = "Beheer externe bronnen met inhoud voor jouw kanaal"; +$a->strings["New Source"] = "Nieuwe bron"; +$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen."; +$a->strings["Only import content with these words (one per line)"] = "Importeer alleen inhoud met deze woorden (één per regel)"; +$a->strings["Leave blank to import all public content"] = "Laat leeg om alle openbare inhoud te importeren"; +$a->strings["Source not found."] = "Bron niet gevonden"; +$a->strings["Edit Source"] = "Bron bewerken"; +$a->strings["Delete Source"] = "Bron verwijderen"; +$a->strings["Source removed"] = "Bron verwijderd"; +$a->strings["Unable to remove source."] = "Verwijderen bron mislukt."; +$a->strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)"; +$a->strings["Discard"] = "Annuleren"; +$a->strings["Tag removed"] = "Tag verwijderd"; +$a->strings["Remove Item Tag"] = "Verwijder item-tag"; +$a->strings["Select a tag to remove: "] = "Kies een tag om te verwijderen"; +$a->strings["Remove"] = "Verwijderen"; +$a->strings["%d rating"] = array( + 0 => "%d beoordeling", + 1 => "%d beoordelingen", +); +$a->strings["Gender: "] = "Geslacht:"; +$a->strings["Status: "] = "Status: "; +$a->strings["Homepage: "] = "Homepage: "; +$a->strings["Description:"] = "Omschrijving:"; +$a->strings["Public Forum:"] = "Openbaar forum:"; +$a->strings["Keywords: "] = "Trefwoorden: "; +$a->strings["Don't suggest"] = "Niet voorstellen"; +$a->strings["Common connections:"] = "Gemeenschappelijke connecties:"; +$a->strings["Global Directory"] = "Volledige kanalengids"; +$a->strings["Local Directory"] = "Lokale kanalengids"; +$a->strings["Finding:"] = "Gezocht naar:"; +$a->strings["next page"] = "volgende pagina"; +$a->strings["previous page"] = "vorige pagina"; +$a->strings["Sort options"] = "Sorteeropties"; +$a->strings["Alphabetic"] = "Alfabetisch"; +$a->strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch"; +$a->strings["Newest to Oldest"] = "Nieuw naar oud"; +$a->strings["Oldest to Newest"] = "Oud naar nieuw"; +$a->strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn)."; +$a->strings["No valid account found."] = "Geen geldige account gevonden."; +$a->strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."; +$a->strings["Site Member (%s)"] = "Lid van hub (%s)"; +$a->strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"; +$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."; +$a->strings["Password Reset"] = "Wachtwoord vergeten?"; +$a->strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."; +$a->strings["Your new password is"] = "Jouw nieuwe wachtwoord is"; +$a->strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en"; +$a->strings["click here to login"] = "klik dan hier om in te loggen"; +$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."; +$a->strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd"; +$a->strings["Forgot your Password?"] = "Wachtwoord vergeten?"; +$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."; +$a->strings["Email Address"] = "E-mailadres"; +$a->strings["Reset"] = "Opnieuw instellen"; $a->strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)"; -$a->strings["Layout Name"] = "Naam lay-out"; -$a->strings["Layout Description (Optional)"] = "Lay-out-omschrijving (optioneel)"; -$a->strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche"; -$a->strings["Layout Description"] = "Lay-out-omschrijving"; -$a->strings["Download PDL file"] = "Download PDL-bestand"; -$a->strings["Poke/Prod"] = "Aanstoten/porren"; -$a->strings["poke, prod or do other things to somebody"] = "aanstoten, porren of andere dingen met iemand doen"; -$a->strings["Recipient"] = "Ontvanger"; -$a->strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen"; -$a->strings["Make this post private"] = "Maak dit bericht privé"; -$a->strings["No such group"] = "Collectie niet gevonden"; -$a->strings["No such channel"] = "Niet zo'n kanaal"; -$a->strings["forum"] = "forum"; -$a->strings["Search Results For:"] = "Zoekresultaten voor:"; -$a->strings["Collection is empty"] = "Collectie is leeg"; -$a->strings["Collection: "] = "Collectie: "; -$a->strings["Invalid connection."] = "Ongeldige connectie."; -$a->strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken."; -$a->strings["Room not found"] = "Chatkanaal niet gevonden"; -$a->strings["Leave Room"] = "Chatkanaal verlaten"; -$a->strings["Delete This Room"] = "Chatkanaal verwijderen"; -$a->strings["I am away right now"] = "Ik ben momenteel afwezig"; -$a->strings["I am online"] = "Ik ben online"; -$a->strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen"; -$a->strings["New Chatroom"] = "Nieuw chatkanaal"; -$a->strings["Chatroom Name"] = "Naam chatkanaal"; -$a->strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd"; -$a->strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s"; -$a->strings["Items tagged with: %s"] = "Items getagd met %s"; -$a->strings["Search results for: %s"] = "Zoekresultaten voor %s"; -$a->strings["Website:"] = "Website:"; -$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)"; -$a->strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)"; -$a->strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"; +$a->strings["%s element installed"] = "%s onderdeel geïnstalleerd"; +$a->strings["%s element installation failed"] = "Installatie %s-element mislukt"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s"; +$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s niet meer"; +$a->strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe."; +$a->strings["Nothing to import."] = "Niets gevonden om te importeren"; +$a->strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden"; +$a->strings["Imported file is empty."] = "Geïmporteerde bestand is leeg"; +$a->strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter."; +$a->strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt."; +$a->strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."; +$a->strings["Import Channel"] = "Kanaal importeren"; +$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken."; +$a->strings["File to Upload"] = "Bestand om te uploaden"; +$a->strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in"; +$a->strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)"; +$a->strings["Your old login email address"] = "Het e-mailadres van je oude account"; +$a->strings["Your old login password"] = "Wachtwoord van jouw oude account"; +$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."; +$a->strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in"; +$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"; +$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid."; $a->strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen."; $a->strings["Album not found."] = "Album niet gevonden."; $a->strings["Delete Album"] = "Verwijder album"; @@ -1243,16 +1492,12 @@ $a->strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd $a->strings["Contact Photos"] = "Connectiefoto's"; $a->strings["Show Newest First"] = "Nieuwste eerst weergeven"; $a->strings["Show Oldest First"] = "Oudste eerst weergeven"; -$a->strings["View Photo"] = "Foto weergeven"; -$a->strings["Edit Album"] = "Album bewerken"; $a->strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."; $a->strings["Photo not available"] = "Foto niet aanwezig"; $a->strings["Use as profile photo"] = "Als profielfoto gebruiken"; $a->strings["Private Photo"] = "Privéfoto"; $a->strings["Previous"] = "Vorige"; $a->strings["View Full Size"] = "Volledige grootte weergeven"; -$a->strings["Next"] = "Volgende"; -$a->strings["Remove"] = "Verwijderen"; $a->strings["Edit photo"] = "Foto bewerken"; $a->strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)"; $a->strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)"; @@ -1266,32 +1511,84 @@ $a->strings["In This Photo:"] = "Op deze foto:"; $a->strings["Map"] = "Kaart"; $a->strings["View Album"] = "Album weergeven"; $a->strings["Recent Photos"] = "Recente foto's"; -$a->strings["Invalid message"] = "Ongeldig bericht"; -$a->strings["no results"] = "geen resultaten"; -$a->strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s"; -$a->strings["channel sync processed"] = "kanaalsync verwerkt"; -$a->strings["queued"] = "in wachtrij"; -$a->strings["posted"] = "verstuurd"; -$a->strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden"; -$a->strings["updated"] = "geüpdatet"; -$a->strings["update ignored"] = "update genegeerd"; -$a->strings["permission denied"] = "toegang geweigerd"; -$a->strings["recipient not found"] = "ontvanger niet gevonden"; -$a->strings["mail recalled"] = "Privébericht ingetrokken"; -$a->strings["duplicate mail received"] = "dubbel privébericht ontvangen"; -$a->strings["mail delivered"] = "privébericht afgeleverd"; -$a->strings["Item not found"] = "Item niet gevonden"; +$a->strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s"; +$a->strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "; +$a->strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."; +$a->strings["Image upload failed."] = "Uploaden afbeelding mislukt"; +$a->strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken."; +$a->strings["female"] = "vrouw"; +$a->strings["%1\$s updated her %2\$s"] = "%1\$s heeft haar %2\$s bijgewerkt"; +$a->strings["male"] = "man"; +$a->strings["%1\$s updated his %2\$s"] = "%1\$s heeft zijn %2\$s bijgewerkt"; +$a->strings["%1\$s updated their %2\$s"] = "%1\$s hebben hun %2\$s bijgewerkt"; +$a->strings["profile photo"] = "profielfoto"; +$a->strings["Photo not available."] = "Foto niet beschikbaar."; +$a->strings["Upload File:"] = "Bestand uploaden:"; +$a->strings["Select a profile:"] = "Kies een profiel:"; +$a->strings["Upload Profile Photo"] = "Profielfoto uploaden"; +$a->strings["or"] = "of"; +$a->strings["skip this step"] = "sla deze stap over"; +$a->strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums"; +$a->strings["Crop Image"] = "Afbeelding bijsnijden"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."; +$a->strings["Done Editing"] = "Klaar met bewerken"; +$a->strings["Thing updated"] = "Ding bijgewerkt"; +$a->strings["Object store: failed"] = "Opslaan van ding mislukt"; +$a->strings["Thing added"] = "Ding toegevoegd"; +$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +$a->strings["Show Thing"] = "Ding weergeven"; +$a->strings["item not found."] = "Item niet gevonden"; +$a->strings["Edit Thing"] = "Ding bewerken"; +$a->strings["Select a profile"] = "Kies een profiel"; +$a->strings["Post an activity"] = "Plaats een bericht"; +$a->strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien."; +$a->strings["Name of thing e.g. something"] = "Naam van ding"; +$a->strings["URL of thing (optional)"] = "URL van ding (optioneel)"; +$a->strings["URL for photo of thing (optional)"] = "URL van foto van ding (optioneel)"; +$a->strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen"; +$a->strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig"; $a->strings["Delete block?"] = "Blok verwijderen"; -$a->strings["Insert YouTube video"] = "YouTube-video invoegen"; -$a->strings["Insert Vorbis [.ogg] video"] = "Vorbis-video [.ogg] invoegen"; -$a->strings["Insert Vorbis [.ogg] audio"] = "Vorbis-audio [.ogg] invoegen"; $a->strings["Edit Block"] = "Blok bewerken"; -$a->strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig"; -$a->strings["Item is not editable"] = "Item is niet te bewerken"; -$a->strings["Delete item?"] = "Item verwijderen?"; -$a->strings["Edit post"] = "Bericht bewerken"; -$a->strings["Unable to find your hub."] = "Niet in staat om je hub te vinden"; -$a->strings["Post successful."] = "Verzenden bericht geslaagd."; +$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd."; +$a->strings["Remove This Account"] = "Verwijder dit account"; +$a->strings["This account and all its channels will be completely removed from the network. "] = "Dit account en al zijn kanalen worden volledig uit het \$Projectname-netwerk verwijderd."; +$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het \$Projectname-netwerk verwijderen"; +$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het \$Projectname-netwerk verwijderd"; +$a->strings["Remove Account"] = "Account verwijderen"; +$a->strings["Import completed"] = "Importeren voltooid"; +$a->strings["Import Items"] = "Importeer items"; +$a->strings["Use this form to import existing posts and content from an export file."] = "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren."; +$a->strings["No such group"] = "Collectie niet gevonden"; +$a->strings["No such channel"] = "Niet zo'n kanaal"; +$a->strings["forum"] = "forum"; +$a->strings["Search Results For:"] = "Zoekresultaten voor:"; +$a->strings["Collection is empty"] = "Collectie is leeg"; +$a->strings["Collection: "] = "Collectie: "; +$a->strings["Invalid connection."] = "Ongeldige connectie."; +$a->strings["Layout updated."] = "Lay-out bijgewerkt."; +$a->strings["Edit System Page Description"] = "Systeempagina's bewerken"; +$a->strings["Layout not found."] = "Lay-out niet gevonden."; +$a->strings["Module Name:"] = "Modulenaam:"; +$a->strings["Layout Help"] = "Lay-out-hulp"; +$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."; +$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."; +$a->strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen."; +$a->strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies."; +$a->strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub."; +$a->strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden."; +$a->strings["Registration on this site/hub is by approval only."] = "Registraties op deze \$Projectname-hub moeten eerst worden goedgekeurd."; +$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registreer op een andere \$Projectname-hub</a>"; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."; +$a->strings["Terms of Service"] = "Gebruiksvoorwaarden"; +$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; +$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; +$a->strings["Registration"] = "Registratie"; +$a->strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging."; +$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in"; +$a->strings["Your email address"] = "Jouw e-mailadres"; +$a->strings["Choose a password"] = "Geef een wachtwoord op"; +$a->strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op"; $a->strings["Theme settings updated."] = "Thema-instellingen bijgewerkt."; $a->strings["# Accounts"] = "# accounts"; $a->strings["# blocked accounts"] = "# geblokkeerde accounts"; @@ -1317,7 +1614,6 @@ $a->strings["My site is not a public server"] = "Mijn \$Projectname-hub is niet $a->strings["My site has paid access only"] = "Mijn \$Projectname-hub kent alleen betaalde toegang"; $a->strings["My site has free access only"] = "Mijn \$Projectname-hub kent alleen gratis toegang"; $a->strings["My site offers free accounts with optional paid upgrades"] = "Mijn \$Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie"; -$a->strings["Registration"] = "Registratie"; $a->strings["File upload"] = "Bestand uploaden"; $a->strings["Policies"] = "Beleid"; $a->strings["Site name"] = "Naam van deze \$Projectname-hub"; @@ -1444,7 +1740,6 @@ $a->strings["Uncensor"] = "Niet censureren"; $a->strings["Allow Code"] = "Scripts toestaan"; $a->strings["Disallow Code"] = "Scripts niet toestaan"; $a->strings["UID"] = "UID"; -$a->strings["Address"] = "Kanaaladres"; $a->strings["Selected channels will be deleted!\\n\\nEverything that was posted in these channels on this site will be permanently deleted!\\n\\nAre you sure?"] = "Geselecteerde kanalen worden verwijderd!\\n\\nAlles wat in deze kanalen op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"; $a->strings["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?"] = "Kanaal {0} wordt verwijderd!\\n\\nAlles wat in dit kanaal op deze hub werd gepubliceerd wordt definitief verwijderd!\\n\\nWeet je het zeker?"; $a->strings["Plugin %s disabled."] = "Plug-in %s uitgeschakeld."; @@ -1474,302 +1769,10 @@ $a->strings["Help text"] = "Helptekst"; $a->strings["Additional info (optional)"] = "Extra informatie (optioneel)"; $a->strings["Field definition not found"] = "Velddefinitie niet gevonden"; $a->strings["Edit Profile Field"] = "Profielveld bewerken"; -$a->strings["App installed."] = "App geïnstalleerd"; -$a->strings["Malformed app."] = "Misvormde app."; -$a->strings["Embed code"] = "Insluitcode"; -$a->strings["Edit App"] = "App bewerken"; -$a->strings["Create App"] = "App maken"; -$a->strings["Name of app"] = "Naam van app"; -$a->strings["Location (URL) of app"] = "Locatie (URL) van app"; -$a->strings["Description"] = "Omschrijving"; -$a->strings["Photo icon URL"] = "URL van pictogram"; -$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixels (optioneel)"; -$a->strings["Version ID"] = "Versie-ID"; -$a->strings["Price of app"] = "Prijs van de app"; -$a->strings["Location (URL) to purchase app"] = "Locatie (URL) om de app aan te schaffen"; -$a->strings["Unable to update menu."] = "Niet in staat om menu aan te passen"; -$a->strings["Unable to create menu."] = "Niet in staat om menu aan te maken."; -$a->strings["Menu Name"] = "Menunaam"; -$a->strings["Unique name (not visible on webpage) - required"] = "Unieke naam vereist (niet zichtbaar op webpagina)"; -$a->strings["Menu Title"] = "Menutitel"; -$a->strings["Visible on webpage - leave empty for no title"] = "Zichtbaar op webpagina (leeg laten voor geen titel)"; -$a->strings["Allow Bookmarks"] = "Bladwijzers toestaan"; -$a->strings["Menu may be used to store saved bookmarks"] = "Menu kan gebruikt worden om bladwijzers in op te slaan"; -$a->strings["Submit and proceed"] = "Opslaan en doorgaan"; -$a->strings["Drop"] = "Verwijderen"; -$a->strings["Bookmarks allowed"] = "Bladwijzers toegestaan"; -$a->strings["Delete this menu"] = "Menu verwijderen"; -$a->strings["Edit menu contents"] = "Bewerk de inhoud van het menu"; -$a->strings["Edit this menu"] = "Dit menu bewerken"; -$a->strings["Menu could not be deleted."] = "Menu kon niet verwijderd worden."; -$a->strings["Edit Menu"] = "Menu bewerken"; -$a->strings["Add or remove entries to this menu"] = "Items aan dit menu toevoegen of verwijder"; -$a->strings["Menu name"] = "Naam van menu"; -$a->strings["Must be unique, only seen by you"] = "Moet uniek zijn en is alleen zichtbaar voor jou."; -$a->strings["Menu title"] = "Titel van menu"; -$a->strings["Menu title as seen by others"] = "Titel van menu zoals anderen dat zien."; -$a->strings["Allow bookmarks"] = "Bladwijzers toestaan"; -$a->strings["No more system notifications."] = "Geen systeemnotificaties meer."; -$a->strings["System Notifications"] = "Systeemnotificaties"; -$a->strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; -$a->strings["Add a Channel"] = "Kanaal toevoegen"; -$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Naast een account moet je tenminste één kanaal aanmaken. Een kanaal is een persoonlijke verzameling (gerelateerde) berichten en media, zoals je misschien gewend bent van sociale netwerken. Een kanaal kan gebruikt worden voor social media, een blog, forum, en voor veel meer. Je kan net zoveel kanalen aanmaken als dat de eigenaar/beheerder van jouw hub toestaat."; -$a->strings["Channel Name"] = "Kanaalnaam"; -$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Jouw naam of een andere relevante naam. Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Familieforum\""; -$a->strings["Choose a short nickname"] = "Korte bijnaam"; -$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Deze bijnaam (geen spaties) wordt gebruikt om een makkelijk te onthouden kanaaladres (zoals een e-mailadres) en het internetadres (URL) van jouw kanaal aan te maken, die je dan met anderen kunt delen. Voorbeeld: <b>janp</b> wordt <em>janp@jouw_hub.nl</em> en <em>https://jouw_hub.nl/channel/janp</em>."; -$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Of <a href=\"import\">importeer een bestaand kanaal</a> vanaf een andere locatie."; -$a->strings["Please choose a channel type (such as social networking or community forum) and privacy requirements so we can select the best permissions for you"] = "Kies een kanaaltype en het door jouw gewenste privacy-niveau, zodat automatisch de beste permissies kunnen worden ingesteld. Dit kan later, indien gewenst, worden veranderd."; -$a->strings["Channel Type"] = "Kanaaltype"; -$a->strings["Read more about roles"] = "Lees meer over kanaaltypes"; -$a->strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)"; -$a->strings["Discard"] = "Annuleren"; -$a->strings["Layout updated."] = "Lay-out bijgewerkt."; -$a->strings["Edit System Page Description"] = "Systeempagina's bewerken"; -$a->strings["Layout not found."] = "Lay-out niet gevonden."; -$a->strings["Module Name:"] = "Modulenaam:"; -$a->strings["Layout Help"] = "Lay-out-hulp"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s"; -$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s niet meer"; -$a->strings["No valid account found."] = "Geen geldige account gevonden."; -$a->strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."; -$a->strings["Site Member (%s)"] = "Lid van hub (%s)"; -$a->strings["Password reset requested at %s"] = "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend"; -$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Het verzoek kon niet worden geverifieerd. (Mogelijk heb je al eerder een verzoek ingediend.) Opnieuw instellen van wachtwoord is mislukt."; -$a->strings["Password Reset"] = "Wachtwoord vergeten?"; -$a->strings["Your password has been reset as requested."] = "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht."; -$a->strings["Your new password is"] = "Jouw nieuwe wachtwoord is"; -$a->strings["Save or copy your new password - and then"] = "Kopieer of sla je nieuwe wachtwoord op - en"; -$a->strings["click here to login"] = "klik dan hier om in te loggen"; -$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Jouw wachtwoord kan worden veranderd onder <em>instellingen</em>, nadat je succesvol bent ingelogd."; -$a->strings["Your password has changed at %s"] = "Jouw wachtwoord op %s is veranderd"; -$a->strings["Forgot your Password?"] = "Wachtwoord vergeten?"; -$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Voer je e-mailadres in en verstuur deze om je wachtwoord opnieuw in te stellen. Controleer hierna hier je e-mail voor verdere instructies."; -$a->strings["Email Address"] = "E-mailadres"; -$a->strings["Reset"] = "Opnieuw instellen"; -$a->strings["\$Projectname"] = "\$Projectname"; -$a->strings["Welcome to %s"] = "Welkom op %s"; -$a->strings["\$Projectname channel"] = "\$Projectname-kanaal"; -$a->strings["Calendar entries imported."] = "Agenda-items geïmporteerd."; -$a->strings["No calendar entries found."] = "Geen agenda-items gevonden."; -$a->strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen"; -$a->strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren"; -$a->strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist."; -$a->strings["Event not found."] = "Gebeurtenis niet gevonden"; -$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["Event removed"] = "Gebeurtenis verwijderd"; -$a->strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt"; -$a->strings["Event details"] = "Details van gebeurtenis"; -$a->strings["Starting date and Title are required."] = "Begintijd en titel zijn vereist."; -$a->strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)"; -$a->strings["Event Starts:"] = "Begin gebeurtenis:"; -$a->strings["Finish date/time is not known or not relevant"] = "Einddatum/-tijd is niet bekend of niet relevant"; -$a->strings["Event Finishes:"] = "Einde gebeurtenis:"; -$a->strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"; -$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen."; -$a->strings["Title:"] = "Titel:"; -$a->strings["Share this event"] = "Deel deze gebeurtenis"; -$a->strings["%s element installed"] = "%s onderdeel geïnstalleerd"; -$a->strings["%s element installation failed"] = "Installatie %s-element mislukt"; -$a->strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s"; -$a->strings["Profile Match"] = "Profielovereenkomst"; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Je hebt geen trefwoorden waarmee overeenkomsten gevonden kunnen worden. Voeg enkele trefwoorden aan je standaardprofiel toe."; -$a->strings["is interested in:"] = "is geïnteresseerd in:"; -$a->strings["No matches"] = "Geen overeenkomsten"; -$a->strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "; -$a->strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Vernieuw de pagina met shift+R of shift+F5, of leeg je browserbuffer, wanneer de nieuwe foto niet meteen wordt weergegeven."; -$a->strings["Image upload failed."] = "Uploaden afbeelding mislukt"; -$a->strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken."; -$a->strings["female"] = "vrouw"; -$a->strings["%1\$s updated her %2\$s"] = "%1\$s heeft haar %2\$s bijgewerkt"; -$a->strings["male"] = "man"; -$a->strings["%1\$s updated his %2\$s"] = "%1\$s heeft zijn %2\$s bijgewerkt"; -$a->strings["%1\$s updated their %2\$s"] = "%1\$s hebben hun %2\$s bijgewerkt"; -$a->strings["profile photo"] = "profielfoto"; -$a->strings["Photo not available."] = "Foto niet beschikbaar."; -$a->strings["Upload File:"] = "Bestand uploaden:"; -$a->strings["Select a profile:"] = "Kies een profiel:"; -$a->strings["Upload Profile Photo"] = "Profielfoto uploaden"; -$a->strings["or"] = "of"; -$a->strings["skip this step"] = "sla deze stap over"; -$a->strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums"; -$a->strings["Crop Image"] = "Afbeelding bijsnijden"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."; -$a->strings["Done Editing"] = "Klaar met bewerken"; -$a->strings["Channel added."] = "Kanaal toegevoegd."; -$a->strings["Tag removed"] = "Tag verwijderd"; -$a->strings["Remove Item Tag"] = "Verwijder item-tag"; -$a->strings["Select a tag to remove: "] = "Kies een tag om te verwijderen"; -$a->strings["No ratings"] = "Geen beoordelingen"; -$a->strings["Ratings"] = "Waarderingen"; -$a->strings["Rating: "] = "Waardering: "; -$a->strings["Website: "] = "Website: "; -$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["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."; -$a->strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt."; -$a->strings["Page Title"] = "Paginatitel"; -$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."; -$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."; -$a->strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen."; -$a->strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies."; -$a->strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub."; -$a->strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden."; -$a->strings["Registration on this site/hub is by approval only."] = "Registraties op deze \$Projectname-hub moeten eerst worden goedgekeurd."; -$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registreer op een andere \$Projectname-hub</a>"; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Deze \$Projectname-hub heeft het maximum aantal dagelijks toegestane registraties bereikt. Probeer het morgen (UTC) nogmaals."; -$a->strings["Terms of Service"] = "Gebruiksvoorwaarden"; -$a->strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; -$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; -$a->strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging."; -$a->strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in"; -$a->strings["Your email address"] = "Jouw e-mailadres"; -$a->strings["Choose a password"] = "Geef een wachtwoord op"; -$a->strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op"; -$a->strings["Block Name"] = "Bloknaam"; -$a->strings["Block Title"] = "Bloktitel"; -$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat het wachtwoord is veranderd."; -$a->strings["Remove This Account"] = "Verwijder dit account"; -$a->strings["This account and all its channels will be completely removed from the network. "] = "Dit account en al zijn kanalen worden volledig uit het \$Projectname-netwerk verwijderd."; -$a->strings["Remove this account, all its channels and all its channel clones from the network"] = "Dit account, al zijn kanalen en alle klonen van zijn kanalen uit het \$Projectname-netwerk verwijderen"; -$a->strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het \$Projectname-netwerk verwijderd"; -$a->strings["Remove Account"] = "Account verwijderen"; -$a->strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden."; -$a->strings["Item not available."] = "Item is niet aanwezig."; -$a->strings["Public Sites"] = "Openbare hubs"; -$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het \$Projectname-netwerk zijn met elkaar verbonden, dus maakt het qua lidmaatschap niet uit waar je je aanmeldt. Op sommige hubs heb je eerst goedkeuring nodig en sommige hubs vereisen betaalde abonnementen voor uitbreidingen. <strong>Mogelijk</strong> wordt hierover op de hub zelf meer informatie gegeven."; -$a->strings["Rate this hub"] = "Beoordeel deze hub"; -$a->strings["Site URL"] = "URL hub"; -$a->strings["Access Type"] = "Toegangstype"; -$a->strings["Registration Policy"] = "Registratiebeleid"; -$a->strings["Location"] = "Locatie"; -$a->strings["Project"] = "Project"; -$a->strings["View hub ratings"] = "Bekijk hubbeoordelingen"; -$a->strings["Rate"] = "Beoordeel"; -$a->strings["View ratings"] = "Bekijk beoordelingen"; -$a->strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd."; -$a->strings["Source created."] = "Bron aangemaakt."; -$a->strings["Source updated."] = "Bron aangemaakt."; -$a->strings["*"] = "*"; -$a->strings["Manage remote sources of content for your channel."] = "Beheer externe bronnen met inhoud voor jouw kanaal"; -$a->strings["New Source"] = "Nieuwe bron"; -$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importeer complete of gedeelde inhoud vanuit het volgende kanaal naar dit kanaal, en verdeel het vervolgens volgens jouw kanaalinstellingen."; -$a->strings["Only import content with these words (one per line)"] = "Importeer alleen inhoud met deze woorden (één per regel)"; -$a->strings["Leave blank to import all public content"] = "Laat leeg om alle openbare inhoud te importeren"; -$a->strings["Source not found."] = "Bron niet gevonden"; -$a->strings["Edit Source"] = "Bron bewerken"; -$a->strings["Delete Source"] = "Bron verwijderen"; -$a->strings["Source removed"] = "Bron verwijderd"; -$a->strings["Unable to remove source."] = "Verwijderen bron mislukt."; -$a->strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar."; -$a->strings["Visible to:"] = "Zichtbaar voor:"; -$a->strings["network"] = "netwerk"; -$a->strings["RSS"] = "RSS"; -$a->strings["Please login."] = "Inloggen."; -$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten."; -$a->strings["The error message was:"] = "Het foutbericht was:"; -$a->strings["Authentication failed."] = "Authenticatie mislukt."; -$a->strings["Remote Authentication"] = "Authenticatie op afstand"; -$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)"; -$a->strings["Authenticate"] = "Authenticeren"; -$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina."; -$a->strings["Version %s"] = "Versie %s"; -$a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:"; -$a->strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plug-ins/add-ons/apps"; -$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een \$Projectname-hub - \$Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy."; -$a->strings["Tag: "] = "Tag: "; -$a->strings["Last background fetch: "] = "Meest recente achtergrond-fetch:"; -$a->strings["Current load average: "] = "Gemiddelde systeembelasting is nu:"; -$a->strings["Running at web location"] = "Draaiend op weblocatie"; -$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> "; -$a->strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek"; -$a->strings["\$projectname issues"] = "\$projectname-issues"; -$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"; -$a->strings["Site Administrators"] = "Hubbeheerders: "; -$a->strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe."; -$a->strings["Nothing to import."] = "Niets gevonden om te importeren"; -$a->strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden"; -$a->strings["Imported file is empty."] = "Geïmporteerde bestand is leeg"; -$a->strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter."; -$a->strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt."; -$a->strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."; -$a->strings["Import Channel"] = "Kanaal importeren"; -$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file."] = "Gebruik dit formulier om een bestaand kanaal te importeren van een andere hub. Je kan de kanaal-identiteit van de oude hub via het netwerk ontvangen of een exportbestand verstrekken."; -$a->strings["File to Upload"] = "Bestand om te uploaden"; -$a->strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in"; -$a->strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)"; -$a->strings["Your old login email address"] = "Het e-mailadres van je oude account"; -$a->strings["Your old login password"] = "Wachtwoord van jouw oude account"; -$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Voor elke optie geldt dat je moet kiezen of je jouw primaire kanaaladres op deze hub wil instellen of dat jouw oude hub deze rol blijft vervullen."; -$a->strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in"; -$a->strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"; -$a->strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dit proces kan enkele minuten in beslag nemen. Klik maar één keer op opslaan en verlaat deze pagina niet alvorens het proces is voltooid."; -$a->strings["Thing updated"] = "Ding bijgewerkt"; -$a->strings["Object store: failed"] = "Opslaan van ding mislukt"; -$a->strings["Thing added"] = "Ding toegevoegd"; -$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -$a->strings["Show Thing"] = "Ding weergeven"; -$a->strings["item not found."] = "Item niet gevonden"; -$a->strings["Edit Thing"] = "Ding bewerken"; -$a->strings["Select a profile"] = "Kies een profiel"; -$a->strings["Post an activity"] = "Plaats een bericht"; -$a->strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien."; -$a->strings["Name of thing e.g. something"] = "Naam van ding"; -$a->strings["URL of thing (optional)"] = "URL van ding (optioneel)"; -$a->strings["URL for photo of thing (optional)"] = "URL van foto van ding (optioneel)"; -$a->strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen"; -$a->strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden."; -$a->strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres."; -$a->strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."; -$a->strings["%s : Message delivery failed."] = "%s: Aflevering bericht mislukt."; -$a->strings["%d message sent."] = array( - 0 => "%d bericht verzonden.", - 1 => "%d berichten verzonden.", -); -$a->strings["You have no more invitations available"] = "Je hebt geen uitnodigingen meer beschikbaar"; -$a->strings["Send invitations"] = "Uitnodigingen verzenden"; -$a->strings["Enter email addresses, one per line:"] = "Voer e-mailadressen in, één per regel:"; -$a->strings["Your message:"] = "Jouw bericht:"; -$a->strings["Please join my community on \$Projectname."] = "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op \$Projectname te vergezellen. Lees meer over \$Projectname op https://redmatrix.me."; -$a->strings["You will need to supply this invitation code: "] = "Je moet deze uitnodigingscode opgeven:"; -$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registreer je op een willekeurige \$Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"; -$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn \$Projectname-kanaaladres in het zoekveld invullen:"; -$a->strings["or visit "] = "of bezoek "; -$a->strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]"; -$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken."; -$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren."; -$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren"; -$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."; -$a->strings["Messages"] = "Berichten"; -$a->strings["Message recalled."] = "Bericht ingetrokken."; -$a->strings["Conversation removed."] = "Conversatie verwijderd"; -$a->strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar"; -$a->strings["Send Private Message"] = "Privébericht versturen"; -$a->strings["To:"] = "Aan:"; -$a->strings["Subject:"] = "Onderwerp:"; -$a->strings["Send"] = "Verzenden"; -$a->strings["Delete message"] = "Bericht verwijderen"; -$a->strings["Delivery report"] = "Afleveringsrapport"; -$a->strings["Recall message"] = "Bericht intrekken"; -$a->strings["Message has been recalled."] = "Bericht is ingetrokken."; -$a->strings["Delete Conversation"] = "Verwijder conversatie"; -$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."; -$a->strings["Send Reply"] = "Antwoord versturen"; -$a->strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):"; -$a->strings["[Embedded content - reload page to view]"] = "[Ingesloten inhoud - ververs pagina om te bekijken] "; -$a->strings["Source of Item"] = "Bron van item"; +$a->strings["Delete layout?"] = "Lay-out verwijderen?"; +$a->strings["Layout Description (Optional)"] = "Lay-out-omschrijving (optioneel)"; +$a->strings["Layout Name"] = "Naam lay-out"; +$a->strings["Edit Layout"] = "Lay-out bewerken"; $a->strings["Name is required"] = "Naam is vereist"; $a->strings["Key and Secret are required"] = "Key en secret zijn vereist"; $a->strings["Passwords do not match. Password unchanged."] = "Wachtwoorden komen niet overeen. Wachtwoord onveranderd."; @@ -1864,6 +1867,7 @@ $a->strings["0 or blank prevents expiration"] = "0 of leeg voorkomt het verlopen $a->strings["Maximum Friend Requests/Day:"] = "Maximum aantal connectieverzoeken per dag:"; $a->strings["May reduce spam activity"] = "Kan eventuele spam verminderen"; $a->strings["Default Post Permissions"] = "Standaard permissies voor nieuwe berichten"; +$a->strings["(click to open/close)"] = "(klik om te openen/sluiten)"; $a->strings["Channel permissions category:"] = "Kanaaltype en -permissies:"; $a->strings["Maximum private messages per day from unknown people:"] = "Maximum aantal privé-berichten per dag van onbekende personen:"; $a->strings["Useful to reduce spamming"] = "Kan eventuele spam verminderen"; @@ -1908,21 +1912,118 @@ $a->strings["Default file upload folder"] = "Standaard bestandsmap voor uploads" $a->strings["Personal menu to display in your channel pages"] = "Persoonlijk menu om op je kanaalpagina's weer te geven"; $a->strings["Remove this channel."] = "Verwijder dit kanaal."; $a->strings["Firefox Share \$Projectname provider"] = "\$Projectname-service voor Firefox Share"; +$a->strings["Start calendar week on monday"] = "Begin in de agenda de week op maandag"; +$a->strings["Page Title"] = "Paginatitel"; +$a->strings["App installed."] = "App geïnstalleerd"; +$a->strings["Malformed app."] = "Misvormde app."; +$a->strings["Embed code"] = "Insluitcode"; +$a->strings["Edit App"] = "App bewerken"; +$a->strings["Create App"] = "App maken"; +$a->strings["Name of app"] = "Naam van app"; +$a->strings["Location (URL) of app"] = "Locatie (URL) van app"; +$a->strings["Photo icon URL"] = "URL van pictogram"; +$a->strings["80 x 80 pixels - optional"] = "80 x 80 pixels (optioneel)"; +$a->strings["Version ID"] = "Versie-ID"; +$a->strings["Price of app"] = "Prijs van de app"; +$a->strings["Location (URL) to purchase app"] = "Locatie (URL) om de app aan te schaffen"; +$a->strings["- select -"] = "- kies map -"; +$a->strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche"; +$a->strings["Layout Description"] = "Lay-out-omschrijving"; +$a->strings["Download PDL file"] = "Download PDL-bestand"; +$a->strings["Location not found."] = "Locatie niet gevonden."; +$a->strings["Location lookup failed."] = "Opzoeken locatie mislukt"; +$a->strings["Please select another location to become primary before removing the primary location."] = "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen."; +$a->strings["Syncing locations"] = "Locaties synchronizeren"; +$a->strings["No locations found."] = "Geen locaties gevonden."; +$a->strings["Manage Channel Locations"] = "Kanaallocaties beheren"; +$a->strings["Location (address)"] = "Locatie (adres)"; +$a->strings["Primary Location"] = "Primaire locatie"; +$a->strings["Drop location"] = "Locatie verwijderen"; +$a->strings["Sync now"] = "Nu synchroniseren"; +$a->strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen."; +$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen."; +$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is."; +$a->strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken."; +$a->strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren."; +$a->strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren"; +$a->strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."; +$a->strings["Messages"] = "Berichten"; +$a->strings["Message recalled."] = "Bericht ingetrokken."; +$a->strings["Conversation removed."] = "Conversatie verwijderd"; +$a->strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar"; +$a->strings["Send Private Message"] = "Privébericht versturen"; +$a->strings["To:"] = "Aan:"; +$a->strings["Subject:"] = "Onderwerp:"; +$a->strings["Your message:"] = "Jouw bericht:"; +$a->strings["Send"] = "Verzenden"; +$a->strings["Delete message"] = "Bericht verwijderen"; +$a->strings["Delivery report"] = "Afleveringsrapport"; +$a->strings["Recall message"] = "Bericht intrekken"; +$a->strings["Message has been recalled."] = "Bericht is ingetrokken."; +$a->strings["Delete Conversation"] = "Verwijder conversatie"; +$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. <strong>Mogelijk</strong> kan je reageren op de kanaalpagina van de afzender."; +$a->strings["Send Reply"] = "Antwoord versturen"; +$a->strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):"; +$a->strings["Please login."] = "Inloggen."; $a->strings["Xchan Lookup"] = "Xchan opzoeken"; $a->strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:"; -$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."; -$a->strings["Create a new channel"] = "Nieuw kanaal aanmaken"; -$a->strings["Current Channel"] = "Huidig kanaal"; -$a->strings["Switch to one of your channels by selecting it."] = "Activeer een van jouw andere kanalen door er op te klikken."; -$a->strings["Default Channel"] = "Standaardkanaal"; -$a->strings["Make Default"] = "Als standaard instellen"; -$a->strings["%d new messages"] = "%d nieuwe berichten"; -$a->strings["%d new introductions"] = "%d nieuwe connectieverzoeken"; -$a->strings["Delegated Channels"] = "Uitbestede kanalen"; -$a->strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling"; -$a->strings["Return to your app and insert this Securty Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:"; -$a->strings["Please login to continue."] = "Inloggen om verder te kunnen gaan."; -$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Wil je deze applicatie toestemming geven om jouw berichten en connecties te zien, en/of nieuwe berichten voor jou te plaatsen?"; +$a->strings["Not found."] = "Niet gevonden."; +$a->strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken."; +$a->strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina."; +$a->strings["Item not available."] = "Item is niet aanwezig."; +$a->strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden."; +$a->strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres."; +$a->strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder."; +$a->strings["%s : Message delivery failed."] = "%s: Aflevering bericht mislukt."; +$a->strings["%d message sent."] = array( + 0 => "%d bericht verzonden.", + 1 => "%d berichten verzonden.", +); +$a->strings["You have no more invitations available"] = "Je hebt geen uitnodigingen meer beschikbaar"; +$a->strings["Send invitations"] = "Uitnodigingen verzenden"; +$a->strings["Enter email addresses, one per line:"] = "Voer e-mailadressen in, één per regel:"; +$a->strings["Please join my community on \$Projectname."] = "Hierbij nodig ik je uit om mij, en andere vrienden en kennissen, op \$Projectname te vergezellen. Lees meer over \$Projectname op https://redmatrix.me."; +$a->strings["You will need to supply this invitation code: "] = "Je moet deze uitnodigingscode opgeven:"; +$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registreer je op een willekeurige \$Projectname-hub (ze zijn allemaal onderling met elkaar verbonden):"; +$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Nadat je bent ingelogd en een kanaal hebt aangemaakt kan je mijn \$Projectname-kanaaladres in het zoekveld invullen:"; +$a->strings["or visit "] = "of bezoek "; +$a->strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]"; +$a->strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar."; +$a->strings["Visible to:"] = "Zichtbaar voor:"; +$a->strings["Export Channel"] = "Kanaal exporteren"; +$a->strings["Export your basic channel information to a file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new server hub, but does not contain your content."] = "Exporteer de basisinformatie van jouw kanaal naar een bestand. Dit fungeert als een back-up van jouw connecties, permissies, profiel en basisgegevens, die gebruikt kan worden om op een nieuwe hub jouw gegevens te importeren. Deze back-up bevat echter niet de inhoud van jouw kanaal."; +$a->strings["Export Content"] = "Inhoud exporteren"; +$a->strings["Export your channel information and recent content to a JSON backup that can be restored or imported to another server hub. This backs up all of your connections, permissions, profile data and several months of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin."] = "Exporteer informatie en recente inhoud van jouw kanaal naar een JSON-back-up, wat kan worden gebruikt om jouw kanaal te herstellen of te importeren op een andere hub. Dit slaat al jouw connecties, permissies, profielgegevens en enkele maanden aan inhoud van jouw kanaal op. Dit bestand kan ZEER groot worden. Wees geduldig - het kan enkele minuten duren voordat de download begint."; +$a->strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar."; +$a->strings["You may also export your posts and conversations for a particular year or month. Adjust the date in your browser location bar to select other dates. If the export fails (possibly due to memory exhaustion on your server hub), please try again selecting a more limited date range."] = "Je kan ook berichten en conversaties uit een bepaald jaar of van een bepaalde maand exporteren. Verander de datum in de adresbalk van jouw webbrowser om andere jaren en maanden te selecteren. Wanneer het exporteren mislukt (waarschijnlijk door een gebrek aan beschikbaar servergeheugen), probeer het dan nogmaals met een beperkter tijdvak."; +$a->strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld dit jaar te selecteren. "; +$a->strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Bezoek <a href=\"%1\$s\">%2\$s</a> om alle berichten van bijvoorbeeld januari dit jaar te selecteren."; +$a->strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Deze back-up-bestanden kunnen geïmporteerd of hersteld worden door op jouw hub en met jouw kanaal <a href=\"%1\$s\">%2\$s</a> te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."; +$a->strings["Item is not editable"] = "Item is niet te bewerken"; +$a->strings["Delete item?"] = "Item verwijderen?"; +$a->strings["Edit post"] = "Bericht bewerken"; +$a->strings["Channel added."] = "Kanaal toegevoegd."; +$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "We hebben een probleem ontdekt tijdens het inloggen met de OpenID die je hebt verstrekt. Controleer de ID op typefouten."; +$a->strings["The error message was:"] = "Het foutbericht was:"; +$a->strings["Authentication failed."] = "Authenticatie mislukt."; +$a->strings["Remote Authentication"] = "Authenticatie op afstand"; +$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)"; +$a->strings["Authenticate"] = "Authenticeren"; +$a->strings["Room not found"] = "Chatkanaal niet gevonden"; +$a->strings["Leave Room"] = "Chatkanaal verlaten"; +$a->strings["Delete This Room"] = "Chatkanaal verwijderen"; +$a->strings["I am away right now"] = "Ik ben momenteel afwezig"; +$a->strings["I am online"] = "Ik ben online"; +$a->strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen"; +$a->strings["New Chatroom"] = "Nieuw chatkanaal"; +$a->strings["Chatroom Name"] = "Naam chatkanaal"; +$a->strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd"; +$a->strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s"; +$a->strings["Source of Item"] = "Bron van item"; +$a->strings["Share content from Firefox to \$Projectname"] = "Deel webpagina's vanuit Firefox met "; +$a->strings["Activate the Firefox \$Projectname provider"] = "Activeer de \$Projectname-service in Firefox"; +$a->strings["Hub not found."] = "Hub niet gevonden."; $a->strings["Blocked"] = "Geblokkeerd"; $a->strings["Ignored"] = "Genegeerd"; $a->strings["Hidden"] = "Verborgen"; @@ -1942,213 +2043,121 @@ $a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; $a->strings["Edit connection"] = "Connectie bewerken"; $a->strings["Search your connections"] = "Doorzoek jouw connecties"; $a->strings["Finding: "] = "Zoeken naar: "; -$a->strings["Delete layout?"] = "Lay-out verwijderen?"; -$a->strings["Edit Layout"] = "Lay-out bewerken"; -$a->strings["Delete webpage?"] = "Webpagina verwijderen?"; -$a->strings["Page link title"] = "Titel van paginalink"; -$a->strings["Edit Webpage"] = "Webpagina bewerken"; -$a->strings["Collection created."] = "Collectie aangemaakt"; -$a->strings["Could not create collection."] = "Collectie kon niet aangemaakt worden"; -$a->strings["Collection updated."] = "Collectie bijgewerkt."; -$a->strings["Create a collection of channels."] = "Kanaalcollectie aanmaken"; -$a->strings["Collection Name: "] = "Naam collectie:"; -$a->strings["Members are visible to other channels"] = "Kanalen in deze collectie zijn zichtbaar voor andere kanalen"; -$a->strings["Collection removed."] = "Collectie verwijderd"; -$a->strings["Unable to remove collection."] = "Verwijderen collectie mislukt"; -$a->strings["Collection Editor"] = "Collectiebewerker"; -$a->strings["Members"] = "Kanalen"; -$a->strings["All Connected Channels"] = "Alle kanaalconnecties"; -$a->strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen."; -$a->strings["Continue"] = "Ga verder"; -$a->strings["Premium Channel Setup"] = "Instellen premiumkanaal "; -$a->strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan"; -$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Vul je restricties of voorwaarden in, zoals een paypal-afschrift, voorschriften voor leden, enz."; -$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Dit kanaal kan extra stappen of het accepteren van de volgende voorwaarden vereisen, voordat de connectie wordt geaccepteerd:"; -$a->strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"; -$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Door verder te gaan ga ik automatisch akkoord met alle voorwaarden en aanwijzingen op deze pagina."; -$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "; -$a->strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal"; -$a->strings["No connections."] = "Geen connecties."; -$a->strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]"; -$a->strings["Location not found."] = "Locatie niet gevonden."; -$a->strings["Location lookup failed."] = "Opzoeken locatie mislukt"; -$a->strings["Please select another location to become primary before removing the primary location."] = "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen."; -$a->strings["Syncing locations"] = "Locaties synchronizeren"; -$a->strings["No locations found."] = "Geen locaties gevonden."; -$a->strings["Manage Channel Locations"] = "Kanaallocaties beheren"; -$a->strings["Location (address)"] = "Locatie (adres)"; -$a->strings["Primary Location"] = "Primaire locatie"; -$a->strings["Drop location"] = "Locatie verwijderen"; -$a->strings["Sync now"] = "Nu synchroniseren"; -$a->strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen."; -$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wij adviseren, wanneer dit (nog) mogelijk is, de locatie te verwijderen door op de hub van de kloon in te loggen en het kanaal daar te verwijderen."; -$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Gebruik dit formulier om de locatie te verwijderen wanneer de hub van de kloon niet meer operationeel is."; +$a->strings["Documentation Search"] = "Zoek documentatie"; +$a->strings["Help:"] = "Hulp:"; +$a->strings["Not Found"] = "Niet gevonden"; +$a->strings["\$Projectname Documentation"] = "\$Projectname-documentatie"; +$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."; +$a->strings["Create a new channel"] = "Nieuw kanaal aanmaken"; +$a->strings["Current Channel"] = "Huidig kanaal"; +$a->strings["Switch to one of your channels by selecting it."] = "Activeer een van jouw andere kanalen door er op te klikken."; +$a->strings["Default Channel"] = "Standaardkanaal"; +$a->strings["Make Default"] = "Als standaard instellen"; +$a->strings["%d new messages"] = "%d nieuwe berichten"; +$a->strings["%d new introductions"] = "%d nieuwe connectieverzoeken"; +$a->strings["Delegated Channels"] = "Uitbestede kanalen"; +$a->strings["Unable to update menu."] = "Niet in staat om menu aan te passen"; +$a->strings["Unable to create menu."] = "Niet in staat om menu aan te maken."; +$a->strings["Menu Name"] = "Menunaam"; +$a->strings["Unique name (not visible on webpage) - required"] = "Unieke naam vereist (niet zichtbaar op webpagina)"; +$a->strings["Menu Title"] = "Menutitel"; +$a->strings["Visible on webpage - leave empty for no title"] = "Zichtbaar op webpagina (leeg laten voor geen titel)"; +$a->strings["Allow Bookmarks"] = "Bladwijzers toestaan"; +$a->strings["Menu may be used to store saved bookmarks"] = "Menu kan gebruikt worden om bladwijzers in op te slaan"; +$a->strings["Submit and proceed"] = "Opslaan en doorgaan"; +$a->strings["Drop"] = "Verwijderen"; +$a->strings["Bookmarks allowed"] = "Bladwijzers toegestaan"; +$a->strings["Delete this menu"] = "Menu verwijderen"; +$a->strings["Edit menu contents"] = "Bewerk de inhoud van het menu"; +$a->strings["Edit this menu"] = "Dit menu bewerken"; +$a->strings["Menu could not be deleted."] = "Menu kon niet verwijderd worden."; +$a->strings["Menu not found."] = "Menu niet gevonden."; +$a->strings["Edit Menu"] = "Menu bewerken"; +$a->strings["Add or remove entries to this menu"] = "Items aan dit menu toevoegen of verwijder"; +$a->strings["Menu name"] = "Naam van menu"; +$a->strings["Must be unique, only seen by you"] = "Moet uniek zijn en is alleen zichtbaar voor jou."; +$a->strings["Menu title"] = "Titel van menu"; +$a->strings["Menu title as seen by others"] = "Titel van menu zoals anderen dat zien."; +$a->strings["Allow bookmarks"] = "Bladwijzers toestaan"; $a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen."; -$a->strings["Share content from Firefox to \$Projectname"] = "Deel webpagina's vanuit Firefox met "; -$a->strings["Activate the Firefox \$Projectname provider"] = "Activeer de \$Projectname-service in Firefox"; -$a->strings["\$Projectname Server - Setup"] = "\$Projectname Server - Setup"; -$a->strings["Could not connect to database."] = "Could not connect to database."; -$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Could not connect to specified hub URL. Possible SSL certificate or DNS issue."; -$a->strings["Could not create table."] = "Could not create table."; -$a->strings["Your site database has been installed."] = "Your hub database has been installed."; -$a->strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "You may need to import the file \"install/schema_xxx.sql\" manually using a database client."; -$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\"."; -$a->strings["System check"] = "System check"; -$a->strings["Check again"] = "Check again"; -$a->strings["Database connection"] = "Database connection"; -$a->strings["In order to install \$Projectname we need to know how to connect to your database."] = "In order to install \$Projectname we need to know how to connect to your database."; -$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings."; -$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "The database you specify below should already exist. If it does not, please create it before continuing."; -$a->strings["Database Server Name"] = "Database Server Name"; -$a->strings["Default is 127.0.0.1"] = "Default is 127.0.0.1"; -$a->strings["Database Port"] = "Database Port"; -$a->strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default"; -$a->strings["Database Login Name"] = "Database Login Name"; -$a->strings["Database Login Password"] = "Database Login Password"; -$a->strings["Database Name"] = "Database Name"; -$a->strings["Database Type"] = "Database Type"; -$a->strings["Site administrator email address"] = "Hub administrator email address"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; -$a->strings["Website URL"] = "Hub URL"; -$a->strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available."; -$a->strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub"; -$a->strings["Site settings"] = "Hub settings"; -$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Could not find a command line version of PHP in the web server PATH."; -$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."; -$a->strings["PHP executable path"] = "PHP executable path"; -$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Enter full path to php executable. You can leave this blank to continue the installation."; -$a->strings["Command line PHP"] = "Command line PHP"; -$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "The command line version of PHP on your system does not have \"register_argc_argv\" enabled."; -$a->strings["This is required for message delivery to work."] = "This is required for message delivery to work."; -$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -$a->strings["Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."] = "Your max allowed total upload size is set to %s. Maximum size of one file to upload is set to %s. You are allowed to upload up to %d files at once."; -$a->strings["You can adjust these settings in the servers php.ini."] = "You can adjust these settings in the servers php.ini."; -$a->strings["PHP upload limits"] = "PHP upload limits"; -$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"; -$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."; -$a->strings["Generate encryption keys"] = "Generate encryption keys"; -$a->strings["libCurl PHP module"] = "libCurl PHP module"; -$a->strings["GD graphics PHP module"] = "GD graphics PHP module"; -$a->strings["OpenSSL PHP module"] = "OpenSSL PHP module"; -$a->strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module"; -$a->strings["mb_string PHP module"] = "mb_string PHP module"; -$a->strings["mcrypt PHP module"] = "mcrypt PHP module"; -$a->strings["xml PHP module"] = "xml PHP module"; -$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; -$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed."; -$a->strings["proc_open"] = "proc_open"; -$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Error: proc_open is required but is either not installed or has been disabled in php.ini"; -$a->strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed."; -$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Error: GD graphics PHP module with JPEG support required but not installed."; -$a->strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed."; -$a->strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed."; -$a->strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed."; -$a->strings["Error: mcrypt PHP module required but not installed."] = "Error: mcrypt PHP module required but not installed."; -$a->strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed."; -$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."; -$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."; -$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."; -$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."; -$a->strings[".htconfig.php is writable"] = ".htconfig.php is writable"; -$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."; -$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the Red top level folder."; -$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."; -$a->strings["Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to %s only--not the template files (.tpl) that it contains."; -$a->strings["%s is writable"] = "%s is writable"; -$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"; -$a->strings["store is writable"] = "store is writable"; -$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "SSL certificate cannot be validated. Fix certificate or disable https access to this hub."; -$a->strings["If you have https access to your website or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"] = "If you have https access to your hub or allow connections to TCP port 443 (the https: port), you MUST use a browser-valid certificate. You MUST NOT use self-signed certificates!"; -$a->strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "This restriction is incorporated because public posts from you may for example contain references to images on your own hub."; -$a->strings["If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues."] = "If your certificate is not recognized, members of other hubs (who may themselves have valid certificates) will get a warning message on their own hub complaining about security issues."; -$a->strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "This can cause usability issues elsewhere (not just on your own hub) so we must insist on this requirement."; -$a->strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid."; -$a->strings["SSL certificate validation"] = "SSL certificate validation"; -$a->strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Url rewrite in .htaccess is not working. Check your server configuration.Test: "; -$a->strings["Url rewrite is working"] = "Url rewrite is working"; -$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."; -$a->strings["Errors encountered creating database tables."] = "Errors encountered creating database tables."; -$a->strings["<h1>What next</h1>"] = "<h1>Wat nu</h1>"; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the poller."; -$a->strings["Files: shared with me"] = "Bestanden: met mij gedeeld"; -$a->strings["NEW"] = "NIEUW"; -$a->strings["Remove all files"] = "Verwijder alle bestanden"; -$a->strings["Remove this file"] = "Verwijder dit bestand"; +$a->strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden."; +$a->strings["Version %s"] = "Versie %s"; +$a->strings["Installed plugins/addons/apps:"] = "Ingeschakelde plug-ins/add-ons/apps:"; +$a->strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plug-ins/add-ons/apps"; +$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Dit is een \$Projectname-hub - \$Projectname is een wereldwijd coöperatief netwerk van gedecentraliseerde websites (hubs) met verbeterde privacy."; +$a->strings["Tag: "] = "Tag: "; +$a->strings["Last background fetch: "] = "Meest recente achtergrond-fetch:"; +$a->strings["Current load average: "] = "Gemiddelde systeembelasting is nu:"; +$a->strings["Running at web location"] = "Draaiend op weblocatie"; +$a->strings["Please visit <a href=\"http://hubzilla.org\">hubzilla.org</a> to learn more about \$Projectname."] = "Bezoek <a href=\"http://hubzilla.org\">hubzilla.org</a> "; +$a->strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek"; +$a->strings["\$projectname issues"] = "\$projectname-issues"; +$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"; +$a->strings["Site Administrators"] = "Hubbeheerders: "; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probeer het dan over 24 uur weer."; -$a->strings["Profile not found."] = "Profiel niet gevonden."; -$a->strings["Profile deleted."] = "Profiel verwijderd."; -$a->strings["Profile-"] = "Profiel-"; -$a->strings["New profile created."] = "Nieuw profiel aangemaakt."; -$a->strings["Profile unavailable to clone."] = "Profiel niet beschikbaar om te klonen"; -$a->strings["Profile unavailable to export."] = "Geen profiel beschikbaar om te exporteren"; -$a->strings["Profile Name is required."] = "Profielnaam is vereist"; -$a->strings["Marital Status"] = "Huwelijke status"; -$a->strings["Romantic Partner"] = "Romantische partner"; -$a->strings["Likes"] = "Houdt van"; -$a->strings["Dislikes"] = "Houdt niet van"; -$a->strings["Work/Employment"] = "Werk/arbeid"; -$a->strings["Religion"] = "Religie"; -$a->strings["Political Views"] = "Politieke overtuigingen"; -$a->strings["Sexual Preference"] = "Seksuele voorkeur"; -$a->strings["Homepage"] = "Homepage"; -$a->strings["Interests"] = "Interesses"; -$a->strings["Profile updated."] = "Profiel bijgewerkt"; -$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Laat de lijst met connecties niet aan bezoekers van dit profiel zien."; -$a->strings["Edit Profile Details"] = "Profiel bewerken"; -$a->strings["View this profile"] = "Profiel weergeven"; -$a->strings["Change Profile Photo"] = "Profielfoto wijzigen"; -$a->strings["Create a new profile using these settings"] = "Een nieuw profiel aanmaken met dit profiel als basis"; -$a->strings["Clone this profile"] = "Dit profiel klonen"; -$a->strings["Delete this profile"] = "Dit profiel verwijderen"; -$a->strings["Import profile from file"] = "Profiel vanuit bestand importeren"; -$a->strings["Export profile to file"] = "Profiel naar bestand exporteren"; -$a->strings["Profile Name:"] = "Profielnaam:"; -$a->strings["Your Full Name:"] = "Jouw volledige naam:"; -$a->strings["Title/Description:"] = "Titel/omschrijving:"; -$a->strings["Your Gender:"] = "Jouw geslacht"; -$a->strings["Birthday :"] = "Verjaardag: "; -$a->strings["Street Address:"] = "Straat en huisnummer:"; -$a->strings["Locality/City:"] = "Woonplaats:"; -$a->strings["Postal/Zip Code:"] = "Postcode:"; -$a->strings["Country:"] = "Land:"; -$a->strings["Region/State:"] = "Provincie/gewest/deelstaat:"; -$a->strings["<span class=\"heart\">♥</span> Marital Status:"] = "<span class=\"heart\">♥</span> Huwelijkse staat:"; -$a->strings["Who: (if applicable)"] = "Wie (wanneer toepasselijk):"; -$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl"; -$a->strings["Since [date]:"] = "Sinds [datum]:"; -$a->strings["Homepage URL:"] = "Adres homepage:"; -$a->strings["Religious Views:"] = "Religieuze overtuigingen"; -$a->strings["Keywords:"] = "Trefwoorden"; -$a->strings["Example: fishing photography software"] = "Voorbeeld: muziek, fotografie, software"; -$a->strings["Used in directory listings"] = "Wordt in de kanalengids gebruikt"; -$a->strings["Tell us about yourself..."] = "Vertel ons iets over jezelf..."; -$a->strings["Hobbies/Interests"] = "Hobby's/interesses"; -$a->strings["Contact information and Social Networks"] = "Contactinformatie en sociale netwerken"; -$a->strings["My other channels"] = "Mijn andere kanalen"; -$a->strings["Musical interests"] = "Muzikale interesses"; -$a->strings["Books, literature"] = "Boeken/literatuur"; -$a->strings["Television"] = "Televisie"; -$a->strings["Film/dance/culture/entertainment"] = "Film/dans/cultuur/entertainment"; -$a->strings["Love/romance"] = "Liefde/romantiek"; -$a->strings["Work/employment"] = "Werk/arbeid"; -$a->strings["School/education"] = "School/onderwijs"; -$a->strings["This is your default profile."] = "Dit is jouw standaardprofiel"; -$a->strings["Age: "] = "Leeftijd:"; -$a->strings["Edit/Manage Profiles"] = "Profielen bewerken/beheren"; -$a->strings["Add profile things"] = "Dingen aan je profiel toevoegen"; -$a->strings["Include desirable objects in your profile"] = "Voeg door jou gewenste dingen aan jouw profiel toe"; +$a->strings["Calendar entries imported."] = "Agenda-items geïmporteerd."; +$a->strings["No calendar entries found."] = "Geen agenda-items gevonden."; +$a->strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen"; +$a->strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren"; +$a->strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist."; +$a->strings["Event not found."] = "Gebeurtenis niet gevonden"; +$a->strings["Event Title"] = "Titel"; +$a->strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)"; +$a->strings["Category"] = "Categorie"; +$a->strings["Start date and time"] = "Begindatum en -tijd"; +$a->strings["Finish date and time are not known or not relevant"] = "Einddatum en -tijd zijn niet bekend of niet van toepassing"; +$a->strings["Finish date and time"] = "Einddatum en -tijd"; +$a->strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"; +$a->strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Belangrijk voor gebeurtenissen die op een bepaalde locatie plaatsvinden. Niet praktisch voor wereldwijde feestdagen."; +$a->strings["Share this event"] = "Deel deze gebeurtenis"; +$a->strings["Advanced Options"] = "Geavenceerde opties"; +$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["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["Invalid profile identifier."] = "Ongeldige profiel-identificator"; $a->strings["Profile Visibility Editor"] = "Zichtbaarheid profiel "; $a->strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen"; $a->strings["Visible To"] = "Zichtbaar voor"; -$a->strings["Select a bookmark folder"] = "Kies een bladwijzermap"; -$a->strings["Save Bookmark"] = "Bladwijzer opslaan"; -$a->strings["URL of bookmark"] = "URL van bladwijzer"; -$a->strings["Or enter new bookmark folder name"] = "Of geef de naam op van een nieuwe bladwijzermap"; -$a->strings["Import completed"] = "Importeren voltooid"; -$a->strings["Import Items"] = "Importeer items"; -$a->strings["Use this form to import existing posts and content from an export file."] = "Gebruik dit formulier om bestaande berichten en andere inhoud vanuit een exportbestand te importeren."; +$a->strings["Unable to create element."] = "Niet in staat om onderdeel aan te maken."; +$a->strings["Unable to update menu element."] = "Menu-onderdeel kan niet worden geüpdatet."; +$a->strings["Unable to add menu element."] = "Menu-onderdeel kan niet worden toegevoegd."; +$a->strings["Menu Item Permissions"] = "Permissies menu-item"; +$a->strings["Link Name"] = "Linknaam"; +$a->strings["Link or Submenu Target"] = "Linkdoel of submenu-doel"; +$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Geef de URL van de link of kies een menunaam om een submenu aan te maken"; +$a->strings["Use magic-auth if available"] = "Gebruik magic-auth wanneer beschikbaar"; +$a->strings["Open link in new window"] = "Open link in nieuw venster"; +$a->strings["Order in list"] = "Volgorde in lijst"; +$a->strings["Higher numbers will sink to bottom of listing"] = "Hogere nummers komen onderaan de lijst terecht"; +$a->strings["Submit and finish"] = "Opslaan en afsluiten"; +$a->strings["Submit and continue"] = "Opslaan en doorgaan"; +$a->strings["Menu:"] = "Menu:"; +$a->strings["Link Target"] = "Linkdoel"; +$a->strings["Edit menu"] = "Menu bewerken"; +$a->strings["Edit element"] = "Onderdeel bewerken"; +$a->strings["Drop element"] = "Onderdeel verwijderen"; +$a->strings["New element"] = "Nieuw element"; +$a->strings["Edit this menu container"] = "Deze menu-container bewerken"; +$a->strings["Add menu element"] = "Menu-element toevoegen"; +$a->strings["Delete this menu item"] = "Dit menu-item verwijderen"; +$a->strings["Edit this menu item"] = "Dit menu-item bewerken"; +$a->strings["Menu item not found."] = "Menu-item niet gevonden."; +$a->strings["Menu item deleted."] = "Menu-item verwijderd."; +$a->strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd."; +$a->strings["Edit Menu Element"] = "Menu-element bewerken"; +$a->strings["Link text"] = "Linktekst"; $a->strings["Who likes me?"] = "Wie vindt mij leuk?"; +$a->strings["Files: shared with me"] = "Bestanden: met mij gedeeld"; +$a->strings["NEW"] = "NIEUW"; +$a->strings["Remove all files"] = "Verwijder alle bestanden"; +$a->strings["Remove this file"] = "Verwijder dit bestand"; +$a->strings["No connections."] = "Geen connecties."; +$a->strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]"; $a->strings["Focus (Hubzilla default)"] = "Focus (Hubzilla-standaard)"; $a->strings["Theme settings"] = "Thema-instellingen"; $a->strings["Select scheme"] = "Kies schema van thema"; diff --git a/view/pdl/mod_events.pdl b/view/pdl/mod_events.pdl index 5a9763297..a3bc0c019 100644 --- a/view/pdl/mod_events.pdl +++ b/view/pdl/mod_events.pdl @@ -1,3 +1,5 @@ [region=aside] +[widget=eventsmenu][/widget] +[widget=eventstools][/widget] [widget=tasklist][/widget] [/region] diff --git a/view/theme/redbasic/css/narrow_navbar.css b/view/theme/redbasic/css/narrow_navbar.css index f403fabbf..9d14beb33 100644 --- a/view/theme/redbasic/css/narrow_navbar.css +++ b/view/theme/redbasic/css/narrow_navbar.css @@ -8,7 +8,7 @@ min-height:25px !important; } - nav img { + nav .navbar-header img { height: 30px; width: 30px; margin-top: 1px; @@ -49,7 +49,6 @@ top: -31px; float: right; font-size: 10px; - padding: 2px 6px; cursor: pointer; } diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index d981a38b9..d76992b2f 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -241,7 +241,8 @@ footer { padding-right: 3em; } -.birthday-today, .event-today { +.birthday-today, +.event-today { font-weight: bold; } @@ -785,6 +786,7 @@ a.rateme, div.rateme { #nav-search-text { font-size: 12px; + width: 200px; height: 20px; margin: 15px; padding: 0px 5px 0px 5px; @@ -847,121 +849,6 @@ nav .acpopup { cursor: pointer; } -.eventcal { - float: left; - font-size: 20px; -} - -#event-summary-text { - margin-top: 15px; -} - -#event-share-checkbox { - float: left; - margin-top: 10px; -} - -#event-share-text { - float: left; - margin-top: 10px; - margin-left: 5px; -} - -#event-share-break { - clear: both; - margin-bottom: 10px; -} - -.event-wrapper { - width: 400px; - height: auto; - padding: 10px; -} - -.vevent { - max-width: 100%; - margin: 10px; - padding: 10px; - border: 1px solid #CCCCCC; -} - -.vevent .event-summary { - margin: 10px; - font-weight: bold; -} - -.vevent .event-description, .vevent .event-location { - margin-left: 10px; - margin-right: 10px; -} -.vevent .event-start { - margin-left: 10px; - margin-right: 10px; -} - -#new-event-link { - margin-bottom: 10px; -} - -.edit-event-link, .plink-event-link, .drop-event-link { - float: left; - margin-top: 4px; - margin-right: 4px; - margin-bottom: 15px; -} - -.event-description:before { - content: url('../../../../images/calendar.png'); - margin-right: 15px; -} - -.event-start, .event-end { - margin-left: 10px; - width: 300px; - clear: both; -} - -.event-owner img { - padding: 10px; -} - -.event-buttons { - margin-top: 10px; - margin-left: 10px; -} - -.event-start .dtstart, .event-end .dtend { - float: right; - margin-right: 10px; -} - -.event-list-date { - margin-bottom: 10px; -} - -.prevcal, .nextcal { - float: left; - margin-left: 32px; - margin-right: 32px; - margin-top: 64px; -} -.event-calendar-end { - clear: both; -} - - -.calendar { - font-family: Courier, monospace; -} -.today { - font-weight: bold; - color: #FF0000; -} - -.fc-state-highlight { - background: none repeat scroll 0% 0% #FCF8E3 !important; -} - #cboxOverlay { z-index: 1050; } @@ -1117,31 +1004,6 @@ nav .acpopup { color: #ff0000; } - -#event-start-text, #event-finish-text { - margin-top: 10px; - margin-bottom: 5px; -} - -#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { - float: left; -} -#event-datetime-break { - margin-bottom: 10px; -} - -#event-nofinish-break, #event-adjust-break { - clear: both; -} - -#event-desc-text, #event-location-text { - margin-top: 15px; - margin-bottom: 5px; -} -#event-submit { - margin-top: 10px; -} - #item-delete-selected { margin-top: 30px; } @@ -1328,6 +1190,7 @@ a.rconnect:hover, a.rateme:hover, div.rateme:hover { .contactname { padding-top: 2px; font-weight: bold; + line-height: 1em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -1335,7 +1198,7 @@ a.rconnect:hover, a.rateme:hover, div.rateme:hover { } .dropdown-sub-text { - font-size: 0.833em; + line-height: 1em; overflow: hidden; text-overflow: ellipsis; display: block; @@ -1639,8 +1502,12 @@ img.mail-conv-sender-photo { padding: 0.5em 10px; } -.wall-photo-item { - /*padding: 0.5em 10px;*/ +.wall-event-item { + padding: 10px; + color: #fff; + background-color: #3A87AD; /* should reflect calendar color */ + border-top-left-radius: $radiuspx; + border-top-right-radius: $radiuspx; } .wall-photo-item img { @@ -1720,7 +1587,8 @@ img.mail-conv-sender-photo { box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; } -.wall-item-ago { +.wall-item-ago, +.dropdown-sub-text { color: #777; font-size: 0.833em; } @@ -1854,6 +1722,26 @@ nav .dropdown-menu { border-bottom-left-radius: $radiuspx; } +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:focus, +.dropdown-menu > .active > a:hover { + color: #333; + background-color: #f5f5f5; +} + +.dropdown-menu-img-sm { + float: left; + width: 36px; + height: 36px; + margin-right: 5px; +} + +.dropdown-menu-img-xs { + height: 18px; + width: 18px; + margin-right: 5px; +} + #usermenu-caret { color: $nav_icon_colour; } @@ -2111,8 +1999,6 @@ nav .badge.mail-update:hover { #tabs-collapse-1 { padding: 0px; margin-bottom: 25px; - border-top: none; - box-shadow: none; } .btn { @@ -2315,7 +2201,3 @@ nav .badge.mail-update:hover { .help-searchlist a { font-size: 130%; } - -.response-list ul { - list-style-type: none; -} diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css index 2c6f34558..0eb3dab1f 100644 --- a/view/theme/redbasic/schema/bluegrid.css +++ b/view/theme/redbasic/schema/bluegrid.css @@ -110,7 +110,7 @@ input#jot-title:hover, input#jot-title:focus { border-color: transparent; } -nav .dropdown-menu, .wall-item-tools .dropdown-menu, .section-title-wrapper .dropdown-menu { +nav .dropdown-menu, .wall-item-tools .dropdown-menu, .section-title-wrapper .dropdown-menu, .section-content-wrapper .dropdown-menu { background-color: rgba(67,72,138,.97); color: #fff; border-radius: 0; @@ -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; } @@ -299,7 +303,7 @@ input { border: 1px solid rgba(255,255,255,.5); } -.contact-entry-edit a:hover, .contact-entry-edit a:focus, .generic-content-wrapper-styled > p > span.btn.btn-default > a:hover,.generic-content-wrapper-styled > p > span.btn.btn-default > a:focus, div#profile-edit-links a:hover, div#profile-edit-links a:focus { +.contact-entry-edit:hover a, .contact-entry-edit:focus a, .generic-content-wrapper-styled > p > span.btn.btn-default > a:hover,.generic-content-wrapper-styled > p > span.btn.btn-default > a:focus, div#profile-edit-links a:hover, div#profile-edit-links a:focus { color: #43488A; } @@ -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 { +.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 { +.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/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css index 20f9e0833..936f74761 100644 --- a/view/theme/redbasic/schema/dark.css +++ b/view/theme/redbasic/schema/dark.css @@ -88,6 +88,10 @@ background-color: #111; } +.jotnets-wrapper > a.btn { + font-weight: 400 !important; +} + .btn { background-color: #1e1e1e; border-color: #222; diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl index a873457fe..013f3f296 100755 --- a/view/tpl/acl_selector.tpl +++ b/view/tpl/acl_selector.tpl @@ -8,11 +8,11 @@ <div class="modal-body"> {{if $jotnets}} <div class="jotnets-wrapper" role="tab" id="jotnets-wrapper"> - <a data-toggle="collapse" class="btn btn-block btn-default" href="#jotnets-collapse" aria-expanded="false" aria-controls="jotnets-collapse">{{$jnetModalTitle}} <span class="caret"></span></a> - </div> + <a data-toggle="collapse" class="btn btn-block btn-default" href="#jotnets-collapse" aria-expanded="false" aria-controls="jotnets-collapse">{{$jnetModalTitle}} <span class="caret"></span></a> + </div> <div id="jotnets-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="acl-select"> - {{$jotnets}} - <div class="clear"></div> + {{$jotnets}} + <div class="clear"></div> </div> {{/if}} @@ -41,14 +41,10 @@ </div><!-- /.modal --> <script> -//$(document).ready(function() { -// setTimeout( function () { - if(typeof acl=="undefined"){ - acl = new ACL( - baseurl+"/acl", - [ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ] - ); - } -// }, 5000 ); -//}); + if(typeof acl=="undefined"){ + acl = new ACL( + baseurl+"/acl", + [ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ] + ); + } </script> diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 0d375400c..08f0d4fbe 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -13,6 +13,11 @@ {{$item.photo}} </div> {{/if}} + {{if $item.event}} + <div class="wall-event-item" id="wall-event-item-{{$item.id}}"> + {{$item.event}} + </div> + {{/if}} <div class="wall-item-head"> <div class="wall-item-info" id="wall-item-info-{{$item.id}}" > <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"> @@ -143,7 +148,7 @@ <li role="presentation" class="divider"></li> {{$item.item_photo_menu}} - {{if $item.edpost}} + {{if $item.edpost && $item.dreport}} <li role="presentation"><a role="menuitem" href="dreport/{{$item.mid}}">{{$item.dreport}}</a></li> {{/if}} @@ -178,7 +183,7 @@ <h4 class="modal-title">{{$response.title}}</h4> </div> <div class="modal-body response-list"> - <ul>{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul> + <ul class="nav nav-pills nav-stacked">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul> </div> <div class="modal-footer clear"> <button type="button" class="btn btn-default" data-dismiss="modal">{{$item.modal_dismiss}}</button> diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl index 53f65bc78..cf1310ea6 100755 --- a/view/tpl/conv_list.tpl +++ b/view/tpl/conv_list.tpl @@ -13,6 +13,11 @@ {{$item.photo}} </div> {{/if}} + {{if $item.event}} + <div class="wall-event-item" id="wall-event-item-{{$item.id}}"> + {{$item.event}} + </div> + {{/if}} <div class="wall-item-head"> <div class="wall-item-info" id="wall-item-info-{{$item.id}}" > <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"> diff --git a/view/tpl/event.tpl b/view/tpl/event.tpl index 5dfc91ebe..3fc2063ef 100755 --- a/view/tpl/event.tpl +++ b/view/tpl/event.tpl @@ -1,16 +1,16 @@ {{foreach $events as $event}} <div class="event-wrapper"> - <div class="event"> - <div class="event-owner"> - {{if $event.item.author.xchan_name}}<a href="{{$event.item.author.xchan_url}}" ><img src="{{$event.item.author.xchan_photo_s}}" height="64" width="64" />{{$event.item.author.xchan_name}}</a>{{/if}} - </div> - {{$event.html}} - <div class="event-buttons"> - {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link"><i class="icon-external-link btn btn-default" ></i></a>{{/if}} - {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="edit-event-link"><i class="icon-pencil btn btn-default"></i></a>{{/if}} - {{if $event.drop}}<a href="{{$event.drop.0}}" title="{{$event.drop.1}}" class="drop-event-link"><i class="icon-trash btn btn-default"></i></a>{{/if}} - </div> - </div> - <div class="clear"></div> + <div class="event"> + <div class="event-owner"> + {{if $event.item.author.xchan_name}}<a href="{{$event.item.author.xchan_url}}" ><img src="{{$event.item.author.xchan_photo_s}}">{{$event.item.author.xchan_name}}</a>{{/if}} + </div> + {{$event.html}} + <div class="event-buttons"> + {{if $event.item.plink}}<a href="{{$event.plink.0}}" title="{{$event.plink.1}}" class="plink-event-link"><i class="icon-external-link btn btn-default" ></i></a>{{/if}} + {{if $event.edit}}<a href="{{$event.edit.0}}" title="{{$event.edit.1}}" class="edit-event-link"><i class="icon-pencil btn btn-default"></i></a>{{/if}} + {{if $event.drop}}<a href="{{$event.drop.0}}" title="{{$event.drop.1}}" class="drop-event-link"><i class="icon-trash btn btn-default"></i></a>{{/if}} + </div> + <div class="clear"></div> + </div> </div> {{/foreach}} diff --git a/view/tpl/event_form.tpl b/view/tpl/event_form.tpl index 15505397b..31e18caeb 100755 --- a/view/tpl/event_form.tpl +++ b/view/tpl/event_form.tpl @@ -1,177 +1,123 @@ -<div class="generic-content-wrapper-styled"> - -<h3>{{$title}}</h3> - -<p> -{{$desc}} -</p> - <form id="event-edit-form" action="{{$post}}" method="post" > -<input type="hidden" name="event_id" value="{{$eid}}" /> -<input type="hidden" name="event_hash" value="{{$event_hash}}" /> -<input type="hidden" name="xchan" value="{{$xchan}}" /> -<input type="hidden" name="mid" value="{{$mid}}" /> -<input type="hidden" name="type" value="{{$type}}" /> -<input type="hidden" name="preview" id="event-edit-preview" value="0" /> - -<div id="event-summary-text">{{$t_text}}</div> -<input type="text" id="event-summary" name="summary" value="{{$t_orig}}" />{{$required}} - -<div class="clear"></div> - -<div id="event-start-text">{{$s_text}}</div> - -{{$s_dsel}} - -<div class="clear"></div><br /> - - <div class='field checkbox'> - <label class="mainlabel" for='id_nofinish'>{{$n_text}}</label> - <div class="pull-right"><input type="checkbox" name='nofinish' id='id_nofinish' value="1" {{$n_checked}} onclick="showHideFinishDate(); return true;" > - <label class="switchlabel" for='id_nofinish'> <span class="onoffswitch-inner" data-on='' data-off='' ></span> - <span class="onoffswitch-switch"></span> </label></div><span class='field_help'></span> - </div> - -<div id="event-nofinish-break"></div> - -<div id="event-finish-wrapper"> -<div id="event-finish-text">{{$f_text}}</div> -{{$f_dsel}} -</div> - -<div id="event-datetime-break"></div> - -{{include file="field_checkbox.tpl" field=$adjust}} - -<div id="event-adjust-break"></div> - - - -{{if $catsenabled}} -<div id="event-category-wrap"> - <input name="category" id="event-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="event-cats" style="display: block;" data-role="cat-tagsinput" /> -</div> -{{/if}} - - - -<div id="event-desc-text">{{$d_text}}</div> - -<textarea id="comment-edit-text-desc" class="comment-edit-text-full" name="desc" >{{$d_orig}}</textarea> -<div class="clear"></div> -<div id="comment-tools-desc" class="comment-tools" style="display: block;" > - <div id="comment-edit-bb-desc" class="btn-toolbar pull-left"> - <div class='btn-group'> - <button class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('{{$comment}}','b', 'desc'); return false;"> - <i class="icon-bold comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('{{$comment}}','i', 'desc'); return false;"> - <i class="icon-italic comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('{{$comment}}','u', 'desc'); return false;"> - <i class="icon-underline comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('{{$comment}}','quote','desc'); return false;"> - <i class="icon-quote-left comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('{{$comment}}','code', 'desc'); return false;"> - <i class="icon-terminal comment-icon"></i> - </button> - </div> - - <div class='btn-group'> - <button class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('{{$comment}}','img', 'desc'); return false;"> - <i class="icon-camera comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('{{$comment}}','url', 'desc'); return false;"> - <i class="icon-link comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('{{$comment}}','video', 'desc'); return false;"> - <i class="icon-facetime-video comment-icon"></i> - </button> + <input type="hidden" name="event_id" value="{{$eid}}" /> + <input type="hidden" name="event_hash" value="{{$event_hash}}" /> + <input type="hidden" name="xchan" value="{{$xchan}}" /> + <input type="hidden" name="mid" value="{{$mid}}" /> + <input type="hidden" name="type" value="{{$type}}" /> + <input type="hidden" name="preview" id="event-edit-preview" value="0" /> + + + {{include file="field_input.tpl" field=$summary}} + + {{$s_dsel}} + + {{$f_dsel}} + + {{include file="field_checkbox.tpl" field=$nofinish}} + + <div id="advanced" style="display:none"> + + {{include file="field_checkbox.tpl" field=$adjust}} + + {{if $catsenabled}} + <div id="event-category-text"><b>{{$c_text}}</b></div> + <div id="events-category-wrap"> + <input name="category" id="event-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" data-role="cat-tagsinput" /> + </div> + {{/if}} + + <div class="form-group"> + <div id="event-desc-text"><b>{{$d_text}}</b></div> + <textarea id="comment-edit-text-desc" class="form-control" name="desc" >{{$d_orig}}</textarea> + <div id="comment-tools-desc" class="comment-tools" style="display: block;" > + <div id="comment-edit-bb-desc" class="btn-toolbar"> + <div class='btn-group'> + <button type="button" class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('none','b', 'desc');"> + <i class="icon-bold comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('none','i', 'desc');"> + <i class="icon-italic comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('none','u', 'desc');"> + <i class="icon-underline comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('none','quote','desc');"> + <i class="icon-quote-left comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('none','code', 'desc');"> + <i class="icon-terminal comment-icon"></i> + </button> + </div> + <div class='btn-group'> + <button type="button" class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('none','img', 'desc');"> + <i class="icon-camera comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('none','url', 'desc');"> + <i class="icon-link comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('none','video', 'desc');"> + <i class="icon-facetime-video comment-icon"></i> + </button> + </div> + </div> + </div> + </div> + <div class="form-group"> + <div id="event-location-text"><b>{{$l_text}}</b></div> + <textarea id="comment-edit-text-loc" class="form-control" name="location">{{$l_orig}}</textarea> + <div id="comment-tools-loc" class="comment-tools" style="display: block;" > + <div id="comment-edit-bb-loc" class="btn-toolbar"> + <div class='btn-group'> + <button type="button" class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('none','b', 'loc');"> + <i class="icon-bold comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('none','i', 'loc');"> + <i class="icon-italic comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('none','u', 'loc');"> + <i class="icon-underline comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('none','quote','loc');"> + <i class="icon-quote-left comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('none','code', 'loc');"> + <i class="icon-terminal comment-icon"></i> + </button> + </div> + <div class='btn-group'> + <button type="button" class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('none','img', 'loc');"> + <i class="icon-camera comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('none','url', 'loc');"> + <i class="icon-link comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('none','video', 'loc');"> + <i class="icon-facetime-video comment-icon"></i> + </button> + <button type="button" class="btn btn-default btn-xs" title="{{$mapper}}" onclick="insertbbcomment('none','map','loc');"> + <i class="icon-globe comment-icon"></i> + </button> + </div> + + </div> + </div> + </div> </div> - - </div> -</div> - -<div class="clear"></div> -<div id="event-location-text">{{$l_text}}</div> + {{if ! $eid}} + {{include file="field_checkbox.tpl" field=$share}} + {{$acl}} + {{/if}} -<textarea id="comment-edit-text-loc" class="comment-edit-text-full" name="location">{{$l_orig}}</textarea> + <div class="clear"></div> -<div class="clear"></div> -<div id="comment-tools-loc" class="comment-tools" style="display: block;" > - <div id="comment-edit-bb-loc" class="btn-toolbar pull-left"> - <div class='btn-group'> - <button class="btn btn-default btn-xs" title="{{$edbold}}" onclick="insertbbcomment('{{$comment}}','b', 'loc'); return false;"> - <i class="icon-bold comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$editalic}}" onclick="insertbbcomment('{{$comment}}','i', 'loc'); return false;"> - <i class="icon-italic comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$eduline}}" onclick="insertbbcomment('{{$comment}}','u', 'loc'); return false;"> - <i class="icon-underline comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edquote}}" onclick="insertbbcomment('{{$comment}}','quote','loc'); return false;"> - <i class="icon-quote-left comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edcode}}" onclick="insertbbcomment('{{$comment}}','code', 'loc'); return false;"> - <i class="icon-terminal comment-icon"></i> - </button> - </div> - - <div class='btn-group'> - <button class="btn btn-default btn-xs" title="{{$edimg}}" onclick="insertbbcomment('{{$comment}}','img', 'loc'); return false;"> - <i class="icon-camera comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edurl}}" onclick="insertbbcomment('{{$comment}}','url', 'loc'); return false;"> - <i class="icon-link comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$edvideo}}" onclick="insertbbcomment('{{$comment}}','video', 'loc'); return false;"> - <i class="icon-facetime-video comment-icon"></i> - </button> - <button class="btn btn-default btn-xs" title="{{$mapper}}" onclick="insertbbcomment('{{$comment}}','map','loc'); return false;"> - <i class="icon-globe comment-icon"></i> - </button> + <button type="button" class="btn btn-default" onclick="openClose('advanced');">{{$advanced}}</button> + <div class="btn-group pull-right"> + <button id="event-edit-preview-btn" class="btn btn-default" type="button" title="{{$preview}}" onclick="doEventPreview();"><i class="icon-eye-open" ></i></button> + {{if ! $eid}} + <button id="dbtn-acl" class="btn btn-default" type="button" data-toggle="modal" data-target="#aclModal" title="{{$permissions}}"><i id="jot-perms-icon"></i></button> + {{/if}} + <button id="event-submit" class="btn btn-primary" type="submit" name="submit">{{$submit}}</button> </div> - - </div> - - -</div> - - - -<br /> - -<div class="clear event-form-location-end"></div> - -{{if ! $eid}} - - <div class='field checkbox'> - <label class="mainlabel" for='id_share'>{{$sh_text}}</label> - <div class="pull-right"><input type="checkbox" name='share' id='id_share' value="1" {{$sh_checked}} > - <label class="switchlabel" for='id_share'> <span class="onoffswitch-inner" data-on='' data-off='' ></span> - <span class="onoffswitch-switch"></span> </label></div><span class='field_help'></span> - </div> - - -<div id="event-share-break"></div> - - - -<button id="event-permissions-button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#aclModal" onclick="return false;">{{$permissions}}</button> -{{$acl}} - -{{/if}} - -<div class="clear"></div> - -<button id="event-edit-preview-btn" class="btn btn-default" title="{{$preview}}" onclick="doEventPreview(); return false;"><i class="icon-eye-open" ></i></button> - -<input id="event-submit" type="submit" name="submit" value="{{$submit}}" /> </form> - -</div> diff --git a/view/tpl/event_head.tpl b/view/tpl/event_head.tpl index fd0ef0d9b..dc98d14b3 100755 --- a/view/tpl/event_head.tpl +++ b/view/tpl/event_head.tpl @@ -1,6 +1,7 @@ <link rel='stylesheet' type='text/css' href='{{$baseurl}}/library/fullcalendar/fullcalendar.css' /> -<script language="javascript" type="text/javascript" - src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script> +<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/moment/moment.min.js"></script> +<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/fullcalendar.min.js"></script> +<script language="javascript" type="text/javascript" src="{{$baseurl}}/library/fullcalendar/lang-all.js"></script> <script> function showEvent(eventid) { @@ -20,75 +21,92 @@ $('#event-edit-preview').val(0); } + function exportDate() { + var moment = $('#events-calendar').fullCalendar('getDate'); + var sT = 'events/' + moment.year() + '/' + (moment.month() + 1) + '/export'; + window.location.href=sT; + } + + function changeView(action, viewName) { + $('#events-calendar').fullCalendar(action, viewName); + var view = $('#events-calendar').fullCalendar('getView'); + $('#title').text(view.title); + } + $(document).ready(function() { $('#events-calendar').fullCalendar({ - events: '{{$baseurl}}/events/json/', - header: { - left: 'prev,next today', - center: 'title', - right: 'month,agendaWeek,agendaDay' - }, + events: '{{$baseurl}}/events/json', + header: false, + lang: '{{$lang}}', + firstDay: {{$first_day}}, + + eventLimit: 3, + height: 'auto', + monthNames: aStr['monthNames'], monthNamesShort: aStr['monthNamesShort'], dayNames: aStr['dayNames'], dayNamesShort: aStr['dayNamesShort'], - buttonText: { - prev: "<span class='fc-text-arrow'>‹</span>", - next: "<span class='fc-text-arrow'>›</span>", - prevYear: "<span class='fc-text-arrow'>«</span>", - nextYear: "<span class='fc-text-arrow'>»</span>", - today: aStr['today'], - month: aStr['month'], - week: aStr['week'], - day: aStr['day'] - }, + allDayText: aStr['allday'], - timeFormat: 'H(:mm)', + timeFormat: 'HH:mm', eventClick: function(calEvent, jsEvent, view) { showEvent(calEvent.id); }, loading: function(isLoading, view) { + $('#events-spinner').spin('tiny'); + $('#events-spinner > i').css('color', 'transparent'); if(!isLoading) { - $('td.fc-day').dblclick(function() { window.location.href='/events/new?start='+$(this).data('date'); }); + $('#events-spinner').spin(false); + $('#events-spinner > i').css('color', ''); + $('td.fc-day').dblclick(function() { + openMenu('form'); + //window.location.href='/events/new?start='+$(this).data('date'); + }); } }, eventRender: function(event, element, view) { + //console.log(view.name); if (event.item['author']['xchan_name']==null) return; switch(view.name){ case "month": - element.find(".fc-event-title").html( - "<img src='{0}' style='height:10px;width:10px'>{1} : {2}".format( + element.find(".fc-title").html( + "<img src='{0}' style='height:12px;width:12px;' title='{1}'> <span title='{3}{4}'>{2}</span>".format( event.item['author']['xchan_photo_s'], event.item['author']['xchan_name'], - event.title + event.title, + event.item.description ? event.item.description + "\r\n\r\n" : '', + event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : '' )); break; case "agendaWeek": - element.find(".fc-event-title").html( - "<img src='{0}' style='height:12px; width:12px'>{1}<p>{2}</p><p>{3}</p>".format( + element.find(".fc-title").html( + "<img src='{0}' style='height:12px;width:12px;'> {1}: <span title='{3}{4}'>{2}</span>".format( event.item['author']['xchan_photo_s'], event.item['author']['xchan_name'], - event.item.desc, - event.item.location + event.title, + event.item.description ? event.item.description + "\r\n\r\n" : '', + event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : '' )); break; case "agendaDay": - element.find(".fc-event-title").html( - "<img src='{0}' style='height:24px;width:24px'>{1}<p>{2}</p><p>{3}</p>".format( + element.find(".fc-title").html( + "<img src='{0}' style='height:12px;width:12px;'> {1}: <span title='{3}{4}'>{2}</span>".format( event.item['author']['xchan_photo_s'], event.item['author']['xchan_name'], - event.item.desc, - event.item.location + event.title, + event.item.description ? event.item.description + "\r\n\r\n" : '', + event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : '' )); break; } } - }) + }); // center on date var args=location.href.replace(baseurl,"").split("/"); @@ -100,59 +118,34 @@ var hash = location.hash.split("-") if (hash.length==2 && hash[0]=="#link") showEvent(hash[1]); - }); -</script> - -{{if $editselect != 'none'}} -<script language="javascript" type="text/javascript" - src="{{$baseurl}}/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script> -<script language="javascript" type="text/javascript"> - - - tinyMCE.init({ - theme : "advanced", - mode : "{{$editselect}}", - plugins : "bbcode,paste", - theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code", - theme_advanced_buttons2 : "", - theme_advanced_buttons3 : "", - theme_advanced_toolbar_location : "top", - theme_advanced_toolbar_align : "center", - theme_advanced_blockformats : "blockquote,code", - gecko_spellcheck : true, - paste_text_sticky : true, - entity_encoding : "raw", - add_unload_trigger : false, - remove_linebreaks : false, - force_p_newlines : false, - force_br_newlines : true, - forced_root_block : '', - content_css: "{{$baseurl}}/view/custom_tinymce.css", - theme_advanced_path : false, - setup : function(ed) { - ed.onInit.add(function(ed) { - ed.pasteAsPlainText = true; - }); - } - - }); - {{else}} - <script language="javascript" type="text/javascript"> - {{/if}} - - $(document).ready(function() { + // echo the title + var view = $('#events-calendar').fullCalendar('getView'); + $('#title').text(view.title); + + // shift the finish time date on start time date change automagically + var origsval = $('#id_start_text').val(); + $('#id_start_text').change(function() { + var origfval = $('#id_finish_text').val(); + if(origfval) { + var sval = $('#id_start_text').val(); + var diff = moment(sval).diff(origsval); + var fval = moment(origfval).add(diff, 'millisecond').format("YYYY-MM-DD HH:mm"); + $('#id_finish_text').val(fval); + origsval = sval; + } + }); + // ACL $('#id_share').change(function() { if ($('#id_share').is(':checked')) { - $('#event-permissions-button').show(); + $('#dbtn-acl').show(); } else { - $('#event-permissions-button').hide(); + $('#dbtn-acl').hide(); } }).trigger('change'); - $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() { var selstr; $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() { diff --git a/view/tpl/event_item_content.tpl b/view/tpl/event_item_content.tpl new file mode 100644 index 000000000..76e0f4616 --- /dev/null +++ b/view/tpl/event_item_content.tpl @@ -0,0 +1,10 @@ +{{if $description}} +<div class="event-item-description"> + {{$description}} +</div> +{{/if}} +{{if $location}} +<div class="event-item-location"> + <span class="event-item-label">{{$location_label}}</span> <span class="event-item-location">{{$location}}</span> +</div> +{{/if}} diff --git a/view/tpl/event_item_header.tpl b/view/tpl/event_item_header.tpl new file mode 100755 index 000000000..9547676e9 --- /dev/null +++ b/view/tpl/event_item_header.tpl @@ -0,0 +1,11 @@ +<div class="event-item-title"> + <h3><i class="icon-calendar"></i> {{$title}}</h3> +</div> +<div class="event-item-start"> + <span class="event-item-label">{{$dtstart_label}}</span> <span class="dtstart" title="{{$dtstart_title}}">{{$dtstart_dt}}</span> +</div> +{{if $finish}} +<div class="event-item-start"> + <span class="event-item-label">{{$dtend_label}}</span> <span class="dtend" title="{{$dtend_title}}">{{$dtend_dt}}</span> +</div> +{{/if}} diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl index bb6ca63a4..08c8aa64a 100755 --- a/view/tpl/events-js.tpl +++ b/view/tpl/events-js.tpl @@ -1,30 +1,21 @@ -{{$tabs}} -<div class="generic-content-wrapper-styled"> -<h2>{{$title}}</h2> - -<div class="pull-right"> -<button class="btn btn-xs" onclick="window.location.href='{{$new_event.0}}'; return false;" >{{$new_event.1}}</button> <button class="btn btn-xs" onclick="exportDate(); return false;" ><i class="icon-download"></i> {{$export.1}}</button> <button class="btn btn-xs" onclick="openClose('event-upload-form');"><i class="icon-upload"></i> {{$upload}}</button> -</div> - -<div id="event-upload-form" style="display:none;"> - <div class="section-content-tools-wrapper"> - <form action="events" enctype="multipart/form-data" method="post" name="event-upload-form" id="event-upload-form"> - <div class="form-group"> - <input id="event-upload-choose" type="file" name="userfile" /> - </div> - <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$submit}}</button> - </form> - </div> -</div> - -<script> -function exportDate() { - var moment = $('#events-calendar').fullCalendar('getDate'); - var sT = 'events/' + moment.getFullYear() + '/' + (moment.getMonth() + 1) + '/export'; - window.location.href=sT; -} -</script> -<div class="clear"></div> -<br /> -<div id="events-calendar"></div> +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <div class="pull-right"> + <button class="btn btn-success btn-xs" onclick="openClose('form'); closeMenu('event-tools');">{{$new_event.1}}</button> + <div class="btn-group"> + <button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="icon-backward"></i></button> + <button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button> + <button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="icon-forward"></i></button> + </div> + </div> + <h2 id="title"></h2> + <div class="clear"></div> + </div> + <div id="form" class="section-content-tools-wrapper"{{if !$expandform}} style="display:none;"{{/if}}> + {{$form}} + </div> + <div class="clear"></div> + <div class="section-content-wrapper-np"> + <div id="events-calendar"></div> + </div> </div> diff --git a/view/tpl/events_menu_side.tpl b/view/tpl/events_menu_side.tpl new file mode 100755 index 000000000..b9a9062b1 --- /dev/null +++ b/view/tpl/events_menu_side.tpl @@ -0,0 +1,8 @@ +<div class="widget"> + <h3>{{$title}}</h3> + <ul class="nav nav-pills nav-stacked"> + <li><a href="#" onclick="changeView('changeView', 'month'); return false;">{{$month}}</a></li> + <li><a href="#" onclick="changeView('changeView', 'agendaWeek'); return false;">{{$week}}</a></li> + <li><a href="#" onclick="changeView('changeView', 'agendaDay'); return false;">{{$day}}</a></li> + </ul> +</div> diff --git a/view/tpl/events_tools_side.tpl b/view/tpl/events_tools_side.tpl new file mode 100755 index 000000000..5e20511fc --- /dev/null +++ b/view/tpl/events_tools_side.tpl @@ -0,0 +1,15 @@ +<div class="widget"> + <h3>{{$title}}</h3> + <ul class="nav nav-pills nav-stacked"> + <li><a href="#" onclick="exportDate(); return false;"><i class="icon-download"></i> {{$export}}</a></li> + <li><a href="#" onclick="openClose('event-upload-form'); return false;"><i class="icon-upload"></i> {{$import}}</a></li> + </ul> + <div id="event-upload-form" style="display: none;"> + <form action="events" enctype="multipart/form-data" method="post" name="event-upload-form" id="event-upload-form"> + <div class="form-group"> + <input id="event-upload-choose" type="file" name="userfile" /> + </div> + <button id="dbtn-submit" class="btn btn-primary btn-xs" type="submit" name="submit" >{{$submit}}</button> + </form> + </div> +</div> diff --git a/view/tpl/hdr.tpl b/view/tpl/hdr.tpl index c3f0700f0..3770cb9a6 100644 --- a/view/tpl/hdr.tpl +++ b/view/tpl/hdr.tpl @@ -1,5 +1,5 @@ <div id="banner" class="hidden-sm hidden-xs">{{$banner}}</div> <ul id="nav-notifications-template" style="display:none;" rel="template"> - <li class="{5}"><a href="{0}" title="{2} {3}"><img data-src="{1}"><span class="contactname">{2}</span><span class="dropdown-sub-text">{3}<br>{4}</span></a></li> + <li class="{5}"><a href="{0}" title="{2} {3}"><img class="dropdown-menu-img-sm" data-src="{1}"><span class="contactname">{2}</span><span class="dropdown-sub-text">{3}<br>{4}</span></a></li> </ul> 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 @@ +<div class="generic-content-wrapper-styled"> <form action="invite" method="post" id="invite-form" > <input type='hidden' name='form_security_token' value='{{$form_security_token}}'> @@ -28,3 +29,4 @@ </div> </form> +</div> diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl index b405e4ac8..84fccc105 100755 --- a/view/tpl/jot-header.tpl +++ b/view/tpl/jot-header.tpl @@ -190,15 +190,27 @@ function enableOnUser(){ } function jotGetLink() { - reply = prompt("{{$linkurl}}"); - if(reply && reply.length) { - reply = bin2hex(reply); - $('#profile-rotator').spin('tiny'); - $.get('{{$baseurl}}/linkinfo?f=&binurl=' + reply, function(data) { - addeditortext(data); - $('#profile-rotator').spin(false); - }); - } + textarea = document.getElementById('profile-jot-text'); + if (textarea.selectionStart || textarea.selectionStart == "0") { + var start = textarea.selectionStart; + var end = textarea.selectionEnd; + if (end > start) { + reply = prompt("{{$linkurl}}"); + if(reply && reply.length) { + textarea.value = textarea.value.substring(0, start) + "[url=" + reply + "]" + textarea.value.substring(start, end) + "[/url]" + textarea.value.substring(end, textarea.value.length); + } + } else { + reply = prompt("{{$linkurl}}"); + if(reply && reply.length) { + reply = bin2hex(reply); + $('#profile-rotator').spin('tiny'); + $.get('{{$baseurl}}/linkinfo?f=&binurl=' + reply, function(data) { + addeditortext(data); + $('#profile-rotator').spin(false); + }); + } + } + } } function jotVideoURL() { diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl index 75f6b0027..e7edb7e64 100755 --- a/view/tpl/jot.tpl +++ b/view/tpl/jot.tpl @@ -142,16 +142,16 @@ <div id="profile-rotator"></div> </div> <div id="profile-jot-submit-right" class="btn-group pull-right"> - {{if $showacl}} - <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;"> - <i id="jot-perms-icon" class="icon-{{$lockstate}} jot-icons"></i>{{if $bang}} <i class="icon-exclamation jot-icons"></i>{{/if}} - </button> - {{/if}} {{if $preview}} <button class="btn btn-default btn-sm hidden-xs" onclick="preview_post();return false;" title="{{$preview}}"> <i class="icon-eye-open jot-icons" ></i> </button> {{/if}} + {{if $showacl}} + <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;"> + <i id="jot-perms-icon" class="icon-{{$lockstate}} jot-icons"></i>{{if $bang}} <i class="icon-exclamation jot-icons"></i>{{/if}} + </button> + {{/if}} <button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" tabindex=3 name="button-submit" >{{$share}}</button> </div> <div id="profile-jot-perms-end"></div> diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl index 38cf8edbd..4243c2ea5 100755 --- a/view/tpl/js_strings.tpl +++ b/view/tpl/js_strings.tpl @@ -22,6 +22,7 @@ 'submit' : "{{$submit}}", 'linkurl' : "{{$linkurl}}", 'leavethispage' : "{{$leavethispage}}", + 'location' : "{{$location}}", 't01' : "{{$t01}}", 't02' : "{{$t02}}", diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl index 4f54f1a6a..5e5d9808d 100755 --- a/view/tpl/mail_conv.tpl +++ b/view/tpl/mail_conv.tpl @@ -13,6 +13,12 @@ {{$mail.body}} <div class="clear"></div> </div> + {{if $mail.attachments}} + <div class="dropdown pull-left"> + <button type="button" class="btn btn-default btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="icon-paperclip"></i></button> + <ul class="dropdown-menu" role="menu" aria-labelledby="attachment-menu-{{$item.id}}">{{$mail.attachments}}</ul> + </div> + {{/if}} <div class="pull-right dropdown"> <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="mail-item-menu-{{$mail.id}}"> <i class="icon-caret-down"></i> diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl index d22f82f8e..bbcdcefc1 100755 --- a/view/tpl/photo_album.tpl +++ b/view/tpl/photo_album.tpl @@ -1,7 +1,9 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> <div class="pull-right"> + {{if $order}} <a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="icon-sort"></i></a> + {{/if}} <div class="btn-group btn-group"> {{if $album_edit.1}} <i class="icon-pencil btn btn-default btn-xs" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i> diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl index bea0d894f..c52c2cd81 100755 --- a/view/tpl/profile_vcard.tpl +++ b/view/tpl/profile_vcard.tpl @@ -6,7 +6,7 @@ <ul class="dropdown-menu" role="menu"> {{foreach $profile.menu.entries as $e}} <li> - <a href="profiles/{{$e.id}}"><img src='{{$e.photo}}'>{{$e.profile_name}}<div class='clear'></div></a> + <a href="profiles/{{$e.id}}"><img class="dropdown-menu-img-xs" src='{{$e.photo}}'>{{$e.profile_name}}<div class='clear'></div></a> </li> {{/foreach}} <li><a href="profile_photo" >{{$profile.menu.chg_photo}}</a></li> diff --git a/view/tpl/pwdreset.tpl b/view/tpl/pwdreset.tpl index a9106343f..dc17ed57a 100755 --- a/view/tpl/pwdreset.tpl +++ b/view/tpl/pwdreset.tpl @@ -1,3 +1,4 @@ +<div class="generic-content-wrapper-styled"> <h3>{{$lbl1}}</h3> <p> @@ -13,3 +14,4 @@ <p> {{$lbl6}} </p> +</div> diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl index b44e1c39e..b2689c7ba 100755 --- a/view/tpl/search_item.tpl +++ b/view/tpl/search_item.tpl @@ -7,6 +7,11 @@ {{$item.photo}} </div> {{/if}} + {{if $item.event}} + <div class="wall-event-item" id="wall-event-item-{{$item.id}}"> + {{$item.event}} + </div> + {{/if}} <div class="wall-item-head"> <div class="wall-item-info" id="wall-item-info-{{$item.id}}" > <div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}}" id="wall-item-photo-wrapper-{{$item.id}}"> diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl index 7c1f4578d..af5f222fe 100755 --- a/view/tpl/settings.tpl +++ b/view/tpl/settings.tpl @@ -159,11 +159,12 @@ {{/foreach}} </select> </div> + {{/if}} + {{include file="field_checkbox.tpl" field=$cal_first_day}} <div class="settings-submit-wrapper" > <button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button> </div> </div> - {{/if}} </div> </div> </div> |